徐子睿 劉猛 談雅婷



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