吳祥 謝爾夫 張恒 徐秉皓 易夢華 張智





摘要:基于深度學習算法,在交通中不同路況中對重載車輛進行檢測與流量統計問題有待解決。首先對YOLOv4原理及主要算法進行介紹;之后進行了數據集的標注等預處理,將數據輸入到YOLOv4模型中進行訓練;最后對實驗結果進行了一定的分析,并進行了模型檢測,實驗效果較好。該算法基本能夠實現對不同路況中重載車輛的檢測和流量統計。
關鍵詞: 重車檢測; 目標檢測; YOLOv4; 深度學習; 人工智能
中圖分類號:TP183 ? ? ?文獻標識碼:A
文章編號:1009-3044(2021)35-0085-03
Heavy Vehicle Detection and Recognition Based on Deep Learning
WU Xiang,XIE Er-fu,ZHANG Heng,XU Bing-hao,YI Meng-hua,ZHANG Zhi*
(School of Computer Wuhan University of Science and Technology, Wuhan 430065, China)
Abstract: Based on deep learning algorithms, the detection and flow statistics of heavy vehicles in different road conditions in traffic have yet to be resolved. First, the principle and main algorithms of YOLOv4 are introduced; then the data set is preprocessed such labeling and input the data into the YOLOv4 model for training; finally, the experimental results are analyzed to a certain extent, and the model is tested. The results are relatively good. This algorithm can basically realize the detection and traffic statistics of heavy vehicles in different road conditions.
Key words:heavy vehicle detection;object detection;YOLOv4;deep learning;artificial intelligence
隨著深度學習的不斷發展,其在各個領域都得到了廣泛的應用[1]。在城市交通管理時,利用人工智能技術,可以有效實時分析城市交通流量、信號燈檢測等,以此來提升城市道路的通行效率[2]。在車輛檢測方面,深度學習也發揮了很重要的作用[3]。深度學習模型在檢測車輛車牌、運行速度、運行軌跡、流量統計等各個方面都起到了關鍵性的作用[4],極大地降低了交通管理人員的負擔,為人們帶來了一定的便利。
目前,大多數交通事故很大程度歸因于重載車輛的行駛。重載車輛在橋段上行駛時,會極大程度地增加橋的承載負擔,對橋段造成很嚴重的損害[5],以至于發生橋面斷裂、坍塌等重大事故。利用深度卷積神經網絡自動識別重車是一種有效的途徑[6]。
為了在交通管理方面減輕管理人員的負擔,同時也為了大多數行車人員的安全著想,本文設計了一套利用深度學習對重車進行檢測的系統。該系統主要功能就是實現對視頻中重車的檢測,并統計畫面中重車的數量,以反饋給交通管理人員,保證行車人員的安全,減少交通事故的發生。
1 基于YOLOv4算法的重車檢測原理
YOLOv4網絡的結構由三部分組成:
lBackBone:CSPDarknet53;
lNeck:SPP、FPN + PAN;
lHEAD:YOLO HEAD。
其網絡結構圖如圖1所示。
1.1 BackBone:CSPDarknet53
BackBone部分是整個網絡中圖像特征提取的部分。CSPDarknet作為一種圖像特征提取網絡,其特征提取能力較強的同時,檢測速度也足夠快。相比于CSPResNext50網絡來說,CSPDarknet53網絡在目標檢測領域的精度更優。
1.2 Neck:SPP、FPN + PAN
Neck部分主要用于融合不同尺度特征圖的特征信息。SPP采用1×1、5×5、9×9、13×13的最大池化的方式,進行多尺度融合,該模塊有效地增加主干特征的接受范圍,顯著地分離了最重要的上下文特征。在FPN + PAN模塊中,FPN自頂向下工作,將高層的特征信息通過上采樣的方式進行傳遞融合,得到預測的特征圖;PAN自底向上傳達強定位特征。兩個部分共同工作,從不同的主干層對不同的檢測層進行參數聚合,大大提高了特征提取的能力。
1.3 Head:YOLO Head
Head部分主要用于將特征信息進行反卷積,得到實際輸出的結果,即:每一幀圖片中所有物體的位置、類別以及類別置信度。
2 算法實現
2.1 系統功能模塊
該系統主要分為兩個模塊:檢測模塊、顯示模塊。
2.1.1 檢測模塊
系統可以利用已經訓練好的重車檢測模型,對輸入的視頻進行檢測。該模塊主要會檢測:視頻中所有物體的位置、所有物體的類別以及重車的數量。
2.1.2 顯示模塊
在顯示模塊中,系統會將檢測到的結果在視頻中顯示出來,包括所有物體、物體的類別、類別置信度、檢測視頻的幀數和當前幀中重車的數量。系統功能模塊圖如圖2所示。
2.2 主要算法描述
在YOLOv4算法中,主要的算法包括以下3個:Mosaic數據增強、Mish激活函數、CIoU損失函數。
2.2.1 輸入Mosaic數據增強
數據增強是利用已有的數據進行一定的變換比如翻轉、平移、旋轉等操作,創造出更多的數據,從而使神經網絡具有更好泛化效果的一種方法。Mosaic數據增強參考了CutMix數據增強的思想,二者具有一定的相似性。CutMix數據增強的方式是利用兩張圖片進行拼接(如圖3(a)所示),而Mosaic利用四張圖片進行拼接(如圖3(b)所示)。這種方式的主要特點就是增加了單張圖片的豐富度,在BatchNormalization的時候可以同時計算四張圖片,效率較高。
Mosaic的實現步驟如下:
l每次讀取四張圖片;
l分別對四張圖片進行翻轉、縮放等變化;
l將四張圖片按照左上、左下、右上、右下四個位置擺放好;
l將四張圖片進行拼接。
2.2.2 Mish激活函數
激活函數的作用主要是用于在模型中加入非線性因素,使得模型具有更多的可能性。Mish激活函數是在Leaky_Relu算法的基礎上改進而來。二者比較圖如圖4所示。
從圖4中可以看出,在輸入x=0處,Leaky_Relu函數出現了拐點,即不平滑;而Mish函數是平滑的。平滑意味著允許更好的信息深入神經網絡,從而得到更好的準確性和泛化性。
2.2.3 CIoU損失函數
損失函數衡量了模型預測結果和真實結果之間的誤差值,模型可以根據損失函數來更新模型的參數,使預測結果朝著更好的方向進行。CIoU損失函數綜合考慮了預測框與真實框的:面積的交并比、中心距離、寬高比的差異。可以用如下公式來計算CIoU損失函數:
其中CIoU的三個組成部分分別表示:
l預測框與真實框面積的交并比;
l預測框與真實框中心點距離平方除最小外接矩形對角線距離平方;
l預測框與真實框寬高比的差異。
3 實驗
3.1 模型訓練
本文采用重車檢測數據集對YOLOv4模型進行訓練。該數據中總共有11個立交橋的視頻,每個立交橋中有20-50個視頻。將每個視頻大約分了300-600幀,并加上自己尋找的行人圖片數據400張。然后用LabelImg軟件對所有圖片進行標注(car、truck、non-motor、person四個類別),最終得到8700個圖片和6817個xml文件(標注結果)。然后將標注后的數據按9:1的比例分為訓練集、驗證集,并輸入模型當中進行訓練。在超參數方面,我們設置迭代次數Epoch=40、學習率lr=1e-3、批量樣本數Batch_size=2、優化算法為Adam算法。
本次訓練總共20個小時。訓練損失值變化、驗證損失值變化如圖5所示。
從圖5中可以看出,損失值逐漸下降,最后趨于穩定,即算法逐漸達到了收斂。
3.2 檢測結果
將待檢測視頻輸入到模型中,一幀一幀地讀取視頻并進行檢測,并用矩形框框出每幀中的所有類別以及對應的置信度。視頻左上角還會顯示當前的FPS和當前幀中重車的個數。結果如圖6所示。
4 結束語
本文采用深度學習領域中的目標檢測算法,實現了對于不同路況中重車的檢測,一定程度上解決了交通管理方面存在的一些痛點。在眾多目標檢測算法中,本文選擇了目前檢測速度和檢測精度兼顧較好的YOLOv4算法,并采用重車檢測數據集進行訓練。實驗結果表明,YOLOv4算法在重車檢測數據集上實現了收斂,并在重車檢測方面取得了一定的成果。現如今,大多數橋坍塌等交通事故中,重載車輛都是根本原因之一。隨著大數據、深度學習的普及和廣泛應用,可以有效幫助交通管理人員減輕一定的負擔。相信在將來,準確度更好、檢測速度更快的檢測器運用于重車檢測的話,交通情況會改善很多,大型交通事故也會漸漸消失。
參考文獻:
[1] 王慧玲,綦小龍,武港山.基于深度卷積神經網絡的目標檢測技術的研究進展[J].計算機科學,2018,45(9):11-19.
[2] 張興國,劉曉磊,李靖,等.BP神經網絡下的限速交通標志實時檢測識別[J].西安電子科技大學學報(自然科學版),2018,45(5):136-142.
[3] 趙奇慧,劉艷洋,項炎平.基于深度學習的單階段車輛檢測算法綜述[J].計算機應用,2020,40(S2):30-36.
[4] 張向清.高速公路場景下基于深度學習的車輛目標檢測與應用研究[D].西安:長安大學,2018.
[5] Liu Y M,Zhang X Y,Zhang B Z,et al.Deep network for road damage detection[C]//2020 IEEE International Conference on Big Data (Big Data).December 10-13,2020,Atlanta,GA,USA.IEEE,2020:5572-5576.
[6] 馬傳香,汪煬杰,王旭.基于卷積神經網絡的煤炭運載車輛識別[J].計算機科學,2020,47(S2):219-223.
【通聯編輯:唐一東】