PillarNeSt:如何進(jìn)一步提升基于Pillar的3D目標(biāo)檢測(cè)性能?
寫(xiě)在前面 && 筆者的個(gè)人理解
目前在自動(dòng)駕駛領(lǐng)域中,一輛自駕汽車(chē)會(huì)配備多種傳感器,如:激光雷達(dá)傳感器采集點(diǎn)云數(shù)據(jù)、相機(jī)傳感器采集圖像數(shù)據(jù)等。由于激光雷達(dá)傳感器可以更加準(zhǔn)確的獲取待檢測(cè)物體的幾何和位置信息,所以基于點(diǎn)云的感知算法模型在快速的迭代和發(fā)展當(dāng)中。目前主流的基于點(diǎn)云的感知算法主要分成以下兩大類(lèi)。
- 一類(lèi)是基于Voxel-based的感知算法,如經(jīng)典的SECOND、VoxelNet等算法。Voxel-based的算法模型首先會(huì)將輸入的點(diǎn)云數(shù)據(jù)轉(zhuǎn)換成3D的體素結(jié)構(gòu)表示,然后利用3D的卷積算法模型實(shí)現(xiàn)后續(xù)的特征提取,將提取后的3D特征送入到后續(xù)的模塊當(dāng)中。
- 另外一類(lèi)是基于Pillar-based的感知算法,如經(jīng)典的PointPillar、PillaNext、PillarNet等算法。Pillar-based的算法模型并不依賴(lài)3D的卷積網(wǎng)絡(luò)來(lái)獲取點(diǎn)云特征,而是直接將點(diǎn)云數(shù)據(jù)構(gòu)建成柱狀的數(shù)據(jù)從而實(shí)現(xiàn)更快的檢測(cè)速度,方便后續(xù)的上車(chē)部署等任務(wù)。
雖然目前基于Pillar-based的算法模型由于其部署方便、精度高而廣泛采用,但目前Pillar-based的算法模型還主要使用隨機(jī)初始化的方式來(lái)對(duì)2D的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,這就導(dǎo)致很多在ImageNet上預(yù)訓(xùn)練的2D主干網(wǎng)絡(luò)并未有效的被Pillar-based的算法模型利用起來(lái),從而造成資源的浪費(fèi)。除此之外,就目前來(lái)看,基于點(diǎn)云的感知算法模型還沒(méi)有出現(xiàn)因模型尺寸的放大而出現(xiàn)精度上升的現(xiàn)象。而在2D檢測(cè)任務(wù)當(dāng)中,在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練的主干網(wǎng)絡(luò)和更大尺寸的主干網(wǎng)絡(luò)均展現(xiàn)出了更好的優(yōu)勢(shì)。
所以,今天解析的這篇論文就是要探索2D主干網(wǎng)絡(luò)的規(guī)模大小和預(yù)訓(xùn)練對(duì)于Pillar-based的3D目標(biāo)檢測(cè)器的性能影響。
論文的arxiv鏈接如下:https://arxiv.org/pdf/2311.17770.pdf
PillarNeSt的算法解析
首先,先放出來(lái)PillarNeSt算法模型的整體框架結(jié)構(gòu),如下圖所示。
PillarNeSt算法模型的網(wǎng)絡(luò)框圖
通過(guò)上圖可以看出,PillarNeSt也是沿用了點(diǎn)云感知算法中經(jīng)典的架構(gòu)模型(CenterPoint-Pillars)作為基線模型,但是論文中的作者為了為了構(gòu)建一個(gè)更強(qiáng)的基線模型,對(duì)原有的PointPillars算法模型進(jìn)行了更改。為了讀者們更加清晰的了解每個(gè)部分的更改位置,先簡(jiǎn)單列舉出來(lái)CenterPoint-Pillars算法模型的幾個(gè)基礎(chǔ)模塊。
- 點(diǎn)云的偽圖像表示:利用Pillar Encoder模塊完成原始輸入到模型中的點(diǎn)云數(shù)據(jù)向偽圖像格式的表示
- 2D的主干網(wǎng)絡(luò)完成偽圖像的特征提取
- 利用Neck模塊融合2D主干網(wǎng)絡(luò)提取出來(lái)的多尺度特征圖
- 利用3D檢測(cè)頭(CenerHead)輸出最終的3D檢測(cè)結(jié)果
- 根據(jù)損失函數(shù)計(jì)算損失loss,利用反向傳播代碼更新網(wǎng)絡(luò)的參數(shù)值
接下來(lái)就根據(jù)上述提到的每個(gè)基礎(chǔ)模塊來(lái)一步步的更改和增強(qiáng),最終構(gòu)建出PillarNeSt算法模型~
Pillar Encoder
在原始的CenterPoint-Pillars算法模型中,Pillar Encoder模塊部分先使用一個(gè)多層感知機(jī)結(jié)構(gòu)來(lái)提取點(diǎn)云數(shù)據(jù)的特征,然后采用Max Pooling層來(lái)提取Pillar特征。但是在本文中,作者認(rèn)為僅采用一個(gè)Max Pooling層會(huì)導(dǎo)致信息的丟失,基于此,論文作者在原有Max Pooling層的基礎(chǔ)上又添加了一個(gè)Mean Pooling層來(lái)獲取更多的有用信息。除此之外,論文作者也引入了每個(gè)點(diǎn)相對(duì)于幾何中心高度的偏移量作為模塊的輸入來(lái)補(bǔ)償Z軸上的信息丟失。
“
In this paper, we simultaneously employ max pooling and average pooling to preserve more information. Moreover, we also introduce the height offset of points, relative to the geometric center, as the input to compensate for the information loss on the z axis.
”
2D Backbone的重新設(shè)計(jì)
- 采用更大尺寸的卷積核
論文的作者提出,在2D圖像領(lǐng)域中,通過(guò)增加網(wǎng)絡(luò)模型的層數(shù)或者是深度,模型的有效感受野大小并沒(méi)有得到有效的增加。而針對(duì)Pillar-based的算法模型也需要對(duì)偽圖像點(diǎn)云數(shù)據(jù)進(jìn)行特征提取。受到最近幾篇Large-Kernel工作的啟發(fā),作者認(rèn)為通過(guò)使用更大的卷積核可以使模型的有效感受野(ERF)增加,從而增加基于點(diǎn)云的感知算法的檢測(cè)性能。同時(shí),論文的作者為了平衡好模型速度和精度二者之間的關(guān)系,在本文中,采用了卷積核大小為7x7的深度可分離卷積層。
Some recent works argue that large ERF can be effectively achieved by employing convolution with larger kernels. Moreover, a larger receptive field contributes to enhancing the capability of point cloud detectors.
- 在第一層移除下采樣操作
論文的作者考慮到圖像當(dāng)中有很多像素的信息都是存在冗余的,而常見(jiàn)的2D主干網(wǎng)絡(luò)通常都會(huì)包括步長(zhǎng)為2的卷積層對(duì)提取的圖像特征進(jìn)行下采樣操作,從而降低后續(xù)卷積操作的運(yùn)算成本。
但是對(duì)于點(diǎn)云信息而言卻有所不同,由于原始的點(diǎn)云數(shù)據(jù)是稀疏而且是不規(guī)則的,而且包含了物體非常豐富的幾何和結(jié)構(gòu)信息。但是如果過(guò)早的應(yīng)用下采樣層就會(huì)導(dǎo)致點(diǎn)云中關(guān)鍵信息的損失。論文的作者基于這些考慮,在新設(shè)計(jì)的算法模型當(dāng)中,刪除了在第一個(gè)層存在的下采樣層,從而保證了輸入到后續(xù)層的分辨率,保存了輸入數(shù)據(jù)的有效信息。
Our backbone design removes the stem and refrains from implementing down-sampling in the first stage block. This strategic choice ensures the preservation of the original resolution of the input features.
- 模型早期添加更多的block
作者指出,針對(duì)2D圖像領(lǐng)域而言,通常都會(huì)在網(wǎng)絡(luò)模型的后面幾層堆疊更多的block來(lái)提取更抽象的語(yǔ)義特征,從而獲取更加豐富的語(yǔ)義表達(dá)。但是考慮到點(diǎn)云數(shù)據(jù)是不規(guī)則同時(shí)也是稀疏的特點(diǎn),這就意味著應(yīng)該在模型的早期堆疊更多的block來(lái)完全提取出點(diǎn)云中包含的數(shù)據(jù)信息。作者也在論文中提到,通過(guò)實(shí)驗(yàn)結(jié)果也可以得出類(lèi)似的結(jié)論,與在主干網(wǎng)絡(luò)的后期堆疊block相比,在主干網(wǎng)絡(luò)的前幾層堆疊block可以獲得更高的檢測(cè)結(jié)果收益。
Our extensive experiments suggest that increasing the number of blocks in early stages yields superior gains compared to adding more blocks in later stages.
- 更深層次的層
論文的作者通過(guò)對(duì)點(diǎn)云的場(chǎng)景進(jìn)行分析認(rèn)為,不同物體的尺寸大小變化是非常巨大的。在針對(duì)Pillar-based的算法中而言,當(dāng)Pillar的的尺寸設(shè)置為0.2m時(shí),8倍的下采樣后最大可感知范圍為1.6m。然而,現(xiàn)實(shí)場(chǎng)景中的許多對(duì)象超過(guò)了有限的可感知范圍。這意味著8倍下采樣后的特征點(diǎn)不能完全感知大物體的整個(gè)物體。
基于此,作者采用了一種簡(jiǎn)單易行的方法來(lái)緩解這個(gè)問(wèn)題,在主干網(wǎng)絡(luò)第四層的輸出基礎(chǔ)上,額外再添加一層并標(biāo)記為第五層。第五層模塊包含的模塊數(shù)量可以根據(jù)模型的規(guī)模進(jìn)行擴(kuò)展。
we adopt a simple way and add one more stage (named stage-5) on top of stage-4, which contains only one or two ConNeXt blocks. The block number of stage-5 can be scaled up based on the model size. The output of added stage-5 is served as one of the multi-scale inputs of the neck network.
主干網(wǎng)絡(luò)縮放
論文的一大目標(biāo)就是希望設(shè)計(jì)出一組可以縮放的網(wǎng)絡(luò)結(jié)構(gòu)模型,從而實(shí)現(xiàn)模型的參數(shù)量和精度的權(quán)衡。本文中論文作者設(shè)計(jì)了一系列的2D主干網(wǎng)絡(luò)從PillarNeSt-Tiny到PillarNeSt-Large用于滿足不同的參數(shù)量和精度的要求。不同尺度的網(wǎng)絡(luò)模型配置如下圖所示
不同PillarNeSt模型的參數(shù)配置情況
通過(guò)上圖可以看出,不同版本的模型共用相似的模型結(jié)構(gòu)。每個(gè)模型包括五層結(jié)構(gòu),上文已經(jīng)提到過(guò)的第一層去掉了降采樣層,對(duì)于剩余的其它層都會(huì)進(jìn)行降采樣的操作。
論文中還對(duì)不同規(guī)模的主干網(wǎng)絡(luò)模型提供了更加便捷的表示方法,如下圖所示
不同PillarNeSt模型的通道數(shù)及block數(shù)統(tǒng)計(jì)
主干網(wǎng)絡(luò)預(yù)訓(xùn)練
由于作者的另外一個(gè)目標(biāo)是希望可以利用在ImageNet上預(yù)訓(xùn)練2D主干網(wǎng)絡(luò)的優(yōu)勢(shì),而且論文中的主干網(wǎng)絡(luò)是基于ConvNeXt進(jìn)行更改的,這就導(dǎo)致原有的在ImageNet上預(yù)訓(xùn)練的ConvNeXt無(wú)法直接遷移到新設(shè)計(jì)好的網(wǎng)絡(luò)結(jié)構(gòu)上?;诖耍撐牟捎昧藘煞N形式的參數(shù)初始化方法,分別是基于stage view和micro view的初始化方法。
- stage view
直接簡(jiǎn)單地從預(yù)訓(xùn)練的ConvNeXt模型中復(fù)制權(quán)重,用于用于Stage1-4,而添加的最后層(Stage-5)進(jìn)行隨機(jī)的初始化。對(duì)于Stage1-4,如果塊數(shù)小于ConvNeXt的塊數(shù),我們只根據(jù)塊標(biāo)識(shí)復(fù)制相應(yīng)塊的參數(shù) - micro view
從預(yù)訓(xùn)練的ConvNeXt模型的前Cin個(gè)通道復(fù)制訓(xùn)練好的參數(shù),而對(duì)于剩余的通道則采用隨機(jī)初始化的方式賦值參數(shù)
實(shí)驗(yàn)部分
作者分別在nuScenes和Argoverse2數(shù)據(jù)集上來(lái)測(cè)試設(shè)計(jì)好的PillarNeSt算法模型的有效性。首先放出來(lái)在nuScenes上的結(jié)果。
通過(guò)實(shí)驗(yàn)結(jié)果可以看出,最大參數(shù)量的PillarNeSt-Large算法模型實(shí)現(xiàn)了64.3的mAP,較大幅度的超過(guò)了其他的基于點(diǎn)云的感知算法模型。
除了nuScenes數(shù)據(jù)集上的對(duì)比結(jié)果之外,論文設(shè)計(jì)的PillarNeSt在Argoverse2數(shù)據(jù)集上依舊有很好的表現(xiàn)。
通過(guò)表格結(jié)果可以看出,無(wú)論是mAP還是CDS指標(biāo),采用PillarNeSt-Base算法模型已經(jīng)實(shí)現(xiàn)了最優(yōu)的檢測(cè)性能,大幅度的超過(guò)其他的基于點(diǎn)云的感知算法模型。
通過(guò)上面的實(shí)驗(yàn)表格,已經(jīng)可以比較好的說(shuō)明了該方法成功實(shí)現(xiàn)了一組可縮放的網(wǎng)絡(luò)結(jié)構(gòu),可以根據(jù)具體的情況選擇不同參數(shù)量的算法模型來(lái)達(dá)到不同的精度效果。針對(duì)論文中提出的預(yù)訓(xùn)練問(wèn)題,論文同樣給出了實(shí)驗(yàn)結(jié)果圖,如下所示
實(shí)驗(yàn)結(jié)果已經(jīng)很好的說(shuō)明了,論文中設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)非常出色的繼承了來(lái)自ImageNet上預(yù)訓(xùn)練得到的知識(shí)信息,無(wú)論是mAP還是訓(xùn)練損失,加載了預(yù)訓(xùn)練模型的效果均要優(yōu)于不采用預(yù)訓(xùn)練模型的效果。
總結(jié)
目前雖然基于點(diǎn)云的感知算法已經(jīng)取得了很大的進(jìn)步,但是針對(duì)Pillar-base算法模型中的2D主干網(wǎng)絡(luò)依舊采用隨機(jī)初始化的方式,沒(méi)有使用到來(lái)自ImageNet預(yù)訓(xùn)練的網(wǎng)絡(luò)模型,同時(shí)基于點(diǎn)云的算法模型也沒(méi)得到不同尺度規(guī)模帶來(lái)的優(yōu)勢(shì)。
本文介紹的PillarNeSt很好的解決了上述提到的這兩個(gè)問(wèn)題,希望本篇解析可以給大家?guī)?lái)幫助。
原文鏈接:https://mp.weixin.qq.com/s/NJoAOyTuk9INQRJtJKz__g