徐子睿 劉猛 談雅婷
摘 ?要:基于深度學(xué)習(xí)算法,對智能交通中的車輛檢測與流量統(tǒng)計問題進(jìn)行探討與解決。首先對YOLOv4算法進(jìn)行介紹;然后使用YOLOv4算法進(jìn)行實地的流量檢測;之后選取統(tǒng)計區(qū)域,對視頻中的car、bus、motorbike和truck四種類型事物進(jìn)行流量統(tǒng)計;最后對實驗結(jié)果的偏差進(jìn)行了分析,并對重復(fù)識別現(xiàn)象提出了改進(jìn)方案。該算法能基本滿足車輛檢測和流量統(tǒng)計的實時性和精度的要求。
關(guān)鍵詞:YOLOv4;深度學(xué)習(xí);目標(biāo)檢測;流量統(tǒng)計;智能交通
中圖分類號:TP391.41 ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2020)15-0098-04
Abstract:Based on the deep learning algorithm,this paper discusses and solves the problems of vehicle detection and traffic statistics in intelligent transportation. Firstly,the YOLOv4 algorithm is introduced;then the traffic detection is carried out by using the YOLOv4 algorithm;then the traffic statistics of car,bus,motorbike and truck in the video is carried out by selecting the statistical area;finally,the deviation of the experimental results is analyzed,and the improvement scheme for the phenomenon of repeated recognition is proposed. The algorithm can basically meet the requirements of real-time and accuracy of vehicle detection and traffic statistics.
Keywords:YOLOv4;deep learning;target detection;traffic statistics;intelligent transportation
0 ?引 ?言
伴隨著人工智能進(jìn)入國家戰(zhàn)略層面的議程,以及人工智能技術(shù)的不斷革新突破,智能交通系統(tǒng)必然會成為未來的發(fā)展趨勢,要實現(xiàn)交通系統(tǒng)的智能化和自動化運(yùn)行,就要將大量的交通信息利用計算機(jī)視覺技術(shù)進(jìn)行處理,例如車牌識別、車輛識別與流量統(tǒng)計、無人駕駛等。其中,車輛識別與流量統(tǒng)計是實現(xiàn)降低交通擁堵程度,提高交通運(yùn)輸暢通性的基礎(chǔ),實施有效的交通監(jiān)控對于解決交通問題具有積極意義。雖然基于深度學(xué)習(xí)的目標(biāo)檢測和目標(biāo)跟蹤技術(shù)得到了一定的發(fā)展,但其在智能交通領(lǐng)域的應(yīng)用和發(fā)展尚不成熟,同時也缺乏新技術(shù)的引入。
車輛檢測是流量統(tǒng)計的基礎(chǔ),屬于目標(biāo)檢測的范疇。目前,基于計算機(jī)視覺的目標(biāo)檢測算法可分為傳統(tǒng)的目標(biāo)檢測算法和基于深度學(xué)習(xí)的目標(biāo)檢測算法。傳統(tǒng)的目標(biāo)檢測算法主要有光流法、幀間差分法和背景差分法,根據(jù)目標(biāo)運(yùn)動變化的原理進(jìn)行識別。基于深度學(xué)習(xí)的目標(biāo)檢測算法是提取目標(biāo)的深度特征來實現(xiàn)目標(biāo)檢測的,是一種依據(jù)目標(biāo)形態(tài)學(xué)特征原理的識別方法。
流量統(tǒng)計是在車輛檢測的基礎(chǔ)上,對小轎車、卡車、公交車等機(jī)動車進(jìn)行數(shù)量統(tǒng)計,并計算出車流量。目前,比較常用的車流量統(tǒng)計算法有兩種,一是在視頻中選取一個長寬比例較為合適的矩形區(qū)域,通過檢測車輛是否通過該區(qū)域來統(tǒng)計車輛數(shù)目,這種方法在車流量較小時比較穩(wěn)定,但在車流量較大時會出現(xiàn)漏檢測的情況,對統(tǒng)計結(jié)果產(chǎn)生影響。二是設(shè)置兩條垂直于道路的檢測線,間距與車輛長度相當(dāng),通過檢測車輛是否過線來統(tǒng)計車輛數(shù)目,這種方法僅適用于車型變化不大的情況,否則在車輛種類較多的情況下,檢測線的間距難以設(shè)定。
自2012年以來,深度學(xué)習(xí)的引入使得目標(biāo)檢測和目標(biāo)跟蹤領(lǐng)域的技術(shù)水平不斷發(fā)展,這為智能交通的發(fā)展提供了強(qiáng)大的理論基礎(chǔ)。劉磊采用YOLO(You Only Look Once)算法識別車輛,針對YOLO算法在識別車輛方面的不足對網(wǎng)絡(luò)進(jìn)行優(yōu)化,同時提出了一種基于YOLO的車流量統(tǒng)計方法。雖然基于深度學(xué)習(xí)的目標(biāo)檢測和目標(biāo)跟蹤技術(shù)得到了一定的發(fā)展,但其在智能交通領(lǐng)域的應(yīng)用和發(fā)展尚不成熟,同時也缺乏新技術(shù)的引入。
筆者采用2020年4月開源的YOLOv4算法,以交通路口攝像頭為視角,基本實現(xiàn)智能交通中的車輛識別與流量統(tǒng)計。
1 ?YOLOv4算法簡介
深度學(xué)習(xí)算法在計算機(jī)視覺領(lǐng)域的應(yīng)用已經(jīng)歷了近十年的發(fā)展,期間誕生了許多優(yōu)秀的算法,其中YOLO系列算法以其“簡潔”的優(yōu)勢獨樹一幟,在工業(yè)界廣受歡迎。2016年5月,YOLO系列的第一個算法YOLOv1問世。YOLO之父Jeseph Redmon認(rèn)為,之前的檢測策略比較慢且難以優(yōu)化,比如R-CNN為首的候選框+預(yù)測位置、分類的這種策略,其被業(yè)界稱為Two-stage。YOLO作為One-stage的鼻祖,將目標(biāo)檢測看作為單一的回歸問題,直接由圖像像素優(yōu)化得到物體邊界位置和分類。
在Jeseph Redmon宣布隱退之后,Alexey Bochkovskiy接過了YOLO項目的大旗,并于2020年4月23日推出了YOLOv4。本章將從性能和創(chuàng)新點兩個方面對這個在很長一段時間內(nèi)都備受期待的新技術(shù)進(jìn)行介紹。
首先,YOLOv4的性能給人最直觀的感受就是比YOLOv3更快、更準(zhǔn)。在COCO數(shù)據(jù)集上,YOLOv4達(dá)到了43.5 % AP,65 FPS。相較于YOLOv3,將AP和FPS分別提高了10%和12%。運(yùn)行速度則是EfficientNet的2倍。
從創(chuàng)新的角度看YOLOv4,可能會讓不少人感到失望,因為YOLOv4在本質(zhì)上和YOLOv3差距不大。雖然YOLOv4沒有給人一種耳目一新的感覺,但它還是做到了守正出奇、吸收先進(jìn)算法優(yōu)點的創(chuàng)新。
YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)分為輸入端、BackBone、Neck和Prediction四部分。輸入端的改進(jìn)主要包括Mosaic數(shù)據(jù)增強(qiáng)、cmBN、SAT自對抗訓(xùn)練;BackBone主干網(wǎng)絡(luò)則是將各種新的方式結(jié)合起來,包括:CSPDarknet53、Mish激活函數(shù)、Dropblock;對于Neck部分,目標(biāo)檢測網(wǎng)絡(luò)在BackBone和最后的輸出層之間會插入一些層,比如SPP模塊、FPN+PAN結(jié)構(gòu);對于Prediction部分,輸出層的錨框機(jī)制和YOLOv3相同,主要改進(jìn)的是訓(xùn)練時的損失函數(shù)CIOU_Loss,以及預(yù)測框篩選的nms變?yōu)镈IOU_nms。
2 ?車輛檢測與流量統(tǒng)計
本章將使用YOLOv4算法,對交通路口攝像頭拍攝的視頻進(jìn)行車輛檢測與流量統(tǒng)計實驗,并對實驗結(jié)果進(jìn)行分析,同時對算法給出一些改進(jìn)的方案。
2.1 ?實驗原理及仿真
整個算法的主要功能分為車輛檢測和流量統(tǒng)計兩部分。
2.1.1 ?車輛檢測
車輛檢測屬于目標(biāo)識別的范疇,檢測精度將直接影響流量統(tǒng)計的結(jié)果。相較于光流法等傳統(tǒng)的目標(biāo)檢測算法,基于深度學(xué)習(xí)的目標(biāo)檢測算法在檢測精度方面有著質(zhì)的飛躍,在視覺目標(biāo)跟蹤VOT2015大賽上,深度學(xué)習(xí)算法的檢測效果遠(yuǎn)超傳統(tǒng)算法,以碾壓的姿態(tài)獲勝。
車輛檢測部分需要實現(xiàn)對常見機(jī)動車的識別,識別對象分別是car、bus、motorbike和truck。使用深度學(xué)習(xí)算法實現(xiàn)目標(biāo)檢測,重點在于數(shù)據(jù)集的制作和訓(xùn)練,但該過程工作量巨大、耗時長。而YOLOv4的COCO數(shù)據(jù)集可以實現(xiàn)對常見的80種物體的識別,如person、bicycle、car等,包含了上述四類目標(biāo),所以只需要對YOLOv4進(jìn)行一些簡單的配置,使用官方提供的yolov4.weights權(quán)重文件,即可實現(xiàn)對car、bus、motorbike和truck四類機(jī)動車的識別。
2.1.2 ?流量統(tǒng)計
流量統(tǒng)計部分是在車輛檢測的基礎(chǔ)之上,統(tǒng)計在一段時間內(nèi)某條公路上所通過的標(biāo)簽為car、bus、motorbike和truck的目標(biāo)。由于這四種機(jī)動車的尺寸差距較大,所以采用在視頻中選取一個長寬比例較為合適的矩形區(qū)域的方法來進(jìn)行流量統(tǒng)計。區(qū)域選取如圖1所示。
在圖1所示的路口,選取人行橫道的矩形區(qū)域作為檢測區(qū)域,當(dāng)標(biāo)簽為car、bus、motorbike和truck的檢測目標(biāo)由下向上或由上向下通過該矩形區(qū)域時,車輛計數(shù)加一。
當(dāng)統(tǒng)計一段時間內(nèi)經(jīng)過該區(qū)域的車輛數(shù)量之后,使用公式計算出車流量,公式為:
其中N為一段時間內(nèi)經(jīng)過該區(qū)域的車輛數(shù)量,t為對應(yīng)的時間。算法流程如圖2所示。
2.1.3 ?實驗仿真
實驗在R740服務(wù)器上的ubuntu系統(tǒng)中進(jìn)行仿真,檢測速度約為每秒22幀,能夠滿足實時性的要求。實驗仿真效果如圖3所示。
2.2 ?實驗結(jié)果分析
從圖3的仿真效果圖可以看出,整體的檢測效果較好,視頻中的機(jī)動車沒有出現(xiàn)漏檢測的情況,僅部分motorbike標(biāo)簽的車輛出現(xiàn)了重復(fù)檢測的現(xiàn)象。
本次實驗對江南路與蓬萊路路口、凄江路口、雙轉(zhuǎn)盤三個交通場景進(jìn)行了車輛檢測和流量統(tǒng)計,實驗統(tǒng)計結(jié)果和實際結(jié)果如表1所示。
從表1所列的數(shù)據(jù)不難發(fā)現(xiàn),實驗結(jié)果均略高于實際結(jié)果。從仿真效果圖中可以發(fā)現(xiàn),導(dǎo)致計算結(jié)果略高于實際情況的原因是motorbike標(biāo)簽的目標(biāo)檢測效果不佳,出現(xiàn)了重復(fù)識別的情況。
2.3 ?算法的改進(jìn)
在明確了導(dǎo)致實驗結(jié)果與實際結(jié)果存在偏差的原因之后,對現(xiàn)有的算法提出一些改進(jìn)的方案。
就車輛檢測而言,YOLOv4算法在兼顧檢測速度的情況下,檢測精度已經(jīng)能夠達(dá)到比較高的準(zhǔn)確率,僅motorbike類別的物體出現(xiàn)了重復(fù)識別的情況,而且沒有出現(xiàn)漏檢測的情況,所以,并不需要花費(fèi)巨大的精力修改神經(jīng)網(wǎng)絡(luò)來提升檢測的效果。那么,應(yīng)該從流量統(tǒng)計部分著手,對算法進(jìn)行改進(jìn)。流量統(tǒng)計部分的重點在于統(tǒng)計區(qū)域的選取和統(tǒng)計策略的制定,統(tǒng)計區(qū)域的選取與重復(fù)識別關(guān)系不大,那么就需要對統(tǒng)計策略進(jìn)行完善。
重復(fù)識別現(xiàn)象的一個特點是檢測框高度重疊,YOLOv4對檢測框的存儲格式為box結(jié)構(gòu)體:typedefstruct box{float x,y,w,h;}box;其中x和y分別對應(yīng)著檢測框中心點的橫坐標(biāo)和縱坐標(biāo),w和h分別對應(yīng)著檢測框的寬和高。那么,針對motorbike標(biāo)簽的檢測框的中心坐標(biāo)可設(shè)置閾值,檢測框的中心距離過近的目標(biāo)可算作同一個目標(biāo),同時也可根據(jù)車上的person目標(biāo)進(jìn)行輔助判斷。改進(jìn)后的仿真效果如圖4所示。
從改進(jìn)后的效果圖4中可以看出,motorbike重復(fù)識別的問題得到了解決。算法改進(jìn)后的統(tǒng)計結(jié)果如表2所示。
從算法改進(jìn)后的流量統(tǒng)計結(jié)果可以看出,實驗統(tǒng)計結(jié)果與實際結(jié)果已經(jīng)十分接近甚至相等了,實驗結(jié)果與實際結(jié)果的差異是個別的錯誤識別導(dǎo)致的,但整體的檢測效果得到了提升,算法的改進(jìn)是有效的。
3 ?結(jié) ?論
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,越來越多高性能的算法出現(xiàn)在人們面前。目前,很多基于深度學(xué)習(xí)的算法還只停留在理論上,設(shè)備的運(yùn)算速度和龐大的數(shù)據(jù)一直是限制深度學(xué)習(xí)算法實際應(yīng)用的主要問題。但伴隨著5G技術(shù)的出現(xiàn),深度學(xué)習(xí)憑借其高精度的優(yōu)勢,在智能交通領(lǐng)域的應(yīng)用潛力是很巨大的。尤其是日趨成熟的基于深度學(xué)習(xí)的目標(biāo)檢測和目標(biāo)跟蹤技術(shù),更是找到了用武之地。相信智能交通的發(fā)展,會有效的提升交通系統(tǒng)的運(yùn)行效率和安全性,為人民群眾的日常生活帶來巨大的便利。
參考文獻(xiàn):
[1] BOCHKOVSKIY A,WANG C Y,LIAO H Y. YOLOv4:Optimal Speed and Accuracy of Object Detection [J/OL].arXiv:2004.10934v1 [cs.CV].(2020-04-23).https://arxiv.org/abs/2004.10934.
[2] 劉磊.基于YOLO網(wǎng)絡(luò)的智能交通車流量統(tǒng)計研究 [D].西安:西安科技大學(xué),2019.
[3] 張毓峰.基于深度學(xué)習(xí)的智能交通元素檢測與識別 [D].福州:福州大學(xué),2018.
[4] 李璽,查宇飛,張?zhí)熘?,?深度學(xué)習(xí)的目標(biāo)跟蹤算法綜述 [J].中國圖象圖形學(xué)報,2019,24(12):2057-2080.
[5] 陳志欣.基于深度學(xué)習(xí)的視頻目標(biāo)檢測算法研究與應(yīng)用 [D].北京:北方工業(yè)大學(xué),2019.
作者簡介:徐子睿(1994—),男,漢族,江蘇淮安人,碩士研究生,研究方向:計算機(jī)視覺。