楊積升,章 云,李 東
(廣東工業(yè)大學(xué) 自動化學(xué)院,廣東 廣州 510006)
無人車、無人機、虛擬現(xiàn)實等技術(shù)正在潛移默化地改變著現(xiàn)代人的出行以及生活方式。谷歌、百度先后推出了自動駕駛無人車Waymo,Robotaxi。大疆等公司推出的無人機產(chǎn)品,也可以自動感知環(huán)境,并自主飛行。高德等地圖軟件,將虛擬現(xiàn)實融合進導(dǎo)航,方便用戶更好地使用。上述產(chǎn)品或應(yīng)用軟件無一例外,都需要使用三維空間的目標檢測來實現(xiàn)環(huán)境的感知。然而,目前的三維目標檢測算法,精度仍然無法使無人車、無人機等產(chǎn)品安全、穩(wěn)定、可靠運行。到2016年為止,谷歌無人車共發(fā)生了25起事故[1]。因此,高精度的三維目標檢測是目前迫切需要的技術(shù)。
雖然深度學(xué)習(xí)技術(shù)已經(jīng)在結(jié)構(gòu)規(guī)則的二維圖像任務(wù)上表現(xiàn)出優(yōu)秀的能力,甚至在人臉檢測、交通車檢測等領(lǐng)域落地,但是,這些技術(shù)無法直接用于結(jié)構(gòu)無序的三維點云。
近年來,使用深度學(xué)習(xí)技術(shù)進行三維點云目標檢測成了研究熱點[2-4]?,F(xiàn)有的基于深度學(xué)習(xí)的三維點云目標檢測算法,一般先后執(zhí)行以下的部分或者所有步驟,如圖1所示。特征提取是對點云的形狀、顏色、反射強度等信息進行平滑與抽象,便于后續(xù)的聚類和最終預(yù)測;聚類與分組是為了將場景中的多個目標分離,使得每個分組對應(yīng)單個目標;包圍框回歸是對已提取的特征進行解碼,映射出目標包圍框的參數(shù)。例如,VoxelNet[5]借鑒了YOLO[6]的思想,先將輸入點云劃分進體素網(wǎng)格,每個網(wǎng)格作為一個分組,并假定每個分組最多存在一個物體中心點。接著使用VFE(Voxel Feature Encoding,體素特征編碼)模塊對每個分組進行特征提取。最后使用RPN(Region Proposal Network,區(qū)域提案網(wǎng)絡(luò))模塊進行包圍框預(yù)測。而F-PointNet[7]使用二維圖像作為輔助,利用二維圖像檢測器生成檢測候選框,經(jīng)過投影得到點云子區(qū)域,每個子區(qū)域作為一個分組,只包含一個目標物體。于是將點云多目標檢測轉(zhuǎn)化成了單目標檢測問題,最后使用Pointnet[8]回歸出物體包圍框的參數(shù)。然而在實際應(yīng)用中,并不是所有場景都有對應(yīng)的二維圖像,所以F-PointNet具有輸入形式的局限性。為了解決這個局限性,VoteNet[9]在此基礎(chǔ)上,巧妙地使用霍夫投票方法,產(chǎn)生若干只包含單目標的點云子區(qū)域,消除了對二維圖像的依賴,直接使用點云數(shù)據(jù)生成分組。PV-RCNN[10]結(jié)合了體素和點輸入的優(yōu)勢,使用體素卷積網(wǎng)絡(luò)生成候選分組,使用PointNet模塊對各個分組內(nèi)的點集進行特征提取以及包圍框回歸。隨著注意力機制被大量用于二維視覺神經(jīng)網(wǎng)絡(luò)上,并展現(xiàn)出良好的性能,也有學(xué)者嘗試將注意力機制應(yīng)用在三維物體檢測上,并提出了TANet[11]。此網(wǎng)絡(luò)同時利用了通道注意力、點注意力、體素注意力機制,在自動駕駛場景的數(shù)據(jù)集中展現(xiàn)出優(yōu)異的性能。上述的方法都通過增加各種功能模塊改善網(wǎng)絡(luò)性能,而本文創(chuàng)新性地通過改進網(wǎng)絡(luò)特征學(xué)習(xí)部分的多層感知機,簡單且高效地提升了點云檢測網(wǎng)絡(luò)性能。
圖1 三維點云目標檢測技術(shù)流程圖Fig.1 3D point cloud object detection technology flowchart
本文提出了一種高精度的三維點云目標檢測網(wǎng)絡(luò)ResVoteNet(Residual VoteNet),是對VoteNet[5]的改進。點云目標檢測的可視化結(jié)果如圖2所示。
圖2 點云目標檢測可視化Fig.2 Visualization of point cloud object detection
該算法以一種簡單且有效的形式,將ResNet[12]設(shè)計成點云網(wǎng)絡(luò)的多層感知機,提出殘差特征提取模塊以及殘差上采樣模塊,并融合進VoteNet網(wǎng)絡(luò)中,有效地增強了網(wǎng)絡(luò)的表達能力,明顯提高了目標檢測的精度。本文的主要貢獻有以下幾點:
(1)提出了殘差特征提取模塊以及殘差上采樣模塊,集成進VoteNet框架,形成高精度的端到端點云目標檢測網(wǎng)絡(luò)ResVoteNet。
(2)ResVoteNet在公共數(shù)據(jù)集SCANNET和SUNRGBD上,精度均明顯超越當(dāng)前點云目標檢測的先進算法。
(3)使用消融實驗分析了ResNet結(jié)構(gòu)在點云卷積神經(jīng)網(wǎng)絡(luò)中的有效性。
本文的基線網(wǎng)絡(luò)VoteNet的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。輸入數(shù)據(jù)維度為N×3,3個通道代表坐標值(x,y,z)。經(jīng)過特征學(xué)習(xí)模塊后,將輸入數(shù)據(jù)下采樣到M個點,提取了尺寸為C的特征通道,并把點集相應(yīng)的坐標通道進行保留。投票模塊利用多層感知機對上一階段的特征圖進行學(xué)習(xí),預(yù)測出各個點所在物體質(zhì)心的坐標(xc,yc,zc),用這個方法將點云聚類到待檢測物體的質(zhì)心處。接著使用FPS(Farthest Point Sampling,最遠點搜索法),將聚類后的點云分成K個分組。分組內(nèi)的點集存在至多一個待檢測目標,將多目標檢測轉(zhuǎn)化成了單目標檢測問題。最后使用包圍框回歸網(wǎng)絡(luò),對每個分組的點云特征進行預(yù)測,得到單個目標物體的包圍框參數(shù)Cout。3D NMS (3D Non-Maximum Suppression,三維非極大值抑制)作為網(wǎng)絡(luò)的后處理,將得分低的、互相重疊的包圍框過濾掉,得到最終K′個目標物體的檢測結(jié)果。
圖3 VoteNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network architecture of VoteNet
本文在VoteNet算法的基礎(chǔ)上進行改進,將在圖像類卷積神經(jīng)網(wǎng)絡(luò)中表現(xiàn)優(yōu)異的ResNet骨架融合進VoteNet中,形成更加高精度的網(wǎng)絡(luò)ResVoteNet。具體來說,是將網(wǎng)絡(luò)的多層感知機,構(gòu)造成能處理點云數(shù)據(jù)的ResNet的形式,并分別提出殘差特征提取模塊以及殘差上采樣模塊來代替原來的對應(yīng)模塊。本文2.3、2.4節(jié)將會詳細講解這兩個模塊。
對比起圖形卷積,點云卷積有它的特殊性。二維圖像與三維點云數(shù)據(jù)的表示形式不相同,圖像是以位置關(guān)系為參考的規(guī)則的三維張量(W,H,C)表示,而點云是以二維矩陣(N,C)表示,具有無序性。圖像卷積的卷積核尺寸一般為3、5、7等大于1的數(shù)值,這樣可以在卷積的過程中增大感受野,同時提取圖像的局部鄰域信息。而由于點云數(shù)據(jù)表示具有無序性,無法使用卷積提取局部領(lǐng)域信息,只能提取單個點的信息,并通過max pool(最大值池化),average pool(平均值池化)等對稱函數(shù)整合提取局部信息。因此,與二維圖像卷積相比點云卷積的卷積核尺寸只能為1。
了解完點云卷積的特點,這一節(jié)將介紹如何構(gòu)造點云卷積殘差塊。圖4(a),(b)分別是原始ResNet網(wǎng)絡(luò)中的基礎(chǔ)殘差塊和“瓶頸”殘差塊?!捌款i”殘差塊通過卷積核尺寸的變化,增加網(wǎng)絡(luò)的非線性以及減小計算成本。而考慮到點云卷積的卷積核尺寸只能為1,所以“瓶頸”殘差塊不適用于點云卷積。于是改造如圖4(a)所示的基礎(chǔ)殘差塊,將卷積核替換成1×1,并將輸出通道大小改成相應(yīng)需要的,得到如圖4(c)所示的點云殘差塊。通過這種簡單而實用的方法,便構(gòu)造了適用于提取點云特征的點云卷積殘差塊。
圖4 圖像與點云殘差塊Fig.4 Residual block of images and point clouds
該模塊是對VoteNet的特征提取模塊的改進,加入了點云殘差塊。該模塊的作用包括:(1)通過點云殘差塊,學(xué)習(xí)點云的特征,從中提取出更加高階的視覺信息;(2)下采樣點云,減少計算量。
如圖5所示,通過最遠點搜索法(FPS),將輸入的n個點,下采樣到np個點。接著,利用下采樣的np個點作為球心位置,r為半徑,通過球查詢算法,在點云特征中,對每個球內(nèi)部采樣出ns個點,形成大小為np×ns×m的組特征。組特征經(jīng)過點云殘差塊,學(xué)習(xí)出新的組特征。最終使用對稱函數(shù)max pool取消點云的無序性,得到模塊的輸出特征np×C。
圖5 殘差特征提取模塊Fig.5 Residual feature extraction module
作為網(wǎng)絡(luò)的特征學(xué)習(xí)部分的解碼模塊,殘差上采樣模塊的作用包括:(1)恢復(fù)點的數(shù)量。經(jīng)過殘差特征提取模塊,點的個數(shù)減少了,為了滿足網(wǎng)絡(luò)后續(xù)模塊對點個數(shù)的需求,需要恢復(fù)點的個數(shù)。(2)融合高階和低階視覺信息。深的層學(xué)習(xí)出來的特征,更有利于分辨物體的分類信息,而淺的層學(xué)習(xí)到的特征,更有利于分辨物體的邊緣等位置信息[13]。在目標檢測任務(wù)中,需要兼顧物體分類信息以及位置信息,因此,有必要融合高階和低階的視覺信息。
如圖6所示,需要將第N+1層的n1個點,上采樣到n個點,并且位置與第N層的n個點一致。首先使用k近鄰插值法,根據(jù)第N+1和第N層點的位置關(guān)系,將第N+1層的特征n1×C1上采樣并插值,得到特征圖n×C1。接著,上采樣特征與第N層特征在通道這個維度進行拼接,得到大小為n×(C0+C1)的拼接特征。將該特征輸入點云殘差塊,學(xué)習(xí)出融合了低階與高階視覺信息的特征,大小為n×C。
圖6 殘差上采樣模塊Fig.6 Residual up-sampling module
首先介紹使用的數(shù)據(jù)集、評價指標、實驗細節(jié);然后將本文提出的方法與其他點云目標檢測的先進算法進行比較;最后,通過消融實驗證明本文提出的點云殘差模塊的有效性以及分析其他因素的影響。
本文使用了2個公共點云數(shù)據(jù)集—ScanNet[14]和SUN RGB-D[15]。ScanNet是一個利用RGB-D視頻重建的大型室內(nèi)點云數(shù)據(jù)集,它包含1 513幀標注的點云數(shù)據(jù)。SUN RGB-D也是一個大型的室內(nèi)點云數(shù)據(jù)集,重建點云方法與ScanNet的類似,它包含10 335幀標注的點云數(shù)據(jù)。與基線網(wǎng)絡(luò)VoteNet一致,ScanNet數(shù)據(jù)集被劃分成包含1 201幀的訓(xùn)練集和包含312幀的校驗集;Sun RGB-D數(shù)據(jù)集被劃分成包含5 285幀的訓(xùn)練集和包含5 050幀的校驗集。
本文使用文獻[15]提出的評價指標,評估預(yù)測的物體檢測框的準確性。通過對比預(yù)測的物體檢測框和真實的物體檢測框,計算網(wǎng)絡(luò)對各個分類的預(yù)測結(jié)果的準確率AP(Average Precision)及所有分類準確率AP的平均值,得到綜合準確率mAP(mean Average Precision)。首先,對所有預(yù)測的檢測框和實際檢測框,計算它們兩兩之間的IoU,稱為一個匹配對(pair)的IoU,然后對所有匹配對的IoU進行得分降序排列。接著,選擇IoU值最大的檢測框匹配對,并將這兩個檢測框標記為不可見。重復(fù)此過程,直到IoU低于一個閾值τ(文獻[15]中τ使用0.25)。對于每個預(yù)測框和真實框匹配對,比較它們的分類標簽,以便知道預(yù)測的分類正確與否。令|M|為IoU大于τ的匹配對的數(shù)量,|P|為預(yù)測框的數(shù)量,則閾值為τ的AP計算公式AP@τ如式(1)所示。表1~表3的數(shù)據(jù),均用百分數(shù)表示,即(|M|/|P|)×100。
本文的實驗在Ubuntu16.04操作系統(tǒng)中部署。編程語言是Python3.6,深度學(xué)習(xí)框架為Pytorch1.4。使用GPU加速工具CUDA9.2。硬件配置主要包括以下:CPU×1,型號為Intel(R)Xeon(R)Gold 6271C CPU @2.60 GHz;GPU×1,型號為Tesla V100-SXM2 16 GB。網(wǎng)絡(luò)一共訓(xùn)練180個輪次。最小化loss的優(yōu)化器使用Adam。學(xué)習(xí)率初始值為0.001,隨著訓(xùn)練進行分段常量衰減,分別在第80,120,160個輪次,衰減為原來的0.1倍。L2懲罰系數(shù)初始值為0.5,每訓(xùn)練20步,衰減為原來的0.5倍,直到減小到0.001,便停止衰減。所有訓(xùn)練方式與基線模型VoteNet保持一致。
本文提出的算法在數(shù)據(jù)集SCANNET和SUNRGBD上實驗論證,并與其他有代表性、且性能表現(xiàn)領(lǐng)先的目標檢測算法對比。DSS[16]和3D-SIS[17]的網(wǎng)絡(luò)都融合了3D體素輸入和2D圖像輸入,提出了基于區(qū)域候選框的雙階段目標檢測網(wǎng)絡(luò)。不同的是,DSS在輸出階段,通過全連接層進行3D體素信息和2D圖像信息的通道連結(jié);而3D-SIS將2D圖像提取出的特征,映射到3D體素,進行體素形式的通道連結(jié)。相比DSS,3D-SIS在候選框生成和目標框回歸階段,都使用了3D和2D融合的信息作為輸入,因此具有更好的性能表現(xiàn)。2D-driven[18]和F-PointNet[7]都使用2D圖像檢測器生成2D物體候選框并映射到三維空間,得到只包含一個物體的截錐3D候選框,并對候選框內(nèi)的物體進行目標檢測框回歸。Cloud of Gradients[19]設(shè)計了3D HoG(3D Histogram of Oriented Gradients,三維方向梯度直方圖)特征,并提出了基于移動窗口的檢測器。MRCNN 2D-3D直接將Mask-RCNN[20]的實例分割結(jié)果映射到三維空間,并根據(jù)三維空間的實例分割結(jié)果獲得目標檢測框。GSPN[21]使用生成網(wǎng)絡(luò)模型獲取候選檢測框,提出了一個框架類似Mask-RCNN,而網(wǎng)絡(luò)骨架是Pointnet的點云檢測網(wǎng)絡(luò)。VoteNet[9]是本文參考的基線網(wǎng)絡(luò),先利用PointNet++[22]作為骨架產(chǎn)生物體中心投票點,再依據(jù)投票點的位置進行分組,每個組作為一個物體的候選位置,使用PointNet++的特征提取模塊,進行目標檢測框的參數(shù)回歸。
從表1和表2可知,本文提出的方法ResVoteNet在數(shù)據(jù)集SUN-RGBD和SCANNET上,平均精度mAP均超越了所有當(dāng)前先進方法,達到59.9%,和61.1%,比當(dāng)前所有算法提高了至少2.2%和2.5%。在SUN-RGBD數(shù)據(jù)集中,70%類別的檢測精度高出當(dāng)前所有先進方法。圖7是ResVoteNet與基線網(wǎng)絡(luò)VoteNet檢測結(jié)果的可視化。
表1 不同方法在SUN-RGBD上精度AP@0.25的對比Table 1 AP@0.25 comparison of different methods on SUN-RGBD %
表2 不同方法在SCANNET上AP@0.25的對比Table 2 AP@0.25 comparison of different methods on SCANNET %
圖7 ResVoteNet與基線網(wǎng)絡(luò)VoteNet檢測結(jié)果可視化Fig.7 Visualization of the detection results of ResVoteNet and the baseline network VoteNet
為了探索網(wǎng)絡(luò)結(jié)構(gòu)中不同配置對網(wǎng)絡(luò)整體檢測精度的影響,本文進行了消融實驗,分別討論殘差特征提取模塊、殘差上采樣模塊(如2.3,2.4節(jié)所描述)、ResNet結(jié)構(gòu)和卷積層數(shù)對網(wǎng)絡(luò)檢測精度的影響。首先,分別控制殘差特征提取模塊與殘差上采樣模塊的引入,探索由此帶來的網(wǎng)絡(luò)檢測精度的改變。接著探索整體加入ResNet結(jié)構(gòu),即同時使用殘差特征提取模塊和殘差上采樣模塊對網(wǎng)絡(luò)檢測精度的影響。最后,改變網(wǎng)絡(luò)中卷積層的數(shù)量,探索最佳的卷積層個數(shù)。其中,由于VoteNet的特征提取模塊和采樣模塊一共有7組卷積層,共19個卷積(其中,每個特征提取模塊有3個卷積,每個上采樣模塊有2個卷積),為了保證網(wǎng)絡(luò)結(jié)構(gòu)的對稱性,本文以7為步長,對網(wǎng)絡(luò)的卷積層數(shù)量進行增減變化。
如表3所示,殘差特征提取模塊與殘差上采樣模塊,都對網(wǎng)絡(luò)檢測精度的提升有貢獻。其中,殘差上采樣的模塊對精度提升的貢獻較小,在SCANNET和SUN-RGBD兩個數(shù)據(jù)集中,提升的幅度都小于1%;而殘差特征提取模塊的貢獻較大,在兩個數(shù)據(jù)集中,都將檢測精度提高了超過1.5%。兩個模塊貢獻的差異,可歸因于網(wǎng)絡(luò)結(jié)構(gòu)中兩個模塊的覆蓋度,如圖3所示,網(wǎng)絡(luò)只有2個上采樣模塊,而有5個特征提取模塊。
表3 殘差模塊實驗精度mAP@0.25對比Table 3 mAP@0.25 comparison of different Residual modules %
如圖8和圖9所示,對本文網(wǎng)絡(luò)增減ResNet結(jié)構(gòu)和改變卷積層數(shù)配置,并在數(shù)據(jù)集SCANNET和SUN-RGBD上進行實驗,記錄實驗結(jié)果并繪制了折線圖。其中,wres表示本文提出的方法ResVoteNet,即融合了ResNet結(jié)構(gòu)的VoteNet,w/o res表示無ResNet結(jié)構(gòu)的網(wǎng)絡(luò),即基線網(wǎng)絡(luò)VoteNet。由圖8和圖9可知,ResNet結(jié)構(gòu)使網(wǎng)絡(luò)具有魯棒性,不管是在不同的數(shù)據(jù)集中,還是使用不同的卷積層個數(shù)配置,ResNet都能使網(wǎng)絡(luò)的精度維持在較高水平,并明顯超越?jīng)]有ResNet結(jié)構(gòu)的基線網(wǎng)絡(luò)VoteNet。此外,19層是網(wǎng)絡(luò)的最佳卷積層數(shù)量,不論是在ResVoteNet還是在VoteNet數(shù)據(jù)集中,增加或者減少卷積層的數(shù)量,都會使網(wǎng)絡(luò)的檢測精度有不同程度的下降。
圖8 SCANNET數(shù)據(jù)集實驗結(jié)果Fig.8 Experiment results for SCANNET
圖9 SUN-RGBD數(shù)據(jù)集實驗結(jié)果Fig.9 Experiment results for SUN-RGBD
本文通過改進算法VoteNet,提出了一種融合殘差網(wǎng)絡(luò)的高精度點云目標檢測方法ResVoteNet。該方法設(shè)計了適用于點云數(shù)據(jù)的殘差塊,基于點云殘差塊構(gòu)造出檢測網(wǎng)絡(luò)的殘差特征提取模塊以及殘差上采樣模塊,并集成進基線網(wǎng)絡(luò)框架中,提高網(wǎng)絡(luò)的特征提取與學(xué)習(xí)的能力。ResVoteNet在大規(guī)模點云公共數(shù)據(jù)集SCANNET和SUN-RGBD上的平均精度mAP@0.25分別達到61.1%和59.9%,超越了當(dāng)前最先進算法至少2.2%和2.5%,這對于點云檢測深度學(xué)習(xí)網(wǎng)絡(luò)在自動駕駛、機器人控制等領(lǐng)域的落地具有重要意義。此外,本文還通過消融實驗,證明了殘差特征提取模塊、殘差上采樣模塊在檢測網(wǎng)絡(luò)中的有效性;證明了殘差網(wǎng)絡(luò)ResNet在點云深度學(xué)習(xí)的有效性,并探索了本文使用的網(wǎng)絡(luò)ResVoteNet的最佳深度。本文只通過引入ResNet結(jié)構(gòu)提升點云檢測網(wǎng)絡(luò)的精度,未來將引入更多2D檢測網(wǎng)絡(luò)中的優(yōu)秀思想,進一步提升點云檢測的精度。