吳祥 謝爾夫 張恒 徐秉皓 易夢華 張智
摘要:基于深度學(xué)習(xí)算法,在交通中不同路況中對重載車輛進(jìn)行檢測與流量統(tǒng)計問題有待解決。首先對YOLOv4原理及主要算法進(jìn)行介紹;之后進(jìn)行了數(shù)據(jù)集的標(biāo)注等預(yù)處理,將數(shù)據(jù)輸入到Y(jié)OLOv4模型中進(jìn)行訓(xùn)練;最后對實驗結(jié)果進(jìn)行了一定的分析,并進(jìn)行了模型檢測,實驗效果較好。該算法基本能夠?qū)崿F(xiàn)對不同路況中重載車輛的檢測和流量統(tǒng)計。
關(guān)鍵詞: 重車檢測; 目標(biāo)檢測; YOLOv4; 深度學(xué)習(xí); 人工智能
中圖分類號:TP183 ? ? ?文獻(xiàn)標(biāo)識碼: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
隨著深度學(xué)習(xí)的不斷發(fā)展,其在各個領(lǐng)域都得到了廣泛的應(yīng)用[1]。在城市交通管理時,利用人工智能技術(shù),可以有效實時分析城市交通流量、信號燈檢測等,以此來提升城市道路的通行效率[2]。在車輛檢測方面,深度學(xué)習(xí)也發(fā)揮了很重要的作用[3]。深度學(xué)習(xí)模型在檢測車輛車牌、運行速度、運行軌跡、流量統(tǒng)計等各個方面都起到了關(guān)鍵性的作用[4],極大地降低了交通管理人員的負(fù)擔(dān),為人們帶來了一定的便利。
目前,大多數(shù)交通事故很大程度歸因于重載車輛的行駛。重載車輛在橋段上行駛時,會極大程度地增加橋的承載負(fù)擔(dān),對橋段造成很嚴(yán)重的損害[5],以至于發(fā)生橋面斷裂、坍塌等重大事故。利用深度卷積神經(jīng)網(wǎng)絡(luò)自動識別重車是一種有效的途徑[6]。
為了在交通管理方面減輕管理人員的負(fù)擔(dān),同時也為了大多數(shù)行車人員的安全著想,本文設(shè)計了一套利用深度學(xué)習(xí)對重車進(jìn)行檢測的系統(tǒng)。該系統(tǒng)主要功能就是實現(xiàn)對視頻中重車的檢測,并統(tǒng)計畫面中重車的數(shù)量,以反饋給交通管理人員,保證行車人員的安全,減少交通事故的發(fā)生。
1 基于YOLOv4算法的重車檢測原理
YOLOv4網(wǎng)絡(luò)的結(jié)構(gòu)由三部分組成:
lBackBone:CSPDarknet53;
lNeck:SPP、FPN + PAN;
lHEAD:YOLO HEAD。
其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
1.1 BackBone:CSPDarknet53
BackBone部分是整個網(wǎng)絡(luò)中圖像特征提取的部分。CSPDarknet作為一種圖像特征提取網(wǎng)絡(luò),其特征提取能力較強(qiáng)的同時,檢測速度也足夠快。相比于CSPResNext50網(wǎng)絡(luò)來說,CSPDarknet53網(wǎng)絡(luò)在目標(biāo)檢測領(lǐng)域的精度更優(yōu)。
1.2 Neck:SPP、FPN + PAN
Neck部分主要用于融合不同尺度特征圖的特征信息。SPP采用1×1、5×5、9×9、13×13的最大池化的方式,進(jìn)行多尺度融合,該模塊有效地增加主干特征的接受范圍,顯著地分離了最重要的上下文特征。在FPN + PAN模塊中,F(xiàn)PN自頂向下工作,將高層的特征信息通過上采樣的方式進(jìn)行傳遞融合,得到預(yù)測的特征圖;PAN自底向上傳達(dá)強(qiáng)定位特征。兩個部分共同工作,從不同的主干層對不同的檢測層進(jìn)行參數(shù)聚合,大大提高了特征提取的能力。
1.3 Head:YOLO Head
Head部分主要用于將特征信息進(jìn)行反卷積,得到實際輸出的結(jié)果,即:每一幀圖片中所有物體的位置、類別以及類別置信度。
2 算法實現(xiàn)
2.1 系統(tǒng)功能模塊
該系統(tǒng)主要分為兩個模塊:檢測模塊、顯示模塊。
2.1.1 檢測模塊
系統(tǒng)可以利用已經(jīng)訓(xùn)練好的重車檢測模型,對輸入的視頻進(jìn)行檢測。該模塊主要會檢測:視頻中所有物體的位置、所有物體的類別以及重車的數(shù)量。
2.1.2 顯示模塊
在顯示模塊中,系統(tǒng)會將檢測到的結(jié)果在視頻中顯示出來,包括所有物體、物體的類別、類別置信度、檢測視頻的幀數(shù)和當(dāng)前幀中重車的數(shù)量。系統(tǒng)功能模塊圖如圖2所示。
2.2 主要算法描述
在YOLOv4算法中,主要的算法包括以下3個:Mosaic數(shù)據(jù)增強(qiáng)、Mish激活函數(shù)、CIoU損失函數(shù)。
2.2.1 輸入Mosaic數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)是利用已有的數(shù)據(jù)進(jìn)行一定的變換比如翻轉(zhuǎn)、平移、旋轉(zhuǎn)等操作,創(chuàng)造出更多的數(shù)據(jù),從而使神經(jīng)網(wǎng)絡(luò)具有更好泛化效果的一種方法。Mosaic數(shù)據(jù)增強(qiáng)參考了CutMix數(shù)據(jù)增強(qiáng)的思想,二者具有一定的相似性。CutMix數(shù)據(jù)增強(qiáng)的方式是利用兩張圖片進(jìn)行拼接(如圖3(a)所示),而Mosaic利用四張圖片進(jìn)行拼接(如圖3(b)所示)。這種方式的主要特點就是增加了單張圖片的豐富度,在BatchNormalization的時候可以同時計算四張圖片,效率較高。
Mosaic的實現(xiàn)步驟如下:
l每次讀取四張圖片;
l分別對四張圖片進(jìn)行翻轉(zhuǎn)、縮放等變化;
l將四張圖片按照左上、左下、右上、右下四個位置擺放好;
l將四張圖片進(jìn)行拼接。
2.2.2 Mish激活函數(shù)
激活函數(shù)的作用主要是用于在模型中加入非線性因素,使得模型具有更多的可能性。Mish激活函數(shù)是在Leaky_Relu算法的基礎(chǔ)上改進(jìn)而來。二者比較圖如圖4所示。
從圖4中可以看出,在輸入x=0處,Leaky_Relu函數(shù)出現(xiàn)了拐點,即不平滑;而Mish函數(shù)是平滑的。平滑意味著允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化性。
2.2.3 CIoU損失函數(shù)
損失函數(shù)衡量了模型預(yù)測結(jié)果和真實結(jié)果之間的誤差值,模型可以根據(jù)損失函數(shù)來更新模型的參數(shù),使預(yù)測結(jié)果朝著更好的方向進(jìn)行。CIoU損失函數(shù)綜合考慮了預(yù)測框與真實框的:面積的交并比、中心距離、寬高比的差異。可以用如下公式來計算CIoU損失函數(shù):
其中CIoU的三個組成部分分別表示:
l預(yù)測框與真實框面積的交并比;
l預(yù)測框與真實框中心點距離平方除最小外接矩形對角線距離平方;
l預(yù)測框與真實框?qū)捀弑鹊牟町悺?/p>
3 實驗
3.1 模型訓(xùn)練
本文采用重車檢測數(shù)據(jù)集對YOLOv4模型進(jìn)行訓(xùn)練。該數(shù)據(jù)中總共有11個立交橋的視頻,每個立交橋中有20-50個視頻。將每個視頻大約分了300-600幀,并加上自己尋找的行人圖片數(shù)據(jù)400張。然后用LabelImg軟件對所有圖片進(jìn)行標(biāo)注(car、truck、non-motor、person四個類別),最終得到8700個圖片和6817個xml文件(標(biāo)注結(jié)果)。然后將標(biāo)注后的數(shù)據(jù)按9:1的比例分為訓(xùn)練集、驗證集,并輸入模型當(dāng)中進(jìn)行訓(xùn)練。在超參數(shù)方面,我們設(shè)置迭代次數(shù)Epoch=40、學(xué)習(xí)率lr=1e-3、批量樣本數(shù)Batch_size=2、優(yōu)化算法為Adam算法。
本次訓(xùn)練總共20個小時。訓(xùn)練損失值變化、驗證損失值變化如圖5所示。
從圖5中可以看出,損失值逐漸下降,最后趨于穩(wěn)定,即算法逐漸達(dá)到了收斂。
3.2 檢測結(jié)果
將待檢測視頻輸入到模型中,一幀一幀地讀取視頻并進(jìn)行檢測,并用矩形框框出每幀中的所有類別以及對應(yīng)的置信度。視頻左上角還會顯示當(dāng)前的FPS和當(dāng)前幀中重車的個數(shù)。結(jié)果如圖6所示。
4 結(jié)束語
本文采用深度學(xué)習(xí)領(lǐng)域中的目標(biāo)檢測算法,實現(xiàn)了對于不同路況中重車的檢測,一定程度上解決了交通管理方面存在的一些痛點。在眾多目標(biāo)檢測算法中,本文選擇了目前檢測速度和檢測精度兼顧較好的YOLOv4算法,并采用重車檢測數(shù)據(jù)集進(jìn)行訓(xùn)練。實驗結(jié)果表明,YOLOv4算法在重車檢測數(shù)據(jù)集上實現(xiàn)了收斂,并在重車檢測方面取得了一定的成果。現(xiàn)如今,大多數(shù)橋坍塌等交通事故中,重載車輛都是根本原因之一。隨著大數(shù)據(jù)、深度學(xué)習(xí)的普及和廣泛應(yīng)用,可以有效幫助交通管理人員減輕一定的負(fù)擔(dān)。相信在將來,準(zhǔn)確度更好、檢測速度更快的檢測器運用于重車檢測的話,交通情況會改善很多,大型交通事故也會漸漸消失。
參考文獻(xiàn):
[1] 王慧玲,綦小龍,武港山.基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測技術(shù)的研究進(jìn)展[J].計算機(jī)科學(xué),2018,45(9):11-19.
[2] 張興國,劉曉磊,李靖,等.BP神經(jīng)網(wǎng)絡(luò)下的限速交通標(biāo)志實時檢測識別[J].西安電子科技大學(xué)學(xué)報(自然科學(xué)版),2018,45(5):136-142.
[3] 趙奇慧,劉艷洋,項炎平.基于深度學(xué)習(xí)的單階段車輛檢測算法綜述[J].計算機(jī)應(yīng)用,2020,40(S2):30-36.
[4] 張向清.高速公路場景下基于深度學(xué)習(xí)的車輛目標(biāo)檢測與應(yīng)用研究[D].西安:長安大學(xué),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īng)網(wǎng)絡(luò)的煤炭運載車輛識別[J].計算機(jī)科學(xué),2020,47(S2):219-223.
【通聯(lián)編輯:唐一東】