劉明陽,楊啟明,胡冠華,3,郭巖,張建東
(1.沈陽飛機設(shè)計研究所,遼寧 沈陽 110035;2.西北工業(yè)大學 電子信息學院,陜西 西安 7101291;3.中國船舶集團有限公司系統(tǒng)工程研究院,北京 100094;4.空裝駐沈陽地區(qū)第一軍事代表室,遼寧 沈陽 110850)
傳統(tǒng)的基于錨框的圖像目標檢測算法其本質(zhì)是對預(yù)定義的密集錨框進行內(nèi)部物體類別的分類和邊框位置的微調(diào)[1]。而將其應(yīng)用于點云目標檢測時由于空間維度的增加,大部分基于錨框的檢測算法在部署時面臨新的困難,一方面在錨框鋪設(shè)時需要考慮高度因素,涉及到錨框數(shù)量、大小、角度和密度等超參數(shù),這些參數(shù)的手動試錯過程需要耗費極大的精力和時間成本;另一方面錨框角度回歸的增加使得這一類算法在檢測框微調(diào)時難度大大提升[2]。
作為將Transformer[3]應(yīng)用于機器視覺領(lǐng)域的先驅(qū),DETR算法[4]將目標檢測視為一個集合預(yù)測問題。Transformer本質(zhì)上起到的是一個序列轉(zhuǎn)換作用,因而可以將DETR視為一個將圖像特征序列向目標集合序列的轉(zhuǎn)換模塊。具體來說,DETR中設(shè)計了一系列的目標查詢向量負責檢測圖像中不同位置的物體[5],每個目標查詢向量都與來自卷積神經(jīng)網(wǎng)絡(luò)的空間視覺特征進行交互,并利用交叉注意力機制[6]自適應(yīng)地收集目標相關(guān)信息,用于估計檢測框位置和目標類別。
(1)
(2)
本文從基于體素化表達的檢測算法出發(fā),采用DETR的結(jié)構(gòu)構(gòu)造一種新型的針對戶外場景的3D點云目標檢測算法,并且結(jié)合點云數(shù)據(jù)和3D目標檢測場景下的特點對原有的DETR進行了改進。其包含3個主要模塊:①體素化及三維體素編碼網(wǎng)絡(luò);②二維特征提取網(wǎng)絡(luò)以及特征金字塔網(wǎng)絡(luò);③結(jié)合空間調(diào)制交叉注意力(spatially modulated cross-attention,SMCA)的解碼器。
假定原始點云輸入記為{pn=(xn,yn,zn,rn),n=1,2,…,N},其中(xn,yn,zn)是點云的三維空間坐標位置,rn是反射強度,N是集合中包含的點云總數(shù)。3D目標檢測任務(wù)中要求對于場景內(nèi)的所有真實目標{yi=(Ti,bi),i=1,2,…,M}進行定位和分類,Ti和bi分別表示目標的類別和檢測框。檢測框如圖1所示。
圖1 三維檢測框鳥齲示意圖
三維檢測框通常采用底部中心點坐標加三維尺寸和角度的表示方法,即b=(xc,yc,zc,l,w,h,α)。其中(xc,yc,zc)維底部中心點坐標,l,w,h為目標的三維尺寸長、寬、高,α是目標行進方向和X軸正方向的夾角。
本文所提出的基于Transformer的3D點云目標檢測器結(jié)構(gòu)如圖2所示。與大部分三維目標檢測器類似,包含3D體素編碼網(wǎng)絡(luò)、2D骨干網(wǎng)絡(luò)以及頭部檢測網(wǎng)絡(luò)。本算法在2D/3D特征提取過程中所
圖2 基于Transformaer的3D點云目標檢測器主體結(jié)構(gòu)
采用的三維體素特征編碼網(wǎng)絡(luò)和二維特征提取骨干網(wǎng)絡(luò)與SECOND相同。本文的研究內(nèi)容主要集中在頭部檢測網(wǎng)絡(luò),一方面采用熱度圖初始化目標查詢向量的方法,使得編碼器無需從頭開始學習目標特征;另一方面改進原有的空間調(diào)制注意力機制使其與熱圖初始化策略相適應(yīng),極大地加快了網(wǎng)絡(luò)的訓練速度。
DETR采用編碼器-解碼器的Transformer架構(gòu),編碼器和解碼器都各自級聯(lián)6層。編碼器由多頭自注意力和前饋網(wǎng)絡(luò)組成,起到的作用與卷積層類似,都是從輸入中關(guān)聯(lián)并提取上下文特征,只是自注意力機制更多關(guān)注全局特征,其感受野要遠大于卷積網(wǎng)絡(luò)。解碼器則具有額外的多頭交叉注意力,將固定數(shù)量的目標查詢與編碼器的輸出特征進行交互,并利用交叉注意力機制自適應(yīng)地聚合相關(guān)信息。
在DETR及其諸多改進版本中,目標查詢通常采用0初始化或隨機初始化,這使得解碼器需要更多層的級聯(lián)才能使目標查詢具備物體地空間特征。Efficient DETR算法[7]中指出,通過更好地初始化目標查詢向量或者對解碼器輸出進行輔助損失計算,能夠有效減少解碼器的級聯(lián)層數(shù)并且增強其目標感知能力。受到這一觀點的啟發(fā),本算法采用了熱圖初始化的目標查詢策略,使得初始的目標查詢位于或靠近真實的目標中心,從而無需多層解碼器來進行位置的細化。在本算法中,對于來自骨干網(wǎng)絡(luò)的深度點云特征首先送入解碼器進行全局特征感知,熱圖頭接收解碼器輸出的全局特征并進行熱圖預(yù)測。
(3)
式中:px,py是真實目標檢測框的中心點;σp是與檢測框大小相關(guān)的分布半徑。熱圖頭的損失函數(shù)可以描述為
(4)
式中:α和β是用于訓練的超參數(shù);N是當前樣本中所有待檢測目標數(shù)量。
圖3 熱圖初始化查詢向量計算流程
(5)
(6)
在CenterNet[8]中直接采用關(guān)鍵點熱圖的局部熱峰作為預(yù)測框的中心點。但是在DETR的解碼器中,設(shè)定的解碼器中目標查詢數(shù)量要遠大于真實目標數(shù)量,若只采用目標中心點進行特征進行查詢初始化,在解碼器的自注意力計算中,會產(chǎn)生大量待檢測目標與遠處背景的無意義交互,造成極大的計算開銷。而在目標周邊生成諸多稀疏的查詢點,中心點查詢也會與邊界點查詢進行特征交互,從而起到輔助類別判斷和類似于偏移頭的位置細化作用,但同時位于目標周圍數(shù)量眾多的查詢會導致大量假陽性檢測結(jié)果。對此,本節(jié)結(jié)合了2種查詢點生成方式,用孤立的中心查詢點代替一部分在上一步中獲得的稀疏查詢點。
Tt=?pt/(H×W)」
it=pt-?pt/(H×W)」×(H×W)
(7)
需要注意的是此處的空間位置坐標i是每個單一類別熱圖拉直后的位置坐標。此外對每個查詢的類別屬性進行獨熱向量編碼,再通過多層感知機升維后產(chǎn)生類別編碼。
最后將鳥瞰圖下的特征圖沿每個通道展開,并將所有it位置下的特征進行拼接,并疊加類別編碼從而生成目標查詢向量qt∈RD。
DETR另一個重要的問題在于其需要比現(xiàn)有的目標檢測器訓練更長的時間才能收斂[9]。在COCO 2014[10]數(shù)據(jù)集上DETR需要進行500周期的訓練才能完全收斂,相較于Faster R-CNN[11]周期長了大約10~20倍。這主要是在初始狀態(tài)下,交叉注意模塊在整個特征圖上平均分配注意力。而在收斂狀態(tài)下,其注意力只關(guān)注特定的空間位置,變得極為稀疏。這種顯著的注意力變化需要很長的周期進行學習。另外在解碼器中采用交叉注意力進行特征聚合時,巨大的鍵和值的數(shù)量稀釋了注意力權(quán)重,最終導致輸入特征的梯度模糊。
注意力機制的本質(zhì)就是定位到感興趣的信息[12],抑制無用信息。而上述的2個問題可以總結(jié)歸納為檢測器無法快速將注意力集中在關(guān)鍵點信息上。而對于該問題,一種直接快速的解決方法是采用動態(tài)調(diào)制策略,受到SMCA-DETR的啟發(fā),本文設(shè)計了一種與熱圖初始化目標查詢相適應(yīng)的空間調(diào)制交叉注意力。在DETR所采用的Transformer中,來自骨干網(wǎng)絡(luò)的特征圖與位置嵌入相疊加,生成查詢、鍵以及值,并輸入編碼器與所有空間位置的特征進行信息交互。同時為增加特征的多樣性,采用多頭自注意力機制
(8)
獲得來自編碼器視覺特征E后,DETR在對象查詢Oq∈RT×D和視覺特征E∈RL×D之間執(zhí)行交叉注意力計算
(9)
DETR中原始的交叉注意力無法感知目標的空間位置,因此需要多次迭代才能為每個對象查詢生成適當?shù)淖⒁鈭D。針對這一問題,SMCA-DETR[13]將可學習的交叉注意力特征圖與手工創(chuàng)建的查詢先驗空間相結(jié)合。通過對僅嵌入位置編碼的空初始化查詢向量進行學習,生成先驗的感知位置,并通過堆疊的編碼器進行位置細化。在本文算法中,由于熱圖初始化目標查詢機制的存在,初始的目標查詢已經(jīng)位于或靠近真實的目標中心,因而無需從查詢中學習先驗的感知位置。其計算過程描述如下。
每個查詢生成其負責對象的中心和尺寸,用于生成二維高斯空間注意力權(quán)重圖[14]。目標查詢的中心ch,cw由熱圖初始化得到的位置坐標i計算得到,高斯分布尺寸Σ∈R2×2則通過學習目標查詢得到。目標查詢的中心點僅需在第一個解碼器中進行計算,并與之后的解碼器共享。
(10)
三維空間場景下,不同類別的物體尺寸差別極大,并且在具備角度信息的情況下更為復雜。SMCA模塊動態(tài)生成不同的權(quán)重半徑,使得較大的目標能夠聚合足夠信息或抑制小目標的背景雜波。同時該模塊生成反對角線非零的權(quán)重尺寸,使得權(quán)重圖并非單一地沿橫縱方向延展,更利于細化目標朝向。在獲取到目標中心以及分布尺寸后,SMCA生成的類高斯權(quán)重圖如(11)式所示。其中v∈R2是特征圖上任意一點,c=[ch,cw]是中心點坐標,β為手動調(diào)整的超參數(shù),以確保權(quán)重圖在訓練開始時覆蓋較大的空間范圍,使網(wǎng)絡(luò)能接收到更多的梯度信息。
(11)
在得到動態(tài)生成的空間權(quán)重圖G的情況下,利用其調(diào)制目標查詢Oq和編碼器輸出特征E之間的交叉注意權(quán)重。
(12)
空間權(quán)重圖的對數(shù)與點積獲得的注意力得分之間逐元素相加,然后對所有空間位置進行softmax歸一化。解碼器中的交叉注意模塊會在潛在的目標中心附近增加權(quán)重,限制了注意力搜索空間,從而提高了收斂速度。
(13)
區(qū)別于由所有注意力頭共享的空間權(quán)重,多頭調(diào)制的權(quán)重能有效突出不同的特征信息。
對于解碼器輸出的T個查詢向量,分別輸入到多個并列的預(yù)測頭中,生成檢測結(jié)果。包括底部中心點坐標o∈R2×T,底部中心點高度h∈R1×T,檢測框三維尺寸d∈R3×T,檢測框角度r∈R2×T以及分類結(jié)果T∈RC×T,其中檢測框角度由該角的正弦和余弦值編碼而成。
遵循DETR中集合預(yù)測的檢測算法,首先由各個查詢生成的底部中心點、三維尺寸和角度生成預(yù)測框,并賦予對應(yīng)的類別。通過匈牙利算法計算真實框與預(yù)測的二分匹配,其中匹配成本由分類損失、中心點回歸損失和IoU損失的加權(quán)和構(gòu)成
(14)
式中:Lcls是二分類交叉熵損失;Lreg是預(yù)測框的鳥瞰投影中心點與真實框中心之間歸一化后的的L1損失;LIoU是預(yù)測框和真實框之間的IoU3D損失,λ1,λ2,λ3是各損失項的加權(quán)系數(shù)。
(15)
對于匹配成功的正樣本對,通過L1損失來監(jiān)督檢測框中心點的回歸,并計算IoU3D損失[16]。2個3D 檢測框的IoU可以表示為(16)式
(16)
式中:a表示檢測框在鳥瞰圖上的投影;h是檢測框高度;overlap是交集區(qū)域。相比于圖像檢測中軸對齊的預(yù)測框回歸任務(wù),帶有旋轉(zhuǎn)角度的3D檢測框最主要的區(qū)別是在計算交集部分時較為復雜。其損失計算與IoU2D類似,可以被定義為
LIoU=1-LIoU3D
(17)
本文主要采用KITTI 3D Object數(shù)據(jù)集進行有效性驗證。將官方給出的訓練樣本集劃分為3 712個訓練樣本和3 769個驗證樣本。實驗中所有模型分別在訓練集和驗證集上進行訓練和分析比較。
在KITTI[17]驗證集中,將本文算法與其他算法進行對比,并計算了在汽車類別中3種難度下的平均檢測精度,平均精度的計算方式采用Recall 11 Position。比較結(jié)果如表1所示。
由表中結(jié)果可見本文所提出的檢測算法在性能上已經(jīng)達到先進水平,特別是在中等難度下取得了81.12%的平均精度。上述結(jié)果可以證明,將Transformer用于體素化的點云檢測是完全可行的。此外,本算法在推理過程中速度為16.9 frame/s,達到了較快的處理速度。而與本算法性能相近的PV-RCNN推理速度僅為8.9 frame/s,這主要歸功于本算法中完全基于體素的特征提取,避免了體素和原始點云進行交互時產(chǎn)生的巨大計算開銷。
本節(jié)對基于Transformer的3D目標檢測器頭部網(wǎng)絡(luò)中的主要組成部分進行了消融實驗,以驗證每個部分對檢測效果的貢獻。消融實驗的結(jié)果如表2所示。
表2 基于Transformer的3D目標檢測器頭部網(wǎng)絡(luò)模塊消融實驗
1) 方法C是淺層解碼器堆疊下的完整的基于Transformer的3D目標檢測算法,通過空間調(diào)制交叉注意力加速訓練過程,并通過關(guān)鍵點熱圖對目標查詢進行初始化,以達到降低網(wǎng)絡(luò)深度、提高推理速度的目的。
2) 方法A相比于方法C刪除了用于加速訓練的空間調(diào)制交叉注意力模塊,2種方法的收斂曲線對比如圖4所示。在訓練次數(shù)同為80輪時,方法C的檢測精度已經(jīng)趨于平緩,基本收斂完畢。相比之下,未加入空間調(diào)制交叉注意力模塊的方法A,此時的檢測精度為75.9%,且波動幅度相對較大。訓練過程截止到150輪時,方法A基本完成收斂,此時2個模型的精度差別可以認為是隨機性誤差。
圖4 方法A和方法C的收斂曲線對比圖
3) 方法B相比于方法C刪除了熱圖初始化目標查詢模塊,此時解碼器的目標查詢采用零初始化方法。其檢測精度相比于方法C下降了7.98%,說明僅依靠3層解碼器不足以將初始查詢擬合至目標真實位置。采用熱圖初始化目標查詢策略使得初始的查詢點靠近潛在的目標位置,在淺層網(wǎng)絡(luò)下取得了遠超無此策略模型的性能。
4) 方法D相比于方法C將解碼器層數(shù)提升至6層,其余模塊未做變動,檢測精度達到了81.50%,推理速度為12.7 frame/s。相比之下,計算成本的增加遠遠超過檢測精度的提升,這也進一步證明了熱圖初始化查詢策略的有效性。
圖5是本文算法在驗證集上的檢測結(jié)果可視化演示。其中藍色為目標真實框,黃色為本算法產(chǎn)生的預(yù)測框。圖中的4個場景均包含有較多的車輛,第一個場景中由于最遠處車輛距離較遠且僅在車體尾部生成激光雷達點云,致使檢測器對該目標尺寸產(chǎn)生誤判。其余3個場景中車輛數(shù)量眾多、停放角度復雜,而基于Transformer的3D目標檢測算法依然能精確地定位并識別場景中的車輛。
圖5 基于Transformer的點云目標檢測器可視化檢測結(jié)果
本文提出了一種基于Transformer的3D目標檢測算法。在推理過程中首先使用三維體素編碼網(wǎng)絡(luò)進行初步特征提取,而后壓縮為鳥瞰圖并采用二位骨干網(wǎng)絡(luò)輸出多尺度特征圖,這些特征圖在頸部網(wǎng)絡(luò)中進行融合。在頭部網(wǎng)絡(luò)中,本算法采用了DETR中集合預(yù)測的檢測思想,并采用熱圖初始化目標策略使得模型在淺層網(wǎng)絡(luò)下依然能從特征圖中有效匯集數(shù)據(jù)用于擬合回歸。同時設(shè)計了一種改進的空間調(diào)制交叉注意模塊用于訓練過程中的加速。本算法在KITTI驗證集中進行了對比和消融實驗,結(jié)果均表明基于Transformer的3D目標檢測算法作為一種簡單而有效的算法,能夠勝任三維目標檢測及其他下游任務(wù)的應(yīng)用。