彭育輝,鄭瑋鴻,張劍鋒
(福州大學(xué)機(jī)械工程及自動(dòng)化學(xué)院,福州350116)
基于車(chē)載激光雷達(dá)的感知系統(tǒng)是無(wú)人駕駛技術(shù)中主要的汽車(chē)“視覺(jué)”方案[1],其首要任務(wù)是對(duì)道路障礙物進(jìn)行檢測(cè),即準(zhǔn)確地估計(jì)出不同三維目標(biāo)物體的類(lèi)別和位置。由于三維目標(biāo)物體的復(fù)雜性,導(dǎo)致其算法呈現(xiàn)出多樣性。近年來(lái),基于深度學(xué)習(xí)的處理算法在三維物體特征提取方面表現(xiàn)出了優(yōu)異性能,受到了國(guó)內(nèi)外研究學(xué)者的普遍關(guān)注。
基于深度學(xué)習(xí)的三維目標(biāo)檢測(cè)主要通過(guò)間接、直接和融合等手段對(duì)激光雷達(dá)獲取的三維點(diǎn)云數(shù)據(jù)進(jìn)行處理。間接的手段主要將點(diǎn)云先做“體素”化處理[2-5],再投入深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí)。蘋(píng)果公司提出了VoxelNet[6]特征學(xué)習(xí)網(wǎng)絡(luò)(feature learning network),將點(diǎn)云通過(guò)體素特征編碼(Voxel Feature Encoding,VFE)作張量化處理,再投入?yún)^(qū)域候選網(wǎng)絡(luò)(Region Proposal Networks,RPN)進(jìn)行訓(xùn)練及驗(yàn)證;還可通過(guò)加入反射強(qiáng)度因素對(duì) VoxelNet 作改進(jìn)[7],如 Yan 等[8]加入稀疏卷積網(wǎng)絡(luò)后,提出了稀疏嵌入式卷積檢測(cè)網(wǎng)絡(luò)(Sparsely Embedded CONvolutional Detection,SECOND)模型。直接的手段則是把原始點(diǎn)云數(shù)據(jù)原封不動(dòng)地投入設(shè)計(jì)好的深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí)[9-10],如 PointNet[11]直接將原始點(diǎn)云投入深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。但當(dāng)訓(xùn)練數(shù)據(jù)集出現(xiàn)破損時(shí),網(wǎng)絡(luò)的識(shí)別能力將下降[12]。將多尺度網(wǎng)絡(luò)與PointNet 結(jié)合也可以提高網(wǎng)絡(luò)的局部特征提取能力[13],如后續(xù)提出的 PointNet++[14]能通過(guò)學(xué)習(xí)獲得點(diǎn)云的區(qū)域特征;以YOLO(You Only Look Once)[15]的加強(qiáng)版本 YOLO v2[16]為基礎(chǔ)的 Complex-YOLO[17]和YOLO3D[18]直接對(duì)點(diǎn)云進(jìn)行訓(xùn)練學(xué)習(xí),目標(biāo)識(shí)別速度快。二維目標(biāo)檢測(cè)的技術(shù)已十分成熟,可以做到精確地識(shí)別行駛過(guò)程中遇到的車(chē)輛[19]。融合的手段以點(diǎn)云數(shù)據(jù)為主、圖像數(shù)據(jù)為輔的方式進(jìn)行目標(biāo)檢測(cè),目標(biāo)識(shí)別平均精度比前述的兩種處理方法要高,但是對(duì)硬件的要求也高[20-22]?;赑ointNet和改進(jìn)后的PointNet++,文獻(xiàn)[23]中針對(duì)目標(biāo)障礙物識(shí)別提出了Frustum PointNets,其思想是先在圖像中檢測(cè)出障礙物及位置,再將對(duì)應(yīng)位置的點(diǎn)云利用PointNet++進(jìn)行檢測(cè)識(shí)別;百度公司聯(lián)手清華大學(xué)提出了MV3D(Multi-View 3D networks)[24],將高清圖像與點(diǎn)云分別處理,再將檢測(cè)的結(jié)果經(jīng)過(guò)池化處理得到最終檢測(cè)結(jié)果。
上述算法為無(wú)人車(chē)感知系統(tǒng)的障礙物檢測(cè)與識(shí)別提供了重要的參考依據(jù),但是仍有許多問(wèn)題亟需解決。大部分算法都是直接使用原始的點(diǎn)云,將采集的誤差也引入了參數(shù)中,如基于PointNet 的算法、基于YOLO 的算法等;在設(shè)計(jì)深度神經(jīng)網(wǎng)絡(luò)時(shí),僅僅做卷積計(jì)算,忽略了卷積帶來(lái)的數(shù)值偏移,如VoxelNet中的中間層和RPN 模塊。本文嘗試采用統(tǒng)計(jì)濾波算法將原始點(diǎn)云進(jìn)行過(guò)濾,剔除離群點(diǎn),優(yōu)化待處理點(diǎn)云數(shù)據(jù);通過(guò)添加最大池化層,減小卷積偏移誤差,有效降低模型的過(guò)擬合,同時(shí)保證點(diǎn)云數(shù)據(jù)幾何信息的不變性。
首先,利用統(tǒng)計(jì)濾波算法將原始的三維點(diǎn)云數(shù)據(jù)進(jìn)行過(guò)濾,剔除離群點(diǎn),減小離群點(diǎn)帶來(lái)的誤差,并對(duì)比過(guò)濾前后點(diǎn)之間的平均距離;其次,優(yōu)化VoxelNet 的特征學(xué)習(xí)網(wǎng)絡(luò),進(jìn)行點(diǎn)云數(shù)據(jù)的編碼,使數(shù)據(jù)張量化;再者,對(duì)RPN 添加最大池化層,改進(jìn)RPN 的檢測(cè)性能,改善算法的檢測(cè)精度;最后,通過(guò)多次實(shí)驗(yàn)分析,探討以往算法的不足之處,體現(xiàn)數(shù)據(jù)預(yù)處理和最大池化對(duì)目標(biāo)檢測(cè)算法的重要性?;谌S點(diǎn)云的道路障礙物檢測(cè)方法的總體框架如圖1所示。
圖1 道路障礙物檢測(cè)方法的總體框架Fig. 1 Overall architecture of the proposed on-road obstacle detection method
在汽車(chē)無(wú)人駕駛場(chǎng)景下,基于深度學(xué)習(xí)的三維目標(biāo)檢測(cè)的主要對(duì)象是車(chē)載激光雷達(dá)掃描并采集得到的點(diǎn)云數(shù)據(jù)。目前業(yè)內(nèi)有許多成熟完備的點(diǎn)云開(kāi)源數(shù)據(jù)庫(kù),如悉尼城市目標(biāo)數(shù)據(jù)庫(kù)、KITTI 數(shù)據(jù)庫(kù)[1]、Apollo Scape 自動(dòng)駕駛數(shù)據(jù)庫(kù)等,為研究學(xué)者提供算法訓(xùn)練及驗(yàn)證的數(shù)據(jù)支持。KITTI 數(shù)據(jù)庫(kù)數(shù)據(jù)豐富,目標(biāo)類(lèi)別標(biāo)注完備,涵蓋行車(chē)過(guò)程中所需檢測(cè)的目標(biāo)物體,如車(chē)輛、行人、騎行者等,特別是不同類(lèi)型車(chē)輛的數(shù)據(jù)可以滿(mǎn)足車(chē)輛檢測(cè)算法訓(xùn)練,所以本文選擇以KITTI 數(shù)據(jù)庫(kù)的三維點(diǎn)云數(shù)據(jù)作為研究對(duì)象。
點(diǎn)云在KITTI 數(shù)據(jù)集中以二進(jìn)制的形式儲(chǔ)存,根據(jù)協(xié)議轉(zhuǎn)化,可以得到目標(biāo)物體外廓形態(tài)的紋理信息,即空間無(wú)序點(diǎn)三維坐標(biāo)以及每一點(diǎn)對(duì)應(yīng)的強(qiáng)度值。三維點(diǎn)在三維幾何空間中是離散且獨(dú)立分布的,在處理點(diǎn)云過(guò)程中應(yīng)該保證點(diǎn)云中每個(gè)點(diǎn)的空間無(wú)序性、特征局部性和旋轉(zhuǎn)不變性。若將具有t個(gè)點(diǎn)的某個(gè)點(diǎn)云樣本直接輸入算法模型中訓(xùn)練,則輸入矩陣的行的排列將有t!種可能性,不僅增加了算法的復(fù)雜度,而且會(huì)降低算法的魯棒性,最終導(dǎo)致算法效率的降低。點(diǎn)云中的點(diǎn)雖然在空間中呈獨(dú)立分布的狀態(tài),但是鄰近點(diǎn)之間存在必然的空間位置關(guān)系和幾何拓?fù)涮卣鳌H裟苡行У靥崛〕瞿硡^(qū)域點(diǎn)云的幾何特征,即可檢測(cè)出該區(qū)域內(nèi)點(diǎn)集所表示的目標(biāo)物體。將得到的點(diǎn)云通過(guò)所設(shè)計(jì)的算法中進(jìn)行訓(xùn)練,對(duì)點(diǎn)集中每個(gè)點(diǎn)進(jìn)行平移或旋轉(zhuǎn)變換計(jì)算時(shí),不應(yīng)改變點(diǎn)之間相對(duì)的位置關(guān)系。
激光雷達(dá)對(duì)目標(biāo)物體的掃描采集時(shí),存在著硬件上或軟件上的誤差,使得某個(gè)點(diǎn)集區(qū)域上某個(gè)位置上點(diǎn)的三維坐標(biāo)產(chǎn)生偏移,出現(xiàn)了離群點(diǎn)。離群點(diǎn)的產(chǎn)生對(duì)算法模型的訓(xùn)練會(huì)造成一定的干擾,可能會(huì)產(chǎn)生多余的特征信息,影響算法的準(zhǔn)確性,甚至使算法模型訓(xùn)練達(dá)不到全局最優(yōu),或跳不出鞍點(diǎn)。所以,有必要剔除點(diǎn)集中的離群點(diǎn),對(duì)點(diǎn)云進(jìn)行預(yù)處理。
點(diǎn)云的每個(gè)點(diǎn)在笛卡爾坐標(biāo)系下,以x、y、z三維坐標(biāo)形式存在。假設(shè)某個(gè)點(diǎn)云樣本為:
式中:t表示樣本中點(diǎn)云中點(diǎn)的總個(gè)數(shù);pi表示樣本D中無(wú)序點(diǎn),只取每個(gè)無(wú)序點(diǎn)的x、y、z三維坐標(biāo)。計(jì)算點(diǎn)pt的距離閾值davg:
式中:k為點(diǎn)pt的鄰近點(diǎn)個(gè)數(shù);d(pt,pj)為點(diǎn)pt與其鄰近的k個(gè)點(diǎn)之間的歐氏距離為閾值系數(shù);dstd為點(diǎn)pt與其鄰近的k個(gè)點(diǎn)之間的距離標(biāo)準(zhǔn)差。若某點(diǎn)與點(diǎn)pt的距離大于davg,則判定為離群點(diǎn),將其剔除出點(diǎn)集。圖2(a)為點(diǎn)云樣本的初始視圖,存在較為雜亂的離群點(diǎn),點(diǎn)集分布不均;圖2(b)為數(shù)據(jù)預(yù)處理后的視圖,局部區(qū)域的點(diǎn)分布較為均勻,能為后續(xù)的訓(xùn)練提供更好的數(shù)據(jù)支撐。
圖2 點(diǎn)云預(yù)處理前后對(duì)比Fig. 2 Comparison of point cloud before and after pre-processing
將每個(gè)點(diǎn)與其k近鄰點(diǎn)之間的距離求平均,得到各點(diǎn)的平均k近鄰距離,如圖3 所示。數(shù)據(jù)預(yù)處理前的原始點(diǎn)云,總數(shù)量為19 031,最大的平均k近鄰距離為46.60 cm,標(biāo)準(zhǔn)差為0.88;而經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,點(diǎn)的總數(shù)量為18 928,最大的平均k近鄰距離為1.20 cm,標(biāo)準(zhǔn)差為0.11。離群點(diǎn)剔除后,點(diǎn)云分布均勻性更好,數(shù)據(jù)平滑度得到提高。由于點(diǎn)云表示的三維場(chǎng)景不同,經(jīng)過(guò)統(tǒng)計(jì)濾波算法處理過(guò)后,各樣本剔除的離群點(diǎn)個(gè)數(shù)不相同,剔除點(diǎn)的數(shù)量規(guī)模小于總數(shù)的10%。
圖3 點(diǎn)云中各點(diǎn)的平均k近鄰距離Fig. 3 Average k-nearest neighbor distance of each point in the point cloud
為了進(jìn)一步說(shuō)明算法的有效性,隨機(jī)抽取三個(gè)點(diǎn)云樣本進(jìn)行數(shù)據(jù)預(yù)處理,結(jié)果如表1 所示。從表1 可知,經(jīng)數(shù)據(jù)預(yù)處理后,三個(gè)樣本剔除點(diǎn)的數(shù)量在5%左右,點(diǎn)的平均k近鄰距離的平均值減小15%左右,其標(biāo)準(zhǔn)差顯著減小,即統(tǒng)計(jì)濾波算法有效地剔除了離群點(diǎn),處理后點(diǎn)云表面粗糙度明顯降低。
表1 數(shù)據(jù)預(yù)處理前后對(duì)比分析Tab.1 Comparison and analysis of data before and after pre-processing
深度神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的信息特征提取能力,在機(jī)器視覺(jué)領(lǐng)域的二維圖像檢測(cè)方面應(yīng)用廣泛。針對(duì)三維點(diǎn)云檢測(cè)目標(biāo)的特征存在多樣性和復(fù)雜性,引入深度神經(jīng)網(wǎng)絡(luò)以發(fā)揮其優(yōu)異的性能。為實(shí)現(xiàn)基于三維點(diǎn)云的車(chē)輛檢測(cè),提出一個(gè)端到端的深度神經(jīng)網(wǎng)絡(luò),包括兩個(gè)模塊層,分別是點(diǎn)云編碼層和目標(biāo)檢測(cè)層。
對(duì)點(diǎn)云數(shù)據(jù)的體素特征進(jìn)行編碼處理,采用文獻(xiàn)[6]的體素特征編碼VFE 作體素特征的提取。利用設(shè)計(jì)的全連接層(Fully Connected Network,F(xiàn)CN)對(duì)同一個(gè)體素網(wǎng)格區(qū)間進(jìn)行逐點(diǎn)提取,F(xiàn)CN 由線(xiàn)性層、批處理規(guī)范化層(BatchNorm)和整流線(xiàn)性單元(Rectified Linear Unit,ReLU)構(gòu)成。再采用逐點(diǎn)最大池化(element-wise max pooling)提取每個(gè)體素網(wǎng)格的聚集特征。最后將得到的兩個(gè)特征數(shù)據(jù)進(jìn)行廣播(broadcasting)操作,將逐點(diǎn)的特征拼接在一起。本文利用兩個(gè)VFE 和一個(gè)FCN構(gòu)成完整的體素特征提取器,最終得到四維張量數(shù)據(jù),如圖 4 所示,圖中的C、H、W、D分別表示四維張量的維度,H、W、D維度指的是體素網(wǎng)格提取出的聚集特征尺寸大小,這些特征又構(gòu)成新的C維度。
VFE層的處理方法類(lèi)似于圖像處理中對(duì)像素點(diǎn)的特征提取。但是,由于點(diǎn)云的無(wú)序性,通過(guò)設(shè)計(jì)出一個(gè)空體素體,將點(diǎn)云投入此空體素體中進(jìn)行體素體分塊分組處理,從而實(shí)現(xiàn)對(duì)無(wú)序點(diǎn)云進(jìn)行有序的三維網(wǎng)格形式的體素化,同時(shí)兼顧點(diǎn)云局部特征。本文對(duì)劃分后的所有體素格進(jìn)行采樣,并初步提取特征信息。由于在點(diǎn)云數(shù)據(jù)投入網(wǎng)絡(luò)訓(xùn)練前已經(jīng)完成數(shù)據(jù)預(yù)處理過(guò)程,所以對(duì)所有的點(diǎn)都可以采樣提取。
圖4 數(shù)據(jù)張量化Fig. 4 Tensorizing of data
更快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region-based CNN,F(xiàn)aster R-CNN)[25]中的 RPN 在圖像目標(biāo)檢測(cè)技術(shù)中已經(jīng)十分成熟且有效,使用非極大值抑制(Non-Maximum Suppression,NMS)選定目標(biāo)最終的預(yù)測(cè)邊框。在三維目標(biāo)檢測(cè)中采用的深度神經(jīng)網(wǎng)絡(luò)模型[6,8]的目標(biāo)檢測(cè)大都移植了RPN 作為三維目標(biāo)區(qū)域候選網(wǎng)絡(luò),并取得了良好的效果。為便于特征的提取和提高計(jì)算效率,以RPN 作為基礎(chǔ),本文提出了一種增加最大池化模塊的目標(biāo)檢測(cè)架構(gòu),如圖5所示。
圖5 目標(biāo)檢測(cè)層架構(gòu)Fig. 5 Architecture of object detection layer
算法中卷積層(Conv)不僅起到壓縮數(shù)據(jù)的作用,更重要的是通過(guò)設(shè)定的激活函數(shù),提取有可能的目標(biāo)信息特征。本文設(shè)計(jì)的卷積層,過(guò)濾器設(shè)為3,步幅取2,不作填充處理,激活函數(shù)為ReLU函數(shù)。
受到Y(jié)OLO 間隔插入最大池化模塊的啟發(fā),保留VoxelNet 網(wǎng)絡(luò)中的全卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),像YOLO 一樣合理地增加了最大池化層,強(qiáng)化了網(wǎng)絡(luò)的性能。卷積計(jì)算是卷積神經(jīng)網(wǎng)絡(luò)中重要的操作,由于共享權(quán)值參數(shù)的設(shè)計(jì),使得卷積層不僅能提取到有用信息,而且計(jì)算量比全連接神經(jīng)網(wǎng)絡(luò)的計(jì)算量要小。一個(gè)卷積核則對(duì)應(yīng)得到一個(gè)特征映射,卷積核的數(shù)量也稱(chēng)通道數(shù)(channel),同樣通道數(shù)量也等于特征映射的數(shù)量。若檢測(cè)的特征增加,而設(shè)計(jì)出多個(gè)不同的卷積核,則得到多個(gè)不同的特征映射,此時(shí)由原始數(shù)據(jù)而得到了多個(gè)特征映射,通道數(shù)量增加,即此層的神經(jīng)元數(shù)量增加,此時(shí)卷積網(wǎng)絡(luò)中層的維度增加,訓(xùn)練的成本也隨之增加。此時(shí)算法框架中需引進(jìn)池化層,進(jìn)行適當(dāng)?shù)慕稻S處理。
池化層在卷積神經(jīng)網(wǎng)絡(luò)中起到了壓縮數(shù)據(jù)的作用,尤其可以保持點(diǎn)云幾何信息上的不變性。若僅僅只做卷積計(jì)算,則會(huì)造成預(yù)測(cè)值的偏移。因此本文提出增加最大池化層(MaxPool),不僅可以減小偏移,而且可以最大地保留三維目標(biāo)物體的紋理信息。本文設(shè)計(jì)MaxPool(ps,s,input)作為最大池化層的最小單元模塊,其中:ps 代表pool size;s 則表示strides。為了操作的便捷性,本文將padding 的參數(shù)設(shè)定為same,使模塊的輸入與輸出的張量形狀一致。本文算法加入的最大池化層,過(guò)濾器設(shè)為3,步幅取2,作填充處理,保持張量尺寸不變。在原有的全卷積層1 中插入一個(gè)最大池化層,數(shù)據(jù)流經(jīng)過(guò)的路徑為:一個(gè)卷積層,一個(gè)最大池化層,兩個(gè)卷積層。原全卷積層2 中也同樣地插入一個(gè)最大池化層,數(shù)據(jù)流經(jīng)過(guò)的路徑為:兩個(gè)卷積層,一個(gè)最大池化層,四個(gè)卷積層,原全卷積層3的操作與原全卷積層2一致。
損失函數(shù)是不可或缺的一個(gè)模塊,設(shè)計(jì)如下:
式中:Lpro為區(qū)域得分損失函數(shù)模塊,即分類(lèi)器,與Faster-RCNN 中的分類(lèi)器模塊一致;Lreg為目標(biāo)候選區(qū)域位置模塊,即回歸器。設(shè)定候選目標(biāo)(三維)邊界框(xi,yi,zi,li,wi,hi,θi),其中 (xi,yi,zi)為中心位置坐標(biāo),(li,wi,hi,θi)為長(zhǎng)、寬、高及角度。設(shè)定真實(shí)目標(biāo)(三維)區(qū)域,其中為中心位置坐標(biāo)為長(zhǎng)、寬、高及角度。Lreg的設(shè)計(jì)如下:
式中:n 為點(diǎn)云樣本體素個(gè)數(shù);s 為候選目標(biāo)邊界框的個(gè)數(shù);Rij使用SmoothL1函數(shù)[25]。
本文對(duì)KITTI 原始點(diǎn)云數(shù)據(jù)的裁剪開(kāi)度為0°~90°,與KITTI 高清鏡頭的開(kāi)度(opening angle)一致。本文采用VoxelNet等論文中對(duì)車(chē)輛、行人和騎行者的anchors,這些數(shù)值符合實(shí)際目標(biāo)大小的取值,例如對(duì)于車(chē)輛,本文使用的w、l、h分別為1.6 m、3.9 m、1.56 m,對(duì)于行人和騎行者的w、l、h 分別為0.6 m、0.8 m、1.73 m 和0.6 m、1.76 m、1.73 m。本文采用隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD),訓(xùn)練的學(xué)習(xí)率為0.001,隨機(jī)梯度下降法簡(jiǎn)單且容易跳出局部極小繼續(xù)訓(xùn)練,使設(shè)計(jì)的模型在訓(xùn)練過(guò)程中更快地向真實(shí)的模型靠近,達(dá)到預(yù)期值。
本文實(shí)驗(yàn)采用KITTI 數(shù)據(jù)集中的7 000 多個(gè)點(diǎn)云訓(xùn)練樣本。在進(jìn)行數(shù)據(jù)的過(guò)濾和訓(xùn)練前,隨機(jī)將點(diǎn)云樣本分成訓(xùn)練集和驗(yàn)證集,各自約占50%。近3 500個(gè)樣本對(duì)于復(fù)雜場(chǎng)景的監(jiān)督式算法學(xué)習(xí)是不夠的,故在訓(xùn)練過(guò)程中對(duì)訓(xùn)練樣本進(jìn)行擴(kuò)充。在訓(xùn)練開(kāi)始前先提取訓(xùn)練集樣本中所有已標(biāo)定的目標(biāo)點(diǎn)云數(shù)據(jù)及其標(biāo)簽,隨后在訓(xùn)練過(guò)程中隨機(jī)地選取并插入在當(dāng)前訓(xùn)練樣本中。這種方法的使用,不僅增加了訓(xùn)練樣本數(shù)量,而且可以模擬不同環(huán)境下的目標(biāo)。
基于谷歌公司TensorFlow 進(jìn)行深度神經(jīng)網(wǎng)絡(luò)架構(gòu)的搭建,實(shí)驗(yàn)的環(huán)境配置為因特爾Xeon Silver 4108 處理器,64 GB運(yùn)行內(nèi)存,英偉達(dá)GTX1080Ti 11GB顯存顯卡。
本文算法VNMax的實(shí)驗(yàn)流程具體如下:
1)數(shù)據(jù)預(yù)處理。對(duì)KITTI 數(shù)據(jù)集進(jìn)行劃分,對(duì)訓(xùn)練集進(jìn)行統(tǒng)計(jì)濾波處理,剔除離群點(diǎn)。
2)數(shù)據(jù)擴(kuò)充準(zhǔn)備。建立新的點(diǎn)云數(shù)據(jù)庫(kù),存放訓(xùn)練樣本中的已標(biāo)定的目標(biāo)及標(biāo)簽。
3)算法訓(xùn)練。設(shè)定完成整個(gè)訓(xùn)練集為一次迭代,迭代次數(shù)為200。
4)樣本測(cè)試。采用測(cè)試集進(jìn)行算法的測(cè)試。
將處理好的點(diǎn)云數(shù)據(jù)投入本文設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,在TensorBoard 中訓(xùn)練和驗(yàn)證的損失值折線(xiàn)圖如圖6所示,smoothing 設(shè)為0.6。從圖6 可知,當(dāng)訓(xùn)練集的迭代次數(shù)超過(guò)50 000,損失值在1左右波動(dòng),并趨于平緩;對(duì)于驗(yàn)證集數(shù)據(jù),迭代次數(shù)小于2 000,損失值急劇下降并在1.8 左右波動(dòng),且無(wú)上升趨勢(shì),說(shuō)明算法并未出現(xiàn)過(guò)擬合現(xiàn)象。
圖6 訓(xùn)練及驗(yàn)證誤差Fig. 6 Loss values of training and validation
在同樣的運(yùn)行環(huán)境條件下,將同樣處理好的點(diǎn)云數(shù)據(jù)投入VoxelNet 進(jìn)行訓(xùn)練,與本文設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)結(jié)果對(duì)比如表2 和表3 所示,采用KITTI 數(shù)據(jù)集評(píng)價(jià)體系,對(duì)車(chē)輛檢測(cè)不同算法所得到平均精度進(jìn)行比較。表2 和表3 中的算法 VeloFCN、Complex-YOLO 和 VoxelNet 分別指文獻(xiàn)[26]、[17]和[6]的實(shí)驗(yàn)檢測(cè)結(jié)果,訓(xùn)練采用的數(shù)據(jù)均為原始點(diǎn)云數(shù)據(jù)。VoxelNet(filtered)指的是VoxelNet 模型訓(xùn)練并使用濾波處理后的數(shù)據(jù);VNMax 指的是本文沿用VoxelNet 的體素編碼網(wǎng)絡(luò)并嵌入最大池化層的新深度神經(jīng)網(wǎng)絡(luò)模型,并且對(duì)原始點(diǎn)云數(shù)據(jù)作濾波處理。表中簡(jiǎn)單、中等和困難分別表示KITTI數(shù)據(jù)檢測(cè)任務(wù)的難易程度,即點(diǎn)云數(shù)據(jù)的稀疏程度。困難程度的點(diǎn)云數(shù)據(jù)最稀疏,訓(xùn)練學(xué)習(xí)難度最大。
表2 的對(duì)比表明本文所提出的算法在車(chē)輛檢測(cè)和定位上所得到的平均精度普遍優(yōu)于VoxelNet模型。增加的最大池化層提高了算法的特征提取能力,減小了由多層卷積帶來(lái)的誤差,在KITTI 官方服務(wù)器中,算法VoxelNet 的車(chē)輛定位在簡(jiǎn)單、中等和困難任務(wù)的精度分別為:34.54%、31.08% 和28.79%,本文提出的算法 VNMax 分別高出 11.30、6.02 和3.89個(gè)百分點(diǎn)。
表3 為車(chē)輛3D 檢測(cè)及鳥(niǎo)瞰視圖檢測(cè)的平均精度對(duì)比,可以看出本文提出的算法在提高檢測(cè)和定位的同時(shí),也保持了3D檢測(cè)和鳥(niǎo)瞰視圖檢測(cè)的平均精度。
表2 車(chē)輛檢測(cè)及定位的平均精度對(duì)比 單位:%Tab.2 Average precision comparison of vehicle detection and location unit:%
根據(jù)表 2、3 中的 VoxelNet 和 VoxelNet(filtered)對(duì)比可以看出,數(shù)據(jù)經(jīng)過(guò)濾波后的處理對(duì)檢測(cè)的性能是有幫助的。最后VoxelNet、VoxelNet(filtered)和VNMax 作對(duì)比,可以看出數(shù)據(jù)的濾波處理和最大池化層對(duì)檢測(cè)的平均精度有顯著的作用。本文利用TensorFlow 庫(kù)進(jìn)行濾波算法的編程,對(duì)每幀點(diǎn)云數(shù)據(jù)預(yù)處理的平均時(shí)間為0.13 s。檢測(cè)算法的時(shí)間與VoxelNet檢測(cè)時(shí)間相當(dāng)。圖7為車(chē)輛檢測(cè)結(jié)果,采用點(diǎn)云數(shù)據(jù)檢測(cè)到的結(jié)果對(duì)應(yīng)地投影到圖像上。
表3 車(chē)輛3D檢測(cè)及鳥(niǎo)瞰視圖檢測(cè)的平均精度對(duì)比 單位:%Tab.3 Average precision comparison of vehicle 3D detection and aerial view detection unit:%
圖7 車(chē)輛的檢測(cè)結(jié)果可視圖Fig. 7 Visibility maps of vehicle detection results
基于車(chē)載激光雷達(dá)采集的三維點(diǎn)云數(shù)據(jù),本文采用統(tǒng)計(jì)濾波算法對(duì)原始數(shù)據(jù)進(jìn)行前期處理,使用最大池化模塊的不變性?xún)?yōu)化原有的網(wǎng)絡(luò)架構(gòu),構(gòu)建了端到端的深度神經(jīng)網(wǎng)絡(luò)。實(shí)驗(yàn)結(jié)果表明,該濾波算法可以有效地剔除離群點(diǎn),減少其他因素的干擾;最大池化模塊的不變性使得網(wǎng)絡(luò)具有更強(qiáng)的魯棒性,能為無(wú)人駕駛技術(shù)的感知系統(tǒng)提供一種有效的目標(biāo)檢測(cè)算法。由于點(diǎn)云數(shù)據(jù)具有稀疏性,最大池化容易導(dǎo)致局部細(xì)節(jié)特征的忽略,在后續(xù)的工作中,可結(jié)合信息融合技術(shù)及YOLO系列版本的算法,進(jìn)一步提高算法檢測(cè)的精度和速度。