張耀威,卞春江,周 海+,陳紅珍
(1.中國科學(xué)院國家空間科學(xué)中心 復(fù)雜航天系統(tǒng)綜合電子與信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190;2.中國科學(xué)院大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100049)
近幾年來,伴隨著人工智能技術(shù)的不斷發(fā)展,智能機(jī)器人具備了更多的功能,包括:環(huán)境監(jiān)測(cè)、巡邏安檢、導(dǎo)航、自主灌溉等等,越來越多的機(jī)器人應(yīng)用于室外場(chǎng)景。因此室外機(jī)器人的感知能力對(duì)于其應(yīng)用起著至關(guān)重要的作用。本文立足于室外輪式機(jī)器人的應(yīng)用,改進(jìn)了一種三維障礙物檢測(cè)的方法,提升了其檢測(cè)精度。
在傳統(tǒng)的檢測(cè)方法中,謝德勝等[1]使用了模板匹配的方法進(jìn)行障礙物檢測(cè),王海等[2]使用了聚類的方法進(jìn)行障礙物檢測(cè)。近幾年來,基于圖像的檢測(cè)技術(shù)已經(jīng)非常的成熟了,有經(jīng)典的Faster Rcnn[3,4]系列,Yolo[5-7]系列和SSD[8]系列等,其在圖像檢測(cè)領(lǐng)域已經(jīng)達(dá)到了非常高的水平,如陸峰等[9,10]是用了Faster Rcnn在雷達(dá)數(shù)據(jù)的俯視圖進(jìn)行障礙物的檢測(cè)。
一般地,帶有三維信息的數(shù)據(jù)輸入有深度圖像和雷達(dá)點(diǎn)云兩種。通過雙目視覺獲取的深度圖像有著距離短、夜晚效果差的缺點(diǎn),所以大部分室外場(chǎng)景的實(shí)驗(yàn)和應(yīng)用都使用雷達(dá)點(diǎn)云作為輸入。近兩年來,有許多針對(duì)點(diǎn)云數(shù)據(jù)處理的方法,如使用體素的VoxelNet[11],使用多角度的Multi-view 3D[12],針對(duì)點(diǎn)云整體處理的Pointnet[13]等。其中Frustum PointNets[14](平截頭點(diǎn)云網(wǎng)絡(luò))利用二維檢測(cè)鎖定目標(biāo),再提取點(diǎn)云并使用Pointnet進(jìn)行三維點(diǎn)云檢測(cè),提高了Pointnet的檢測(cè)效率。本文基于平截頭點(diǎn)云網(wǎng)絡(luò)的架構(gòu),提出了一種擴(kuò)張平截頭點(diǎn)云的三維障礙物檢測(cè)方法。該方法對(duì)其二維網(wǎng)絡(luò)和三維網(wǎng)絡(luò)之間結(jié)合的部分進(jìn)行改進(jìn),加入了擴(kuò)張包圍框,提高了三維檢測(cè)的精度。
本文基于平截頭點(diǎn)云網(wǎng)絡(luò),加入了二維包圍框擴(kuò)張,提出了一種擴(kuò)張平截頭點(diǎn)云檢測(cè)的方法。該方法使用了圖像和雷達(dá)點(diǎn)云數(shù)據(jù),完成了室外街道場(chǎng)景中障礙物的三維檢測(cè)和識(shí)別,提高了障礙物檢測(cè)的精度。
該方法首先使用了Yolov3在圖像中進(jìn)行了障礙物的檢測(cè)與識(shí)別;然后對(duì)得到的二維包圍框進(jìn)行擴(kuò)張,利用擴(kuò)張后的二維包圍框提取雷達(dá)數(shù)據(jù)中對(duì)應(yīng)的點(diǎn)云;最后利用改進(jìn)的Pointnet對(duì)該點(diǎn)云進(jìn)行計(jì)算,得到對(duì)應(yīng)點(diǎn)云的三維坐標(biāo)。對(duì)于障礙物識(shí)別,使用圖像分類的類別作為識(shí)別結(jié)果。本文使用的方法構(gòu)架如圖1所示。
圖1 擴(kuò)張平截頭點(diǎn)云檢測(cè)方法架構(gòu)
本文借鑒平截頭點(diǎn)云網(wǎng)絡(luò)的結(jié)構(gòu),實(shí)現(xiàn)室外街道場(chǎng)景中障礙物的檢測(cè)和識(shí)別,整個(gè)架構(gòu)的開始依賴于二維目標(biāo)檢測(cè)的結(jié)果,因此首先使用二維目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)障礙物進(jìn)行檢測(cè)。
目前主流的目標(biāo)檢測(cè)網(wǎng)絡(luò)有兩個(gè)階段類型的Faster Rcnn系列和一個(gè)階段類型的Yolo、SSD系列。其中Yolov3使用多個(gè)尺度融合進(jìn)行了檢測(cè),對(duì)小目標(biāo)的檢測(cè)結(jié)果提升,網(wǎng)絡(luò)結(jié)構(gòu)簡單,檢測(cè)速度也比較快。
二維包圍框的好壞會(huì)影響后續(xù)檢測(cè)的效果。與其它的二維目標(biāo)檢測(cè)網(wǎng)絡(luò)相比較,Yolov3在COCO(common objects in context)數(shù)據(jù)集中的檢測(cè)效果更好,與其它方法對(duì)比的結(jié)果見表1[7]。
表1 二維檢測(cè)網(wǎng)絡(luò)性能對(duì)比
由表1可以看出Yolov3的性能從檢測(cè)精度和檢測(cè)時(shí)間來說,相對(duì)更好,因此本文使用Yolov3進(jìn)行障礙物檢測(cè),提取障礙物二維包圍框和分類置信度。
圖像數(shù)據(jù)和雷達(dá)數(shù)據(jù)是不同維度的數(shù)據(jù),在利用圖像數(shù)據(jù)提取雷達(dá)數(shù)據(jù)的時(shí)候,需要對(duì)圖像數(shù)據(jù)和雷達(dá)數(shù)據(jù)進(jìn)行關(guān)聯(lián)。利用數(shù)據(jù)集提供的投影矩陣,可以完成圖像二維數(shù)據(jù)與雷達(dá)三維數(shù)據(jù)之間的相互轉(zhuǎn)換。
在KITTI[15]數(shù)據(jù)集的標(biāo)定文件中包含了轉(zhuǎn)換的矩陣P,通過矩陣P可以將雷達(dá)數(shù)據(jù)投影到對(duì)應(yīng)的圖像平面當(dāng)中。
空間三維點(diǎn)的坐標(biāo)可以表示為
X=(x,y,z,1)T
(1)
投影矩陣可以表示為
(2)
其中,i為第i個(gè)相機(jī)編號(hào);
圖像與雷達(dá)數(shù)據(jù)的轉(zhuǎn)換為
(3)
其中,輸出的Y為投影到了二維相機(jī)坐標(biāo)系中的坐標(biāo)。
根據(jù)檢測(cè)得到的二維包圍框提取投影后對(duì)應(yīng)的點(diǎn)云數(shù)據(jù),因此二維包圍框的好壞直接影響到了后續(xù)點(diǎn)云檢測(cè)網(wǎng)絡(luò)的性能。二維包圍框過小造成提取出的點(diǎn)云不足,會(huì)影響三維檢測(cè)網(wǎng)絡(luò)的檢測(cè)邊界范圍;二維包圍框過大造成提取雜點(diǎn)過多,會(huì)導(dǎo)致三維檢測(cè)位置大小信息不準(zhǔn)。根據(jù)目前目標(biāo)檢測(cè)理論方法的成果,二維檢測(cè)框檢測(cè)的結(jié)果已經(jīng)達(dá)到了比較好的水平,再進(jìn)一步大幅度提高難度比較大,因此,可以在二維目標(biāo)檢測(cè)框和三維點(diǎn)云提取的銜接部分進(jìn)行改進(jìn)。通過擴(kuò)張二維檢測(cè)框,可以有效提高點(diǎn)云提取的召回率,避免障礙物點(diǎn)云信息丟失,增加了三維檢測(cè)數(shù)據(jù)輸入的完整性,進(jìn)而提升三維檢測(cè)效果。本文加入對(duì)二維包圍框的擴(kuò)張,利用擴(kuò)張后的二維包圍框?qū)c(diǎn)云數(shù)據(jù)進(jìn)行提取。檢測(cè)包圍框的擴(kuò)張如圖2所示。
圖2 二維包圍框的擴(kuò)張
利用投影矩陣將點(diǎn)云數(shù)據(jù)投影到平面,通過圖像大小對(duì)雷達(dá)數(shù)據(jù)進(jìn)行第一次裁剪,再通過二維包圍框?qū)c(diǎn)云進(jìn)行第二次裁剪,將裁剪后剩余的點(diǎn)云的數(shù)據(jù)提取出來,完成了點(diǎn)云數(shù)據(jù)的提取。
對(duì)于三維目標(biāo)檢測(cè),本文借助點(diǎn)云網(wǎng)絡(luò)的結(jié)構(gòu),對(duì)其
進(jìn)行改進(jìn),因此使用基本網(wǎng)絡(luò)結(jié)構(gòu)為Pointnet。Pointnet的兩個(gè)基本結(jié)構(gòu)是轉(zhuǎn)換網(wǎng)絡(luò)與最大池化,使用轉(zhuǎn)換網(wǎng)絡(luò)可以使點(diǎn)云進(jìn)行旋轉(zhuǎn),使用最大池化可以對(duì)升維之后點(diǎn)進(jìn)行特征篩選,解決了點(diǎn)云輸入無序性的問題。
針對(duì)Pointnet的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),使其可以輸出點(diǎn)云的三維位置,使用一個(gè)7維度的向量來表示點(diǎn)云的位置和大小,即 [x,y,z,l,w,h,θ], 分別表示點(diǎn)云的中心坐標(biāo)、長寬高以及在俯視圖平面相對(duì)于正方向的轉(zhuǎn)角θ。 其中在網(wǎng)絡(luò)訓(xùn)練的過程當(dāng)中需要對(duì)檢測(cè)點(diǎn)云進(jìn)行旋轉(zhuǎn)平移的歸一化處理,因此需要使用到轉(zhuǎn)換網(wǎng)絡(luò)的結(jié)構(gòu)。
改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的輸入是提取獲得的點(diǎn)云數(shù)據(jù),輸出是檢測(cè)的三維結(jié)果。其中轉(zhuǎn)換網(wǎng)絡(luò)生成的是一個(gè)同點(diǎn)云維度相同的變換矩陣。
改進(jìn)的Pointnet網(wǎng)絡(luò)結(jié)構(gòu)如圖3上部分所示。輸入為 [n×3] 的點(diǎn)云,每個(gè)點(diǎn)云的使用三維度的 [x,y,z] 空間點(diǎn)表示,經(jīng)過一個(gè)轉(zhuǎn)換網(wǎng)絡(luò),對(duì)點(diǎn)進(jìn)行變換處理;通過多層感知機(jī)將每個(gè)點(diǎn)的維度提升到64;再經(jīng)過相同的操作將點(diǎn)的維度信息提升到1024;經(jīng)過最大池化,提取出顯著特征,最后經(jīng)過多層感知機(jī)將輸出維度改變?yōu)?維度。
其中轉(zhuǎn)換操作的具體過程如圖3的下半部分所示,原始數(shù)據(jù)經(jīng)過多層感知機(jī)將維度提升到1024,在經(jīng)過極大池化,最后通過多層感知機(jī)將維度改變到256維度;將得到的輸出與 [256×9] 維度的參數(shù)進(jìn)行矩陣相乘,得到9維度的向量,即 [3×3] 的轉(zhuǎn)換矩陣。
圖3 改進(jìn)的Pointnet網(wǎng)絡(luò)結(jié)構(gòu)
使用二維圖像分類的結(jié)果作為最終的分類結(jié)果,使用點(diǎn)云檢測(cè)的結(jié)果作為障礙物檢測(cè)位置和大小的結(jié)果。
實(shí)驗(yàn)使用KITTI數(shù)據(jù)集,數(shù)據(jù)集包括了8個(gè)類別,分別是:car,van,truck,pedestrian,person sitting,cyclist,tram,others。室外街道場(chǎng)景中最常見的運(yùn)動(dòng)障礙物為人、車和自行車,為了簡化數(shù)據(jù)集,對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,將類別重新劃分成3類:car(包括了car、van、truck、tram),pedestrian(包括了pedestrian、person sitting),cyclist。因?yàn)闇y(cè)試數(shù)據(jù)沒有標(biāo)簽,無法進(jìn)行測(cè)評(píng),因此重新劃分?jǐn)?shù)據(jù)集。訓(xùn)練數(shù)據(jù)集中一共有7480份圖片和雷達(dá)數(shù)據(jù),將1/3劃分為測(cè)試集,其余的為訓(xùn)練集和驗(yàn)證集。劃分后訓(xùn)練數(shù)據(jù)有4488份圖像和雷達(dá)數(shù)據(jù),驗(yàn)證數(shù)據(jù)有498份圖像和雷達(dá)數(shù)據(jù),測(cè)試數(shù)據(jù)有2494份圖像和雷達(dá)數(shù)據(jù)。
使用的二維障礙物檢測(cè)網(wǎng)絡(luò)為Yolov3檢測(cè)網(wǎng)絡(luò),檢測(cè)的類別分別有car,pedestrian和cyclist這3個(gè)類別。
實(shí)驗(yàn)主要探究了二維檢測(cè)與三維檢測(cè)之間的關(guān)系以及三維檢測(cè)的效果。本文通過擴(kuò)張二維檢測(cè)網(wǎng)絡(luò)輸出包圍框的大小,探究二維包圍框擴(kuò)張比例對(duì)檢測(cè)結(jié)果的影響,分別設(shè)置擴(kuò)張比例為5%,10%,15%,20%,30%,40%,50%,60%,70%,80%,90%,100%進(jìn)行實(shí)驗(yàn),通過對(duì)比不同二維包圍框下三維包圍框檢測(cè)效果,進(jìn)行分析。
圖4為使用Yolov3檢測(cè)的二維結(jié)果和使用提取點(diǎn)云檢測(cè)的三維結(jié)果。從3類檢測(cè)的總體結(jié)果來看,通過擴(kuò)張二維包圍框在Pointnet網(wǎng)絡(luò)中進(jìn)行檢測(cè),檢測(cè)的精度會(huì)得到一定的提升。car,pedestrian和cyclist類型的三維檢測(cè)結(jié)果在擴(kuò)張比例分別在10%,5%,50%的時(shí)候效果最好,提升約為2%,1%,15%??傮w趨勢(shì)都有提升,說明適當(dāng)?shù)脑黾犹崛↑c(diǎn)的數(shù)量,可以增加三維檢測(cè)的結(jié)果,但是隨著擴(kuò)張的提升,三維的檢測(cè)結(jié)果都會(huì)下降,說明提取的雜點(diǎn)過多,會(huì)導(dǎo)致三維檢測(cè)結(jié)果下降。最終car,pedestrian,cyclist三維檢測(cè)的最高AP值分別為64.34,42.61,15.5,mAP為40.82。
圖4 擴(kuò)張二維框的二維和三維檢測(cè)結(jié)果左上:car類型的AP;右上:pedestrian類型的AP左下:cyclist類型的AP;右下:檢測(cè)的mAP
檢測(cè)可視化結(jié)果如圖5所示,第一、二排為街道車輛的檢測(cè)結(jié)果,第三、四排為行人的檢測(cè)結(jié)果,第五、六排為人騎車的檢測(cè)結(jié)果。第一、三、五排為使用Yolov3檢測(cè)的結(jié)果,第二、四、六排為使用本文方法檢測(cè)的三維結(jié)果。從檢測(cè)結(jié)果來看,在車輛和人流比較密集的地方可以達(dá)到良好的檢測(cè)效果,較遠(yuǎn)位置的人和車也可以達(dá)到良好的檢測(cè)效果。
圖5 檢測(cè)結(jié)果可視化
本文基于平截頭點(diǎn)云網(wǎng)絡(luò),針對(duì)二維和三維連接的部分,提出了擴(kuò)張平截頭點(diǎn)云檢測(cè)的方法。該方法在二維檢測(cè)包圍框之后增加了比例擴(kuò)張方法,增加了點(diǎn)云提取的完整性,通過平截頭點(diǎn)云網(wǎng)絡(luò)結(jié)構(gòu)完成了障礙物的三維檢測(cè)。通過KITTI數(shù)據(jù)集的實(shí)驗(yàn)對(duì)比,該方法通過比例擴(kuò)張二維包圍框,可以有效地提高道路障礙物檢測(cè)的精度。但是,該方法比較依賴二維檢測(cè)網(wǎng)絡(luò)效果,召回率低的網(wǎng)絡(luò)會(huì)影響該方法的效果,今后可以從此處進(jìn)行提高和改進(jìn)。