仇旭陽(yáng),黃影平,郭志陽(yáng),胡 興
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
從復(fù)雜的交通場(chǎng)景圖像中準(zhǔn)確地檢測(cè)、辨識(shí)障礙物并實(shí)現(xiàn)深度估計(jì)是智能汽車(chē)研究的一個(gè)重要課題[1]。隨著深度學(xué)習(xí)的發(fā)展,目標(biāo)檢測(cè)和識(shí)別進(jìn)入到一個(gè)新的階段。與傳統(tǒng)的使用人工設(shè)計(jì)的特征,如LBP(local binary patterns)[2], HOG(histogram of oriented gradient)[3]等對(duì)目標(biāo)進(jìn)行特征提取,然后將提取到的特征輸入到貝葉斯(Bayes)[4],SVM(support vector machine)[5]等分類(lèi)器進(jìn)行檢測(cè)和識(shí)別的機(jī)器學(xué)習(xí)方法不同,基于深度卷積網(wǎng)絡(luò)的檢測(cè)方法具有強(qiáng)大的特征提取能力,能夠更好地學(xué)習(xí)目標(biāo)的特征,實(shí)現(xiàn)更高精度的檢測(cè)。目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法主要分為基于候選區(qū)域的雙步(two-stage)檢測(cè)方法,如R-CNN[6], Fast RCNN[7],F(xiàn)aster R-CNN[8]等。這類(lèi)算法將檢測(cè)階段分為兩步,首先提取圖片中目標(biāo)可能存在的候選區(qū)域,然后再將提取的候選區(qū)域輸入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行特征提取,最后再進(jìn)行檢測(cè)和邊界框修正[9]。這類(lèi)算法的特點(diǎn)是檢測(cè)速度較慢但檢測(cè)精確度較高。基于邊界框回歸的單步(one-stage)目標(biāo)檢測(cè)算法如SSD[10],YOLO(you only look once)[11],YOLOv2[12],YOLOv3[13]等,這類(lèi)算法不再需要區(qū)域建議階段,直接由網(wǎng)絡(luò)產(chǎn)生目標(biāo)的類(lèi)別概率和位置坐標(biāo),經(jīng)過(guò)單次檢測(cè)即可直接得到最終的檢測(cè)結(jié)果,因此,具有更快的檢測(cè)速度。其中,YOLOv3不僅檢測(cè)精度較高,而且速度較快。但是,對(duì)于復(fù)雜交通場(chǎng)景中較小的障礙物,檢測(cè)效果不佳。而且這些基于深度學(xué)習(xí)的障礙物檢測(cè)方法,一般采用單目視覺(jué)方法,不能檢測(cè)出目標(biāo)的深度信息。
對(duì)障礙物的深度估計(jì)可以使用激光雷達(dá)、毫米波雷達(dá)、超聲波等傳感器。與使用傳感器測(cè)距的方法相比,基于雙目視覺(jué)的測(cè)距方法具有信息豐富、成本低的優(yōu)點(diǎn)。雙目測(cè)距方法是利用左右圖像進(jìn)行匹配,獲取視差,計(jì)算目標(biāo)的三維信息。在復(fù)雜交通場(chǎng)景中,對(duì)障礙物進(jìn)行深度估計(jì),只需要獲取場(chǎng)景的圖像,然后映射到視差圖中,根據(jù)雙目視覺(jué)的原理就可以估計(jì)出目標(biāo)的距離。而目標(biāo)檢測(cè)算法可以識(shí)別和定位障礙物,從而獲取障礙物的坐標(biāo)信息。為了獲取精度高的視差圖,本文使用一個(gè)端到端的立體匹配網(wǎng)絡(luò)PSMNet[14],其由空間金字塔池化模塊和3D卷積神經(jīng)網(wǎng)絡(luò)模塊組成,具有利用全局環(huán)境信息尋找不確定區(qū)域(遮擋區(qū)域、弱紋理區(qū)域等)左右圖一致性的能力。
針對(duì)現(xiàn)有的基于深度學(xué)習(xí)方法的目標(biāo)檢測(cè)存在的問(wèn)題,本文以YOLOv3為基礎(chǔ)框架,對(duì)其進(jìn)行改進(jìn),使用密集連接卷積網(wǎng)絡(luò)(DenseNet)[15]替換YOLOv3中尺度較小的傳輸層,加強(qiáng)特征融合和重用,提出了改進(jìn)后的Dense-YOLO網(wǎng)絡(luò),提高了在復(fù)雜交通場(chǎng)景中對(duì)較小障礙物的檢測(cè)精確度。在檢測(cè)的基礎(chǔ)上,采用立體匹配網(wǎng)絡(luò)PSMNet獲取雙目圖像的視差圖,對(duì)Dense-YOLO網(wǎng)絡(luò)檢測(cè)到的目標(biāo)區(qū)域利用立體視覺(jué)原理進(jìn)行深度估計(jì),實(shí)現(xiàn)了對(duì)各類(lèi)障礙物檢測(cè)的同時(shí)提供其距離信息。

圖1 方法總體框架Fig.1 Framework of the proposed method
本研究的主要任務(wù)是檢測(cè)交通場(chǎng)景下的障礙物并計(jì)算出其距離。為了提高障礙物的檢測(cè)和測(cè)距的精度,本文結(jié)合深度學(xué)習(xí)和雙目視覺(jué)構(gòu)建一個(gè)障礙物檢測(cè)和測(cè)距系統(tǒng)。圖1是系統(tǒng)的總體框架。
如圖1所示,首先以校正后的雙目圖像作為輸入,為了提高目標(biāo)檢測(cè)的精度,使用以YOLOv3為基礎(chǔ)的改進(jìn)的Dense-YOLO網(wǎng)絡(luò)獲得高效的檢測(cè)結(jié)果。然后利用PSMNet立體匹配算法得到圖像的視差圖,并將檢測(cè)得到的障礙物目標(biāo)框映射到視差圖中。為了排除背景等非障礙物視差對(duì)測(cè)距精確度的影響,使用視差直方圖來(lái)統(tǒng)計(jì)邊界框中每個(gè)像素的視差,選取頻率最大的視差值作為障礙物的視差。最后利用雙目視覺(jué)測(cè)距原理計(jì)算出每個(gè)障礙物的距離。
在YOLOv3的基礎(chǔ)上使用密集連接卷積網(wǎng)絡(luò)(DenseNet)進(jìn)行改進(jìn),得到改進(jìn)后的深度卷積神經(jīng)網(wǎng)絡(luò)Dense-YOLO。
YOLOv3網(wǎng)絡(luò)是在YOLO和YOLOv2網(wǎng)絡(luò)基礎(chǔ)上改進(jìn)而來(lái)的。YOLOv3的檢測(cè)原理如圖2所示。tx,ty分別為邊界框的橫坐標(biāo)和縱坐標(biāo),tw,th分別為邊界框的寬度和高度。

圖2 YOLOv3檢測(cè)原理Fig. 2 YOLOv3 detection principle diagram
網(wǎng)絡(luò)將輸入圖像劃分為S×S個(gè)網(wǎng)格,如果目標(biāo)真實(shí)邊界框的中心落在網(wǎng)格中,那么,該網(wǎng)格負(fù)責(zé)檢測(cè)該目標(biāo)。每個(gè)網(wǎng)格預(yù)測(cè)B個(gè)邊界框、1個(gè)目標(biāo)置信度得分po和C個(gè)類(lèi)別得分(p1,p2,···,pC)。其中,目標(biāo)置信度c定義為

置信度反映了網(wǎng)格是否包含對(duì)象,以及在包含對(duì)象時(shí)預(yù)測(cè)的邊界框的準(zhǔn)確性。當(dāng)目標(biāo)在網(wǎng)格中時(shí),pr=1;否則,用于表示真實(shí)邊界框與預(yù)測(cè)邊界框之間的重合度。當(dāng)多個(gè)包圍框檢測(cè)到同一個(gè)目標(biāo)時(shí),YOLOv3使用非極大值抑制(NMS)方法來(lái)選擇置信度得分最高的邊界框。
改進(jìn)目標(biāo)檢測(cè)網(wǎng)絡(luò)的主要方向?yàn)樵黾泳W(wǎng)絡(luò)深度或增加網(wǎng)絡(luò)寬度,密集連接卷積網(wǎng)絡(luò)(DenseNet)則是從特征入手,通過(guò)對(duì)特征的極致利用達(dá)到更好的效果和更少的參數(shù)。
密集連接網(wǎng)絡(luò)在前饋模式下將當(dāng)前層與前面所有層連接起來(lái),因此,第l層會(huì)接收x0,x1,···,xl-1層的特征映射作為輸入,這樣就可以實(shí)現(xiàn)層與層之間最大程度的信息傳輸。

式中:xl為前 1-l層特征圖的拼接結(jié)果;[x0,x1,···,xl-1]為x0,x1,···,xl-1層的特征圖拼接,即作通道的合并。
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中,由于卷積和下采樣的存在,使得特征向量不斷減少,在傳輸過(guò)程中丟失了很多特征信息,這就可能會(huì)導(dǎo)致對(duì)障礙物檢測(cè)效果不好,出現(xiàn)漏檢或者錯(cuò)檢。而DenseNet網(wǎng)絡(luò)可以有效地利用上一層或者前幾層特征信息,同時(shí)當(dāng)前層的特征圖也會(huì)作為后面每一層的輸入,從而促進(jìn)特征重用。所以,本文在YOLOv3網(wǎng)絡(luò)的基礎(chǔ)上用密集連接網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)進(jìn)行修改,使用DenseNet代替尺度較小的傳輸層,將當(dāng)前層之前的多層特征作為輸入傳遞到當(dāng)前層,重復(fù)利用各層特征信息,強(qiáng)化特征傳播,并且還可以減少網(wǎng)絡(luò)計(jì)算量。本文所設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,Hl(·)為處理拼接特征圖的函數(shù)。網(wǎng)絡(luò)各層參數(shù)的設(shè)置如圖4所示。
圖3中,本文使用的非線(xiàn)性變換函數(shù)Hl(·)是一個(gè)組合操作,其包括一系列批量歸一化(BN)、整流線(xiàn)性單元(ReLU)和卷積(Conv)操作。在分辨率為30×30的特征層中,xl由64個(gè)子特征層組成。H1(·)先對(duì)x0進(jìn)行BN-ReLU-Conv(1×1)非線(xiàn)性計(jì)算,然后再進(jìn)行BN-ReLU-Conv(1×1)非線(xiàn)性運(yùn)算。H2也對(duì)拼接的特征圖[x0,x1]執(zhí)行上面相同的操作。H2,H3以相同的方式完成上述操作。最后,由[x0,x1,x2,x3]拼接的特征圖和尺寸為30×30×512的特征層繼續(xù)向前傳播。在分辨率為16×16的特征層中,xl由128個(gè)子特征層組成。按照上述方法進(jìn)行特征層拼接和特征傳播,最后將所有特征層拼接成尺寸為15×15×1024的特征層前向傳播。改進(jìn)的檢測(cè)模型預(yù)測(cè)了3種不同尺度的邊界框:15×15,30×30,60×60,并能較好地實(shí)現(xiàn)車(chē)輛前方的轎車(chē)、行人、騎行者、卡車(chē)等障礙物的檢測(cè)。

圖3 Dense-YOLO網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Dense-YOLO network structure

圖4 Dense-YOLO網(wǎng)絡(luò)參數(shù)Fig. 4 Network parameters of Dense-YOLO
雙目立體視覺(jué)是計(jì)算機(jī)視覺(jué)的一個(gè)重要分支。雙目視覺(jué)遵循人眼觀察物體的原理,利用2臺(tái)攝像機(jī)從不同角度觀察同一目標(biāo)物體,同時(shí)獲得兩幅圖像,經(jīng)過(guò)極線(xiàn)校正、匹配等過(guò)程后可以計(jì)算圖像像素點(diǎn)的視差,進(jìn)而獲得目標(biāo)的三維坐標(biāo)信息[16]。雙目視覺(jué)模型如圖5所示。

圖5 平行雙目視覺(jué)模型Fig. 5 Parallel binocular vision model
在圖5中,2個(gè)相機(jī)水平放置,焦距均為f。oL和OR分別是左右相機(jī)的光心,2個(gè)光心之間的距離稱(chēng)為基線(xiàn)B。OLOl和OROr是2條平行線(xiàn),分別表示左、右相機(jī)的光軸。F(X,Y,Z)是世界坐標(biāo)系里的一個(gè)目標(biāo)點(diǎn),它透過(guò)透鏡的投影中心投影到像平面上的點(diǎn)Ql(xl,yl)和點(diǎn)Qr(xr,yr)。將世界坐標(biāo)原點(diǎn)設(shè)為光心OL。然后通過(guò)簡(jiǎn)單的數(shù)學(xué)模型,可以得到三維世界坐標(biāo)的表達(dá)式:OL(0,0,0),OR(B,0,0),Ql(xl,yl,f),Qr(xr+B,yr,f)。對(duì)于世界坐標(biāo)中的任意一點(diǎn)F,Ql和Qr的y值相等,即yl=yr。△FQlQr和△FQLQR相似。根據(jù)相似三角形原理,可以得到如下關(guān)系式:
xl-xr為視差,令d=xl-xr,式(5)可改寫(xiě)為
即

如式(5)所示,如果能夠獲取左、右圖像對(duì)應(yīng)像素點(diǎn)的視差,就可以估計(jì)出目標(biāo)的深度。
立體匹配是利用校正后的左、右圖像獲得場(chǎng)景視差圖的過(guò)程。考慮到需要稠密視差圖來(lái)提取整個(gè)目標(biāo)的像素點(diǎn),利用PSMNet算法獲取視差圖。為了消除背景視差對(duì)測(cè)量距離的影響,本文利用視差直方圖來(lái)描述檢測(cè)邊框中的視差的分布。首先將視差值量化到[0,255],并計(jì)算每一個(gè)視差的頻率f(disparity)。在直方圖中,障礙物視差的頻率f(disparity)是較大的,并且應(yīng)該是一個(gè)峰值。然后選取每一個(gè)直方圖的峰值所對(duì)應(yīng)的視差作為障礙物的視差。最后根據(jù)式(5)可得到障礙物的深度。
采用智能車(chē)計(jì)算機(jī)視覺(jué)算法評(píng)測(cè)數(shù)據(jù)集KITTI[17]中的圖片,并對(duì)原有的8類(lèi)標(biāo)簽信息進(jìn)行處理,保留實(shí)驗(yàn)需要的4個(gè)類(lèi)別標(biāo)簽,即轎車(chē)、行人、騎行者和卡車(chē),并將Van歸并到Car類(lèi)。同時(shí)選取該數(shù)據(jù)集中7481張圖像作為實(shí)驗(yàn)數(shù)據(jù)。為了使得網(wǎng)絡(luò)充分學(xué)習(xí)待檢測(cè)目標(biāo)的特征,通過(guò)車(chē)載Point Grey相機(jī)采集了實(shí)際場(chǎng)景中的3000張圖像,并使用YOLO_mark標(biāo)注工具進(jìn)行標(biāo)注。最后將2個(gè)數(shù)據(jù)集混合作為實(shí)驗(yàn)的數(shù)據(jù)集,并隨機(jī)選擇80%的圖片作為訓(xùn)練集,其余20%的圖片用于測(cè)試。
網(wǎng)絡(luò)參數(shù)設(shè)置如表1所示。實(shí)驗(yàn)條件為:Intel Xeon(R)Silver 4110 CPU,主頻2.1 GHz,內(nèi)存32 GB;NVIDIA GeForce GTX 1080Ti GPU。

表1 Dense-YOLO的初始化參數(shù)Tab.1 Initialization parameters of Dense-YOLO
在確定訓(xùn)練參數(shù)后對(duì)YOLOv3和改進(jìn)的YOLOv3分別進(jìn)行訓(xùn)練。訓(xùn)練次數(shù)設(shè)置為50000次,學(xué)習(xí)率在35000次后下降到0.0001,在45000次后下降到0.00001,使損失函數(shù)進(jìn)一步收斂。同時(shí)利用旋轉(zhuǎn)、調(diào)整飽和度和色調(diào)等方法對(duì)數(shù)據(jù)集中的圖像進(jìn)行增強(qiáng)和擴(kuò)充,以增強(qiáng)模型的魯棒性。
現(xiàn)介紹評(píng)價(jià)模型有效性的相關(guān)指標(biāo)。
精確率和召回率定義為

式中:TP表示真陽(yáng)性數(shù);FP表示假陽(yáng)性數(shù);FN表示假陰性數(shù)。
交并比IoU是定義目標(biāo)檢測(cè)精度的標(biāo)準(zhǔn)。通過(guò)計(jì)算預(yù)測(cè)邊界框與真實(shí)邊界框的重疊率,對(duì)模型的性能進(jìn)行評(píng)估。IoU的定義為

式中:si為預(yù)測(cè)邊界框與真實(shí)邊界框的交集面積;su為2個(gè)邊界框的并集面積。
IoU重疊閾值采用與KITTI相同的標(biāo)準(zhǔn),IoU對(duì)轎車(chē)的檢測(cè)閾值為0.7,對(duì)行人、騎行者和卡車(chē)的檢測(cè)閾值為0.5。
平均精確度AP也用來(lái)評(píng)估模型的性能。AP即P?R曲線(xiàn)下的面積,其定義為

式中,P(R)為不同召回率所對(duì)應(yīng)的精確率。
AP值越大,性能越好。而對(duì)于每一個(gè)類(lèi)別的AP求均值即可得到平均精度均值mAP。
4.4.1 障礙物檢測(cè)結(jié)果分析
Dense-YOLO與YOLOv3檢測(cè)精度對(duì)比數(shù)據(jù)如表2所示。對(duì)比表2中2種檢測(cè)算法的檢測(cè)結(jié)果可知,本文提出的算法在測(cè)試數(shù)據(jù)集中各類(lèi)障礙物檢測(cè)的AP和mAP與YOLOv3相比分別提高了約3%~5%和4%。其中,對(duì)于轎車(chē)的檢測(cè)平均準(zhǔn)確度最高,為91.33%;對(duì)卡車(chē)的檢測(cè)平均準(zhǔn)確度最低,為79.83%。

表2 YOLOv3和Dense-YOLO對(duì)4類(lèi)障礙物檢測(cè)結(jié)果對(duì)比Tab.2 Comparison between the detection results of the fourclass of obstacles by YOLOv3 and Dense-YOLO %
圖6分別展示了測(cè)試集中對(duì)轎車(chē)、行人、騎行者、卡車(chē)這4類(lèi)障礙物采用Dense-YOLO和YOLOv3這2種模型進(jìn)行測(cè)試的精確率?召回率曲線(xiàn)。通過(guò)比較曲線(xiàn)下的面積,可以看出本文方法(Dense-YOLO)在4個(gè)類(lèi)別中均取得了更好的檢測(cè)效果。
圖7是YOLOv3和本文方法障礙物檢測(cè)結(jié)果對(duì)比圖。圖7(a)選取KITTI數(shù)據(jù)集中的2個(gè)場(chǎng)景,左邊是YOLOv3檢測(cè)效果,右邊是本文方法檢測(cè)結(jié)果。從圖7中可以看出,對(duì)于第一個(gè)場(chǎng)景,YOLOv3漏檢了一個(gè)騎行者;對(duì)于第二個(gè)場(chǎng)景,YOLOv3漏檢了一輛車(chē),而本文方法沒(méi)有出現(xiàn)這種情況。圖7(b)是在校園中采集的2個(gè)交通場(chǎng)景圖,對(duì)于第一個(gè)場(chǎng)景,YOLOv3漏檢了一輛車(chē)、一個(gè)騎行者和2個(gè)行人等尺寸較小的障礙物;對(duì)于第二個(gè)場(chǎng)景,YOLOv3漏檢了2個(gè)行人。本文方法同樣能準(zhǔn)確地檢測(cè)出YOLOv3漏檢的障礙物。因此,與YOLOv3算法相比,本文方法無(wú)論是在KITTI數(shù)據(jù)集中還是實(shí)際交通場(chǎng)景中,都有良好的檢測(cè)效果。
4.4.2 障礙物深度估計(jì)結(jié)果分析

圖6 Dense-YOLO和YOLOv3對(duì)4類(lèi)障礙物的P-R曲線(xiàn)圖Fig.6P-R curves using Dense-YOLO and YOLOv3 to detect the four classes of obstacles
定性分析:使用本研究方法對(duì)KITTI數(shù)據(jù)集進(jìn)行深度估計(jì),并將結(jié)果與來(lái)自KITTI數(shù)據(jù)集的真實(shí)值進(jìn)行比較。圖8給出了KITTI數(shù)據(jù)集中2個(gè)場(chǎng)景障礙物檢測(cè)的結(jié)果和被檢測(cè)障礙物的估計(jì)深度和真實(shí)值。圖8(a)是障礙物的距離真實(shí)值,圖8(b)是Dense-YOLO檢測(cè)結(jié)果以及本文方法所估計(jì)出的被測(cè)障礙物深度。從圖中可以看出,Dense-YOLO能準(zhǔn)確地檢測(cè)和定位到障礙物,并且能識(shí)別出障礙物的類(lèi)別。在障礙物檢測(cè)結(jié)果的基礎(chǔ)上,本文的深度估計(jì)方法能夠較好地估計(jì)出障礙物的距離,具體的對(duì)比結(jié)果如表3所示。

圖7 障礙物檢測(cè)結(jié)果:轎車(chē)、行人、騎行者、卡車(chē)Fig.7 Results of obstacle detection: car, pedestrian, cyclist, truck

圖8 方法對(duì)KITTI數(shù)據(jù)集的深度估計(jì)Fig.8 Depth prediction of KITTI by the following method

表3 估計(jì)深度與真實(shí)值比較Tab.3 Comparison between the estimated and ground-truth values of depth
定量分析:對(duì)本研究方法估計(jì)的深度的相對(duì)誤差進(jìn)行了性能評(píng)價(jià),相對(duì)誤差定義為式中:dp為本方法估計(jì)出的障礙物深度;dt為真實(shí)值。

表3給出了上述2個(gè)場(chǎng)景中被測(cè)目標(biāo)的深度估計(jì)結(jié)果以及與真實(shí)值的比較。由表3可知,當(dāng)障礙物深度真實(shí)值在10 m左右時(shí),相對(duì)誤差約為1%;當(dāng)障礙物深度真實(shí)值在20 m左右時(shí),相對(duì)誤差約為2.4%;當(dāng)障礙物深度真實(shí)值在25 m左右時(shí),相對(duì)誤差約為2.7%。隨著真實(shí)值的增加,相對(duì)誤差也在增加。
為了滿(mǎn)足自動(dòng)駕駛車(chē)輛安全智能的需求,提出了一種交通場(chǎng)景中的障礙物檢測(cè)和深度估計(jì)方法。首先,使用DenseNet網(wǎng)絡(luò)對(duì)YOLOv3網(wǎng)絡(luò)進(jìn)行改進(jìn),得到一個(gè)新的障礙物檢測(cè)網(wǎng)絡(luò)(Dense-YOLO),對(duì)輸入的圖片進(jìn)行檢測(cè)和識(shí)別,得到障礙物的類(lèi)別和邊界框;然后,結(jié)合立體匹配模型PSMNet獲取視差圖,將目標(biāo)框映射到視差圖中,根據(jù)雙目測(cè)距原理估計(jì)出障礙物的深度。在KITTI數(shù)據(jù)集和真實(shí)交通場(chǎng)景的實(shí)驗(yàn)結(jié)果表明,本文方法的檢測(cè)精度優(yōu)于YOLOv3算法,并且對(duì)被測(cè)障礙物的深度估計(jì)結(jié)果接近于真實(shí)值。本文方法對(duì)單個(gè)圖像測(cè)試的時(shí)間成本分別約為0.276 s。綜上,本文方法基本滿(mǎn)足自動(dòng)駕駛場(chǎng)景中障礙物的檢測(cè)與深度估計(jì)。