彭育輝 鄭瑋鴻 張劍鋒
(福州大學(xué),福州 350116)
有別于機器視覺傳感器,激光雷達傳感器具有受環(huán)境和天氣等因素影響小、測距精準等優(yōu)點。隨著多線激光雷達傳感器價格的逐年下降,基于車載激光雷達進行汽車外界環(huán)境感知成為實現(xiàn)汽車無人駕駛的主流技術(shù)方案,同時也是汽車無人駕駛領(lǐng)域的關(guān)鍵技術(shù)和研究熱點。
基于激光雷達實現(xiàn)車外環(huán)境信息的感知就是在汽車行駛過程中,通過車載激光雷達準確地估計出車外不同三維目標的類別和位置,即分類和定位[1-6]。車載激光雷達獲取的物體三維點云具有稀疏、分布不均、無序的特點,從而衍生出不同的數(shù)據(jù)處理算法。其中,基于深度學(xué)習(xí)的點云處理方法因其優(yōu)秀的分類準確性和實時性而受到國內(nèi)外學(xué)者的普遍關(guān)注。
深度學(xué)習(xí)的一般表現(xiàn)形式為一種深層神經(jīng)網(wǎng)絡(luò),具有很強的特征提取能力,在監(jiān)督式學(xué)習(xí)的目標分類上取得了很好的結(jié)果。圖像是最早、最常用的視覺信息載體,攝像頭等設(shè)備采集的圖像信息大量使用,因此,圖像信息的處理十分重要。2010 年,F(xiàn)elzenszwalb 團隊提出的可變形部件模型(Deformable Part Model,DPM)[7]使傳統(tǒng)的二維圖像目標檢測與識別達到一定的高度,但是算法的效果并不令人滿意,梯度方向直方圖(Histogram of Oriented Gradients,HOG)特征提取存在的遮擋物影響問題仍然比較突出。2013年,Girshick 等提出區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Region-based Convolutional Neural Network,R-CNN)[8],揭開了基于深度學(xué)習(xí)的二維目標檢測與識別的帷幕。目前,基于深度學(xué)習(xí)的二維圖像目標檢測方法不斷完善[9-13],已廣泛應(yīng)用在人臉識別、交通管理、文字識別等方面[14-17],技術(shù)成熟可靠。
在處理激光雷達獲取的三維點云方面,借鑒二維圖像的目標檢測成為一種重要的技術(shù)途徑。將三維點云數(shù)據(jù)降維后,利用圖像目標檢測的方法進行特征提取是初期的處理手段,算法耗時長且精度不足,局限性明顯。隨著車載激光雷達和計算機硬件的不斷進步,蘋果公司提出了VoxelNet[1]對三維點云進行編碼處理,美國斯坦福大學(xué)于2017 年提出了PointNet[18],首次將原始點云數(shù)據(jù)投入深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的模型,清華大學(xué)與百度公司聯(lián)合開發(fā)了MV3D(Multi-View 3D networks)[6],實現(xiàn)了點云多視圖融合圖像處理。上述方法都通過直接或融合處理點云的方式逐漸取代了間接的手段,成為三維目標檢測方法的發(fā)展趨勢。
本文將在回顧二維目標檢測方法的基礎(chǔ)上,對目前國內(nèi)外基于深度學(xué)習(xí)的三維目標檢測方法進行綜述,為車載激光雷達目標檢測方法的選擇提供參考依據(jù)。
二維目標檢測主要解決圖像中的目標分類和定位問題。由于圖像的像素具有十分豐富的目標紋理信息,所以主流的方法是利用提取特征能力優(yōu)異的深度卷積神經(jīng)網(wǎng)絡(luò)對圖像進行目標檢測。近10 年來,隨著信息獲取技術(shù)的不斷進步,出現(xiàn)的ImageNet、PASCAL VOC和COCO(Common Objects in Context)等數(shù)據(jù)集為深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練提供了可靠的數(shù)據(jù)來源,可以使模型減少不必要的誤差,快速地靠近最優(yōu)解,對模型的學(xué)習(xí)訓(xùn)練起到重要的作用。
2010年,F(xiàn)elzenszwalb 團隊提出的DPM 是當時檢測效果最好的模型。這種由人工選取特征的目標檢測模型隨著信息量的增大呈現(xiàn)出很大的局限性,因此在目標檢測上逐漸引入了深度學(xué)習(xí)方法。2013年,Girshick 等提出了R-CNN[8],使用區(qū)域候選的方式替代了滑動窗口,再通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)提取候選目標的特征。R-CNN 在每次特征提取時都要重新進行CNN 的訓(xùn)練,增加了計算成本。2015年,Girshick 等對R-CNN 進行改進,提出快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast Region-based CNN,F(xiàn)ast R-CNN)[9],采用將感興趣區(qū)域(Regions of Interest,RoI)與CNN結(jié)合的方式平行輸出分類和邊框回歸的結(jié)果。由于R-CNN 和Fast R-CNN 運算量大且無法很好地使用圖形處理器(Graphics Processing Unit,GPU)進行運算,因此檢測速度很難提高。同年,Ren等提出了端到端的更快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region-based CNN,F(xiàn)aster RCNN)[10],目標區(qū)域候選由區(qū)域候選網(wǎng)絡(luò)(Region Proposal Networks,RPN)來完成,所有運算過程都可以在GPU 上運行,檢測速度得到提高。受R-CNN 的啟發(fā),He 等提出了掩模區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Mask Regionbased CNN,Mask R-CNN)模型[19],Zhang等提出了局部-區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Part-based R-CNN)模型[20]等。
基于目標區(qū)域候選的檢測算法都要先提取目標候選區(qū)域,明顯增加了運算的負荷。Redmon 提出了基于回歸的YOLO(You Only Look Once)模型[11],從圖像的輸入到檢測結(jié)果的輸出,只使用了1 個深度神經(jīng)網(wǎng)絡(luò)模型,把點云的處理當作回歸問題,精度低于Faster RCNN模型,但是檢測速度至少提高了5倍。繼YOLO模型之后,Liu 等提出了單發(fā)多框檢測器(Single Shot MultiBox Detector,SSD)模型[12],速度比YOLO 更快的同時,可獲得與R-CNN相媲美的精度。YOLO和SSD高效的處理速度再次證明了深度神經(jīng)網(wǎng)絡(luò)在提取特征和分類任務(wù)上具有很強的性能,但是處理結(jié)果的精確度有待提高。YOLO 經(jīng)過不斷改善,出現(xiàn)了YOLOv2[13]和用于研究三維目標檢測的YOLO3D[21]。對于目標檢測的研究,算法的處理速度和精確度是相互矛盾的,若以保證處理速度為主,算法就會精簡,對特征的提取可能會變得簡單。表1 所示為二維目標檢測方法在PASCAL VOC 2007 數(shù)據(jù)集上測試的結(jié)果,其中,F(xiàn)aster R-CNN(VGG)是指以視覺幾何組(Visual Geometry Group,VGG)網(wǎng)絡(luò)為特征提取器的Faster R-CNN,SSD(300)是指輸入圖像尺寸大小為300×300 的SSD。由表1 可知,平均精度最高的是SSD(300),處理速度也達到了59 幀/s,相比最高速度的Fast YOLO模型,平均精度高21.6百分點,檢測精確度和處理速度取得了一定的平衡。
表1 二維目標檢測方法測試結(jié)果
本質(zhì)上,對目標檢測方法的探索就是對深度神經(jīng)網(wǎng)絡(luò)的研究,二維目標檢測的深度神經(jīng)網(wǎng)絡(luò)對三維目標檢測方法研究具有啟發(fā)性的作用,如RPN 和基于回歸的YOLO設(shè)計等。
隨著近年車載激光雷達在汽車智能駕駛領(lǐng)域的廣泛應(yīng)用,由車載激光雷達獲取的三維點云數(shù)據(jù)逐漸成為國內(nèi)外研究的熱點。點云數(shù)據(jù)攜帶的信息主要是以激光雷達為原點的空間坐標和反射強度。相繼出現(xiàn)的機器人三維掃描庫(Robotic 3D Scan Repository)、悉尼城市目標數(shù)據(jù)集、KIITI 數(shù)據(jù)集[22]等多個開源數(shù)據(jù)集為網(wǎng)絡(luò)的訓(xùn)練及驗證提供了有效的數(shù)據(jù)支撐,由KITTI數(shù)據(jù)集節(jié)選出并經(jīng)過處理的點云和相對應(yīng)的高清圖片如圖1 所示?;谏疃葘W(xué)習(xí)的三維點云處理方法總體上可分為3 類,即間接處理、直接處理和融合處理。間接處理點云的方法主要是對點云進行體素化或降維后再投入已有的深度神經(jīng)網(wǎng)絡(luò)進行處理;直接處理點云的方法主要是重新設(shè)計針對三維點云數(shù)據(jù)的深度神經(jīng)網(wǎng)絡(luò)對點云進行處理;融合處理點云的方法則是融合圖像和點云的檢測結(jié)果再進一步處理。隨著圖像硬件的發(fā)展,融合處理點云的方法將是點云處理的主要技術(shù)。
圖1 KITTI數(shù)據(jù)集節(jié)選[22]
檢測的主要目標有車輛、行人和騎行者,其中行人和騎行者的點云數(shù)據(jù)比車輛的點云數(shù)據(jù)稀疏,可提取的特征信息少,檢測難度大。目前的檢測算法都以車輛的檢測為主,兼容行人和騎行者的檢測。
間接處理點云的對象,最初主要有RealSense、Kinect 等三維智能傳感器采集的深度圖像(RGB-D)和經(jīng)過人工處理的CAD模型。間接處理點云的方法大都源自前期二維目標檢測的深度神經(jīng)網(wǎng)絡(luò)模型,先利用統(tǒng)計的方法或者卷積網(wǎng)絡(luò)模型將點云數(shù)據(jù)轉(zhuǎn)化為體素網(wǎng)格的形式或其他二維特征,再利用深度神經(jīng)網(wǎng)絡(luò)模型進行學(xué)習(xí)訓(xùn)練。
最初,人們并未對點云的性質(zhì)進行深入研究,而是受圖像像素處理方法的啟迪,將點云和圖像一樣進行“像素”的處理,即對點云進行體素網(wǎng)格處理,再對體素網(wǎng)格進行研究分析,初期主要的間接處理方法[4,23-26]特點如表2所示。
蘋果公司針對無人駕駛場景下的三維目標檢測提出了一個端到端的深度神經(jīng)網(wǎng)絡(luò)——VoxelNet,實現(xiàn)對點云的逐點處理。其設(shè)計的特征學(xué)習(xí)網(wǎng)絡(luò)層(Feature Learning Network)對輸入的點云進行體素分塊(Voxel Partition)、點云分組(Grouping)、隨機采樣(Random Sampling)、多層體素特征編碼(Stacked Voxel Feature Encoding)、稀疏張量表示(Sparse Tensor Representa?tion),經(jīng)過卷積網(wǎng)絡(luò)的壓縮提取后接入RPN 層進行高效檢測。VoxelNet 模型僅利用車載激光雷達的點云數(shù)據(jù)輸入進行模型訓(xùn)練,保證了點云的原始三維特征。重慶大學(xué)的Yan等受VoxelNet的啟發(fā),提出了稀疏嵌入式卷積檢測網(wǎng)絡(luò)(Sparsely Embedded Convolutional Detec?tion,SECOND)模型[27],采用2 個串聯(lián)的體素特征編碼(Voxel Feature Encoding,VFE)架構(gòu),采用稀疏卷積神經(jīng)網(wǎng)絡(luò)進行連接,利用RPN 完成目標的檢測工作,如圖2所示[27]。SECOND 充分利用了點云的稀疏性,改善了VoxelNet中的特征提取效果。
表2 初期主要的間接處理方法比較
圖2 SECOND模型[27]
有別于體素網(wǎng)格處理方法,將點云的深度信息投至圖像而形成的融合深度圖像方法是另一種重要的點云間接處理途徑。受到Dolson[28]和Andreasson[29]等人的啟發(fā),2014年,Cristiano[30]指出了點云所具有的深度信息在行人檢測中起到重要的作用。緊接著,Alejandro結(jié)合深度圖一并考慮行人的朝向,提出了多視圖隨機森林(Multiview Random Forest)算法[31],并指出算法中的一些簡易模塊可以使用卷積神經(jīng)網(wǎng)絡(luò)進行特征表示,檢測效果會進一步提高。2016 年,斯坦福大學(xué)的Qi 等提出多視角卷積神經(jīng)網(wǎng)絡(luò)(Multi-View CNN,MVCNN)[32],利用一個神經(jīng)網(wǎng)絡(luò)輔助預(yù)測目標分類,設(shè)計了非均質(zhì)的探測過濾器將三維數(shù)據(jù)投影至二維空間做目標分類。在訓(xùn)練的過程中,做了數(shù)據(jù)擴增,并根據(jù)三維物體設(shè)計了多方向池(Multi-Orientation Pooling)。該方法對Model?Net40 模型庫的檢測精度已經(jīng)達到了86.6%,超過了之前的所有檢測算法。百度公司的李波[5]將數(shù)據(jù)以二維點圖的形式表示,移植了圖像處理的端到端深度神經(jīng)網(wǎng)絡(luò),能夠同時預(yù)測目標置信度和邊界框。
間接處理點云的方法借鑒二維目標檢測的設(shè)計,如數(shù)據(jù)預(yù)處理中的“體素化”或者合成深度圖,網(wǎng)絡(luò)模塊中的RPN 或者稀疏卷積神經(jīng)網(wǎng)絡(luò)等,都會導(dǎo)致網(wǎng)絡(luò)訓(xùn)練過程中失去一部分三維特征信息,甚至引入誤差。在網(wǎng)絡(luò)模塊的設(shè)計中可以加入池化(Pooling),大量的卷積運算會使數(shù)據(jù)的提取產(chǎn)生偏移,池化不僅可以改善這種錯誤,還可以減小過擬合并且提高模型的魯棒性。
隨著研究的不斷推進,學(xué)術(shù)界愈發(fā)重視點云數(shù)據(jù)本身的特性,如無序性、稀疏性和分布不均等。直接處理點云的方法是直接把原始的三維點云數(shù)據(jù)投入重新設(shè)計的深度神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,并不對點云數(shù)據(jù)做任何預(yù)處理,而且深度神經(jīng)網(wǎng)絡(luò)的設(shè)計不受以往圖像檢測網(wǎng)絡(luò)設(shè)計的影響。
斯坦福大學(xué)的Qi 等提出了PointNet[18],直接從點云中學(xué)習(xí)點對點特征。PointNet 使用多層感知機(Multi-Layer Perceptron,MLP)提取單點特征,訓(xùn)練最大池化層作為對稱函數(shù),整合來自全局的點云信息并解決了點的無序性問題,最后得到全局特征。其中,設(shè)計的空間變換網(wǎng)絡(luò)可保證輸入點云的不變性。PointNet 在三維物體檢測、三維物體部分分割和逐點語義分割任務(wù)中取得了良好效果。PointNet 解決了無序和不變性問題,提取了全局特征,但是沒有考慮到全局信息的問題,經(jīng)過改進,Qi等提出了PointNet++[33],該模型考慮了點與點之間的距離度量,通過層級結(jié)構(gòu)利用局部區(qū)域信息學(xué)習(xí)特征,還解決了采樣不均等問題,使得網(wǎng)絡(luò)結(jié)構(gòu)魯棒性更好。PointNet和PointNet++的提出對三維目標檢測技術(shù)具有深遠的意義。香港大學(xué)的Shi等利用PointNet++模型提出了PointRCNN[34]。PointRCNN 主要分為2 個階段處理點云,先利用具有強大實例分割能力的PointNet++進行點云的初步分割,提出目標候選框,再進行目標候選框的精細化處理以精準地檢測目標。新加坡國立大學(xué)的Uy等成功地將PointNet模型和NetVLAD[35]結(jié)合,提出了端到端的PointNetVLAD[36],并使用度量學(xué)習(xí)[37]的訓(xùn)練方法,準確地得到點云的全局描述信息特征,解決了基于點云檢索的位置識別問題。香港大學(xué)的Yu等利用PointNet 的點特征聚合能力將點云的三維坐標映射到特征空間,再結(jié)合特征擴展組件[38]和全連接網(wǎng)絡(luò)完成點云的三維坐標重建任務(wù)。德國慕尼黑工業(yè)大學(xué)的Deng等人提出PPFNet[39],使用多個PointNet 提取多個對應(yīng)面片區(qū)域的特征,再利用最大池化層聚合和融合,得到全局特征。PointNet 的提出起到了很大的啟發(fā)作用[40-48],其對點云特征提取的優(yōu)異效能得到了學(xué)者們的肯定和廣泛應(yīng)用。
德國的Valeo Schalter und Sensoren GmbH(簡稱法雷奧公司)和德國伊爾曼諾理工大學(xué)借鑒YOLOv2提出Complex-YOLO[49],其繼承了YOLOv2 的網(wǎng)絡(luò)架構(gòu),將方向向量轉(zhuǎn)換為實值和虛值,并設(shè)計了歐氏區(qū)域建議網(wǎng)絡(luò)(Euler-Region-Proposal Network,E-RPN),在英偉達的Titan X顯卡上識別速度達到了50.4 幀/s,但是精確度有所偏差,而且忽略了小目標物體,如行人和騎行者。因此,法雷奧公司又提出了YOLO3D[21],吸收了MV3D模型的數(shù)據(jù)處理方法,設(shè)計了雙輸入通道,修改YOLOv2 的架構(gòu),并優(yōu)化損失函數(shù),精度得到有效提高。
目前,主流的研究手段均基于PointNet 或者YOLOv2?;赑ointNet 或之后的PointNet++的層級訓(xùn)練特點是能很好地得到點云的局部或者全局區(qū)域特征,基于YOLOv2 的方法繼承了YOLOv2 的高效識別速度。直接處理方法最大的難點在于設(shè)計的針對三維數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)架構(gòu)能否符合點云無序性、局部性和不變性等特點,并且如何準確地表征出來。
當硬件計算速度足夠支撐算法的多維度計算時,便產(chǎn)生了以圖像為輔助的融合處理點云方法。融合處理點云的方法主要著眼于融合圖像和點云檢測的結(jié)果,其中圖像的檢測利用已有的二維目標檢測算法,點云的檢測利用以上提到的直接或者間接的處理方式得到檢測結(jié)果,再進一步對兩者的結(jié)果進行融合處理,得到最終檢測結(jié)果。融合處理點云的方法由于增加了高清圖像的輔助,在平均準確度上有一定的優(yōu)勢。
清華大學(xué)和百度公司聯(lián)合提出MV3D[6],設(shè)計的三維候選網(wǎng)絡(luò)將點云的數(shù)據(jù)分成了鳥瞰和前視2個視圖,都利用卷積神經(jīng)網(wǎng)絡(luò)處理,以點云的前視圖處理作為輔助,主要處理鳥瞰視圖得到點云的坐標及強度特征信息編碼,結(jié)合圖像(RGB)的初步卷積處理后,三者都經(jīng)過池化再進行融合處理,結(jié)果接入基于區(qū)域的融合網(wǎng)絡(luò),得到分類和邊框回歸結(jié)果。針對PointNet,Qi等人提出了針對無人駕駛中障礙物檢測的Frustum PointNets[3],先對高清圖像進行目標的候選,給定目標在圖像中的區(qū)域,然后用平截頭體框出對應(yīng)位置的點云,其中包含了其他非目標的點,最后利用PointNet精確地把目標點云分割出來,如圖3所示[3]。加拿大滑鐵盧大學(xué)的Jason Ku等人提出的AVOD[50]神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)使用改進的RPN 分別對三維點云和RGB圖像中的目標生成各自的三維候選區(qū)域并進行融合處理,通過全連接神經(jīng)網(wǎng)絡(luò)層連接至第二階段檢測網(wǎng)絡(luò),進行三維邊界框的精確回歸和分類,預(yù)測目標障礙物。融合處理點云的算法模型,結(jié)合圖像RPN,使得融合后的處理效果得到明顯提升,其還有許多值得研究的融合算法,如深度連續(xù)融合算法[51]、針對車輛檢測的一般融合算法[52]等。
圖3 Frustum PointNets模型[3]
3種處理方法的優(yōu)、缺點如表3所示,融合處理在對行人和騎行者這類稀疏的三維點云數(shù)據(jù)的檢測上具有很好的效果。間接處理和直接處理的方法在車輛檢測上平均精度可達82%,但是在行人和騎行者的檢測平均精度為30%~60%;融合處理的方法得益于結(jié)合了圖像檢測,不僅車輛的檢測精度超過85%,而且行人和騎行者的檢測平均精度已超過70%。
表3 不同處理方法的優(yōu)、缺點對比
硬件的發(fā)展必然使點云處理手段的重心偏向融合處理,點云的間接或直接處理最大化地利用了三維信息,但是對小目標物體的識別能力很差,需要結(jié)合圖像的高精度識別才能使三維目標檢測的結(jié)果更加準確。Frustum PointNets 的融合方式過于依賴圖像的檢測結(jié)果,與MV3D或AVOD等將圖像和點云并行處理再融合的方式有明顯的差距,在同樣的KITTI 數(shù)據(jù)測試樣本中,F(xiàn)rustum PointNets、MV3D、AVOD 的 平均精度 為81.2%、89.05%、84.41%,圖像和點云并行處理再融合的方式優(yōu)勢突出,將是融合處理點云的主流設(shè)計方法,其攻克的重點在于如何設(shè)計融合算法,引入神經(jīng)網(wǎng)絡(luò)可增強融合處理算法的適應(yīng)性和智能化。
針對車載激光雷達獲取的三維點云的目標檢測方法是實現(xiàn)汽車無人駕駛的關(guān)鍵技術(shù)。深度學(xué)習(xí)算法使得基于三維點云的目標檢測取得了突破性進展,但在訓(xùn)練大量樣本數(shù)據(jù)或在實際應(yīng)用場景下,仍會出現(xiàn)數(shù)據(jù)易失真、運行效率低、識別精度不高等問題。
綜合當前基于深度學(xué)習(xí)的三維目標檢測的研究現(xiàn)狀,本文對今后的研究提出以下建議:
a.必須有效地對原始點云進行數(shù)據(jù)預(yù)處理,減少數(shù)據(jù)采集過程中因設(shè)備或者環(huán)境產(chǎn)生的誤差,以有效提高檢測的效率和精度。
b.采用線性的卡爾曼濾波算法或者非線性的深度神經(jīng)網(wǎng)絡(luò)改進融合算法,是提高融合算法的學(xué)習(xí)性能、增強融合效果的有效途徑。
c.高清圖像的輔助可以有效彌補激光雷達點云數(shù)據(jù)稀疏的缺點,所以圖像與三維點云的融合處理方法將成為三維目標檢測的主要技術(shù)發(fā)展趨勢。