李瑞龍,吳川*,朱明
(1.中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春130033;2.中國(guó)科學(xué)院大學(xué),北京100049)
隨著自動(dòng)駕駛技術(shù)的發(fā)展,三維目標(biāo)檢測(cè)成為三維場(chǎng)景感知和理解的核心,是車(chē)輛與外界信息交互的重要渠道,從而實(shí)現(xiàn)車(chē)輛與周邊環(huán)境的信息交互,在自動(dòng)駕駛中扮演不可替代的作用[1]。其中,基于激光雷達(dá)點(diǎn)云的三維目標(biāo)檢測(cè)算法從點(diǎn)云數(shù)據(jù)精確的幾何形狀和特征信息預(yù)估三維邊界框和類(lèi)別,實(shí)現(xiàn)檢測(cè)目標(biāo)功能。激光雷達(dá)具有精度高、探測(cè)距離遠(yuǎn)、不受天氣光照影響、數(shù)據(jù)穩(wěn)定性強(qiáng)的優(yōu)點(diǎn),基于點(diǎn)云的視覺(jué)感知技術(shù)也成為自動(dòng)駕駛的研究熱點(diǎn),在三維目標(biāo)檢測(cè)中占主導(dǎo)地位。
點(diǎn)云是目標(biāo)表面特性的海量點(diǎn)的集合,包含目標(biāo)場(chǎng)景的立體坐標(biāo)信息、反射強(qiáng)度、法向量、局部稠密度和局部曲率等特征。由于點(diǎn)云在空間中離散分布,因此具有稀疏性且分布不均的特點(diǎn)[2],不能直接運(yùn)用處理圖像的方式處理點(diǎn)云數(shù)據(jù),也無(wú)法利用傳統(tǒng)算法獲取點(diǎn)云豐富的結(jié)構(gòu)信息和空間語(yǔ)義信息。隨著深度學(xué)習(xí)在處理點(diǎn)云方面取得突破性進(jìn)展,現(xiàn)已發(fā)展出很多基于深度學(xué)習(xí)的三維目標(biāo)檢測(cè)方向,主要分為基于點(diǎn)云的方法和基于體素的方法。
PointNet[3]直接使用點(diǎn)云作為輸入,利用卷積神經(jīng)網(wǎng)絡(luò)有效解決無(wú)序點(diǎn)云特征建模問(wèn)題。使用空間變換矩陣預(yù)測(cè)網(wǎng)絡(luò)學(xué)習(xí)原始三維點(diǎn)云的空間分布特性,將具有同一特征的三維點(diǎn)云對(duì)齊后送入多層感知機(jī)提取特征。但是在點(diǎn)云數(shù)據(jù)稀疏時(shí),目標(biāo)主干點(diǎn)的點(diǎn)云缺失導(dǎo)致無(wú)法準(zhǔn)確提取全局特征,魯棒性效果較差。PointNet++[4]根據(jù)CNN多層感受野思想,設(shè)置不同的鄰域搜索半徑(Ball Query),使用PointNet提取不同尺度范圍的點(diǎn)云特征,再使用多層感知機(jī)生成全局特征,最終實(shí)現(xiàn)點(diǎn)級(jí)特征分類(lèi)。PointNet++在點(diǎn)云語(yǔ)義分割任務(wù)上效果較好,但其鄰域搜索復(fù)雜度較高,無(wú)法實(shí)時(shí)處理。PointNet及PointNet++實(shí)現(xiàn)了對(duì)點(diǎn)云的處理與特征提取,在后續(xù)算法中得到了廣泛的應(yīng)用。
PointRCNN[5]算法使用原始點(diǎn)云作為輸入,在第一階段,使用PointNet++逐點(diǎn)提取特征向量,將點(diǎn)云分類(lèi)為前景和背景,再使用多層感知機(jī)根據(jù)每個(gè)前景點(diǎn)的特征向量生成3D檢測(cè)框。在第二階段,將語(yǔ)義特征和局部空間特征結(jié)合對(duì)檢測(cè)框進(jìn)行優(yōu)化。STD[6](Sparse-to-Dense 3D Object Detector for Point Cloud)在第一階段使用PointsPool將內(nèi)部點(diǎn)特征從稀疏表達(dá)轉(zhuǎn)換為致密表示,在每個(gè)點(diǎn)上使用球形錨框生成準(zhǔn)確的三維檢測(cè)框。在第二階段通過(guò)IoU分支回歸邊界框。結(jié)果顯示,STD在精度和速度方面均優(yōu)于PointRCNN。
三維點(diǎn)云空間劃分成的立方體稱(chēng)為體素,體素能有效表示點(diǎn)云空間。Voxelnet[7]將點(diǎn)云劃分為等間距的規(guī)則體素,使用VFE層(Voxel feature encoder)將每個(gè)體素內(nèi)的點(diǎn)的特征量化統(tǒng)一,再采用3D卷積神經(jīng)網(wǎng)絡(luò)提取點(diǎn)云特征信息,最終使用RPN網(wǎng)絡(luò)生成檢測(cè)框,實(shí)現(xiàn)端到端訓(xùn)練。
PointPillars[8]網(wǎng)絡(luò)通過(guò)在鳥(niǎo)瞰圖(Bird’s Eye View,BEV)上劃分網(wǎng)格,實(shí)現(xiàn)立柱形式的體素的劃分。通過(guò)立柱的劃分,將三維點(diǎn)云空間降維生成鳥(niǎo)瞰圖,借鑒成熟的二維圖像卷積網(wǎng)絡(luò)進(jìn)行特征提取和邊界框回歸,實(shí)現(xiàn)端到端的訓(xùn)練,最終實(shí)現(xiàn)62 Hz的運(yùn)行速度。Voxel R-CNN[9]算法由3D骨干網(wǎng)、2D鳥(niǎo)瞰圖區(qū)域提議網(wǎng)絡(luò)和SSD檢測(cè)頭組成,利用體素聚合模塊直接從體素特征中提取三維特征,算法檢測(cè)速度較慢。
在三維目標(biāo)檢測(cè)算法中,點(diǎn)表示的方法可以保留點(diǎn)云精確位置,算法精度高,但將點(diǎn)云直接作為輸入的計(jì)算量較大?;隗w素劃分的方法具有速度優(yōu)勢(shì),但體素的劃分會(huì)導(dǎo)致三維特征信息丟失,影響檢測(cè)精度。
兩種點(diǎn)云表示方法各有優(yōu)缺點(diǎn)。本文將點(diǎn)云和體素兩種數(shù)據(jù)表示方法結(jié)合使用,通過(guò)對(duì)體素化的點(diǎn)云數(shù)據(jù)進(jìn)行處理保證運(yùn)行速度,同時(shí)結(jié)合點(diǎn)表示的方法聚合點(diǎn)云特征保證準(zhǔn)確率,實(shí)現(xiàn)了速度與準(zhǔn)確率的平衡。
本文提出的Pillar RCNN(Pillar Region withCNN feature)由3個(gè)核心模塊組成:(1)基于稀疏卷積的3D主干網(wǎng)絡(luò);(2)2D主干網(wǎng)絡(luò)和RPN(Region Proposal Network)模塊;(3)體素RoI多尺度特征聚合模塊。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 Pillar RCNN框架圖Fig.1 Framework of Pillar RCNN
根據(jù)點(diǎn)云場(chǎng)景比較稀疏的特點(diǎn),本文重新設(shè)計(jì)了三維子流形稀疏卷積骨干網(wǎng)絡(luò),快速將體素下采樣為立柱形式,生成致密的二維鳥(niǎo)瞰圖信息。再使用PointNet++提取鄰域體素的點(diǎn)云特征,利用聚合模塊對(duì)二維鳥(niǎo)瞰圖的特征和鄰域體素特征進(jìn)行級(jí)聯(lián),進(jìn)行三維邊界框進(jìn)一步的回歸細(xì)化。
三維空間內(nèi)點(diǎn)云具有無(wú)序性。首先將場(chǎng)景空間內(nèi)劃分為立體體素。對(duì)于點(diǎn)云數(shù)據(jù),以車(chē)輛前進(jìn)方向?yàn)閄軸,左右方向?yàn)閅軸,垂直于X-Y平面的方向?yàn)閆軸[10],設(shè)檢測(cè)目標(biāo)場(chǎng)景在3個(gè)軸上范圍區(qū)間為L(zhǎng),單位為m,取LX×LY×LZ=[0,70.4]×[-40,40]×[-3,1],體素大小為rX×rY×rZ=0.05 m×0.05 m×0.1 m,得到目標(biāo)場(chǎng)景為1 408×1 600×40個(gè)初始體素。非空體素內(nèi)隨機(jī)采樣5個(gè)點(diǎn)來(lái)代表體素,若點(diǎn)云數(shù)量不足5個(gè)則重復(fù)采樣,初始特征取三維坐標(biāo)(x,y,z)及反射率rr。體素的尺寸大小直接影響算法運(yùn)行速度,其中非空體素僅占檢測(cè)空間的5%~10%。因?yàn)榇罅坎话c(diǎn)云的體素的存在,體素的稀疏性較強(qiáng),傳統(tǒng)的三維卷積網(wǎng)絡(luò)遍歷體素空間會(huì)極大降低模型推理速度,占用大量?jī)?nèi)存,這既浪費(fèi)了計(jì)算資源,也浪費(fèi)了內(nèi)存資源。為克服密集卷積的缺點(diǎn),本文使用三維稀疏卷積提取體素內(nèi)點(diǎn)云特征。
為加速普通三維卷積運(yùn)行速度在S3D-CNN[11](Sparse 3D Convolutional Neural Network)網(wǎng)絡(luò)中使用三維稀疏卷積層進(jìn)行加速運(yùn)算。三維稀疏卷積層遵循如果沒(méi)有相關(guān)的輸入點(diǎn),則不計(jì)算輸出點(diǎn)的原則。本文采用三維稀疏卷積對(duì)體素?cái)?shù)據(jù)進(jìn)行卷積運(yùn)算,卷積范圍內(nèi)無(wú)點(diǎn)云的體素不進(jìn)行計(jì)算,在加速運(yùn)算的同時(shí)減小內(nèi)存占用。然而,由于存在大量活動(dòng)點(diǎn),如有數(shù)據(jù)體素相鄰區(qū)域的無(wú)數(shù)據(jù)的體素,以該體素為卷積中心,經(jīng)過(guò)卷積運(yùn)算后仍會(huì)有輸出,導(dǎo)致輸出稀疏度高于輸入稀疏度,后續(xù)卷積層的速度降低。如圖2(a)所示,左圖經(jīng)過(guò)多層三維稀疏卷積后,在中間和右圖的輸出數(shù)據(jù)量逐漸增加。Graham提出子流形三維稀疏卷積[12],在輸入位置處于有數(shù)據(jù)狀態(tài)時(shí),對(duì)應(yīng)輸出位置進(jìn)行卷積計(jì)算。經(jīng)過(guò)子流形稀疏卷積后,稀疏性不變,如圖2(b)所示,對(duì)左圖進(jìn)行子流形三維稀疏卷積后,中間和右圖輸出數(shù)據(jù)大小不變。
圖2 三維稀疏卷積(a)和子流形稀疏卷積(b)運(yùn)算示意圖Fig.2 Sample images of sparse 3D convolutional(a)and submanifold 3D sparse convolutional(b)
本文設(shè)計(jì)了一個(gè)主要由兩種稀疏三維卷積網(wǎng)絡(luò)組成的三維骨干網(wǎng)絡(luò)。兩種類(lèi)型的稀疏卷積塊由稀疏三維卷積塊和子流形稀疏三維卷積塊組成。在三維卷積模塊中,稀疏卷積中步長(zhǎng)為2,負(fù)責(zé)將三維體素進(jìn)行下采樣,降低三維分辨率。這種稀疏卷積操作會(huì)降低數(shù)據(jù)的稀疏性,但可以提取更加豐富的結(jié)構(gòu)特征,同時(shí)經(jīng)過(guò)子流形稀疏卷積后,數(shù)據(jù)的稀疏性保持不變。子流形稀疏卷積中步長(zhǎng)為1。兩種稀疏卷積模塊后均使用BN和ReLU層,實(shí)現(xiàn)數(shù)據(jù)的歸一化,加快學(xué)習(xí)速度。最終初始體素維度逐步下采樣至150×200×1,快速實(shí)現(xiàn)立柱形式的體素。
三維骨干網(wǎng)將體素化的點(diǎn)云信息逐漸轉(zhuǎn)換為特征體塊,然后將輸出張量沿Z軸疊加生成鳥(niǎo)瞰圖特征映射。二維主干網(wǎng)由3部分組成:兩個(gè)標(biāo)準(zhǔn)4層3×3特征提取子網(wǎng)絡(luò)和一個(gè)多尺度特征融合子網(wǎng)絡(luò),在每個(gè)卷積層后進(jìn)行BN和ReLU運(yùn)算。第一個(gè)特征提取模塊的X、Y軸上分辨率與3D骨干網(wǎng)輸出分辨率相同,第二個(gè)特征提取模塊分辨率為上一模塊的1/2,最后多尺度特征融合子網(wǎng)絡(luò)將兩模塊的特征進(jìn)行融合,構(gòu)建高分辨率的特征圖。最后將二維主干網(wǎng)的輸出與RPN中1×1卷積層進(jìn)行卷積,生成三維目標(biāo)預(yù)測(cè)框和預(yù)測(cè)類(lèi)別。
為了更好地從三維體素空間內(nèi)聚合空間上下文信息,提高算法準(zhǔn)確率,使用多尺度體素RoI特征聚合模塊,如圖3所示。將稀疏的三維體塊表示為一組非空體素中心點(diǎn)及對(duì)應(yīng)的特征向量,體素中心坐標(biāo)通過(guò)位置索引、體素邊界計(jì)算得來(lái)。與無(wú)序的點(diǎn)云相比,體素在量化空間中有規(guī)律地排列,方便查詢(xún)相鄰體素,例如查詢(xún)26臨近體素可以通過(guò)索引值偏移{(οx(chóng),οy,οz),οx(chóng),οy,οz?[-1,0,1]}得到。在體素查詢(xún)中采用曼哈頓距離Dα,β計(jì)算相鄰體素α=(iα,jα,kα),β=(iβ,jβ,kβ)的距離:
圖3 多尺度體素RoI聚合模塊二維示意圖Fig.3 2D diagram of multi-scale voxel RoI aggregation module
區(qū)域推薦網(wǎng)絡(luò)RPN生成的三維檢測(cè)框劃分為6×6×6子體素網(wǎng)格,每個(gè)子體素網(wǎng)格使用中心點(diǎn)為索引,體素RoI特征聚合模塊將子體素鄰近體素的特征整合到網(wǎng)格點(diǎn)中進(jìn)行特征提取,沒(méi)有直接使用最大池化層(Max Pooling)簡(jiǎn)單聚合相鄰體素的特征,而是使用PointNet模塊將鄰域體素聚合為:
vi-gi為一個(gè)相鄰體素的位置關(guān)系,?i為vi點(diǎn)代表的鄰域體素經(jīng)過(guò)PointNet模塊得到的體素特征,Ψ(·)表示多層感知機(jī)。最后再使用最大池化層(Max Pooling)或平均池化層(Average pooling)處理多層感知機(jī)輸出的特征。最大池化層能夠減小由卷積層參數(shù)誤差造成的均值偏移,更好地保留紋理信息,效果較好。鄰域內(nèi)每個(gè)體素重復(fù)上述過(guò)程。利用體素RoI聚合模塊,在每個(gè)從3D骨干網(wǎng)的最后兩個(gè)階段的體素中提取體素特征。每個(gè)階段設(shè)置兩個(gè)曼哈頓距離閾值對(duì)多尺度的體素進(jìn)行分組。將從不同階段和尺度匯集的特征進(jìn)行拼接,得到體素RoI特征進(jìn)行邊界框的精細(xì)回歸。
本文將兩種池化層對(duì)特征提取模塊的影響進(jìn)行對(duì)比實(shí)驗(yàn)(表1),發(fā)現(xiàn)最大池化層效果較好,故后文均采用最大池化層。檢測(cè)模塊將多尺度體素RoI特征作為輸入。首先使用2個(gè)多層感知機(jī)將RoI特征轉(zhuǎn)換為特征向量,再分別送入邊界框回歸分支和置信度預(yù)測(cè)分支。邊界框回歸分支預(yù)測(cè)三維檢測(cè)框與目標(biāo)真值框的偏差,置信度預(yù)測(cè)分支預(yù)測(cè)三維檢測(cè)框分?jǐn)?shù),得到最終檢測(cè)輸出。
表1 最大池化層和平均池化層在3D目標(biāo)檢測(cè)上汽車(chē)類(lèi)目標(biāo)AP40精度對(duì)比Tab.1 Accuracy comparison of max pooling layer and average pooling layer in 3D object detection of car AP40 (%)
參數(shù)設(shè)置中汽車(chē)的檢測(cè)框設(shè)置為[3.9×1.6×1.56],行 人 檢 測(cè) 框 設(shè) 置[0.8×0.6×1.73],自行車(chē)檢測(cè)框設(shè)置大小為[1.76×0.6×1.73]。初始學(xué)習(xí)率為0.01,區(qū)域推薦網(wǎng)絡(luò)中使用非極大值抑制(NMS),IoU閾值為0.7,保留100個(gè)檢測(cè)區(qū)域作為檢測(cè)頭的輸入。在檢測(cè)階段,再次應(yīng)用NMS,IoU閾值為0.1,去除冗余預(yù)測(cè)。本文對(duì)多尺度體素RoI模塊設(shè)置在三維骨干網(wǎng)絡(luò)的最后的模塊3和模塊4上不同作用鄰域閾值進(jìn)行實(shí)驗(yàn)。經(jīng)過(guò)實(shí)驗(yàn)對(duì)比,在三維骨干最后兩模塊中曼哈頓距離閾值均設(shè)置為[1,2]、[2,4]。不同鄰域閾值對(duì)多尺度RoI特征聚合模塊在3D目標(biāo)檢測(cè)上汽車(chē)類(lèi)AP40效果對(duì)比如表2所示。
表2 不同鄰域閾值對(duì)多尺度RoI特征聚合模塊在3D目標(biāo)檢測(cè)上汽車(chē)類(lèi)AP40效果對(duì)比Tab.2 Comparison of car AP40 effects of different neighborhood thresholds on multi-scale ROI feature aggregation module in 3D object detection(%)
根據(jù)KITTI數(shù)據(jù)集目標(biāo)框標(biāo)注信息,可以將目標(biāo)量化為Gb=(xb,yb,zb,lb,wb,hb,θb)的七維向量,(xb,yb,zb)為 目標(biāo)框中 心 坐標(biāo),(lb,wb,hb)為目標(biāo)框的長(zhǎng)寬高,θb代表目標(biāo)框在鳥(niǎo)瞰圖上繞Z軸的旋轉(zhuǎn)角度。在訓(xùn)練階段,檢測(cè)框也量化為Gpred=(xpred,ypred,zpred,lpred,wpred,hpred,θpred)七維向量,參數(shù)意義與目標(biāo)真值框意義相同,針對(duì)類(lèi)別為汽車(chē)的目標(biāo),真實(shí)框與檢測(cè)框IoU閾值大于0.6的視為前景目標(biāo)框,小于0.45視為背景目標(biāo)框,介于0.45~0.6之間視為無(wú)效框,對(duì)網(wǎng)絡(luò)學(xué)習(xí)無(wú)貢獻(xiàn)。針對(duì)行人和騎自行車(chē)的人,閾值選擇為0.35和0.5。目標(biāo)真值框與前景目標(biāo)預(yù)測(cè)框可以編碼為:
根據(jù)邊界框的分類(lèi)設(shè)計(jì)RPN損失函數(shù):
式中Npost為前景目標(biāo)框的數(shù)量,和為分類(lèi)和目標(biāo)框回歸分支的輸出,和為真值框分類(lèi)標(biāo)簽和目標(biāo)框。由于數(shù)據(jù)集中的正負(fù)樣本比例失衡,雖然網(wǎng)絡(luò)采用數(shù)據(jù)增強(qiáng)方法擴(kuò)展了正樣本,但與檢測(cè)框相比比例仍不平衡。類(lèi)別分類(lèi)采用Focal loss[13]分類(lèi)交叉熵?fù)p失解決類(lèi)別不平衡分布問(wèn)題,具體如式(5)所示:
式中:α為平衡因子,γ為調(diào)整因子,ppred為分類(lèi)預(yù)測(cè)值。實(shí)驗(yàn)中取值α=0.25,γ=2?;貧w目標(biāo)邊界框時(shí)采用Huber Loss,增強(qiáng)對(duì)預(yù)測(cè)邊框回歸的魯棒性。當(dāng)預(yù)測(cè)偏差小于δ時(shí),采用平方誤差;當(dāng)預(yù)測(cè)偏差大于δ時(shí),采用線性誤差。公式如式(6)所示:
檢測(cè)分支得到前景目標(biāo)框與真值框進(jìn)行IoU操作后,得到檢測(cè)框與真值框的交并比。檢測(cè)分支的損失函數(shù)如式(7)所示:
式中IoUi為與真值框?qū)?yīng)第i個(gè)前景框的IoU,θH和θL分 別 為 前 景IoU閾 值 和 背 景IoU閾 值。本文采用二元交叉熵?fù)p失進(jìn)行置信度預(yù)測(cè),回歸損失為Huber Loss。最終損失函數(shù)為:
式中Ns為訓(xùn)練階段采樣的錨框個(gè)數(shù),L(IoUi≥θreg)表示只計(jì)算IoUi≥θreg的區(qū)域提案才會(huì)導(dǎo)致回歸損失,θreg取0.55。
本文使用KITTI數(shù)據(jù)集評(píng)估Pillar RCNN在汽車(chē)、行人和自行車(chē)上3D目標(biāo)檢測(cè)和BEV目標(biāo)檢測(cè)任務(wù)的性能。KITTI[14]數(shù)據(jù)集的點(diǎn)云數(shù)據(jù)通過(guò)VelodyneHDL-64E機(jī)械式旋轉(zhuǎn)激光雷達(dá)采集。考慮到目標(biāo)的大小、遮擋和截?cái)啵總€(gè)類(lèi)的對(duì)象被劃分為3個(gè)不同的難度級(jí)別:容易、中等和困難。本文將7 481個(gè)樣本分為包含3 712個(gè)樣本的子訓(xùn)練集和包含3 769個(gè)樣本的子驗(yàn)證集,遵循KITTI的官方評(píng)估協(xié)議,對(duì)3D物體檢測(cè)和BEV物體檢測(cè)進(jìn)行評(píng)估,汽車(chē)的IoU閾值為0.7,行人和騎自行車(chē)的人的IoU閾值為0.5,平均精度(AP)的計(jì)算作為性能衡量。
本文實(shí)驗(yàn)環(huán)境操作系統(tǒng)為Ubuntu18.04,硬件顯卡型號(hào)為NVIDIA 2080Ti,Intel(R)CoreTMi9-9900K CPU@3.60 GHz。實(shí)驗(yàn)程序基于Pytorch1.3框架編寫(xiě),Python環(huán)境為3.6。
本文通過(guò)數(shù)據(jù)增強(qiáng)策略生成更多的目標(biāo)樣本訓(xùn)練模型。首先根據(jù)SECOND[15]中的方法,從訓(xùn)練數(shù)據(jù)集中收集目標(biāo)樣例,包括標(biāo)簽、三維真值框和框內(nèi)的點(diǎn)云。對(duì)于子訓(xùn)練集中的場(chǎng)景,隨機(jī)選 取其他場(chǎng)景15、10、10個(gè)汽車(chē)、行人和騎自行車(chē)的人的數(shù)據(jù),融合到訓(xùn)練數(shù)據(jù)中。同時(shí),所有的目標(biāo)真值框和相應(yīng)的點(diǎn)云分別圍繞Z軸旋轉(zhuǎn),并沿著X、Y、Z軸平移,旋轉(zhuǎn)角度沿φ[-π20,π 20]均勻分布,平移量服從高斯分布μ[0,0.25]。如果背景點(diǎn)與目標(biāo)三維真值框沖突,移除背景點(diǎn)。最后整體場(chǎng)景隨機(jī)全局旋轉(zhuǎn),旋轉(zhuǎn)量服從φ[-π 4,π 4]均勻分布,沿X、Y、Z軸按照高斯分布μ[0,0.2]隨機(jī)全局平移,按照φ[0.95,1.05]均勻分布隨機(jī)縮放。
Pillar RCNN在KITTI訓(xùn)練數(shù)據(jù)集訓(xùn)練120個(gè)epoch,在驗(yàn)證集進(jìn)行自動(dòng)評(píng)估,采用平均精度(AP11)進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖4所示,檢測(cè)結(jié)果投影到對(duì)應(yīng)圖像和點(diǎn)云中。
圖4 三維檢測(cè)效果在圖像和點(diǎn)云中的投影圖Fig.4 Projection of 3D detection effects in images and point clouds
實(shí)驗(yàn)結(jié)果通過(guò)與基于雷達(dá)數(shù)據(jù)的PointPillars、PIXOR[16]、VoxelNet、SECOND、Voxel R-CNN
和基于點(diǎn)云和圖像融合的MV3D[17]等經(jīng)典網(wǎng)絡(luò)進(jìn)行對(duì)比(上述網(wǎng)絡(luò)性能來(lái)自文獻(xiàn)),最終在三維檢測(cè)和鳥(niǎo)瞰圖上的實(shí)驗(yàn)結(jié)果如表3、表4所示。
表3 KITTI測(cè)試數(shù)據(jù)集3D目標(biāo)AP11精度對(duì)比Tab.3 Performance comparison on the KITTI test set with AP calculated by 11 recall positions of 3D object(%)
表4 KITTI測(cè)試數(shù)據(jù)集BE V目標(biāo)AP11精度對(duì)比Tab.4 Performance comparison on the KITTI test set with AP calculated by 11 recall positions of BEV object(%)
Pillar RCNN在3D目標(biāo)檢測(cè)上效果較好,在檢測(cè)精度和速度上取得了較好的平衡。3D目標(biāo)檢測(cè)經(jīng)過(guò)體素RoI特征模塊匹配,相較于PointPillars檢測(cè)性能在3個(gè)類(lèi)別上均實(shí)現(xiàn)了明顯提升,其中自行車(chē)和汽車(chē)兩種類(lèi)別的3D檢測(cè)類(lèi)別提升效果明顯,自行車(chē)類(lèi)的中等難度提升13.34%,汽車(chē)類(lèi)別中困難難度提升了8.85%。在汽車(chē)類(lèi)別上檢測(cè)精度在Voxel R-CNN上效果較好,中等難度比Pillar RCNN高0.91%。表3為3D目標(biāo)檢測(cè)的AP11精度對(duì)比。Pillar RCNN在各項(xiàng)檢測(cè)任務(wù)上相較于其他網(wǎng)絡(luò)均有不錯(cuò)的提升,算法實(shí)時(shí)性與性能取得平衡。但PointPillars在檢測(cè)速度上具有明顯優(yōu)勢(shì)。PointPillars在劃分體素階段直接把檢測(cè)空間劃分為立柱形式的體素,沒(méi)有使用三維卷積和體素RoI模塊,且PointPillars經(jīng)過(guò)NVIDIA TensorRT模塊加速,算法速度優(yōu)勢(shì)明顯。TensorRT加速模塊不支持稀疏卷積,但在Pytorch原始框架測(cè)試Pillar RCNN仍取得了40.3 Hz的檢測(cè)速度,驗(yàn)證了Pillar RCNN算法的性能。
Pillar RCNN在目標(biāo)檢測(cè)上對(duì)于大目標(biāo)檢測(cè)效果較好,對(duì)行人類(lèi)別檢測(cè)效果不具有優(yōu)勢(shì)。因?yàn)樵O(shè)置體素尺寸較大,經(jīng)過(guò)三維骨干網(wǎng)絡(luò)8倍下采樣,行人目標(biāo)區(qū)域在致密的二維空間中占不超過(guò)兩個(gè)像素點(diǎn),目標(biāo)較小,因此在目標(biāo)檢測(cè)中對(duì)于行人等小目標(biāo)檢測(cè)效果較一般。
本文研究了基于立柱體素三維目標(biāo)檢測(cè)算法在點(diǎn)云場(chǎng)景中的應(yīng)用。針對(duì)點(diǎn)云稀疏性,重新設(shè)計(jì)了稀疏三維卷積主干網(wǎng)絡(luò)提取特征,能夠快速將三維體素量化為二維致密區(qū)域特征,同時(shí)避免了直接劃分立柱體素丟失三維空間信息的缺點(diǎn)。經(jīng)過(guò)多尺度體素RoI特征聚合模塊實(shí)現(xiàn)特征融合后,進(jìn)一步細(xì)化邊界框檢測(cè)三維目標(biāo),提高了檢測(cè)精度。Pillar RCNN使用稀疏卷積降低傳統(tǒng)三維卷積的計(jì)算冗余,提高了算法檢測(cè)性能。在KITTI數(shù)據(jù)集上的實(shí)驗(yàn)表明,Pillar RCNN實(shí)現(xiàn)了速度與檢測(cè)精度之間的平衡,在3D目標(biāo)檢測(cè)任務(wù)上進(jìn)一步提升了三維檢測(cè)算法性能。