張冬冬,郭 杰,陳 陽
(陸軍工程大學(xué)野戰(zhàn)工程學(xué)院,南京 210007)
目標(biāo)檢測,作為三維數(shù)據(jù)處理與分析的基礎(chǔ)技術(shù)、基礎(chǔ)算法,是計算機視覺當(dāng)前熱門研究方向之一。數(shù)據(jù)是研究的基礎(chǔ),目前主流的三維數(shù)據(jù)表示方法主要有深度圖、三角網(wǎng)格、體素和點云。其中,點云是最簡單的一種三維數(shù)據(jù)表示方法,具有獲取簡單、易于存儲、可視性強、結(jié)構(gòu)描述精細(xì)等優(yōu)點,而且能夠方便地與深度圖、體素等其他數(shù)據(jù)格式相互轉(zhuǎn)換,已成為三維重建、三維目標(biāo)檢測、SLAM(即時定位與地圖構(gòu)建)等研究領(lǐng)域最基本的數(shù)據(jù)格式。點云定義為同一空間坐標(biāo)系下表達(dá)目標(biāo)空間分布和目標(biāo)表面光譜特性的海量離散點集合,每個點包含特定的位置信息和其他屬性信息,如顏色、激光反射強度等。與傳統(tǒng)的二維圖像相比,點云在分辨率、精度、紋理信息等方面有了很大提升,具有多屬性、可量測、高精度、高穿透、受環(huán)境和天氣因素影響小等特點,已在許多重大工程和典型領(lǐng)域得到廣泛應(yīng)用,如機器人與自動駕駛、軍事目標(biāo)偵察、森林資源調(diào)查、電力走廊安全巡檢、文物三維數(shù)字化、臨床醫(yī)學(xué)輔助診斷和治療等[1]。
早期對點云場景的目標(biāo)檢測主要是基于三維特征的識別,即利用點云的幾何空間結(jié)構(gòu)提取物體的特征信息,然后與已有的特征信息進(jìn)行比對進(jìn)而完成檢測。特征比對主要是利用支持向量機(SVM)、隨機森林(Random Forest)及Adaboost等已經(jīng)訓(xùn)練好的分類器,因此只能對分類器已經(jīng)學(xué)習(xí)到的物體進(jìn)行識別,且特征提取、數(shù)據(jù)處理仍依托人工操作,方法較為繁瑣復(fù)雜。隨著深度學(xué)習(xí)的迅速發(fā)展和廣泛應(yīng)用,研究人員提出了大量基于深度學(xué)習(xí)的三維目標(biāo)檢測方法,點云的特征提取與數(shù)據(jù)處理才漸漸變得智能自主而無需人工干預(yù),并且與傳統(tǒng)方法相比,此類模型性能得到顯著提升,達(dá)到了更高的基準(zhǔn)。
目前已有一些基于深度學(xué)習(xí)的三維目標(biāo)檢測綜述性研究[2-5],本文在前人工作基礎(chǔ)上進(jìn)行了豐富和完善,總結(jié)了基于圖像視錐、基于數(shù)據(jù)降維、基于原始點云3類三維目標(biāo)檢測方法,比較了每類方法的優(yōu)缺點,提煉了每類方法的工作原理和主要創(chuàng)新點,最后對三維目標(biāo)檢測未來研究方向進(jìn)行了展望。
隨著深度學(xué)習(xí)在二維目標(biāo)檢測的迅速發(fā)展和優(yōu)異表現(xiàn),越來越多的研究人員嘗試將其應(yīng)用于點云的目標(biāo)檢測。然而,點云本身具有稀疏性、離散性、無序性和旋轉(zhuǎn)平移不變性等,二維目標(biāo)檢測的成熟技術(shù)無法直接應(yīng)用于點云,對點云數(shù)據(jù)的處理仍面臨較大挑戰(zhàn)。
激光雷達(dá)在采集點云數(shù)據(jù)時,近處物體反射的點較多、遠(yuǎn)處物體反射的點較少,因此采集到的點云會呈現(xiàn)“近密遠(yuǎn)疏”的特點,如圖1所示。并且,采集過程中通常還會伴有一定環(huán)境噪聲,會造成采集到的點云存在很多干擾點。此外,還會因為障礙物遮擋、物體之間相互遮擋、高反射物體等情況導(dǎo)致部分物體點云不完整或空洞缺失。

圖1 Velodyne HDL-64E激光雷達(dá)采集的點云數(shù)據(jù)Fig.1 Point clouds scanned by Velodyne HDL-64E LiDAR
在應(yīng)用深度學(xué)習(xí)對點云進(jìn)行目標(biāo)檢測時,首先需要提取點云的特征。二維目標(biāo)檢測中一般利用卷積核和卷積神經(jīng)網(wǎng)絡(luò)遍歷整個圖像提取特征,借鑒二維目標(biāo)檢測的方法,采用三維卷積核和單純的三維卷積方法遍歷整個點云提取特征,會帶來兩個問題:一是消耗非常巨大,因為點云廣泛分布在三維空間內(nèi),遍歷整個點云會帶來巨大的內(nèi)存和時間消耗;二是大部分卷積為無效特征提取,因為點云的稀疏性,大部分空間不存在點,會導(dǎo)致無效空卷積。
點云的離散性主要表現(xiàn)在兩個方面:(1)空間分布離散,點云中每個點都是獨立掃描相互獨立的,不依賴于其他點而單獨存在,從整體上看,點云是一個離散的、非結(jié)構(gòu)化的點集合,不定義在某個區(qū)域內(nèi),相鄰點之間的距離也不固定,因此建立點與點之間的關(guān)系較難;(2)組織結(jié)構(gòu)離散,簡而言之就是不同數(shù)量的點云可以表示同一物體,點云通過其整體幾何結(jié)構(gòu)信息來描述物體,而不依賴點的數(shù)量,因此描述一個物體的點云其數(shù)量是不確定的。如圖2所示,描述同一架飛機的點云稀疏稠密不同,左圖能夠描述飛機的更多細(xì)節(jié),但右圖也可判斷出物體的類別。雖然人眼能清晰地分辨出二者不同,并判斷其均屬于飛機類別,但神經(jīng)網(wǎng)絡(luò)卻無法簡單實現(xiàn)這一點。

圖2 不規(guī)則離散分布在空間中的三維點云Fig.2 Irregularly and discretely distributed point cloudsin space
點云本質(zhì)上是空間中一群點的集合,每個點包含了大量屬性信息。從數(shù)學(xué)的角度或數(shù)據(jù)結(jié)構(gòu)的角度,點云應(yīng)當(dāng)由“集合”來描述,集合中一個元素代表點云中一個點。集合中每個元素的地位是相同的,元素之間是無序的。同樣地,點云中每個點的地位也都是相同的,點與點之間是無序的,存儲在集合中點的先后順序?qū)τ诩隙詿o關(guān)緊要,也不會因為點存儲的先后順序改變點云的性質(zhì)特征。然而,神經(jīng)網(wǎng)絡(luò)卻對輸入數(shù)據(jù)的排序非常敏感,點的存儲順序直接影響神經(jīng)網(wǎng)絡(luò)的理解學(xué)習(xí)。如圖3所示,假設(shè)一個物體的點云數(shù)據(jù)由7個點組成,左圖將其表示為[P1,P2,P3,P4,P5,P6,P7],右圖將其表示為[P4,P6,P5,P7,P3,P1,P2],顯然不論張量中點的順序如何變化,映射回三維空間中仍然表示的是同一個物體。然而,以左圖張量為輸入訓(xùn)練出來的神經(jīng)網(wǎng)絡(luò)模型很可能無法對右圖張量做出正確預(yù)測。

圖3 同一點云的不同張量表達(dá)Fig.3 Different tensor expressions of the same point clouds
對于點云而言,無論如何旋轉(zhuǎn)或平移,點與點的相對位置始終保持不變,點云所表示物體的形狀和大小也不會發(fā)生任何變化,如圖4所示,它是一種剛體變換。然而,當(dāng)對點云進(jìn)行旋轉(zhuǎn)或平移時,點云中的點的坐標(biāo)會發(fā)生相應(yīng)變化。因此,旋轉(zhuǎn)或平移雖然并未改變物體的空間結(jié)構(gòu),但卻改變了表達(dá)其空間結(jié)構(gòu)的三維坐標(biāo)。神經(jīng)網(wǎng)絡(luò)需要適應(yīng)點云的這種旋轉(zhuǎn)平移不變性質(zhì),無論如何旋轉(zhuǎn)或平移,無論參考坐標(biāo)系怎樣變化,均應(yīng)輸出一致結(jié)果。

圖4 點云的旋轉(zhuǎn)平移不變性Fig.4 Rotation and translation invariance of point clouds
基于圖像視錐的方法,結(jié)合了二維圖像的高分辨率優(yōu)勢和三維點云的精確位置信息優(yōu)勢來進(jìn)行目標(biāo)檢測,其主要思想是利用現(xiàn)有成熟的二維目標(biāo)檢測算法,首先從二維圖像中獲得目標(biāo)的2D邊界框,然后利用二維圖像與三維點云的對應(yīng)關(guān)系,將該2D邊界框映射到三維點云中得到一個3D錐體候選區(qū)域,再從該區(qū)域提取目標(biāo)的3D包圍盒。此類方法的典型代表為Frustum PointNets[6],后續(xù)的基于圖像視錐的研究工作大多是在此基礎(chǔ)上進(jìn)行改進(jìn)的,其工作原理如圖5所示,給定一個RGB-D數(shù)據(jù),首先使用卷積神經(jīng)網(wǎng)絡(luò)在RGB圖像中生成目標(biāo)的2D邊界框,然后從點云中獲得其對應(yīng)的3D視錐,最后利用PointNet++[7]來學(xué)習(xí)各個3D視錐的點云特征,從而提取目標(biāo)的3D包圍盒。

圖5 Frustum PointNets三維目標(biāo)檢測原理Fig.5 Frustum PointNets 3Dobject detection principle
由于Frustum PointNets僅利用了圖像中的位置信息,并沒有使用其顏色信息,PointFusion[8]對其進(jìn)行了改進(jìn),首先通過ResNet提取2D邊界框內(nèi)圖像的特征(包括位置信息和顏色信息),然后與3D視錐點云特征進(jìn)行融合。
SIFRNet[9]隨后對Frustum PointNets再次進(jìn)行了改進(jìn),如圖6所示,提出了一種尺度不變和特征重加權(quán)網(wǎng)絡(luò)(Scale Invariant and Feature Reweighting Network),包含Point-UNet、T-Net、Point-SENet三個模塊,Point-UNet模塊主要是對3D視錐點云進(jìn)行分割,捕獲點云的不同朝向信息以及強魯棒性的形狀尺度;T-Net模塊主要是對物體3D包圍盒中心進(jìn)行估計;Point-SENet模塊預(yù)測輸出最終的3D包圍盒。

圖6 SIFRNet目標(biāo)檢測流程意圖Fig.6 Thepipelineof SIFRNet for 3Dobject detection
Shin等[10]提出了RoarNet,解決了2D邊界框投影到3D空間中LiDAR和相機兩個傳感器同步的問題。F-Con?vNet[11]在Frustum PointNets網(wǎng)絡(luò)的基礎(chǔ)上,改進(jìn)了視錐區(qū)域點云的特征提取方式,如圖7所示,具體就是在錐體軸上產(chǎn)生一系列的錐體,然后提取各個錐體內(nèi)點云的特征,將點云的逐點特征轉(zhuǎn)為視錐體級特征,進(jìn)而利用全卷積網(wǎng)絡(luò)(FCN)回歸3D包圍盒,這樣不僅可以避免大范圍遍歷點云,提升檢測效率,還可以在回歸時減少對稀疏前景點的過度依賴,提高檢測性能。

圖7 F-ConvNet視錐特征提取Fig.7 F-Convnet frustumfeatureextraction
基于數(shù)據(jù)降維的方法,核心思想就是將不規(guī)則、稀疏無序、數(shù)據(jù)量巨大的點云數(shù)據(jù)降維轉(zhuǎn)化后再進(jìn)行處理,以節(jié)約內(nèi)存和降低時間消耗。數(shù)據(jù)降維的處理方法有多種,較為典型的主要有以下3類。
(1)基于偽圖片的方法,即將三維點云轉(zhuǎn)化為二維偽圖片數(shù)據(jù),然后再運用已經(jīng)相對成熟的二維目標(biāo)檢測技術(shù)進(jìn)行檢測。該方法的典型代表是PointPillars[12]和CenterPoint[13]。PointPillars能夠在保證一定精度的同時實現(xiàn)較快的檢測速度,其網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示,包含3個部分:Pillar Feature Net將三維點云轉(zhuǎn)化為二維偽圖片(Pseudo image),首先根據(jù)點云的X軸、Y軸坐標(biāo)將點云劃分到一個個Pillar(柱體)中,然后提取Stacked Pillars(堆疊柱體)的特征,并對Pillar所在維度進(jìn)行Max Pool?ing(最大池化)操作得到Learned Features(學(xué)得特征),最后將其轉(zhuǎn)化為二維偽圖片;Backbone利用二維卷積對偽圖片進(jìn)行特征提取,Detection Head主要利用SSD回歸物體的3D包圍盒。CenterPoint主要從原始點云中學(xué)習(xí)生成表征目標(biāo)中心位置的鳥瞰熱力圖(表示為M∈?W×H×F),然后利用二維卷積找到物體的大致中心點(熱力圖的峰值位置),并使用中心特征回歸物體的位置和方向。

圖8 PointPillars網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 Network framework of PointPillars
(2)基于多視圖的方法,主要從前視、俯視等不同視角將三維點云數(shù)據(jù)進(jìn)行二維化處理,得到激光雷達(dá)前視圖、鳥瞰圖(BEV)等特征圖,然后對這些特征進(jìn)行融合,再應(yīng)用2D目標(biāo)檢測器進(jìn)行檢測,典型的方法有BirdNet[14]、MV3D[15]和AVOD[16]等。BirdNet將點云投影轉(zhuǎn)化為高度、強度和密度的三通道BEV特征圖(其中密度進(jìn)行歸一化預(yù)處理),然后在BEV特征圖上應(yīng)用2D目標(biāo)檢測器,結(jié)合高度信息(將物體的最大高度減去地面估計高度)最后得到3D包圍盒。BirdNet的重要貢獻(xiàn)是提出密度歸一化操作,使得高分辨率點云中訓(xùn)練的模型可以在較低分辨率的點云上使用。MV3D首先從多通道特征圖(由高度、密度和反射強度組成)中計算候選區(qū)域,然后將候選區(qū)域映射回鳥瞰圖(BV)、前視圖(FV)和圖片(RGB)3個視圖中,如圖9所示,利用3個視圖的ROI區(qū)域進(jìn)行ROI pooling獲得3個視圖特征并融合,最后進(jìn)行目標(biāo)分類和3D包圍盒回歸。AVOD對MV3D進(jìn)行了改進(jìn),舍棄了MV3D中前視圖(FV)特征輸入,僅使用鳥瞰圖(BV)和圖片(RGB),使用裁剪、調(diào)整特征圖尺寸大小和按位均值融合代替了MV3D的ROIpool?ing進(jìn)行多模態(tài)特征融合,并且進(jìn)行了兩輪RPN區(qū)域建議,提高了小物體(如行人)的檢測效果。

圖9 MV3D網(wǎng)絡(luò)結(jié)構(gòu)Fig.9 Network framework of MV3D
(3)基于體素網(wǎng)格的方法,首先將三維點云降維轉(zhuǎn)化為一個個堆疊的、相同大小的規(guī)則體素網(wǎng)格,然后應(yīng)用3D卷積對體素網(wǎng)格進(jìn)行特征學(xué)習(xí)提取,最后回歸預(yù)測物體的類別和位置,典型的方法有VoxelNet[17]、SEC?OND[18]等。VoxelNet網(wǎng)絡(luò)結(jié)構(gòu)如圖10所示,首先將點云劃分為等間距體素,利用VFE層(voxel feature encoding layer)提取體素特征,然后將得到的體素特征降維成2D鳥瞰圖,最后使用RPN網(wǎng)絡(luò)輸出檢測結(jié)果。SECOND對其進(jìn)行了改進(jìn),使用稀疏3D卷積替換了普通3D卷積,大大提高了推理效率。目前,稀疏3D卷積已成為體素點云特征提取的主要范式。

圖10 VoxelNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.10 Network framework of VoxelNet
基于原始點云的方法,直接作用于原始三維點云提取點云的特征,然后回歸物體的3D包圍盒,無需借助2D圖像邊界框獲得3D點云視錐,也無需進(jìn)行多視圖投影或體素化等數(shù)據(jù)降維操作。典型的方法有Poin?tRCNN[19]、VoteNet[20]和3DSSD[21]等。
PointRCNN是一種兩階段網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖11所示,第一階段進(jìn)行前景點和背景點分割,生成少量高質(zhì)量初始檢測盒,首先利用PointNet++對原始點云進(jìn)行特征提取,然后進(jìn)行Foreground Point Segmentation(前景點分割),同時額外增加一個Bin-based 3D Box Genera?tion(基于Bin損失的3D包圍盒生成網(wǎng)絡(luò))來輸出3D proposals(候選建議),Bin損失方法核心思想是將復(fù)雜困難的3D包圍盒回歸任務(wù)轉(zhuǎn)化為簡單容易的分類加回歸任務(wù);第二階段對初始3D包圍盒進(jìn)行細(xì)化精修,首先利用Point Cloud Region Pooling(點云區(qū)域池化)對上述獲得的3Dproposals進(jìn)行局部特征提取,并將該局部特征進(jìn)行Canonical Transformation(規(guī)范變換),即對每個pro?posal建立一個獨立坐標(biāo)系,坐標(biāo)系的中心點為proposal的中心,X軸指向物體朝向,然后將其送入MLP獲得新特征,并與全局語義特征堆疊融合,最后利用融合特征進(jìn)行3D包圍盒優(yōu)化和置信度預(yù)測。

圖11 PointRCNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.11 Network framework of PointRCNN
VoteNet是一個基于深度點集網(wǎng)絡(luò)和霍夫投票的端到端3D目標(biāo)檢測網(wǎng)絡(luò),如圖12所示,整個網(wǎng)絡(luò)分為兩部分:第一部分處理現(xiàn)有的點云以生成Votes(投票),首先利用Point cloud feature learning backbone(點云特征學(xué)習(xí)骨干網(wǎng)絡(luò))提取原始點云(N×3)的特征,生成Seeds(種子點),然后利用Hough voting with deep networks(霍夫投票深度網(wǎng)絡(luò))為每個Seed學(xué)習(xí)一個3D空間的偏置和特征空間上的偏置以生成Votes(一些靠近3D物體質(zhì)心的虛擬點);第二部分利用Votes來預(yù)測物體類別和3D包圍盒,首先使用FPS(最遠(yuǎn)點采樣)以及ball query(球查詢)的方式采樣聚合Votes得到K個Vote clusters(投票群集),然后經(jīng)過兩層MLP輸出預(yù)測結(jié)果。

圖12 VoteNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.12 Network framework of VoteNet
3DSSD主要有3點貢獻(xiàn):一是開創(chuàng)性地將單階段目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu)引入到三維目標(biāo)檢測中,在保證性能與兩階段檢測器相當(dāng)?shù)那闆r下大幅度提高了檢測效率;二是提出了一種融合空間距離與語義特征距離為度量新的采樣方法F-FPS,并與距離最遠(yuǎn)點采樣方法D-FPS、融合采樣策略(F-FPS和D-FPS結(jié)合)進(jìn)行了對比實驗;三是提出了Candidate Generation Layer(候選點生成層),將采樣初始點坐標(biāo)向其對應(yīng)實例的中心點進(jìn)行偏移修正,提高了3D包圍盒質(zhì)量。
表1匯總了本文提及的三維目標(biāo)檢測各方法模型的提出年份、輸入數(shù)據(jù)類型、關(guān)鍵技術(shù)、在KITTI測試集汽車類別上的3D檢測性能和檢測時間。

表1 基于深度學(xué)習(xí)的三維目標(biāo)檢測方法歸納與總結(jié)Tab.1 Induction and summary of 3D object detection methods based on deep learning
基于圖像視錐的方法,將目標(biāo)鎖定到2D邊界框?qū)?yīng)的3D視錐范圍中,相對于從整個三維點云中搜索目標(biāo)而言,僅需從3D視錐區(qū)域內(nèi)搜索目標(biāo),大大縮小了搜索空間,提高了搜索效率和檢測精度。但是,順序的操作流程也導(dǎo)致其性能受到二維圖像檢測器的限制。基于數(shù)據(jù)降維的方法,將三維點云降維轉(zhuǎn)化成偽圖片、多視圖、體素后再進(jìn)行目標(biāo)檢測,能夠較好地利用成熟的2D目標(biāo)檢測技術(shù),并且可以擁有較高的檢測速度。但是,數(shù)據(jù)降維會導(dǎo)致點云數(shù)據(jù)信息隱性丟失。基于原始點云的方法,直接對原始的三維點云進(jìn)行處理,保留了點云的原始數(shù)據(jù)特征,但同樣不可避免存在一些問題:一是難以有效進(jìn)行特征提取,二是難以處理大規(guī)模點云。
現(xiàn)有的三維目標(biāo)檢測方法達(dá)到了較高的精度和速度,但仍存在一定局限性。基于前述內(nèi)容,對三維目標(biāo)檢測展望如下。
(1)隨著傳感器技術(shù)的發(fā)展和傳感器成本的降低,未來的三維目標(biāo)檢測數(shù)據(jù)來源不僅僅是相機采集的圖片和LiDAR采集的點云,還可能包括視頻、radar等多模態(tài)數(shù)據(jù),多模態(tài)數(shù)據(jù)融合的目標(biāo)檢測方法可能會是未來發(fā)展趨勢。
(2)現(xiàn)有的三維目標(biāo)檢測模型對距離較近、尺寸較大、點云稠密的目標(biāo)檢測效果較好,但對距離較遠(yuǎn)、尺寸較小、點云稀疏以及存在遮擋重疊情況的目標(biāo)檢測效果較差。實際應(yīng)用中的目標(biāo)檢測情況十分復(fù)雜,所以針對這一問題的解決方案非常值得挖掘和探索。
(3)三維數(shù)據(jù)標(biāo)注成本較高,所以現(xiàn)有的目標(biāo)檢測模型大多是在標(biāo)注充分的公開數(shù)據(jù)集訓(xùn)練和實驗的。對于特定需求場景下的點云目標(biāo)檢測,由于缺乏標(biāo)注數(shù)據(jù)集大多無法展開。弱監(jiān)督或無監(jiān)督的目標(biāo)檢測技術(shù)能夠有效解決此問題,可能會是未來的一個重要研究方向。