高 焱,熊風(fēng)光
(中北大學(xué) 大數(shù)據(jù)學(xué)院,山西 太原 030051)
在日常生活中視覺搜索幾乎無處不在,人體在觀察物體時(shí)通常不會(huì)第一時(shí)間觀察全局,而是先觀察全局中重要的和與重要的信息相關(guān)的部分。同樣,在點(diǎn)云深度學(xué)習(xí)中如果將主要的計(jì)算數(shù)據(jù)集中在與檢測(cè)的類別有關(guān)的點(diǎn)上,而與檢測(cè)的類別無關(guān)的點(diǎn)不納入處理范圍,則可以在很大程度上減少計(jì)算量。因此,如何構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò),并高效尋找與檢測(cè)物體高度相關(guān)的點(diǎn)云就變得至關(guān)重要。
近年來,深度學(xué)習(xí)方法與卷積神經(jīng)網(wǎng)絡(luò)在圖像特征提取方面取得重大成就[1-7]。因而,緊跟計(jì)算機(jī)視覺的大趨勢(shì),深度學(xué)習(xí)逐漸取代手動(dòng)輸入特征表示點(diǎn)云的方法成為點(diǎn)云處理的主導(dǎo)方法。然而,與圖像相比,三維點(diǎn)云無序,無結(jié)構(gòu),密度不均,因此如何用深度學(xué)習(xí)對(duì)其進(jìn)行分析處理仍然是難題之一。Simon等人[8]提出了Complex-YOLO,Wu等人[9]提出了SqueezeSeg,Chen Xiaozhi等人[10]提出了一種自動(dòng)駕駛的三維物體檢測(cè)方法,三種方法的共同點(diǎn)是在二維中使用卷積,將卷積結(jié)果通過函數(shù)回歸處理得到物體三維邊界框預(yù)測(cè),其中前兩種的二維輸入獲取方式是三維數(shù)據(jù)在二維某方向上的投射,第三種的二維輸入方式是二維圖片。此種先將三維轉(zhuǎn)換成為二維的方法的缺點(diǎn)在于高度信息的缺失和最終結(jié)果對(duì)數(shù)據(jù)誤差非常敏感。針對(duì)二維圖像的高度信息缺失問題,后來的方法中加入了無需將三維數(shù)據(jù)進(jìn)行降維的點(diǎn)云數(shù)據(jù)處理方法,例如Martin等人[11]提出了一種快速高效利用卷積進(jìn)行三維點(diǎn)云的物體檢測(cè)方法,Daniel Maturana等人[12]提出了Voxnet。這兩種方法的共同點(diǎn)是將點(diǎn)云轉(zhuǎn)換成為立方體形式進(jìn)行卷積計(jì)算,在上述三維物體檢測(cè)方法的基礎(chǔ)上很大程度解決了高度信息缺失問題,但缺點(diǎn)是計(jì)算量會(huì)隨著數(shù)據(jù)量的增大而呈指數(shù)級(jí)增長(zhǎng)。對(duì)此,Charles Qi博士等人[13]提出了PointNet深度學(xué)習(xí)框架,該框架無需轉(zhuǎn)換點(diǎn)云格式,直接處理點(diǎn)云,且在物體分類和場(chǎng)景分割等任務(wù)上表現(xiàn)良好。
此外,在三維物體檢測(cè)方面也進(jìn)行了相關(guān)研究。Prawira等人[14]提出了基于立體圖像的三維物體檢測(cè)方法,Su-A Kim等人[15]提出了基于點(diǎn)特征直方圖的三維物體檢測(cè)算法,Ahmed Fawzy Elaraby等人[16]提出了基于Kinect的運(yùn)用增強(qiáng)深度估計(jì)算法的三維物體檢測(cè)方法,以上研究均從不同角度在三維物體檢測(cè)方面取得了一定進(jìn)展,然而將深度學(xué)習(xí)框架運(yùn)用到點(diǎn)云大型場(chǎng)景中仍然難度很大。Minh等以二維圖像作為輸入,使用RNN(recurrent neural network,循環(huán)神經(jīng)網(wǎng)絡(luò)),在每次回溯迭代過程中重復(fù)使用同一塊被剪裁區(qū)域的不同分辨率圖像,達(dá)到圖像內(nèi)的物體檢測(cè)隨著每次的迭代更新趨于完全準(zhǔn)確的效果[17-18]。然而,由于是對(duì)圖片進(jìn)行裁剪操作,這種通過迭代更新檢測(cè)結(jié)果的網(wǎng)絡(luò)無法進(jìn)行反向傳播過程,進(jìn)而無法對(duì)深度網(wǎng)絡(luò)進(jìn)行訓(xùn)練。為了更好地解決該問題,Jaderberg等人[19]提出了STN網(wǎng)絡(luò),在該網(wǎng)絡(luò)中對(duì)輸入圖像進(jìn)行空間仿射線性變換和對(duì)周圍鄰域像素的圖像灰度值進(jìn)行插值函數(shù)取樣處理,從而得到輸出的特征圖像,而且該網(wǎng)絡(luò)由于可微的灰度插值取樣操作而可以進(jìn)行反向傳播訓(xùn)練。在上述文獻(xiàn)的基礎(chǔ)上,Sφren Kaae Sφnderby等人[20]將RNN與STN進(jìn)行結(jié)合,用于二維圖像的檢測(cè)中。為了解決RNN的梯度爆炸和梯度急速下降與梯度消失問題,Bernardino等人[21]將設(shè)置有門控狀態(tài)的長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM(long short-term memory,LSTM,RNN的一種特殊形式)運(yùn)用到了深度學(xué)習(xí)在二維圖像的物體檢測(cè)中,實(shí)現(xiàn)了LSTM的卷積網(wǎng)絡(luò)形式,進(jìn)一步提高了二維圖像的物體檢測(cè)精度。
該文提出基于PointNet的深度學(xué)習(xí)網(wǎng)絡(luò)。該網(wǎng)絡(luò)僅用于基于LIDAR數(shù)據(jù)的三維物體檢測(cè),旨在用相對(duì)較低的計(jì)算成本和網(wǎng)絡(luò)規(guī)模較小的框架結(jié)構(gòu)獲得實(shí)時(shí)、良好的三維物體檢測(cè)效果。為此,該文引入視覺注意力機(jī)制,對(duì)三維數(shù)據(jù)應(yīng)用的重要分支—三維物體檢測(cè)進(jìn)行研究,旨在通過對(duì)與檢測(cè)物體相關(guān)的點(diǎn)云的預(yù)測(cè)邊界框進(jìn)行連續(xù)更新獲得良好的運(yùn)行效果。主要工作如下:
(1)提出了基于PointNet的深度學(xué)習(xí)網(wǎng)絡(luò),該網(wǎng)絡(luò)無需轉(zhuǎn)換點(diǎn)云格式,直接對(duì)原始三維點(diǎn)云進(jìn)行處理,對(duì)物體的整體形狀進(jìn)行學(xué)習(xí),是端到端的可訓(xùn)練的網(wǎng)絡(luò)框架結(jié)構(gòu)。
(2)對(duì)三維物體檢測(cè)進(jìn)行研究,將人體視覺機(jī)制引入到用于三維多物體檢測(cè)的點(diǎn)云深度學(xué)習(xí)框架中,引入該機(jī)制后的框架通過在給定復(fù)雜環(huán)境的條件下學(xué)習(xí)聚焦關(guān)鍵物體點(diǎn)云的能力,減少需要處理的點(diǎn)個(gè)數(shù),從而減少計(jì)算成本。
(3)將基于PointNet的深度學(xué)習(xí)網(wǎng)絡(luò)在自動(dòng)駕駛數(shù)據(jù)集KITTI上運(yùn)行,結(jié)果顯示與已有的基于LIDAR數(shù)據(jù)的檢測(cè)方法相比,提出的深度網(wǎng)絡(luò)能夠達(dá)到良好的運(yùn)行效果。
改進(jìn)之后的PointNet的總體框架如圖1所示。該框圖的最終效果為生成單個(gè)物體的三維預(yù)測(cè)邊界框。該框圖所表示的網(wǎng)絡(luò)框架包括如下核心功能模塊:環(huán)境網(wǎng)絡(luò)、重復(fù)局部定位網(wǎng)絡(luò)、分類器網(wǎng)絡(luò)、三維轉(zhuǎn)換與重采樣網(wǎng)絡(luò)、定位與識(shí)別網(wǎng)絡(luò)。
圖1 網(wǎng)絡(luò)總體框架
該網(wǎng)絡(luò)模塊的主要功能為通過從輸入的點(diǎn)云數(shù)據(jù)中提取環(huán)境特征從而得到與檢測(cè)物體類別相關(guān)的物體的可能位置,為之后的與檢測(cè)物體類別相關(guān)的局部點(diǎn)云的循環(huán)迭代更新做準(zhǔn)備。在本次研究中,該模塊的輸入數(shù)據(jù)主要分為兩個(gè)部分:經(jīng)過剪裁處理后的大小為邊長(zhǎng)為12米的正方形區(qū)域內(nèi)的三維點(diǎn)云與該區(qū)域內(nèi)的點(diǎn)云對(duì)應(yīng)的俯視圖,其中后者的表現(xiàn)形式為以120*120像素的點(diǎn)云垂直投射的二維圖像,數(shù)據(jù)類型為二維數(shù)組(x,y),x表示網(wǎng)格或點(diǎn)的索引信息,y表示該索引所表示的網(wǎng)格的對(duì)應(yīng)高度信息。該模塊的運(yùn)行流程可表述如下:
(1)針對(duì)三維點(diǎn)云數(shù)據(jù),該文使用簡(jiǎn)化版的PointNet對(duì)數(shù)據(jù)進(jìn)行卷積計(jì)算(簡(jiǎn)化版如圖2所示),通過MLP(multi-layer perceptron,多層感知器)將三維數(shù)據(jù)轉(zhuǎn)換成為更高維度數(shù)據(jù),通過最大池化技術(shù)將高維度數(shù)據(jù)轉(zhuǎn)化成為特征向量,由于特征向量來源于三維數(shù)據(jù),因此將該向量記作三維環(huán)境向量。
(2)針對(duì)二維俯視圖,該文通過標(biāo)準(zhǔn)卷積計(jì)算與最大池化技術(shù)將二維俯視圖轉(zhuǎn)換成為特征向量,由于特征向量來源于二維數(shù)據(jù),因此將該向量記作二維環(huán)境向量。
圖2 簡(jiǎn)化版PointNet示意圖
二維向量與三維向量分別具有不同的功能,在三維點(diǎn)云場(chǎng)景中,三維向量能夠更好地提供物體的全面信息,二維向量能夠更好地幫助理解復(fù)雜結(jié)構(gòu)物體的信息,因此,該文將二維特征向量與三維特征向量進(jìn)行結(jié)合。深度學(xué)習(xí)中向量結(jié)合的方式主要分為向量拼接和向量相加等操作。由于加法在網(wǎng)絡(luò)容量相對(duì)較低的情況下能夠達(dá)到與向量拼接相當(dāng)?shù)男Ч?,因而選擇向量相加操作,將二維環(huán)境向量與三維環(huán)境向量結(jié)合成為新環(huán)境向量。
環(huán)境網(wǎng)絡(luò)模塊的總體框架如圖3所示。
圖3 特征網(wǎng)絡(luò)框架
作為該文提出網(wǎng)絡(luò)的核心模塊,重復(fù)局部定位網(wǎng)絡(luò)模塊的主要功能是在每次迭代計(jì)算的過程中對(duì)檢測(cè)到的新物體進(jìn)行檢測(cè)位置更新。該模塊主要分為兩部分:
(1)重復(fù)迭代部分。二維圖像深度學(xué)習(xí)中主要使用RNN(recurrent neural network,循環(huán)神經(jīng)網(wǎng)絡(luò))深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)重復(fù)迭代過程。作為RNN的一種特殊網(wǎng)絡(luò)模塊,該文使用GRU(gate recurrent unit,門控循環(huán)單元)深度網(wǎng)絡(luò)實(shí)現(xiàn)重復(fù)迭代過程。本部分的輸入為2.1節(jié)中的環(huán)境向量與上一次輸出的隱藏狀態(tài)向量,隱藏狀態(tài)向量初始化為大小固定的零矩陣,輸出為維度為512的向量與本次的隱藏狀態(tài)向量。前者進(jìn)入到局部定位模塊進(jìn)行處理,隱藏狀態(tài)向量作為下次迭代過程的輸入進(jìn)行深度網(wǎng)絡(luò)處理。
(2)局部定位部分。該模塊的功能是通過3層的全連接層網(wǎng)絡(luò)對(duì)轉(zhuǎn)換矩陣的相關(guān)參數(shù)作回歸處理。該網(wǎng)絡(luò)模塊的輸入為維度為512的向量,輸出為轉(zhuǎn)換矩陣相關(guān)參數(shù)。由于本次研究中,物體的比例和大小不會(huì)隨著物體與數(shù)據(jù)探測(cè)設(shè)備的距離而產(chǎn)生變化,因而僅研究固定的三維變換而對(duì)物體的大小予以忽略。為網(wǎng)絡(luò)運(yùn)行簡(jiǎn)便,該文僅探討點(diǎn)云數(shù)據(jù)沿z軸的旋轉(zhuǎn)。轉(zhuǎn)換矩陣形式如式(1)所示。
(1)
其中,θ表示點(diǎn)云數(shù)據(jù)沿z軸的旋轉(zhuǎn)角,cosθ,sinθ,T(xi),T(yi),T(zi)表示轉(zhuǎn)換矩陣的相關(guān)參數(shù)。i∈N+,i∈[0,n),n是重復(fù)迭代的次數(shù)。
與STN沒有對(duì)數(shù)據(jù)轉(zhuǎn)換進(jìn)行監(jiān)督學(xué)習(xí)不同,該文為預(yù)測(cè)得到物體位置通過點(diǎn)云數(shù)據(jù)與標(biāo)簽的一一對(duì)應(yīng)對(duì)數(shù)據(jù)轉(zhuǎn)換進(jìn)行了監(jiān)督。該部分總體如式(2)~式(4)所示。
C=fcontext(I)
(2)
hi=fRNN(C,hi-1)
(3)
T(Ωi)=floc(hi)
(4)
其中,式(2)表示作為輸入的點(diǎn)云數(shù)據(jù)和對(duì)應(yīng)的俯視圖數(shù)據(jù)I通過2.1中的環(huán)境網(wǎng)絡(luò)fcontext轉(zhuǎn)化成為同時(shí)帶有三維特征和二維特征的特征向量C;式(3)表示特征向量C和另外一個(gè)輸入的隱藏的狀態(tài)變量hi-1通過GRU轉(zhuǎn)化成為新的隱藏狀態(tài)變量hi;式(4)表示新的隱藏狀態(tài)變量hi通過本地化網(wǎng)絡(luò)floc轉(zhuǎn)化成為旋轉(zhuǎn)矩陣T(Ωi)。該模塊的總體框架如圖4所示。
圖4 循環(huán)局部化網(wǎng)絡(luò)框架
根據(jù)圖2與2.2節(jié)關(guān)于重復(fù)迭代模塊的表述可知,重復(fù)迭代模塊的輸出為列數(shù)為512的張量與當(dāng)前迭代過程的隱藏狀態(tài)向量hi。其中列數(shù)為512的向量進(jìn)入到循環(huán)局部化網(wǎng)絡(luò)進(jìn)行處理,此外該向量還會(huì)進(jìn)入到分類器網(wǎng)絡(luò)中。分類器網(wǎng)絡(luò)主要是由兩個(gè)與循環(huán)重復(fù)定位網(wǎng)絡(luò)中的全連接層的參數(shù)不同的全連接層構(gòu)成的。經(jīng)過該部分最終輸出的是objectness數(shù)組,并且為該數(shù)組內(nèi)元素設(shè)定了閾值,如果數(shù)組內(nèi)元素大于該閾值,則可以認(rèn)為該元素對(duì)應(yīng)的物體的位置和邊界框的大小預(yù)測(cè)是準(zhǔn)確的,將該元素對(duì)應(yīng)的邊界框的大小、物體的位置等信息加入到物體檢測(cè)列表數(shù)組中。最終objectness數(shù)組的生成圖如圖4所示。
在獲得了旋轉(zhuǎn)矩陣后,即在三維轉(zhuǎn)換模塊中對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行旋轉(zhuǎn)變換。三維轉(zhuǎn)換模塊實(shí)現(xiàn)的功能是將輸入的點(diǎn)云數(shù)據(jù)通過2.2節(jié)得到的轉(zhuǎn)換矩陣轉(zhuǎn)換成為新的點(diǎn)云數(shù)據(jù),新的點(diǎn)云數(shù)據(jù)中與檢測(cè)物體相關(guān)的點(diǎn)云能夠落在更小的預(yù)測(cè)邊界框內(nèi)。為實(shí)現(xiàn)點(diǎn)云數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)矩陣等式如式(5)所示。
(5)
圖5 循環(huán)局部化網(wǎng)絡(luò)框架
為簡(jiǎn)易表示,本圖將三維點(diǎn)云用二維形式呈現(xiàn)。圖中所有點(diǎn)均落在以原點(diǎn)(0,0,0)為中心,三維數(shù)據(jù)分別為(W,L,H)的邊界框內(nèi),此時(shí)通過轉(zhuǎn)換矩陣T(Ωi),邊界框與所有點(diǎn)均發(fā)生了旋轉(zhuǎn),此時(shí)在原先點(diǎn)云中的關(guān)鍵物體點(diǎn)云通過旋轉(zhuǎn)落在了以原點(diǎn)為中心,三維數(shù)據(jù)分別為(w,l,h)的邊界框內(nèi)。此時(shí)對(duì)落在三維數(shù)據(jù)為(w,l,h)的框內(nèi)點(diǎn)進(jìn)行區(qū)域剪裁,并對(duì)點(diǎn)云進(jìn)行取樣,點(diǎn)個(gè)數(shù)下降成為512個(gè)。該模塊的框架如圖6所示。
圖6 三維轉(zhuǎn)換與重采樣模塊框架
該模塊的功能為在2.4節(jié)的基礎(chǔ)上,即在關(guān)鍵物體點(diǎn)云確定后,通過對(duì)相關(guān)參數(shù)進(jìn)行回歸處理對(duì)物體的三維邊界框進(jìn)行預(yù)測(cè)。使用輕量級(jí)的PointNet[22]對(duì)三維轉(zhuǎn)換矩陣的相關(guān)參數(shù)進(jìn)行回歸處理。該網(wǎng)絡(luò)對(duì)三維轉(zhuǎn)換矩陣的5個(gè)參數(shù)和邊界框的3個(gè)參數(shù)(W,L,H)進(jìn)行回歸處理。最終的邊界框的位置可以通過式(6)得到。
T(Φi)=T(Ωi)*T(Δi)
(6)
其中,T(Φi)表示最終單個(gè)物體邊界框的位置信息的矩陣,T(Ωi)表示用于局部定位操作的轉(zhuǎn)換矩陣,T(Δi)表示用于表示單個(gè)物體中心的矩陣,該矩陣主要包含5個(gè)參數(shù):(cosδi,sinδi,txi,tyi,tzi),其中δi表示要實(shí)現(xiàn)對(duì)變換矩陣的回歸需要旋轉(zhuǎn)的角度,i∈[0,n),i∈N+。該模塊的框架如圖7所示。
圖7 定位與識(shí)別網(wǎng)絡(luò)模塊框架
為了對(duì)該文提出的網(wǎng)絡(luò)進(jìn)行訓(xùn)練和測(cè)試,實(shí)驗(yàn)使用KITTI自動(dòng)駕駛數(shù)據(jù)集,該數(shù)據(jù)集包括7 481個(gè)訓(xùn)練圖像或點(diǎn)云數(shù)據(jù)和7 518個(gè)測(cè)試圖像或點(diǎn)云數(shù)據(jù)。本次實(shí)驗(yàn)中僅用該網(wǎng)絡(luò)對(duì)汽車物體進(jìn)行識(shí)別。
由于KITTI數(shù)據(jù)集不提供測(cè)試數(shù)據(jù)集合的真實(shí)有效值,因此該文采用的是和已有文獻(xiàn)的點(diǎn)云3D網(wǎng)絡(luò)中使用的評(píng)估方法[22]相似的評(píng)估方法。為了避免將來測(cè)試和訓(xùn)練的樣本中同時(shí)含有相同的數(shù)據(jù)樣本的情況出現(xiàn),實(shí)驗(yàn)將數(shù)據(jù)集以70%和30%的比例分別作為訓(xùn)練集和測(cè)試集。
在KITTI數(shù)據(jù)集中,每一幀中所包含的點(diǎn)云數(shù)據(jù)大約有10萬個(gè),覆蓋的范圍大約有120米。本實(shí)驗(yàn)直接將點(diǎn)云用作網(wǎng)絡(luò)的輸入。然而將大約10萬個(gè)點(diǎn)一次性作為輸入會(huì)大幅增加計(jì)算的開銷,而且對(duì)計(jì)算能力有著非常嚴(yán)格的要求,因此直接使用原始幀數(shù)據(jù)并不切實(shí)際。KITTI數(shù)據(jù)集僅在負(fù)責(zé)拍攝周圍環(huán)境的攝像機(jī)的拍攝范圍內(nèi)通過數(shù)字標(biāo)簽的形式給出所包含的物體對(duì)象的所屬類別,因此為了減少計(jì)算量,在實(shí)驗(yàn)時(shí)將落在攝像機(jī)的拍攝范圍之外的點(diǎn)予以刪除。
在對(duì)此次的網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時(shí),該文對(duì)原有的數(shù)據(jù)集進(jìn)行了一定的數(shù)據(jù)處理。
在進(jìn)行實(shí)驗(yàn)時(shí),首先將負(fù)責(zé)拍攝周圍環(huán)境的攝像機(jī)的拍攝范圍分成了若干個(gè)邊長(zhǎng)為12米的正方形區(qū)域,每個(gè)正方形之間有大約1米的邊長(zhǎng)的交叉部分。這樣,每個(gè)分割成的正方形區(qū)域內(nèi)的點(diǎn)的個(gè)數(shù)就有0~20 000個(gè)不等。如果對(duì)這些正方形區(qū)域內(nèi)的點(diǎn)直接進(jìn)行網(wǎng)絡(luò)框架處理,仍然會(huì)增加內(nèi)存的負(fù)擔(dān),所以實(shí)驗(yàn)將每個(gè)正方形區(qū)域內(nèi)的點(diǎn)進(jìn)行隨機(jī)采樣,使得每個(gè)正方形區(qū)域內(nèi)的點(diǎn)為4 096個(gè)。
接下來,實(shí)驗(yàn)將每個(gè)邊長(zhǎng)為12米的正方形區(qū)域進(jìn)行灰度圖像的轉(zhuǎn)化,生成場(chǎng)景所對(duì)應(yīng)的大小為120*120像素的俯視高度圖,將三維點(diǎn)云通過俯視角度投影并離散成為2D網(wǎng)格。
實(shí)驗(yàn)選擇覆蓋從地面以下2米到地面以上3米的高度區(qū)域,此舉是為了基本上覆蓋所有汽車類別的物體的高度。描述所有映射到俯視圖的特定網(wǎng)格單元的點(diǎn)的集合如式(7)和式(8)所示。
H(Sj)=max(Pi→j.[0,0,1]T)
(7)
Pi→j={Pi=[x,y,z]T|Sj=fPS(Pi,r)}
(8)
其中,Pi→j表示將在原始點(diǎn)云數(shù)據(jù)中索引為i的點(diǎn)投射到高度圖的網(wǎng)格單元對(duì)應(yīng)的索引j中,[x,y,z]表示點(diǎn)云數(shù)據(jù)中點(diǎn)的三維坐標(biāo),Sj表示與點(diǎn)云數(shù)據(jù)對(duì)應(yīng)的網(wǎng)格單元集合,Pi表示點(diǎn)云數(shù)據(jù)內(nèi)的某一個(gè)點(diǎn),r表示高度圖的分辨率,即r=10 cm,H(Sj)表示網(wǎng)格單元集合Sj對(duì)應(yīng)的高度。
針對(duì)是否有汽車對(duì)每個(gè)正方形區(qū)域進(jìn)行標(biāo)簽設(shè)定。來自KITTI數(shù)據(jù)集的信息用于檢查每個(gè)正方形區(qū)域內(nèi)是否有汽車,并且對(duì)汽車位置、方向和大小進(jìn)行觀察和記錄。經(jīng)過對(duì)KITTI數(shù)據(jù)集的全方位分析之后,發(fā)現(xiàn)該數(shù)據(jù)集的所有區(qū)域中95%的區(qū)域最多僅有3輛汽車。因此對(duì)于每一個(gè)正方形區(qū)域,都會(huì)設(shè)有一個(gè)含有3個(gè)標(biāo)簽的序列。對(duì)應(yīng)的矩陣變換參數(shù)則能夠反映最終邊界框的相關(guān)屬性。如果某區(qū)域內(nèi)汽車不足3輛,就會(huì)在該區(qū)域的范圍之外的固定位置生成剩余數(shù)量的固定的大小的邊界框,并顯示為其余顏色,表示該區(qū)域內(nèi)的汽車的數(shù)量不足3輛。
然而在實(shí)驗(yàn)過程中發(fā)現(xiàn)在非常多的正方形的被剪裁的區(qū)域內(nèi)是沒有一輛汽車的,而且沒有汽車的正方形區(qū)域個(gè)數(shù)比有汽車的區(qū)域個(gè)數(shù)要多。為了能夠讓有汽車的被裁剪的區(qū)域和沒有汽車的正方形區(qū)域的個(gè)數(shù)保持盡可能的一致,這里采用了數(shù)據(jù)增強(qiáng)方法,包含一系列對(duì)原始數(shù)據(jù)的操作(包括旋轉(zhuǎn)、縮放、裁剪、移位、翻轉(zhuǎn)等)。增強(qiáng)之后的所使用的KITTI一共包括約27 000個(gè)用于訓(xùn)練的被裁剪的正方形區(qū)域。
上文提到該網(wǎng)絡(luò)框架包含環(huán)境網(wǎng)絡(luò)、重復(fù)定位網(wǎng)絡(luò)、分類器網(wǎng)絡(luò)、轉(zhuǎn)換和重采樣器網(wǎng)絡(luò)、邊界框預(yù)測(cè)等。不同部分會(huì)產(chǎn)生不同損失??倱p失和各個(gè)部分損失的關(guān)系如式(9)~式(11)所示。
(9)
Lseq-i=α*Lcls+β*(LT1-reg+LT2-reg)+γ*Lsize-reg+λ*Lreg
(10)
Lreg=‖I-T(ψ)T(ψ)T‖2
(11)
其中,Lseq-i表示某一個(gè)序列的總計(jì)損失,Lcls表示由分類器網(wǎng)絡(luò)產(chǎn)生的損失,LT1-reg表示用于重復(fù)局部定位的矩陣參數(shù)的損失,LT2-reg表示邊界框預(yù)測(cè)模塊產(chǎn)生的矩陣參數(shù)的損失,Lsize-reg表示邊界框預(yù)測(cè)產(chǎn)生的損失,Lreg表示正則化損失,Lfinal表示總計(jì)的損失,I表示單位陣,T(ψ)表示回歸操作的相關(guān)參數(shù)所對(duì)應(yīng)的變換矩陣,α、β、γ、λ表示在計(jì)算總計(jì)損失時(shí)的加權(quán)系數(shù)。
在具體實(shí)現(xiàn)的過程中,各個(gè)部分損失具體采用的計(jì)算方法如下:
(1)對(duì)于分類部分損失的計(jì)算,采用二進(jìn)制交叉熵的方法。
(2)對(duì)于轉(zhuǎn)換矩陣回歸處理產(chǎn)生的損失的計(jì)算,采用Huber的平滑L1方法。
(3)對(duì)于正則化損失的計(jì)算,采用均分損失函數(shù)的方法。
其中,式(12)主要是為了使得預(yù)測(cè)的變換矩陣盡可能接近于正交矩陣,以使得優(yōu)化過程變得更加穩(wěn)定和網(wǎng)絡(luò)性能變得更好。
為了進(jìn)行訓(xùn)練,這里將預(yù)測(cè)序列的長(zhǎng)度預(yù)定義為n=3。為了能夠使得損失的具體計(jì)算結(jié)果不受輸入序列的數(shù)據(jù)的次序的影響,采用最大加權(quán)二分圖匹配法。為了能夠計(jì)算得到該方法所需要的權(quán)重,使用匈牙利算法進(jìn)行計(jì)算,以得到最大匹配。
環(huán)境網(wǎng)絡(luò)由3個(gè)全連接層組成,每一層均是用1D卷積進(jìn)行實(shí)現(xiàn)。該網(wǎng)絡(luò)的最開始輸入為三維點(diǎn)坐標(biāo),即(x,y,z)。每一層的輸入和輸出的特征的大小分別為(3,64),(64,128),(128,1 024)。除了第一層沒有批次規(guī)范化處理之外,其余層均有ReLU激活函數(shù)批次規(guī)范化處理操作。
除了3D特征網(wǎng)絡(luò),本地化網(wǎng)絡(luò)同樣包含3個(gè)全連接層。該網(wǎng)絡(luò)的每一層的輸入和輸出的大小分別為(512,256),(256,128),(128,5)。在該部分中,僅有第一層和第二層有ReLU激活函數(shù),僅有第一層有Batch Normalization處理。
轉(zhuǎn)換矩陣初始化為單位矩陣。
損失函數(shù)系數(shù)分別為:α=1,β=1.5,γ=0.5,λ=0.01。
在實(shí)驗(yàn)進(jìn)行的過程中觀察到,網(wǎng)絡(luò)模型在訓(xùn)練迭代120次時(shí)趨于收斂。對(duì)此,本實(shí)驗(yàn)將訓(xùn)練過程中其余相關(guān)的參數(shù)設(shè)置如下:
動(dòng)量:0.9,權(quán)重衰減:0.000 5,批次大小:初始化為32。
學(xué)習(xí)率:在前40次訓(xùn)練迭代過程中是0.01,之后為0.001。
在訓(xùn)練完整網(wǎng)絡(luò)之前,還訓(xùn)練了此次的改進(jìn)的網(wǎng)絡(luò)的小型初始版本。在該版本中,刪除了原始的點(diǎn)云數(shù)據(jù)輸入和一開始的處理部分,以及最后的邊界框預(yù)測(cè)部分,并且從定位網(wǎng)絡(luò)直接回歸邊界框的大小尺寸。
在點(diǎn)云檢測(cè)任務(wù)中,最重要的數(shù)據(jù)即是檢測(cè)的準(zhǔn)確性,因此本次實(shí)驗(yàn)中對(duì)汽車類別的物體的檢測(cè)進(jìn)行了計(jì)算。在以上參數(shù)的調(diào)整下進(jìn)行了實(shí)驗(yàn),并且與已有文獻(xiàn)的檢測(cè)率進(jìn)行了比較,結(jié)果如表1所示。
表1 網(wǎng)絡(luò)框架在KITTI數(shù)據(jù)集下的運(yùn)行結(jié)果
續(xù)表1
其中輸入L&M為L(zhǎng)IDAR+Mono,L為L(zhǎng)IDAR。BV(Bird-eye View)表示俯視圖,汽車類別的檢測(cè)精度為百分比(%)。F-PointNet表示Frustum PointNet[22],C-YOLO表示Complex-YOLO[8]。
從表1可看出,除去少量數(shù)據(jù)的上升,隨著檢測(cè)難度的增加,物體檢測(cè)的精度總體上呈下降趨勢(shì)。其中MV3D[23]、F-PointNet、AVOD[24]和RoarNet[25]均使用了LiDAR和數(shù)據(jù)形式與多傳感器檢測(cè),其精度比未使用多傳感器的方法高,其中RoarNet在各個(gè)檢測(cè)難度上均比其余方法精度高;文中網(wǎng)絡(luò)與VeloFCN[26]、RT3D[27]、VoxelNet[28]、Complex-YOLO方法均未使用多傳感器方法,其中,由于Complex-YOLO方法僅使用了LiDAR數(shù)據(jù)形式的俯視圖形式,因此盡管FPS在各種方法中最高,然而檢測(cè)精度卻未有大幅度提升。文中網(wǎng)絡(luò)在未使用多傳感器的條件下,在各個(gè)難度的汽車檢測(cè)精度上僅次于VoxelNet??紤]到VoxelNet是將三維點(diǎn)云數(shù)據(jù)轉(zhuǎn)化成為體素格形式,大幅增加了計(jì)算復(fù)雜度,對(duì)計(jì)算機(jī)硬件要求相對(duì)于其余未使用多傳感器的方法要高。因此可以認(rèn)為,文中網(wǎng)絡(luò)在僅使用LIDAR數(shù)據(jù),未使用多傳感器,未將三維點(diǎn)云轉(zhuǎn)換成為其余三維數(shù)據(jù)形式,以及較低計(jì)算復(fù)雜度的情況下,在汽車物體檢測(cè)類別的精度上比其余方法的對(duì)應(yīng)數(shù)據(jù)高,取得了良好的運(yùn)行效果。
當(dāng)前隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺研究中的不斷深入,該研究方法在二維圖像檢測(cè)上得到了廣泛的應(yīng)用,之后,深度學(xué)習(xí)在三維數(shù)據(jù)上的研究工作亦進(jìn)行開展。然而,大多數(shù)已有的關(guān)于深度學(xué)習(xí)在三維數(shù)據(jù)上的研究的文獻(xiàn)使用的是手動(dòng)輸入特征值的方法或?qū)⒎且?guī)則化三維體素格的數(shù)據(jù)形式轉(zhuǎn)換成為規(guī)則化三維體素格的數(shù)據(jù)形式的方法,兩種處理方式均會(huì)大幅提高計(jì)算成本,增加計(jì)算復(fù)雜度。為能夠在未將三維點(diǎn)云數(shù)據(jù)轉(zhuǎn)換成為其余數(shù)據(jù)形式的情況下用較低的計(jì)算成本對(duì)三維點(diǎn)云進(jìn)行直接使用和處理,受到與人體視覺機(jī)理與RNN網(wǎng)絡(luò)的啟發(fā),該文以深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)PointNet為基礎(chǔ),提出用于三維物體檢測(cè)的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)僅使用LIDAR的三維數(shù)據(jù),高效獲取數(shù)據(jù)幾何特征,為減少計(jì)算成本與計(jì)算復(fù)雜度,該網(wǎng)絡(luò)引入三維點(diǎn)云的人體視覺機(jī)制,引入三維局部定位網(wǎng)絡(luò)。為對(duì)提出的網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn),使用KITTI數(shù)據(jù)集,對(duì)數(shù)據(jù)集中的汽車進(jìn)行檢測(cè),并對(duì)檢測(cè)精度進(jìn)行評(píng)估。結(jié)果顯示,該網(wǎng)絡(luò)在僅使用LIDAR數(shù)據(jù),未使用多傳感器,未將三維點(diǎn)云轉(zhuǎn)換成為其余三維數(shù)據(jù)形式,以及較低計(jì)算復(fù)雜度的情況下,在汽車物體檢測(cè)類別的精度上比其余方法的對(duì)應(yīng)數(shù)據(jù)高,取得了良好的運(yùn)行效果。