彭玉旭, 董勝超
(長沙理工大學 計算機與通信工程學院, 長沙 410114)
從點云數(shù)據(jù)中進行3D目標檢測是自動駕駛系統(tǒng)重要組成部分, 例如自主導航、車輛檢測和路障檢測.與基于圖像的檢測相比, 激光雷達所采集的點云數(shù)據(jù)提供了可靠的深度信息, 在空間目標位置判定以及方向和姿態(tài)估計上更具優(yōu)勢. 與僅從圖像中估計2D邊界框的普通2D檢測不同, 自動駕駛系統(tǒng)需要從現(xiàn)實世界中估計更加具有信息量的3D邊界框, 以完成諸如避免障礙物和路徑規(guī)劃之類的高級任務(wù). 這一嚴峻的挑戰(zhàn)以及自動駕駛市場日益增長的需求激發(fā)了3D車輛目標檢測算法的研究, 新近出現(xiàn)的檢測算法主要采用卷積神經(jīng)網(wǎng)絡(luò)處理來自激光雷達傳感器所采集的深度點云數(shù)據(jù).
基于點云的3D車輛目標檢測算法可分為單階段檢測算法和兩階段檢測算法. 單階段檢測算法[1-3]將稀疏的3D點云轉(zhuǎn)換為規(guī)則的表現(xiàn)形式, 例如體素化網(wǎng)格或者鳥瞰圖像, 并采用CNN以完全卷積的方式直接預測邊界框. 這使得單階段檢測方法簡單快速且有效. 但是直接將卷積網(wǎng)絡(luò)生成的點云特征轉(zhuǎn)化為鳥瞰圖后,不可避免的會導致空間特征的丟失, 使得單階段檢測器處理稀疏點云數(shù)據(jù)的準確性降低. 與單階段檢測算法相比, 兩階段檢測算法[4-8]可以在第二階段利用更精確的空間信息, 這些信息僅專注于第一階段預測的感興趣的區(qū)域, 因此使得邊界框的預測更加準確. 但第二階段的檢測是在第一階段檢測的結(jié)果上進行, 這就大大增加了計算成本, 使得實時的檢測速度不理想.
為了解決兩階段檢測器檢測速度慢以及單階段檢測器會導致空間特征丟失的問題. 本文提出了利用注意力機制對數(shù)據(jù)特征的表征能力進行增強, 并采用單階段檢測方法, 以提高算法定位精度并同時保持單階段檢測方法的高效性. 在KITTI 3D目標檢測基準[9]上評估了本文提出的算法, 并與現(xiàn)有的方法進行比較, 在確保高效的實時檢測速度的情況下, 本文提出的檢測器較現(xiàn)有方法具有更好的方向預估性以及更高的檢測精度.
單階段檢測方法通常會把稀疏的點云場景空間轉(zhuǎn)換為更加規(guī)則的表現(xiàn)形式, 然后用卷積神經(jīng)網(wǎng)絡(luò)來處理點云數(shù)據(jù)以提高計算效率. 這種方法要么使用3D CNN處理基于手工的網(wǎng)格[10,11], 要么使用2D CNN從鳥瞰圖和前視圖全景圖[12]中提取特征. 文獻[4]提出多層體素特征編碼結(jié)構(gòu)以提取體素中每個點的特征.文獻[3]將點云數(shù)據(jù)沿高度軸堆疊的體素改為支柱進行特征提取, 然后用卷積神經(jīng)網(wǎng)絡(luò)進行目標的定位. 文獻[1]利用子流形稀疏卷積研究出一種稀疏三維卷積, 可優(yōu)化三維卷積中的GPU使用, 并提升網(wǎng)絡(luò)的檢測速度和效率. 文獻[13]提出一種輔助網(wǎng)絡(luò), 用點級監(jiān)督的方式來增強稀疏卷積特征表示能力. 本文提出的方法就建立在通用的單階段體系結(jié)構(gòu)的基礎(chǔ)上.
兩階段檢測方法是使用第二階段的網(wǎng)絡(luò)結(jié)構(gòu)從第一階段生成的區(qū)域提案中進行更精確的檢測. 文獻[6]提出的檢測器在第一階段將整個場景的點云分割為前景點和背景點, 以自下而上的方式直接從點云中生成少量精確3D提案. 文獻[5]在輸入的RGB-D圖像上使用Mask RCNN網(wǎng)絡(luò)找到一組感興趣的區(qū)域, 結(jié)合該區(qū)域的深度信息后得到平截頭體狀點云提案, 然后使用PointNet[14]對該提案進行三維實例分割以得到更加精確的3D提案空間. 文獻[7]第1階段通過為每個點生成一個新的球形錨來產(chǎn)生準確的提案, 利用PointsPool生成提案特征, 第2階段在盒內(nèi)預測中設(shè)計一個3D loU 預測分支以提高定位精度. 兩階段檢測方法通可以得到更加優(yōu)秀的提案, 從而得到更加精確的檢測結(jié)果,相對于單階段檢測方法來說具有先天的優(yōu)勢, 但兩階段檢測方法所花的時間成本不容忽視. 最近的單階段檢測方法已經(jīng)達到了與最新的兩階段檢測方法相當?shù)男阅?高效的單階段檢測方法在實時應(yīng)用中具有巨大的潛力.
注意力模型最近幾年在語音識別、圖像處理和自然語言處理等深度學習領(lǐng)域中應(yīng)用廣泛. 注意力模型借鑒了人類視覺的注意力機制. 人類視覺通過快速掃描周圍環(huán)境場景. 獲得需要重點關(guān)注的目標區(qū)域, 然后對該區(qū)域集中投入注意力資源, 以獲取所需要關(guān)注目標更多的細節(jié)信息, 對其它信息忽略不予關(guān)注. 注意力機制從本質(zhì)上來說和人類的視覺注意力機制類似, 其核心思想也是從眾多信息中選擇出對當前任務(wù)目標更關(guān)鍵的信息. 例如F∈RC×H×W為某一中間特征圖的輸入, 注意力模型可分為:
式(1)為1D通道注意力圖, 式(2)為2D空間注意力圖. 整個注意力模型的關(guān)注過程可以概括為:
式中, ?表示逐元素相乘;F′為特征圖F經(jīng)過通道注意力處理過后生成的數(shù)據(jù);F′′為F′經(jīng)過空間注意力處理過后生成的數(shù)據(jù).
單階段3D車輛檢測模型如圖1所示, 其中包括4個部分: (1) 點云體素化, 規(guī)范三維點云空間的表現(xiàn)形式, 便于后續(xù)網(wǎng)絡(luò)處理; (2) Backbone模塊, 使用三維稀疏卷積網(wǎng)絡(luò)(SPConvNet)結(jié)合輔助網(wǎng)絡(luò)(Auxiliary Network)高效提取體素中內(nèi)部點云特征; (3)注意力模塊, 對壓縮后鳥瞰圖的特征數(shù)據(jù)進一步處理, 重點關(guān)注有效特征; (4)檢測模塊, 用卷積神經(jīng)網(wǎng)絡(luò)和PSWarp變換機制對車輛目標的識別以及邊界框的生成與回歸.
圖1 基于注意力機制的單階段3D車輛目標檢測模型
首先對輸入的點云進行分塊, 本文使用深度、高度和寬度(D,H,W)與輸入點云相同尺寸的大立方體表示整個輸入點云空間, 用相同尺寸的小立方體對其進行劃分, 每個小立方體稱為體素, 每個體素的深度、高度和寬度分別為(uD,uH,uW), 則整個點云空間在坐標上生成網(wǎng)格(voxel grid)個數(shù)為:
為了更高效的使用體素, 本文預設(shè)體素的最大數(shù)量限制(max_voxels)為20 000, 根據(jù)體素的數(shù)量限制預先分配緩沖區(qū), 接著遍歷所有的點云, 將點分配給與它們相關(guān)聯(lián)的體素, 并保存每個體素的點數(shù)和每個體素坐標的位置. 整個迭代過程是使用哈希表來檢查體素是否存在的, 如果與點相關(guān)聯(lián)的體素存在, 就將體素的數(shù)量增加一, 否則就在哈希表中設(shè)置相應(yīng)的值. 一旦體素數(shù)量累加到預設(shè)的限制數(shù)值, 迭代過程將停止, 最后將所獲得的每個體素的坐標和點的數(shù)量作為實際的體素數(shù).
為了更好的檢測車輛目標, 本文僅考慮沿著Z, Y,X軸在[-3, 1]×[-40, 40]×[0, 70.4]米范圍內(nèi)的點云. 用于車輛目標檢測的每個體素的最大點數(shù)設(shè)置為T= 5,這是根據(jù)KITTI數(shù)據(jù)集中每個體素的點數(shù)分布決定的. 對于車輛目標檢測任務(wù), 本文使用的體素大小為
如圖1所示, 本文使用三維稀疏卷積[1]網(wǎng)絡(luò)和輔助網(wǎng)絡(luò)[13]作為檢測器的骨干網(wǎng)絡(luò)提取特征. 三維稀疏卷積網(wǎng)絡(luò)包含4個卷積塊, 其中每個卷積塊是由內(nèi)核尺寸為3的子流形卷積構(gòu)成的, 連接在模塊最后的3個卷積塊中附加有步幅長度為2的稀疏卷積, 每個卷積網(wǎng)絡(luò)后面均接有層ReLU層和RatchNorm層, 最后會生成不同空間分辨率的多階段的特征圖. 通常, 從點云中提取的降采樣多分辨率卷積特征將不可避免地丟失結(jié)構(gòu)信息, 但細致的結(jié)構(gòu)信息對于生成精確的目標定位至關(guān)重要.
本文采用一種具有逐點監(jiān)督的可分離輔助網(wǎng)絡(luò),輔助網(wǎng)絡(luò)如圖1所示. 它首先將稀疏卷積網(wǎng)絡(luò)每階段生成特征的非零索引轉(zhuǎn)換為三維空間中點云坐標, 以逐點形式表示每個階段的特征, 然后將這些點狀特征連接起來, 并使用淺層預測變量來生成特定于任務(wù)的輸出. 預測器是由大小為(64, 64, 64)神經(jīng)元的共享多層感知器實現(xiàn), 通過單位點卷積生成兩個任務(wù)特定的輸出. 最后通過點對前景的分割任務(wù)使得主干網(wǎng)絡(luò)對目標車輛邊界框的檢測更加準確. 具體來說, 用表示分割分支的函數(shù), 以預測每個點的前/后概率. 令si為指示點是否落入地面真相邊界框內(nèi)的二分類標簽.使用focal loss[15]損失優(yōu)化前景分割任務(wù), 即:
式中,α和γ是超參數(shù), 本文分別設(shè)為0.25和2,為:
但是, 由于稀疏卷積產(chǎn)生的特征圖非常稀疏, 即便是邊界點被精確檢測到, 在確定邊界框的比例和形狀時仍然存在著不確定性. 為了消除這一不確定性, 采用中心點估計的方法學習每個點到目標中心的相對位置.假設(shè) Δ∈RN×3是 中心估計分支的輸出, Δp為點到相應(yīng)中心的目標偏移量. 使用Smooth-l1[16]損失來優(yōu)化中心估計任務(wù):
式中,N是前景點數(shù),I是指標函數(shù). 將前景分割和中心估計任務(wù)結(jié)合起來, 幫助主干網(wǎng)絡(luò)了解更加精細的3D點云數(shù)據(jù)的結(jié)構(gòu)信息, 此外本文只是在訓練階段采用輔助網(wǎng)絡(luò), 不會增加額外的計算成本.
(1) 通道注意力.通道注意力聚焦于輸入數(shù)據(jù)中“有意義”的部分. 為了有效的量化通道注意力, 需要對輸入特征數(shù)據(jù)的空間維度進行壓縮處理, 目前, 大多采用平均池化提取有效的空間信息, 但經(jīng)過研究發(fā)現(xiàn)最大池化也能收集到物體的一些獨有特征, 因此讓平均池化和最大池化兩者相聚合就能提取出更加精細的空間信息.
如圖2所示, 模型首先使用平均池化層和最大池化層聚合空間信息, 生成的平均池化特征和最大池化特征分別為Fcavg和Fcmax. 然后將這兩個特征分別轉(zhuǎn)發(fā)到共享網(wǎng)絡(luò)中, 用來生成通道關(guān)注圖Mc∈RC×1×1, 其中共享網(wǎng)絡(luò)由一個僅包含一個隱藏層的多層感知器(MLP)組成. 為了減少參數(shù)量運算開銷, 將隱藏層的激活大小設(shè)置為R(C/r)×1×1, 其中r是縮小率. 將共享網(wǎng)絡(luò)應(yīng)用于每個特征后, 使用逐元素求和運算輸出合并后特征向量.
圖2 通道注意力模型
通道注意力[17]的計算公式為:
式中, σ表示Sigmoid函數(shù);W0∈R(C/r)×C,W1∈RC×(C/r),且兩個輸入均共享MLP權(quán)重參數(shù)W0和W1.
(2) 空間注意力. 與通道注意力不同, 空間注意力著重關(guān)注輸入數(shù)據(jù)“在哪”的位置信息部分,這是對通道注意力的補充. 如圖3所示, 模型同樣使用兩個池化層操作來聚合通道信息, 生成兩個2D特征分別為: 平均池化特征和最大池化特征然后將這兩個特征連接起來, 通過標準卷積生成2D空間注意力圖.
圖3 空間注意力模型
空間注意力[17]的計算公式為:
式中,f7×7表示卷積計算, 其中7×7為卷積核大小.
本文提出的注意力模塊整體結(jié)構(gòu)如圖3所示. 棕黃色立方塊表示為通道注意力模型與空間注意力模型的串聯(lián)結(jié)構(gòu), 其中通道注意力模型在前, 空間注意力模型在后. 棕黃色立方塊分布在整個注意力模塊的首、中、尾部分, 其它部分嵌套著普通的二維卷積網(wǎng)絡(luò)(藍色立方塊). 實驗結(jié)果表明, 這種“立體式”的布局結(jié)構(gòu)使得整個模型對空間結(jié)構(gòu)的感知能力大大加強, 同時對最終檢測結(jié)果的提升也產(chǎn)生了重要的影響.
檢測模塊采用普通卷積網(wǎng)絡(luò)和PSWarp[13]變換機制對車輛目標進行檢測. 為了解決最終車輛目標預測的邊界框和對應(yīng)的置信度之間不匹配的問題, 本文采用了一種變形操作, 即PSWarp變換機制. PSWarp可以看成比PSRoIAlign更加有效的變體, 它通過將特征圖進行空間變換使得預測的邊界框與分類置信度相匹配. PSWarp是由一個特征圖采樣器組成, 它輸入分類圖和采樣網(wǎng)格, 生成從網(wǎng)格點采樣的輸出圖, 最后, 通過取K個采樣分類圖中的平均值來計算分類置信度C. 假定p為一個車輛目標預測檢測出的邊界框, 則{(uk,vk)=Skp:k=1,2,···,k}為相對應(yīng)的采樣點, 則該預測邊界框最終置信度計算公式為:
式中,b為雙線性采樣, 計算公式為:
PSWarp與PSRoIAlign以及其它RoI的方法相比,有效地減輕了使用NMS從密集的特征圖中生成RoI的需求, 達到節(jié)約時間成本提高效率的目的.
本文參考文獻[1-3]設(shè)置損失函數(shù)來優(yōu)化主干網(wǎng)絡(luò), 在回歸分支和分類分支上分別使用Lloc和Lcls損失,其中Lloc使 用的是Smooth-l1[16]范數(shù),Lcls是Focalloss[17]損失函數(shù).
為了最小化(12)式中損失的加權(quán)和, 通過使用梯度下降方法聯(lián)合優(yōu)化檢測和輔助任務(wù):
式中,w設(shè)置為2; μ 和λ 是使輔助任務(wù)與檢測任務(wù)平衡的超參數(shù)分別為0.9和2.
KITTI數(shù)據(jù)集是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數(shù)據(jù)集, 它包含7481個訓練樣本和7518個測試樣本, 在訓練過程中又將訓練集分為3712個訓練樣本和3769個驗證樣本, 本文主要是對應(yīng)用最廣的車輛類別進行實驗, 并使用平均精度(AP)和(IoU)閾值0.7作為評估指標. 基準測試會根據(jù)目標的大小、遮擋情況以及截斷程度區(qū)分出3個檢測難度級別: 容易(easy), 中等(moderate)和困難(hard).
實驗環(huán)境為Ubuntu 16.04 操作系統(tǒng), Python 3.6,PyTorch 1.15. CPU型號為Inter Xeon Silver 4214, 顯卡是GeForce RTX 2080 Ti. 在訓練中, 正錨和負錨使用的匹配閾值分別為0.6和0.45; 用于檢測車輛的錨點的尺寸為1.6 m (寬), 3.9 m (長)和1.56 m (高), 所有不包含點的錨都忽略; 使用SGD優(yōu)化器對整個網(wǎng)絡(luò)進行了90個周期的訓練. 批次大小, 學習率和權(quán)重衰減分別為2、0.01和0.003; 在推理階段, 使用0.3閾值過濾掉低置信度邊界框, NMS的IoU閾值為0.1.
數(shù)據(jù)增強通過增加訓練數(shù)據(jù)量以及增加一些干擾噪聲數(shù)據(jù)來提高模型的泛化能力和魯棒性. 具體來說,首先收集所有真實目標的三維邊界框以及邊界框內(nèi)的點云作為樣本池, 對于每個樣本, 采取隨機抽取的方法,從樣本池中隨機抽取不超過10個樣本, 并將它們放入到當前點云數(shù)據(jù)中參與訓練, 在每個樣本放入數(shù)據(jù)后,還需要對其進行碰撞測試, 避免違反物理規(guī)律. 接著對真實目標邊界框的數(shù)量進行擴充, 新增的每個真值框都進行隨機旋轉(zhuǎn)和平移. 旋轉(zhuǎn)從[-π/15, π/15]開始, 均勻的增加旋轉(zhuǎn)噪聲. 真值框的X, Y, Z坐標按N(0, 0,0.25)的正態(tài)分布進行平移, 增加平移噪聲. 除此之外,還將對整個點云進行隨機翻轉(zhuǎn)、全局旋轉(zhuǎn)和全局縮放.全局旋轉(zhuǎn)從[-π/15, π/15]開始, 均勻的增加全局旋轉(zhuǎn)噪聲. 縮放因子則從[0.95, 1.05]開始改變.
為了驗證基于注意力機制的三維點云車輛目標檢測算法的有效性, 本文在KITTI 3D目標檢測基準上對本文所提出的單階段3D車輛檢測模型進行評估. 實驗通過將相關(guān)數(shù)據(jù)提交給KITTI線上測試服務(wù)器, 生成的實驗檢測結(jié)果與新近主流的3D車輛檢測算法相比較(KITTI數(shù)據(jù)集默認按中等難度的檢測精度進行排名):
從表1可以看出, 本文所提出的單階段車輛檢測算法甚至比新近一些主流的兩階段車輛檢測算法(如F-PointNet, TANet, 3D IoU-Net)表現(xiàn)更好, 并且它在3個檢測難度級別中均取得較好的結(jié)果. 其中在中等和困難檢測級別中取得最優(yōu)成績, 在簡單檢測級別中取得的檢測結(jié)果也與第一名相差不大. 以上可證明本文所提算法的有效性.
值得關(guān)注的是, 當引入注意力機制后, 模型整體的方向性預估變得更加優(yōu)秀. 與表1中簡單檢測級別中檢測精度最高的模型EBM3DOD相比, 本文提出的算法模型在3個檢測難度級別中方向性預估性能均表現(xiàn)的更好. 其中與當前主流的單階段車輛檢測算法SASSD相比, 性能提升尤為明顯. 檢測結(jié)果如表2、圖4、圖5和圖6所示:
圖5 EBM3DOD車輛方向估計檢測結(jié)果
圖6 本文車輛方向估計檢測結(jié)果
表1 3D車輛目檢測精度對比
表2 3D車輛目標方向性預估對比
圖4 SA-SSD車輛方向估計檢測結(jié)果
提出了一種基于注意力機制的單階段檢測模型,用來檢測真實生活場景下的車輛目標. 通過引入注意力機制, 使得模型對空間的感知能力更強, 從而使得車輛目標方向性預估更準確. 再將實驗檢測結(jié)果與新近一些優(yōu)秀模型的檢測結(jié)果相比較可以發(fā)現(xiàn), 基于注意力機制的檢測模型在綜合預測結(jié)果方面也具有較大優(yōu)勢.但對于自動駕駛領(lǐng)域的3D目標檢測研究, 無論是檢測速度還是檢測精度都還有進一步提升空間. 后續(xù)的研究將不僅限于對車輛目標的檢測, 可考慮在基于注意力機制的檢測模型上對行人、騎行者等小目標進行檢測, 通過進一步在模型結(jié)構(gòu)設(shè)計及目標檢測過程的機理上深入挖掘, 以達到更好的效果.