(西安工程大學(xué) 電子信息學(xué)院,西安 710048)
針對(duì)現(xiàn)如今高交通流的信息發(fā)展時(shí)代下,道路交通擁堵問題及車輛信息識(shí)別的需求,智能交通系統(tǒng)[1]成為解決此類問題的有效手段。在此背景下,我們必須對(duì)車輛的微觀信息進(jìn)行有效采集。車輛檢測(cè)是智能交通系統(tǒng)數(shù)據(jù)前端采集的一個(gè)重要環(huán)節(jié)[2],同時(shí)作為目標(biāo)檢測(cè)技術(shù)的一個(gè)具體應(yīng)用方向,基于機(jī)器學(xué)習(xí)的車輛檢測(cè)更是近年研究熱點(diǎn)。而深度學(xué)習(xí)[3]作為機(jī)器學(xué)習(xí)中重要的一部分,在未來車路協(xié)同環(huán)境和微觀交通對(duì)象信息提取的工程應(yīng)用中,在進(jìn)一步提高檢測(cè)率、魯棒性的車輛多目標(biāo)實(shí)時(shí)檢測(cè)系統(tǒng)中提供了良好的技術(shù)基礎(chǔ)。
文獻(xiàn)[4]中,Szegedy等人采用深度學(xué)習(xí)的方法在VOC 2007數(shù)據(jù)集測(cè)試結(jié)果中使mAP達(dá)到了30%;R-CNN[5]則將傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)結(jié)合起來,有效的將mAP提升至48%;不久Uijlings等人通過修改網(wǎng)絡(luò)模型的結(jié)構(gòu)將mAP提高到66%。隨后通過進(jìn)一步優(yōu)化目標(biāo)檢測(cè)網(wǎng)絡(luò)模型結(jié)構(gòu),出現(xiàn)了SPP-Net[6]、Fast R-CNN[7]、Faster R-CNN[8]、YOLO[9]等,mAP變化如表1所示。YOLO與傳統(tǒng)依賴先驗(yàn)知識(shí)的特征提取算法不同,它是采用深度卷積神經(jīng)網(wǎng)絡(luò)的全新實(shí)時(shí)目標(biāo)檢測(cè)方法,對(duì)幾何變換、形變和光照具有一定程度的不變性,進(jìn)一步的將mAP提升到了78.6%,改善了車輛外觀多變帶來的影響,使檢測(cè)系統(tǒng)具有更高的靈活性和泛化能力。
表1 mAP變化
本文針對(duì)車輛多目標(biāo)檢測(cè)系統(tǒng)中,車輛外形、車體結(jié)構(gòu)以及道路場景復(fù)雜等變化導(dǎo)致的檢測(cè)率低的問題[10],利用Darknet深度學(xué)習(xí)框架的YOLO9000算法,對(duì)本文構(gòu)建的多目標(biāo)車輛VOC數(shù)據(jù)集進(jìn)行特征訓(xùn)練學(xué)習(xí),進(jìn)一步對(duì)網(wǎng)絡(luò)模型進(jìn)行改進(jìn)和參數(shù)的調(diào)整,最終得到本文改進(jìn)的車輛多目標(biāo)實(shí)時(shí)檢測(cè)模型。
YOLO9000是采用YOLO v2 + join training算法,在ImageNet上進(jìn)行預(yù)訓(xùn)練后,采用我們的數(shù)據(jù)集開始訓(xùn)練模型。將數(shù)據(jù)隨機(jī)旋轉(zhuǎn)或調(diào)整色度和亮度等進(jìn)行數(shù)據(jù)增強(qiáng),對(duì)訓(xùn)練目標(biāo)進(jìn)行卷積池化的特征提取,進(jìn)而得到我們的車輛檢測(cè)模型并進(jìn)行視頻檢測(cè)分析。訓(xùn)練流程如圖1所示。
YOLO9000是一個(gè)實(shí)時(shí)物體檢測(cè)系統(tǒng),可以檢測(cè)9418個(gè)對(duì)象類別[11]。YOLO9000的設(shè)計(jì)理念遵循端到端訓(xùn)練和實(shí)時(shí)檢測(cè):它把一整張圖片一次性應(yīng)用到一個(gè)神經(jīng)網(wǎng)絡(luò)中去,網(wǎng)絡(luò)會(huì)把圖片分成s×s個(gè)不同的單元格,對(duì)每個(gè)單元格進(jìn)行訓(xùn)練學(xué)習(xí),若車輛的中心點(diǎn)落在某個(gè)單元格內(nèi),則相應(yīng)的單元格負(fù)責(zé)檢測(cè)該車;我們?cè)O(shè)置閾值為0.25,在輸出的特征圖上,對(duì)每個(gè)單元格進(jìn)行直接位置預(yù)測(cè),輸出置信度評(píng)分超過閾值的檢測(cè)結(jié)果。通過WordTree產(chǎn)生所需要的B個(gè)bounding boxes的位置,每一個(gè)bounding box獲得5個(gè)坐標(biāo)預(yù)測(cè)值:分別為(tx,ty)、(tw,th)和一個(gè)置信度評(píng)分,目標(biāo)回歸如圖2所示。
圖2 回歸目標(biāo)
(tx,ty)是每個(gè)bounding boxes的中心距離其所在單元格邊框的偏移坐標(biāo)位置,(tw,th)是bounding boxes的真實(shí)寬高相對(duì)于整幅圖像的比例,單元格距離圖像左上角的邊距為(cx,cy),單元格對(duì)應(yīng)bounding boxes維度的長和寬分別為(pw,ph)。則bounding boxes的真實(shí)位置預(yù)測(cè)如式(1)所示:
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
(1)
置信度評(píng)分是通過出現(xiàn)的bounding box與對(duì)應(yīng)待檢測(cè)車輛目標(biāo)的概率以及bounding box和車輛目標(biāo)真實(shí)位置的IOU積的關(guān)系對(duì)該bounding box位置預(yù)測(cè)的精度進(jìn)行表示,其具體計(jì)算如式(2)所示。
(2)
除此之外,YOLO9000算法中每個(gè)單元格還將產(chǎn)生有且僅有一組包含C個(gè)條件概率Pr(Classi|Object)的概率集,此概率集將用于目標(biāo)最佳位置的確定。
YOLO9000使用WordTree整合數(shù)據(jù)集之后,在數(shù)據(jù)集(分類-檢測(cè)數(shù)據(jù))上利用層次分類的方法訓(xùn)練模型,使該系統(tǒng)可以識(shí)別超過9000種物品[11],本文是用于車輛多目標(biāo)的檢測(cè)系統(tǒng)設(shè)計(jì),因此只有一類目標(biāo)——車,去掉了層次訓(xùn)練方式。YOLO9000模型與VGG模型類似,使用3×3的濾波器在每次池化之后將通道數(shù)加倍,并采用batch normalization 來穩(wěn)定訓(xùn)練,加速收斂,正則化模型。YOLO9000的模型結(jié)構(gòu)簡化到了24層,第23層是17×17,和之前YOLO v2的13×13類似,只是把輸出預(yù)測(cè)網(wǎng)格變成了17×17,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 YOLO9000模型框架
在深度卷積神經(jīng)網(wǎng)絡(luò)中,route層起連接作用,可以進(jìn)行層的合并為網(wǎng)絡(luò)帶來更細(xì)粒度特征[12];reorg層可以將這些特征與下一層的特征尺寸相匹配,即match特征圖尺寸。因此,本文在YOLO9000網(wǎng)絡(luò)結(jié)構(gòu)的15層后添加一個(gè)route層,16層后添加一個(gè)reorg層和一個(gè)route層,本文命名為YOLO9000_md(YOLO9000_multi-target detection)網(wǎng)絡(luò)模型。
車輛檢測(cè)系統(tǒng)硬件配置為:西安工程大學(xué)深度學(xué)習(xí)工作站的服務(wù)器容天SCW4750,采用一個(gè)CPU Intel i7-5930,4個(gè)NVIDIA GeForce TitanX 12G,8個(gè)8G內(nèi)存。YOLO9000算法的程序設(shè)計(jì)語言為C++語言,操作系統(tǒng)為Ubuntu16.04,深度神經(jīng)網(wǎng)絡(luò)參數(shù)配置平臺(tái)為Darknet框架,整個(gè)開發(fā)環(huán)境為Ubuntu16.04+Opencv 3.1.0+CUDA 8.0+CUDNN5.0,配合應(yīng)用基于深度卷積神經(jīng)網(wǎng)絡(luò)的GPU加速庫CUDNN,對(duì)數(shù)據(jù)進(jìn)行快速訓(xùn)練及實(shí)時(shí)性驗(yàn)證。
基于CNN[13]的車輛檢測(cè)方法需要從大量樣本中學(xué)習(xí)車輛特征,若樣本集不具有代表性,很難選擇出好的特征。為保證數(shù)據(jù)的多樣性,本文分時(shí)段對(duì)同一目標(biāo)路段(西安市碑林區(qū)金花南路19號(hào)西安工程大學(xué)立交橋)進(jìn)行圖像采集。同時(shí),根據(jù)光照和車流密度的不同,文章采集了早上6:00-7:00的自由流(車輛數(shù)<300輛/小時(shí))、9:00-11:00的同步流(300≤車輛數(shù)≤900輛/小時(shí))、7:30-8:30的阻塞流(900<車輛數(shù)<1300輛/小時(shí))等[14]車流密度條件下的三組數(shù)據(jù)組合成一個(gè)混合樣本(由訓(xùn)練集和驗(yàn)證集組成),獲取樣本如圖4所示(部分)。將訓(xùn)練樣本按80%和20%的比例隨機(jī)分開,用于模型的訓(xùn)練和模型性能的驗(yàn)證(見2.2.1節(jié))。
圖4 混合數(shù)據(jù)樣本
2.2.1 訓(xùn)練結(jié)果驗(yàn)證分析
本文使用在ImageNet上預(yù)訓(xùn)練得到的網(wǎng)絡(luò)模型對(duì)YOLO9000和YOLO9000_md模型進(jìn)行參數(shù)調(diào)整,將我們制作的車輛VOC數(shù)據(jù)集導(dǎo)入模型,在GPU加速情況下訓(xùn)練1小時(shí)后,獲取了迭代20000次之后的檢測(cè)模型。我們將初始學(xué)習(xí)率設(shè)為0.001和0.0001,在迭代2000次、6000次和15000次時(shí)以之前的0.1倍來改變學(xué)習(xí)率,保存迭代10000次和20000次的不同權(quán)重模型,將訓(xùn)練結(jié)果進(jìn)行實(shí)驗(yàn)對(duì)比分析。
1)Loss曲線分析:
圖5為YOLO9000模型和YOLO9000_md模型訓(xùn)練時(shí)的Loss曲線圖。子圖(a)是YOLO 9000模型以0.0001的初始學(xué)習(xí)率在迭代1000次時(shí)的Loss曲線圖,其訓(xùn)練開始由于學(xué)習(xí)率過小發(fā)散比較嚴(yán)重,在迭代接近400次逐漸趨于收斂;子圖(b)是將學(xué)習(xí)率調(diào)整為0.001后的Loss曲線圖,對(duì)比圖(a)明顯訓(xùn)練開始抖動(dòng)降低,并且在迭代200次時(shí)就迅速收斂,但是兩條曲線開始擺動(dòng)都處于發(fā)散狀態(tài),且Loss最大值都達(dá)到了2000多;子圖(c)是YOLO9000_md模型以0.001的初始學(xué)習(xí)率訓(xùn)練時(shí)的Loss值,訓(xùn)練時(shí)一直處于收斂狀態(tài)比較平穩(wěn),Loss值一直在300以內(nèi),并且在迭代400次后逐漸無限趨于0。雖然圖(b)YOLO9000在收斂速度上具有優(yōu)勢(shì),但在檢測(cè)實(shí)驗(yàn)過程匯總中發(fā)現(xiàn),前期收斂速度的微小差別對(duì)后期檢測(cè)效果影響較小。因此做了進(jìn)一步的驗(yàn)證。
圖5 Loss 曲線圖
2)準(zhǔn)確性分析:
我們進(jìn)一步對(duì)驗(yàn)證集進(jìn)行測(cè)試的結(jié)果如表1所示。其中,Total表示實(shí)際有多少個(gè)目標(biāo)包圍框,即待檢測(cè)實(shí)際目標(biāo)個(gè)數(shù);Correct表示正確的識(shí)別出了多少個(gè)包圍框,就是我們?cè)跈z測(cè)一張圖片時(shí),網(wǎng)絡(luò)模型會(huì)檢測(cè)出很多目標(biāo)包圍框,每個(gè)目標(biāo)包圍框都有其置信概率,概率大于閾值的包圍框與實(shí)際的目標(biāo)包圍框計(jì)算IOU,找出IOU最大的包圍框,如果這個(gè)最大值大于預(yù)設(shè)的IOU的閾值,那么Correct就加一;Proposal表示所有檢測(cè)出來的包圍框中,大于閾值的包圍框的數(shù)量;Precision表示精確度如式(3)所示;Recall表示召回率,是檢測(cè)出車輛的個(gè)數(shù)與驗(yàn)證集中所有車輛個(gè)數(shù)的比值,如式(4)所示:
(3)
(4)
由表2可知:在驗(yàn)證364個(gè)目標(biāo)時(shí),以0.0001的初始學(xué)習(xí)率得到的YOLO9000模型可準(zhǔn)確檢測(cè)出314個(gè)車輛目標(biāo),其Precision只有76.77%,Recall值是86.26%;以0.001的初始學(xué)習(xí)率得到的模型其Precision值提升到了89.03%,同時(shí)Recall提高到了95.88%;改進(jìn)模型YOLO 9000_md以0.001的初始學(xué)習(xí)率訓(xùn)練后得到的驗(yàn)證結(jié)果顯示,其Precision和Recall值同時(shí)提升了0.2%以上,達(dá)到了很好的折中效果。
表2 測(cè)試結(jié)果
3)檢測(cè)結(jié)果分析:
為進(jìn)一步驗(yàn)證模型在實(shí)際交通視頻視頻檢測(cè)中,訓(xùn)練的不同權(quán)重模型對(duì)檢測(cè)結(jié)果的影響。本文將YOLO9000模型以0.001的初始學(xué)習(xí)率在經(jīng)過半個(gè)小時(shí)的訓(xùn)練后得到了迭代10000次的權(quán)重模型,一小時(shí)后得到迭代20000次的權(quán)重模型,將不同的權(quán)重模型進(jìn)行車輛多目標(biāo)的檢測(cè),對(duì)檢測(cè)結(jié)果進(jìn)行了直觀的對(duì)比,如圖6所示。
圖6 YOLO9000模型
對(duì)比圖6實(shí)驗(yàn)結(jié)果,YOLO9000迭代20000次檢測(cè)效果優(yōu)于10000次結(jié)果。子圖(a)的第一張右后方、第二張中間下方對(duì)比子圖(b)存在明顯的漏檢情況;第一張右下方將背景誤檢為了車輛目標(biāo),第三張中右后方將地面雜物也誤檢為了車輛;這是由于預(yù)測(cè)框與檢測(cè)出的標(biāo)記框即IOU數(shù)值存在較大差異。分析可知,迭代次數(shù)在同等條件下較多的迭代次數(shù),將獲得更好的檢測(cè)效果,但對(duì)于資源的耗費(fèi)將更多。
2.2.2 視頻下的多目標(biāo)實(shí)時(shí)檢測(cè)結(jié)果分析
因YOLO方法受訓(xùn)練樣本影響較大,需要樣本多樣性且具有代表性,在應(yīng)用本文采集的組合不同車流密度得到的樣本訓(xùn)練模型之后,為驗(yàn)證其在交通視頻下檢測(cè)結(jié)果都具有準(zhǔn)確性,本文根據(jù)之前實(shí)驗(yàn)結(jié)果(詳見2.2.1),以0.001的初始學(xué)習(xí)率用YOLO9000和改進(jìn)YOLO9000_md模型將采集到的視頻圖像進(jìn)行實(shí)時(shí)檢測(cè)如圖7所示,最后得出其測(cè)試結(jié)果的混淆矩陣?;煜仃囍饕糜诒容^分類結(jié)果和實(shí)際檢測(cè)結(jié)果,可以把分類結(jié)果的比例顯示在一個(gè)混淆矩陣?yán)锩?,進(jìn)而分析圖像檢測(cè)分類的準(zhǔn)確程度。結(jié)果如圖8、圖9所示。
圖7 視頻檢測(cè)結(jié)果
圖9 YOLO9000_md模型
在交通視頻的檢測(cè)中,可以很好地檢測(cè)出視頻中的車輛,如圖8所示。我們一共提取到了673張圖像,一共包括2880個(gè)待檢測(cè)目標(biāo),由圖9可知,YOLO9000模型將背景檢測(cè)為車輛的有142個(gè),也就是誤檢;而將車輛目標(biāo)沒有檢測(cè)出來303輛,也就是漏檢;最終正確檢測(cè)出車輛目標(biāo)2738個(gè)。相比圖8,圖9改進(jìn)YOLO9000_md模型正確檢測(cè)出目標(biāo)2743個(gè),比YOLO9000模型的正確檢測(cè)出的目標(biāo)多了5個(gè),同時(shí)對(duì)做到了很好的處理誤檢和漏檢情況做了很好處理,情況也有所減少。因此,針對(duì)視頻下的多車輛目標(biāo)實(shí)時(shí)檢測(cè),本文訓(xùn)練獲得的YOLO9000-md模型具有更好的檢測(cè)效果。
本文針對(duì)城市多車道中多目標(biāo)視頻檢測(cè)問題,利用深度學(xué)習(xí)的Darknet框架下的YOLO9000目標(biāo)檢測(cè)算法,通過對(duì)YOLO9000模型參數(shù)的分析,根據(jù)車輛目標(biāo)特征及其運(yùn)動(dòng)特征,進(jìn)行不同網(wǎng)絡(luò)結(jié)構(gòu)的訓(xùn)練和對(duì)比,提出了一種能夠獲得較準(zhǔn)確檢測(cè)結(jié)果的YOLO9000-md網(wǎng)絡(luò)模型,該模型將目標(biāo)檢測(cè)問題轉(zhuǎn)換為目標(biāo)的二分類問題,通過大量的試驗(yàn),獲得了以組合不同車流密度的車輛作為訓(xùn)練集,基于YOLO9000-md網(wǎng)絡(luò)結(jié)構(gòu)模型選取2000次迭代的視頻下多車輛目標(biāo)檢測(cè)方法。文章最后,對(duì)所建立模型進(jìn)行了實(shí)測(cè)實(shí)驗(yàn),通過實(shí)驗(yàn)結(jié)果的多種分析發(fā)現(xiàn):本文改進(jìn)的YOLO9000-md模型的實(shí)驗(yàn)結(jié)果正確率可以達(dá)到96.15%,相比于傳統(tǒng)的機(jī)器學(xué)習(xí),無論在準(zhǔn)確率或者運(yùn)行效率上都得到了大大的提高;對(duì)比經(jīng)典的YOLO9000模型可以看出,YOLO9000-md模型在獲得較好Precision值的條件下?lián)p失的Recall值明顯較??;同時(shí)最終檢測(cè)結(jié)果更好,普適于視頻下的多目標(biāo)檢測(cè),雖正確檢測(cè)結(jié)果相差不遠(yuǎn),但效果良好。