王 碩 王孝蘭 王巖松 馬明輝 竇雪婷
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院 上海 201620)
隨著人工智能的發(fā)展,自動駕駛引起了研究者的廣泛關(guān)注[1],智能車輛是汽車行業(yè)未來發(fā)展的必然趨勢。前方道路環(huán)境的感知作為自動駕駛車輛路徑規(guī)劃、決策控制的基礎(chǔ),成為智能車領(lǐng)域的研究重點。其中,車輛作為主要交通參與者,對其準(zhǔn)確、實時的檢測在環(huán)境感知中至關(guān)重要[2]。
車輛檢測的方法主要分為基于傳統(tǒng)算法和深度學(xué)習(xí)兩種。傳統(tǒng)的前方車輛檢測算法可以分選取感興趣區(qū)域[3]、從候選區(qū)域提取特征和建立分類器三個步驟。常用的特征有HOG[4]、haar-like[5]和LBP[6]等手工特征,并根據(jù)SVM[7]、Adaboost[8]等方法進(jìn)行分類,完成車輛檢測。但由于目標(biāo)遮擋、光照變化以及背景干擾等因素影響,人為設(shè)計的圖像特征魯棒性差,難以表達(dá)所有情況下的目標(biāo)特征,影響分類器的性能,傳統(tǒng)算法無法滿足日益復(fù)雜的交通環(huán)境。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,基于深度卷積神經(jīng)網(wǎng)絡(luò)的車輛檢測方法成為一個新的研究方向。該檢測方法主要可分為兩類,一類是基于區(qū)域推薦的兩步方法,文獻(xiàn)[9]提出的R-CNN方法首先使用區(qū)域推薦產(chǎn)生候選區(qū)域,針對每一個候選區(qū)域通過CNN提取特征,將特征送入SVM分類器來判斷目標(biāo)類別,最后利用線性脊回歸器對候選區(qū)域的位置進(jìn)行調(diào)整。隨后,在此基礎(chǔ)上何凱明等不斷做出改進(jìn),提出SPP-net[10]、Fast R-CNN[11]、Faster R-CNN[12]與Mask R-CNN[13]等目標(biāo)檢測方法,在目標(biāo)檢測方面取得很好的檢測效果。但由于兩步法網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,實時性難以保證而較難實現(xiàn)應(yīng)用。另一類是基于回歸方法的一步方法,代表有YOLO[14]、SSD[15]等。2016年Redom J提出了YOLO(You Only Look Once)檢測算法,將檢測問題作為回歸問題處理,通過分割圖像為若干個單元格,每個單元格直接負(fù)責(zé)預(yù)測目標(biāo)位置信息與類別信息,更加準(zhǔn)確地獲取了圖像局部信息,大大降低了背景的誤檢率,提升了檢測速度。但是存在檢測精度與召回率不高的問題,Redom等通過正則化、維度聚類等方法對YOLO進(jìn)行改進(jìn),提出了YOLOv2[16],在VOC2007數(shù)據(jù)集上,測試速度為67幀/s時,mAP(mean Average Precision)為76.8%,效果顯著。2018年4月,YOLO發(fā)布第三個版本YOLOv3[17],在COCO數(shù)據(jù)集上的mAP由YOLOv2的44.0%提高到57.9%,但是由于網(wǎng)絡(luò)的加深,計算量增多,算法的實時性較差。而SqueezeNet[18]、MobileNet[19]、tiny-YOLO[20]等方法網(wǎng)絡(luò)結(jié)構(gòu)簡化,擁有更少的卷積層,降低了計算量,可以有效地提高檢測速度,但犧牲了檢測精度。
為實現(xiàn)復(fù)雜環(huán)境下的前方車輛準(zhǔn)確實時檢測,本文提出了基于改進(jìn)tiny-YOLOv3的車輛檢測算法。以tiny-YOLOv3網(wǎng)絡(luò)為基礎(chǔ),將前方道路圖像中的車輛作為目標(biāo),改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),在保證原檢測速度的同時提升檢測精度降低模型大小,使其滿足車輛檢測的實際需求。通過對比試驗,驗證本文提出方法的有效性和準(zhǔn)確性。
YOLO算法將檢測問題作為回歸問題處理,在保證檢測精度的同時提升檢測速度。對YOLO網(wǎng)絡(luò)進(jìn)行簡化,得到主干網(wǎng)絡(luò)為7個卷積層與6個池化層的tiny-YOLO網(wǎng)絡(luò),在犧牲檢測精度的同時,極大的提高檢測速度。隨后YOLO通過不斷改進(jìn),已經(jīng)發(fā)展到第三代YOLOv3,相應(yīng)地也提出tiny-YOLOv3。
Tiny-YOLOv3采用13層的特征提取網(wǎng)絡(luò),在目標(biāo)檢測階段原始圖像經(jīng)過縮放后劃分為S×S的等大單元格,每個單元格負(fù)責(zé)預(yù)測中心落入其中的目標(biāo)物體的位置信息與類別信息,具體包括B個候選框及其置信度分?jǐn)?shù),以及C種類別的條件概率。每個候選框預(yù)測5維信息,即坐標(biāo)(x,y)、目標(biāo)的寬w和高h(yuǎn)與置信度,分別記為tx,ty,tw,th,obj_conf。置信度公式為
當(dāng)多個候選框檢測到相同目標(biāo)時,tiny-YOLOv3使用非極大值抑制方法過濾閾值較低的候選框,得到最佳的目標(biāo)候選框。
在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中,大尺寸的卷積核的計算量很大,Google Inception Net提出的Inception結(jié)構(gòu)通過多層小尺寸的卷積核來代替大尺寸卷積核,減少計算量與參數(shù)量達(dá)到簡化模型和節(jié)省硬件資源的目的,其一種Inception v2模塊結(jié)構(gòu)如圖1所示。一共包含四個通道,第一個通道通過1×1的卷積核提取特征,提高網(wǎng)絡(luò)的表達(dá)能力;第二個通道先通過池化提取特征信息,再通過1×1的卷積核控制輸出的升維和降維;第三個通道先使用1×1的卷積核減少參數(shù),再使用3×3尺寸的卷積核提取特征;第四個通道與第三個通道類似,通過多加一個3×3尺寸的卷積核得到不同尺度的特征;最后將四個通道的輸出通過聚合操作進(jìn)行合并。Inception v2模塊通過兩個3×3尺寸的卷積核代替v1中5×5尺寸的卷積核,減少網(wǎng)絡(luò)模型參數(shù)并加強(qiáng)非線性的表達(dá)能力,通過四個不同尺寸的特征提取操作增加網(wǎng)絡(luò)對于不同尺度的適應(yīng)性。
圖1 Inception模塊結(jié)構(gòu)
由于前方道路圖像中的車輛尺寸與比例不固定,當(dāng)目標(biāo)較遠(yuǎn)時或車輛互相遮擋重疊時,極易漏檢或?qū)④囕v判斷為其他類的目標(biāo)物體。tiny-YOLOv3網(wǎng)絡(luò)作為針對多類別目標(biāo)檢測的一種簡化網(wǎng)絡(luò),在檢測前方道路車輛已經(jīng)取得了較好的實時性,但網(wǎng)絡(luò)的層數(shù)較少,很難對車輛目標(biāo)特征有較好的提取效果,因此存在對小目標(biāo)定位精度差、車輛目標(biāo)識別率低、誤檢或重復(fù)檢測等問題。為進(jìn)一步加強(qiáng)對目標(biāo)的檢測能力,本文借鑒Inception模塊對tiny-YOLOv3網(wǎng)絡(luò)進(jìn)行改進(jìn),用Inception v2模塊替換tiny-YOLOv3的特征提取網(wǎng)絡(luò),并結(jié)合上下文相同尺度的特征圖增加檢測尺寸,提升網(wǎng)絡(luò)特征提取能力的同時,降低模塊參數(shù),具體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 INt-YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)的具體實現(xiàn)過程如下:當(dāng)輸入圖片尺寸為416×416時,通過兩組卷積層和步長為2的池化層后得到104×104×32的特征圖。采用三個相同的Inception模塊替代原網(wǎng)絡(luò)中的卷積層和池化層,降低特征圖尺寸和增加特征圖通道數(shù),分別得到52×52×128、26×26×256、13×13×512三個不同尺度的特征圖;改變Inception模塊中卷積層的步長為1得到13×13×1024的特征圖;在原有的tiny-YOLOv3網(wǎng)絡(luò)檢測部分對13×13×128、26×26×128尺寸的特征圖進(jìn)行2倍上采樣得到26×26×128和52×52×128的特征圖,幫助網(wǎng)絡(luò)學(xué)習(xí)細(xì)粒度特征,并結(jié)合上下文信息分別與特征提取部分26×26×256和52×52×128的特征圖融合,得到26×26×384和52×52×256的特征圖。獲取13×13×512,26×26×256,52×52×128三組尺度的特征圖,組成最終的特征表達(dá)。對三組尺度的特征圖分別通過三個相同通道數(shù)的卷積層進(jìn)行預(yù)測輸出,卷積層的通道數(shù)為(5 +4)×3=27。本文稱該網(wǎng)絡(luò)結(jié)構(gòu)為INt-YOLOv3。
YOLO系列算法采用候選框的思想,通過在數(shù)據(jù)集上進(jìn)行聚類確定候選框,提升檢測精度。以矩形框的平均交并比IOU作為相似度對前方車輛目標(biāo)訓(xùn)練集的所有目標(biāo)標(biāo)注使用K-means聚類方法獲得候選框的尺寸。使用遞增的方法選擇k值,得到IOU與k的關(guān)系如圖3所示??紤]到網(wǎng)絡(luò)的計算量,且改進(jìn)的tiny-YOLOv3網(wǎng)絡(luò)中使用在三種尺度上進(jìn)行預(yù)測的方法,最終采用k=9的聚類結(jié)果,9個候選框尺寸分別為(20,25),(35,39),(66,46),(50,71),(92,81),(141,116),(99,173),(199,183),(228,325)。在每個尺度上的每一個單元格借助三個候選框預(yù)測三個邊界框。
圖3 K-means聚類
以開源的深度學(xué)習(xí)框架Darknet為基礎(chǔ),改進(jìn)的tiny-YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)為模型,結(jié)合聚類分析和多尺度訓(xùn)練的方法,訓(xùn)練車輛檢測器。訓(xùn)練時模型的初始學(xué)習(xí)率設(shè)為0.001,在25000和35000次迭代后,學(xué)習(xí)率乘以0.1,動量系數(shù)為0.9,權(quán)值衰減系數(shù)為0.0010,最大迭代次數(shù)為50000次。每訓(xùn)練10批次隨機(jī)選取新的圖片尺寸進(jìn)行訓(xùn)練,使模型對于不同尺寸的圖像具有更好的檢測效果。采用圖像隨機(jī)調(diào)整曝光、飽和度、色調(diào)等方法對數(shù)據(jù)進(jìn)行擴(kuò)充。
實驗平臺配置為Windows 10操作系統(tǒng),Inter Core i5-8400處理器和16GB內(nèi)存,搭載NVIDIA GeForce GTX1070Ti顯卡,配置英偉達(dá)CUDA9.0和GPU加速庫CUDNN7.0,配置OpenCV 3擴(kuò)展庫,深度學(xué)習(xí)框架為Darknet。
本文采用的車輛檢測數(shù)據(jù)集為KITTI數(shù)據(jù)集。KITTI數(shù)據(jù)集包含市區(qū)、鄉(xiāng)村和高速公路等場景采集的真實圖像數(shù)據(jù),每張圖像中包含車輛和行人等各種目標(biāo),還包括光照變化、背景斑雜和樹木房屋等對目標(biāo)各種程度的遮擋與截斷等情況。根據(jù)實際應(yīng)用場景,本文對KITTI數(shù)據(jù)集原有的8類標(biāo)簽信息進(jìn)行處理,保留實驗需要的4個類別標(biāo)簽,即:Van,Car,Truck和Tram,同時選取該數(shù)據(jù)集中7481張圖像作為實驗數(shù)據(jù),根據(jù)實驗需求將其標(biāo)注為PASCAL VOC2007數(shù)據(jù)集格式,其中80%作為訓(xùn)練集,20%作為驗證集。
本文采用均值平均精度(mAP)、交并比IOU、模型大小和檢測幀率四個評價指標(biāo)。部分衡量指標(biāo)計算公式如下:
以本文所研究的前方車輛目標(biāo)類別為例,式中TP表示正確預(yù)測車輛目標(biāo)類別的數(shù)量,F(xiàn)P表示將負(fù)樣本預(yù)測為正樣本的數(shù)量,F(xiàn)N表示將正樣本預(yù)測為負(fù)樣本的數(shù)量,P表示準(zhǔn)確率,R表示召回率,準(zhǔn)確率與召回率越高則算法越具有優(yōu)越性,A表示預(yù)測的目標(biāo)尺寸,B表示目標(biāo)的真實值,IOU越高則算法定位越精確。
表1顯示了YOLOv2、tiny-YOLOv2、tiny-YOLOv3與本文提出的INt-YOLOv3方法的實驗結(jié)果。這些方法均使用本文選取的KITTI數(shù)據(jù)集進(jìn)行訓(xùn)練與測試。從表中可以看出,本文提出的INt-YOLOv3獲得了89.66%的mAP,相對于tiny-YOLOv3網(wǎng)絡(luò)準(zhǔn)確度提升了5.75%。對比tiny-YOLOv2、tiny-YOLOv3卷積網(wǎng)絡(luò)層數(shù)相對較少,車輛特征提取不足,而INt-YOLOv3網(wǎng)絡(luò)通過增加網(wǎng)絡(luò)寬度與檢測解決了這個問題,因此對車輛特征的表達(dá)能力優(yōu)秀。
表1 不同方法在KITTI測試集上的測試結(jié)果
為了驗證文中設(shè)計的INt-YOLOv3網(wǎng)絡(luò)的定位準(zhǔn)確性,利用平均交并比作為指標(biāo)進(jìn)行評測。本文在數(shù)據(jù)集上分別訓(xùn)練了YOLOv3網(wǎng)絡(luò)和tiny-YOLOv3網(wǎng)絡(luò)作為INt-YOLOv3網(wǎng)絡(luò)的對照,并使用數(shù)據(jù)集中測試集測試平均交并比。對比結(jié)果如表2所示。
表2 平均交并比測試結(jié)果
結(jié)果表明,相比較于YOLOv3網(wǎng)絡(luò),INt-YOLOv3網(wǎng)絡(luò)平均交并比提高了5.24%;相比較于tiny-YOLOv3網(wǎng)絡(luò),INt-YOLOv3網(wǎng)絡(luò)平均交并比提高了8.38%。這說明,在測試集上INt-YOLOv3產(chǎn)生的候選框與原標(biāo)記框的交疊率更高,對車輛定位的精度更好。原因在于,通過對數(shù)據(jù)集的K-means聚類分析選擇合適尺寸的候選框以及網(wǎng)格尺寸的改進(jìn),可以更好地提升模型的定位精度。
使用預(yù)設(shè)網(wǎng)絡(luò)參數(shù)在訓(xùn)練階段得到網(wǎng)絡(luò)模型的權(quán)重,在輸入為416×416時比較YOLOv2、YOLOv3、tiny-YOLOv2、tiny-YOLOv3與本文提出的INt-YOLOv3方法的模型大小和檢測幀率。
其結(jié)果如表3所示,通過對比發(fā)現(xiàn),本文提出的方法檢測幀率遠(yuǎn)超實時性要求,僅比原方法降低了5 f·s-1,但模型大小減少了11MB,反映了本文提出的方法復(fù)雜度更低,網(wǎng)絡(luò)模型參數(shù)更少,對硬件要求低,更便于部署使用到實際場景當(dāng)中。
表3 不同方法模型大小與檢測幀率
為了更加直觀地檢驗INt-YOLOv3網(wǎng)絡(luò)的有效性,本文選取測試集中圖像以及道路采集圖像進(jìn)行了檢測效果測試,選取KITTI中3張圖片的檢測結(jié)果進(jìn)行對比,圖4(a)、(c)和(e)為tiny-YOLOv3的檢測結(jié)果,圖4(b)、(d)和(f)為INt-YOLOv3的檢測結(jié)果。對比圖(a)、(b)和(c)、(d),tiny-YOLOv3和INt-YOLOv3能夠很好地檢測出大目標(biāo),但I(xiàn)Nt-YOLOv3檢測出遠(yuǎn)距離的車輛,具有更好的小目標(biāo)檢測能力;對比圖(e)和(f),tiny-YOLOv3對被遮擋的車輛錯誤檢測,并漏檢左側(cè)背景顏色相同的Van,而INt-YOLOv3全部正確檢測。圖5為道路采集的兩張圖片檢測結(jié)果對比,對比tiny-YOLOv3的檢測結(jié)果圖(a)、(c)和INt-YOLOv3的檢測結(jié)果圖(b)、(d),INt-YOLOv3比tiny-YOLOv3能更好地檢測出小目標(biāo)與被遮擋目標(biāo)。綜合以上檢測結(jié)果,對于圖像中較大尺度的無遮擋車輛,兩種網(wǎng)絡(luò)具有相近的檢測能力,對于較小尺寸的車輛與被遮擋車輛,tiny-YOLOv3會出現(xiàn)漏檢、錯檢和重復(fù)檢測。但本文提出的INt-YOLOv3能夠很好地解決問題,正確地檢測出車輛。因此,INt-YOLOv3具有更好的檢測性能。
圖4 tiny-YOLOv3和INt-YOLOv3在KITTI數(shù)據(jù)集上的對比結(jié)果
圖5 tiny-YOLOv3和INt-YOLOv3在采集圖像上的對比結(jié)果
通過以上實驗可以看到,改進(jìn)后的算法在精度、交并比、模型大小和檢測幀數(shù)四項指標(biāo)上具有更好的表現(xiàn),尤其在mAP上具有明顯優(yōu)勢,相比原tiny-YOLOv3在本數(shù)據(jù)集上提高了5.75%;檢測速度僅下降了5 f·s-1,并且模型大小僅有22MB,相對tiny-YOLOv3減少三分之一。這是因為本文增加了網(wǎng)絡(luò)寬度和檢測尺度,提升了網(wǎng)絡(luò)的特征提取能力,同時減少參數(shù),網(wǎng)絡(luò)模型更小,更便于部署。
本文提出了基于改進(jìn)tiny-YOLOv3的前方車輛檢測方法:INt-YOLOv3。該方法使用Inception模塊替代原卷積層提取特征,并控制卷積層步長替代原池化層完成降維,通過增加網(wǎng)絡(luò)寬度,提升網(wǎng)絡(luò)特征提取能力,并減少網(wǎng)絡(luò)參數(shù);將上下文特征融合,增加檢測尺度,同時利用K-means聚類方法自動生成候選框,增強(qiáng)特征圖的表征能力,提高了模型的定位精度和tiny-YOLOv3網(wǎng)絡(luò)在前方車輛檢測的準(zhǔn)確率,并且在檢測速度幾乎不變的情況下減少模型大小,更便于模型在移動端的部署。但是,INt-YOLOv3仍存在某些復(fù)雜環(huán)境下精確識別困難的問題,下一步的重點應(yīng)放在增強(qiáng)模型的魯棒性和識別效果上。