魯斌,孫洋,楊振宇
(1.華北電力大學(xué)計算機系,河北 保定 071003;2.復(fù)雜能源系統(tǒng)智能計算教育部工程研究中心,河北 保定 071003)
近年來,三維目標檢測技術(shù)作為機器人和自動駕駛感知系統(tǒng)的關(guān)鍵技術(shù)之一,已經(jīng)取得了顯著的進步。該技術(shù)利用由激光雷達捕獲的點云數(shù)據(jù)來描繪物體的三維結(jié)構(gòu),估計其姿態(tài),并感知空間距離。因此,激光雷達成為三維目標檢測的首選傳感器?;谠键c云的三維目標檢測旨在利用這些點云數(shù)據(jù)來識別環(huán)境中物體的類別、位置、大小和方向,為深入理解場景提供基礎(chǔ)。然而,與圖像不同,點云數(shù)據(jù)是無序且不均勻的,這使無法直接使用卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)來學(xué)習(xí)特征,從而增加了基于點云的三維目標檢測技術(shù)的挑戰(zhàn)性。
目前,大多數(shù)檢測方法采用兩階段范式,以獲得更好的檢測效果。例如,PV-RCNN[1]使用SECOND(sparsely embedded convolutional detection)[2]和PointNet++[3]作為其基礎(chǔ)網(wǎng)絡(luò),以分別提取點和體素的特征,并在第二階段通過采用最大池化方法對點特征進行聚合。Voxel R-CNN[4]則省略了PV-RCNN 中的點采樣步驟,并在第二階段同樣基于最大池化方法聚合多尺度的體素特征,來學(xué)習(xí)點云的局部特征。目前,現(xiàn)有算法大都基于PointNet[5]及其變種[3]對點云進行特征提取和基于置換不變特性的最大池化法聚合局部點云特征,沒有充分考慮點云之間的幾何關(guān)系。當(dāng)遇到點云稀疏情況,例如距離較遠時,僅依靠局部特征聚合難以學(xué)習(xí)到更魯棒的目標特征。為了進一步提高特征的表達能力以改善檢測效果,需要對點和點之間的關(guān)系進行建模。
Transformer[6]架構(gòu)在自然語言處理領(lǐng)域取得了顯著成功,其將輸入的文本序列切分成多個單獨的詞或字符,然后通過自注意力機制來學(xué)習(xí)每個詞或字符之間的關(guān)系。其置換不變的特性適于對無序的點云數(shù)據(jù)進行編碼。PCT(point cloud transformer)[7]和Point transformer[8]將Transformer 應(yīng)用于點云的分類和分割任務(wù),取得了較好的效果。本文將Transformer 引入點云目標檢測領(lǐng)域,以更好地處理點云數(shù)據(jù)的無序性和點之間的關(guān)聯(lián)信息,學(xué)習(xí)更魯棒的點云特征。
另一方面,在實際復(fù)雜環(huán)境中,檢測效果往往受到多種因素的影響,例如遮擋和噪聲等,這些因素可能導(dǎo)致點云數(shù)據(jù)的質(zhì)量不穩(wěn)定,而提升性能的關(guān)鍵在于從稀疏點云中提取更魯棒的特征。此外,點云的稀疏性導(dǎo)致在人工標注數(shù)據(jù)時易受到環(huán)境因素影響,從而使數(shù)據(jù)標簽含有模糊信息,并對學(xué)習(xí)目標點云的魯棒特征造成影響。傳統(tǒng)方法[9]通常把回歸目標當(dāng)作一個固定值,而忽略了標簽不確定性可能造成的影響,限制了檢測性能的進一步提升。同時,如果目標包含的點較少,那么圍繞目標的候選框位置的不確定性就會增加,如圖1 所示。對于尺寸相同的目標,由于其包含的點云的稀疏性,可能會產(chǎn)生不同的回歸目標,從而對檢測性能產(chǎn)生不利影響。為解決標簽不確定性問題,本文引入了一種基于概率分布的軟回歸損失。通過檢測模塊預(yù)測候選框位置的不確定性,并將其作為回歸損失的一部分,在訓(xùn)練過程中重新量化預(yù)測框與其對應(yīng)標簽的相似度,從而提升模型的檢測性能。
綜上所述,本文提出了一種基于原始點云網(wǎng)格自注意力機制的二階段三維目標檢測方法GT3D。該方法在第二階段采用基于Transformer 的自注意力機制來對第一階段得到的感興趣區(qū)域(RoI)內(nèi)部的點云進行上下文編碼,能夠更有效地學(xué)習(xí)點云之間的依賴關(guān)系,提取更魯棒的目標特征。同時,考慮到數(shù)據(jù)標注過程中的不確定性對回歸任務(wù)的影響,使用基于概率分布的回歸損失重新度量預(yù)測框和真實標簽的相似性,降低由數(shù)據(jù)標注過程帶來的標簽歧義問題。在公開的三維目標檢測數(shù)據(jù)集KITTI[10]上對本文所提方法進行評估,結(jié)果顯示,本文所提方法比現(xiàn)有目標檢測方法具有競爭力的性能優(yōu)勢。此外,本文將KITTI 測試集檢測結(jié)果提交至KITTI 官網(wǎng)進行驗證,并公開實驗結(jié)果。
按照從非結(jié)構(gòu)化點云中提取特征的方式劃分,現(xiàn)有的三維目標檢測方法主要分為三類:基于體素的方法、基于點的方法以及點和體素融合的方法。
基于體素的方法通過將點云劃分成規(guī)則網(wǎng)格,并利用三維卷積技術(shù)來提取特征。例如,Zhou 等[9]提出VoxelNet,首先將點云進行體素化,然后對這些體素進行特征編碼,并應(yīng)用三維卷積來提取特征,最后將這些特征壓縮到鳥瞰視角(BEV,bird’s eye view)以生成候選框。Yan 等[2]提出SECOND,通過設(shè)計專門針對點云特征提取的三維稀疏卷積模塊,有效地提升了三維卷積的處理效率。為了進一步提高三維目標檢測的效率,Lang 等[11]提出PointPillars,該方法直接將特征壓縮至BEV 中來生成候選框,從而避免了三維卷積的過程。然而,基于體素的方法在進行體素特征編碼的過程中可能會丟失點云的精確位置信息,限制了方法性能的提升。
基于點的方法使用原始點云進行檢測,并且由于點的數(shù)量眾多,它們通常采用多層次的采樣和特征聚合。PointNet[5]和PointNet++[3]通常被用作這類方法的基礎(chǔ)網(wǎng)絡(luò)。PointRCNN[12]將點云分為前景點和背景點,并在前景點上生成高質(zhì)量的候選框。3DSSD[13]利用歐氏距離和特征距離進行分層點采樣,以獲取更多的前景點,并去除了效率較低的上采樣和細化步驟,從而在準確性和效率之間取得了良好的平衡。BADet[14]通過將每個候選區(qū)域視為一個節(jié)點來構(gòu)建局部圖,從而顯式地利用邊界間的相關(guān)性來優(yōu)化候選框。CIA-SSD[15]引入了一個置信度修正模塊,以解決目標定位精度與類別置信度之間的不一致問題,從而獲得更加精確的邊界框和類別置信度預(yù)測。PDV(point density-aware voxel)[16]則為點云引入密度信息,并使用Transformer 對點進行編碼?;邳c的方法需要在原始點云中進行分層采樣,這通常會導(dǎo)致較低的處理效率。
有很多研究嘗試融合點和體素各自的優(yōu)勢來進行檢測。例如,CT3D[17]在使用三維體素特征生成區(qū)域建議的同時,利用逐通道的Transformer 從原始點中提取特征。同樣,PV-RCNN 引入了體素集抽象模塊,使用三維體素特征生成建議后,利用點特征進行特征精細化。后續(xù)的工作嘗試通過引入新的特征提取方法來改進第二階段,例如RefinerNet[18]和VectorPool[19]。然而,將點和體素的特征相融合在加強檢測性能的同時,不可避免地增加了內(nèi)存的占用,并對檢測效率產(chǎn)生影響。在這種將點和體素相結(jié)合的主干網(wǎng)絡(luò)中,特征的整合通常取決于具體的特征轉(zhuǎn)換機制,這可能會導(dǎo)致額外的計算負擔(dān)。需要注意的是,這類方法雖然在檢測精度上往往超過純粹基于體素的方法,但通常以增加推理過程的時間開銷為代價。
Transformer 架構(gòu)在自然語言處理領(lǐng)域已取得顯著成功,其核心模塊自注意力機制能夠?qū)斎胄蛄虚g的相關(guān)性進行建模。DETR[20]將Transformer 應(yīng)用到圖像目標檢測領(lǐng)域,并把目標檢測當(dāng)作集合預(yù)測問題來處理,為使用Transformer 進行目標檢測建立了新的范式。接著,DETR 的一個變種——Deformable DETR[21],引入了可變形注意力模塊,以提升DETR的訓(xùn)練效率。文獻[7-8]則將Transformer 應(yīng)用于點云的特征提取。但是,由于點的數(shù)量較多,直接將Transformer 應(yīng)用到點云中可能會導(dǎo)致計算復(fù)雜度過高、檢測效率難以提高的問題。
GT3D 是一個兩階段的三維目標檢測模型,第一階段用于生成RoI,第二階段則利用原始點云來精細化特征,以充分保留點云的空間信息。圖2 展示了GT3D 的框架,輸入為原始點云。首先,通過三維主干網(wǎng)絡(luò)生成包含目標的RoI。然后,對每個RoI 進行網(wǎng)格化,并對RoI 內(nèi)部的原始點云進行采樣。接著,對采樣點的空間信息進行建模,并輸入多頭Transformer 中進行上下文編碼。最后,將編碼后的RoI 特征輸入檢測頭中,以進行候選框的分類和回歸。
圖2 GT3D 的框架
雖然體素化會帶來點云空間信息的損失,但是檢測方法在第一階段主要關(guān)注如何快速找到包含目標的RoI??紤]到體素法具有較高的處理效率,本文使用基于體素法的SECOND 作為第一階段的主干網(wǎng)絡(luò),并基于多尺度體素特征生成RoI。具體來說,輸入原始點云pi={xi,yi,zi,ri},i∈[1,n],其中xi、yi、zi為點云的三維空間坐標,ri為反射率,n為點的數(shù)量。然后將點云進行體素化處理,對點云空間進行等間距劃分。對于每個體素所包含的點,使用PointNet對其進行升維處理,記作fi={a(i,1),a(i,2),…,a(i,m)},i∈[1,n],m∈[1,k],其中k為點映射到高維空間后的維度。接著,通過最大池化函數(shù)對每個體素內(nèi)的點進行特征聚合。最后,使用多層子流形卷積和稀疏卷積[2]對體素進行特征提取,如圖3 所示,并將提取到的特征fv沿z軸壓縮到BEV,輸入?yún)^(qū)域建議網(wǎng)絡(luò)(RPN,region proposal network)中生成RoI,其中,k為卷積核尺寸,pad 為填充操作,s為步長。
圖3 三維主干網(wǎng)絡(luò)結(jié)構(gòu)
為了更準確地提取點云的局部特征,本文采用兩步策略對點云進行有效編碼。第一步,采用最遠點采樣對RoI 內(nèi)的點進行采樣,并對RoI 進行網(wǎng)格化處理。計算采樣點到每個網(wǎng)格中心的距離,以增強采樣點的空間信息。第二步,對網(wǎng)格中心點的局部特征進行聚合。通過使用PointNet++來聚合網(wǎng)格中心點附近的多尺度局部特征,能夠進一步增強中心點的特征表達能力。
2.2.1 網(wǎng)格中心點位置編碼
本文對每個RoI 應(yīng)用最遠點采樣策略。值得注意的是,目標的真實框與RoI 之間可能在角度和位置上有差異。在特定情況下,例如當(dāng)目標位于樹木下或緊鄰?fù)怀龅慕ㄖ飼r,如果不限制采樣空間的高度,可能會導(dǎo)致目標的采樣點數(shù)量減少,從而對檢測結(jié)果產(chǎn)生不利影響。為了在最大程度上采樣到真實框內(nèi)的點,同時減少對檢測效果不利的背景點的采樣,本文采用圓柱體空間結(jié)構(gòu)來對RoI 進行采樣,如圖4 所示。
圖4 RoI 點采樣
圖4 中,圓形點表示采樣區(qū)點,方形點表示非采樣區(qū)點 。圓柱體的底部半徑為,高度為h=βhr,其中,wr、lr、hr分別表示RoI 的寬、長和高,α和β表示柱體的擴張比例參數(shù)。在這個區(qū)域內(nèi)對點云進行采樣,本文設(shè)定采樣點的數(shù)量為256。如果RoI 內(nèi)的點數(shù)少于256,則重復(fù)進行隨機采樣,直到達到256 個點。本文將α設(shè)置為1.1,β設(shè)置為1。
定義P={p1,p2,p3,…,pn}?Rn,其中pi(i∈[1,n])表示點云中的點坐標,Rn表示通過RPN 生成的RoI。那么,該區(qū)域內(nèi)點pi到任意點pj的距離為
首先,從點云中隨機選取一個點p0作為起始點,然后利用式(1)計算其他n-1個點與p0的距離d1,d2,…,d(n-1),并將距離p0最遠的點pm放入采樣點集合S中。然后,計算剩余點與采樣點集合S中所有點的距離,選擇到所有采樣點的距離最遠的點加入采樣點集合S中。重復(fù)這個過程,直到采樣點的數(shù)量達到預(yù)定值。
通過實驗發(fā)現(xiàn),對空間點的幾何特征進行建??梢栽鰪婞c的特征表達能力?;诖耍疚奶岢鲆环N新的坐標位置編碼方法,用于精細化點的空間位置信息,如圖5 所示。首先,將RoI 劃分為均勻網(wǎng)格,網(wǎng)格數(shù)量設(shè)置為6×6×6(長、寬、高3 個方向),則每個RoI 包含216 個網(wǎng)格。然后,定義每個網(wǎng)格的中心點為gm(m表示RoI 內(nèi)的網(wǎng)格索引),并計算每個網(wǎng)格中心點到采樣點的相對距離Δdi=gm-pi,m∈[1,216],i=[1,256]。使用Δdi對網(wǎng)格點的空間位置進行建模并統(tǒng)一位置編碼的坐標尺度,最終得到gm的位置特征fd。具體計算方式為
圖5 網(wǎng)格中心點坐標編碼
其中,g(·) 表示特征變換函數(shù)(這里使用前饋神經(jīng)網(wǎng)絡(luò)(FFN,feed forward network)將距離特征映射到高維特征空間),Δxi,m、Δyi,m和Δzi,m分別表示點pi到每個網(wǎng)格中心點的歐氏距離的3 個分量,Δfi,m表示點的額外特征,包括反射率等。
與PointPillars 所采用的柱體特征編碼(PFE,pillar feature encoding)方法不同,本文通過將采樣區(qū)域網(wǎng)格化,并計算采樣點到每個網(wǎng)格中心點的相對距離,以實現(xiàn)對點的空間位置信息更精細的表達,而PFE 則是通過計算點與每個柱體的中心點的相對距離來強化點坐標的空間位置信息,精細程度有所欠缺。
2.2.2 網(wǎng)格中心點多尺度局部特征編碼
考慮到原始點云包含更準確的空間信息,本文利用原始點云對網(wǎng)格點進行多尺度局部信息編碼。具體而言,對于每個網(wǎng)格的中心點gm,查詢其周圍半徑為r的球形區(qū)域內(nèi)的點,并使用PointNet 對這些點進行升維處理,以獲得該網(wǎng)格中心點在指定半徑內(nèi)的所有點的特征集合,其中k表示該半徑范圍內(nèi)的點的數(shù)量,如圖6 所示。為了滿足置換不變性要求,本文使用最大池化函數(shù)對特征進行聚合,從而得到該中心點在特定半徑下的特征。
圖6 網(wǎng)格中心點多尺度局部特征編碼
其中,G(·) 表示聚合函數(shù),這里采用向量拼接來進行處理。然后,通過調(diào)整球查詢半徑大小,獲得中心點在不同尺度下的特征表達。最后,將多尺度特征進行拼接處理,得到最終的中心點局部特征
多尺度局部特征編碼模塊如圖7 所示。本文設(shè)定了多個不同尺寸的半徑來對點進行聚合。由于不同半徑內(nèi)的點數(shù)量可能不同,本文對每個半徑內(nèi)的點的數(shù)量進行統(tǒng)一限制:如果點的數(shù)量超過規(guī)定值,則進行隨機選?。蝗绻c的數(shù)量低于規(guī)定值,則使用點坐標的平均值進行填充;如果該半徑內(nèi)沒有點,則使用0 進行填充。然后,通過三層FFN 對聚合后的坐標進行升維,并利用最大池化函數(shù)對各個尺度的特征進行聚合。最終,通過FFN 調(diào)整fg的維度,并將位置編碼特征與多尺度局部特征進行相加,得到網(wǎng)格中心點特征
圖7 多尺度局部特征編碼模塊
其中,fgrid表示RoI 的空間幾何特征和點云多尺度局部特征。
2.2.3 空間上下文編碼
雖然每個網(wǎng)格編碼了目標的空間特征和多尺度局部特征,但仍然缺乏對網(wǎng)格點之間相互依賴關(guān)系的建模。為解決此問題,本文引入自注意力機制來捕捉網(wǎng)格點間的遠程依賴關(guān)系,為網(wǎng)格點的特征賦予不同的權(quán)重。這使算法能夠捕捉到網(wǎng)格點特征與RoI 之間更加復(fù)雜的關(guān)系。圖8 展示了通過自注意力機制加權(quán)后的網(wǎng)格點特征對RoI 特征的貢獻度,其中亮度較高的區(qū)域表示對RoI 特征的貢獻權(quán)重較大。
圖8 自注意力機制對網(wǎng)格點特征加權(quán)
Transformer 在處理點云數(shù)據(jù)方面展現(xiàn)出顯著的效果,但由于包含大量線性運算,常常伴隨較高的計算成本和內(nèi)存消耗。針對這個問題,本文選擇不對RoI 內(nèi)的原始點云直接進行注意力編碼,而是采納局部注意力策略,即通過在網(wǎng)格中心點聚合點云的空間和局部特征以降低輸入特征的維度。此外,這種策略也使本文提出的兩階段細化方法能夠適于不同密度的點云數(shù)據(jù)。
在Transformer 的編碼階段,本文對網(wǎng)格點的特征進行注意力編碼計算。假設(shè)輸入特征為。沒有特征的空網(wǎng)格則不參與注意力編碼,僅保留其位置編碼。本文采用網(wǎng)格中心點的原始坐標作為位置編碼
接著,使用標準Transformer 編碼器計算特征注意力矩陣
其中,Wk、Wq和Wv分別為線性映射函數(shù),dq為矩陣Qi的特征維度,⊙為點乘運算。本文采用多頭自注意力機制來處理Ki、Qi和Vi,以捕獲RoI更豐富的特征。多頭注意力的計算式為
其中,concat(·) 用來將多頭注意力特征進行拼接,F(xiàn)FN 用來對特征進行維度變換。
接著,在網(wǎng)格空間位置編碼與注意力編碼之間構(gòu)建類似于殘差連接的結(jié)構(gòu),將點的空間位置編碼和注意力特征進行拼接,以增強特征的表達能力。經(jīng)過FFN 處理后,得到最終的RoI 特征
最后,將fi輸入檢測頭進行候選框的分類和回歸。
本文提出的軟回歸損失函數(shù)可用于量化預(yù)測候選框與其對應(yīng)的標簽之間的相似度,以減輕點云數(shù)據(jù)標注過程中的不確定性。首先,用高斯分布來表示預(yù)測框的位置,并將其所對應(yīng)的標簽視為該分布中的概率,計算式為
其中,G={gx,gy,gz,gl,gw,gh,gθ}表示候選框所對應(yīng)的真實標簽值;p為概率密度;N(·) 為二維高斯分布,可表示為
其中,μ和σ表示高斯分布中的均值和方差。本文將檢測頭對候選框位置的預(yù)測{μx,μy,μz,μl,μw,μh,μθ}作為μ,并在檢測頭部增加一個額外的分支來預(yù)測不確定性得分,可表示為{σx,σy,σz,σl,σw,σh,σθ},分別對應(yīng)μ中每個位置的不確定分數(shù)。在計算出真實標簽在預(yù)測框分布中的概率后,使用softmax 函數(shù)對這些概率進行歸一化處理
最后,使用ps對回歸目標進行加權(quán)。值得一提的是,本文所提出的軟回歸損失僅在訓(xùn)練階段使用,以輔助訓(xùn)練檢測頭的回歸分支,而不會在推理階段增加額外的計算成本。
算法的損失分為RPN損失Lrpn和細化階段損失Lrcnn兩部分,其中Lrpn包括框的置信度損失Lcls和位置回歸損失Lreg。框的編碼格式為 (x,y,z,w,l,h,θ),其中,x、y、z表示框的中心點坐標,w、l、h、θ分別表示框的寬、長、高、朝向角度。真實框與
對于Lrpn,使用交叉熵函數(shù)來計算置信度損失,以平衡正、負樣本對損失的貢獻程度
其中,為預(yù)測置信度,cb為真實標簽值。
框位置回歸使用smooth-L1 損失函數(shù)
其中,表示邊界框的預(yù)測殘差值,γb表示預(yù)測框距離真實框位置的殘差值,i表示正樣本的數(shù)量。
最后得到總的Lrpn損失為
其中,β1和β2為損失的權(quán)重系數(shù),用于平衡分類和回歸對Lrpn的貢獻程度。
Lrcnn的計算方式和Lrpn類似,最后得到算法總損失為
為驗證本文所提方法的有效性,使用公開的自動駕駛數(shù)據(jù)集KITTI 對其進行驗證,并進行充分的消融實驗,以分析GT3D 各模塊的有效性。KITTI數(shù)據(jù)集包含7 481 個訓(xùn)練樣本和7 518 個測試樣本。與Chen 等[22]的工作保持一致,將訓(xùn)練樣本劃分為3 712 個訓(xùn)練樣本集和3 769 個驗證樣本集。本文分別在驗證集和測試集中對簡單、中等和困難3 個難度等級的目標進行實驗,使用平均準確率(AP,average accuracy)衡量所提方法性能。
表1 為實驗所需的軟硬件環(huán)境及其參數(shù)配置。
表1 實驗所需的軟硬件環(huán)境及其參數(shù)配置
對于KITTI 數(shù)據(jù)集,其x軸檢測范圍為[0,70.4]m,y軸為[-4 0.0,40.0]m,z軸為[-3 .0,1.0]m,每個體素塊在x、y、z這3 個方向上的大小設(shè)置為(0.05,0.05,0.1) m。每個體素在3 個方向上的大小均為0.05 m,體素數(shù)量在訓(xùn)練階段設(shè)置為16 000,推理階段設(shè)置為40 000。為避免目標包含點云數(shù)量太少以至于難以提取到特征,對點數(shù)少于20 的目標進行過濾[2]。本文采用與SECOND 相同的數(shù)據(jù)增強方法,具體包括:1) 增加場景中待檢測目標的數(shù)量;2) 對點云場景中的點按照范圍在[0.95,1.05]內(nèi)的隨機倍數(shù)進行縮放,范圍在內(nèi)的隨機角度進行旋轉(zhuǎn);3) 對所有真實框在范圍內(nèi)進行隨機角度旋轉(zhuǎn)來模擬目標轉(zhuǎn)向;4) 將點云沿x軸進行隨機翻轉(zhuǎn)。
RoI 網(wǎng)格數(shù)量設(shè)置為6×6×6,網(wǎng)格點的球形查詢半徑r=[0.2,0.4,0.6]m,以此來聚合多尺度的局部特征,每個半徑內(nèi)采樣點數(shù)量為[32,32,64],分別被編碼為[32,32,64]維向量,最后每個網(wǎng)格中心點的局部特征編碼共128 維。Transformer 的頭部數(shù)量為4,dropout 設(shè)置為0.1,隱含層數(shù)量為3。
在訓(xùn)練階段,使用8 個NVIDIA A40 GPU 對整個網(wǎng)絡(luò)進行端對端訓(xùn)練,對于KITTI 數(shù)據(jù)集,batch size設(shè)置為6,使用Adam_onecycle優(yōu)化器訓(xùn)練80 個epoch,學(xué)習(xí)率最大值為0.001,使用one-cycle 策略和余弦退火策略[23]對學(xué)習(xí)率進行更新。在訓(xùn)練階段,RoI 數(shù)量設(shè)置為128,測試階段設(shè)置為100。
算法的損失由基于Focal Loss[24]的分類損失和基于smooth-L1 的回歸損失組成。其中,分類損失和回歸損失的權(quán)重比例設(shè)置為1:1。在后處理階段,使用非極大值抑制算法來去除冗余框,交并比(IoU,intersection over union)閾值設(shè)置為0.1,置信度閾值為0.3。其他網(wǎng)絡(luò)參數(shù)選擇OpenPCDet 工具箱中提供的默認值。
訓(xùn)練損失曲線如圖9 所示,其中,rpn_loss 表示第一階段損失,rcnn_loss 表示第二階段損失。第一階段、第二階段以及總訓(xùn)練損失的曲線在訓(xùn)練初期下降較快,但隨著迭代次數(shù)的增加,損失的下降速度逐漸變慢,最后趨于平穩(wěn),這表示模型已經(jīng)收斂。
圖9 訓(xùn)練損失曲線
本文在KITTI 驗證集和測試集上將GT3D 方法與其他先進的三維目標檢測方法進行了比較和分析。對于汽車類別,設(shè)定IoU 閾值為0.7,本文分別給出了所提方法在11 個和40 個召回位置上的平均準確率。此外,將GT3D 的測試結(jié)果提交至KITTI在線測試服務(wù)器,并將結(jié)果公開,如表2 所示,所有實驗結(jié)果均來自KITTI 官方基線。
表2 不同方法在KITTI 測試集上對汽車的檢測性能對比
為保證公平,本文基于40 個召回位置來計算測試集的平均準確率。在KITTI 測試集上,GT3D 在 3 種不同難度等級上分別達到了91.45%、82.76%和79.74%的檢測準確率,特別是在簡單和困難等級汽車檢測上顯示出優(yōu)勢。這說明本文所提方法在檢測準確性和泛化能力上表現(xiàn)良好。在評估方法的推理速度時,本文采用每秒幀數(shù)(FPS,frame per second)作為評價標準,本文所提方法達到了每秒15 幀的檢測速度,這顯示GT3D 在檢測準確率和推理效率之間實現(xiàn)了良好的平衡(表2 中,‘-’表示該方法未公開代碼和推理速度)。
表3 展示了不同方法在KITTI 驗證集上對汽車的檢測性能對比,其中檢測結(jié)果基于11 個召回位置計算,IoU 閾值為0.7。實驗結(jié)果表明,GT3D 在3 種不同難度汽車類別檢測中分別達到了89.78%、86.31%和79.22%的準確率,相比其他先進方法表現(xiàn)出顯著的提升,進一步驗證了GT3D 的有效性。這是因為Transformer 在特征提取方面具有強大的能力,使模型能夠有效地學(xué)習(xí)不同點云稀疏度下目標的特征。
表3 不同方法在KITTI 驗證集上對汽車的檢測性能對比
為了進一步評估GT3D 的性能,表4 展示了不同方法在KITTI 驗證集上對自行車的檢測性能對比,其中準確率基于40 個召回位置計算。實驗結(jié)果表明,本文所提方法在檢測效果上具有較強的競爭力,展示出良好的性能。
表4 不同方法在KITTI 驗證集上對自行車的檢測性能對比
表5 展示了不同方法在參數(shù)量方面的對比,并提供了不同模型在KITTI 測試集上對汽車的檢測平均準確率,其中,mAP 為KITTI 測試集上對汽車的檢測平均準確率。從表5 可以看出,盡管GT3D 的參數(shù)量在兩階段方法中處于中等水平,但其平均準確率明顯優(yōu)于其他方法。這表明GT3D 在有效提升檢測效果的同時,沒有顯著增加參數(shù)規(guī)模。
表5 不同方法在參數(shù)量方面的對比
本文對GT3D 方法的檢測效果進行了可視化分析,如圖10 所示。通過比較方法輸出的預(yù)測框(虛線)與真實框(實線)的位置來驗證模型的檢測效果。為了清晰展示,在3 個場景中分別展示了相機和點云的視角。第一行展示場景的相機視角,第二行展示場景的點云視角和檢測結(jié)果,第三行展示將檢測到的目標框映射回相機視角的效果。
圖10 GT3D 可視化結(jié)果
由可視化結(jié)果可知,GT3D 在汽車類別上的檢測準確率較高,如場景①所示,所有汽車都被成功檢測到。在場景②中,盡管距離較遠的汽車包含的點云數(shù)量較少,但仍然能被準確地檢測到,甚至檢測到了數(shù)據(jù)集中沒有標注的汽車。對于場景③,該場景較復(fù)雜,包含的背景點較多,然而,GT3D 依然能夠正確識別被遮擋的遠處汽車。這表明本文通過使用均勻網(wǎng)格點來描述點云的空間特征,以及利用多尺度局部特征,對遮擋區(qū)域進行了有效的特征增強。
圖11 展示了模型檢測到的汽車點云。其中,x軸、y軸和z軸表示以激光雷達傳感器為原點的坐標系,坐標軸上的數(shù)值表示點云場景中的全局坐標。從圖11 可以看出,左上角、右上角和左下角的汽車的點云較密集,而右下角的汽車包含的點云較少。盡管如此,GT3D 仍然能夠準確地進行檢測。這說明GT3D 在檢測點云數(shù)量較少的目標時具有較強的魯棒性。
圖11 模型檢測到的汽車點云
為了進一步驗證GT3D 的性能,本文將GT3D與當(dāng)前經(jīng)典方法Voxel R-CNN 和PDV 進行比較,實驗結(jié)果如圖12 所示。從圖12 中可以看出,Voxel R-CNN 和PDV 在一些情況下出現(xiàn)誤檢,例如,在BEV 視角下,由于左側(cè)墻壁的點云較復(fù)雜,使Voxel R-CNN 和PDV 將其誤檢為汽車,而GT3D 展示了較強的魯棒性,對于復(fù)雜場景中的目標誤識別率較低,取得了較好的檢測效果。
為了進一步驗證GT3D 中模塊的有效性,本文針對網(wǎng)格中心點位置編碼模塊、多尺度特征聚合模塊和軟回歸損失進行了消融實驗,對每個模塊訓(xùn)練80 個epoch。使用40 個召回位置進行評估,IoU 閾值設(shè)置為0.7,實驗結(jié)果如表6 所示。其中,A.L.F.表示多尺度特征聚合模塊,P.E.表示網(wǎng)格點位置編碼模塊,T.R.表示Transformer 模塊,S.L.R.表示軟回歸損失。
表6 GT3D 消融實驗
方法1 不包含兩階段檢測頭,而是僅依靠BEV下的RoI 特征來進行檢測,其平均準確率較低,這突顯了單階段方法的局限性。
方法2 在方法1 的基礎(chǔ)上加入了網(wǎng)格點的多尺度特征聚合模塊,并采用Transformer 對網(wǎng)格點進行注意力編碼。與方法1 相比,方法2 在簡單、中等和困難3 個難度級別車輛檢測中,準確率分別高約1.16%、0.84%和1.20%,這表明通過聚合多尺度的局部特征可以提高檢測準確率,并且進一步證明了兩階段細化在提升模型性能上的重要性。
方法3 在方法1 的基礎(chǔ)上加入了網(wǎng)格點位置編碼模塊,并同樣采用Transformer 對網(wǎng)格點進行注意力編碼。與方法1 相比,方法3 在簡單、中等和困難3 個難度級別車輛檢測中,準確率分別高約2.15%、3.94%和4.56%。這表明,通過顯式地對點的空間位置進行編碼可以有效提升模型的性能。
方法4 在方法1 的基礎(chǔ)上,同時加入了多尺度特征聚合模塊和網(wǎng)格點位置編碼模塊。與方法1 相比,方法4在簡單、中等和困難3個難度級別車輛檢測中,準確率分別高約2.39%、4.50%和5.47%,這表明兩者的結(jié)合使用可以進一步提升模型的性能。
方法5 在方法1 的基礎(chǔ)上加入了多尺度特征聚合模塊、網(wǎng)格點位置編碼模塊和軟回歸損失。與方法1 相比,方法5 在簡單、中等和困難3 個難度級別車輛檢測中,準確率分別高約2.51%、4.64%和5.49%。實驗結(jié)果表明,加入軟回歸損失后,模型性能得到有效提升,證明軟回歸損失在消除數(shù)據(jù)標注過程中引入的模糊性方面具有顯著效果。
目前,基于原始點云的三維目標檢測技術(shù)正在迅速發(fā)展,本文研究了兩階段檢測方法在性能提升方面的關(guān)鍵技術(shù),其中包括空間坐標的顯式建模、多尺度局部特征聚合以及基于自注意力機制的特征編碼。為此,本文提出了一種兩階段基于自注意力機制的三維目標檢測方法GT3D。該方法將RPN生成的RoI 在空間上劃分為均勻網(wǎng)格點,并對這些點進行多尺度局部特征聚合和空間位置編碼。然后,采用自注意力機制對網(wǎng)格點特征進行編碼,以獲取更加有效的RoI 特征。最后,通過軟回歸損失來消除數(shù)據(jù)標注過程引入的模糊性,從而進一步提升檢測性能。接下來,本文將繼續(xù)研究聚合多尺度信息的兩階段檢測方法,進一步提高基于體素的三維目標檢測方法準確率,擬考慮引入額外輔助網(wǎng)絡(luò)對模型進行監(jiān)督,以借助自注意力機制進一步提高目標檢測的準確性。