摘 要:隨著5G技術(shù)的興起,智能交通系統(tǒng)的研究成為當(dāng)下熱點(diǎn),車輛檢測(cè)則是其中最重要的內(nèi)容之一。車輛檢測(cè)技術(shù)不僅為交通擁堵、車輛違停、超速等問(wèn)題的解決提供了便利,還能促進(jìn)無(wú)人駕駛、車流量統(tǒng)計(jì)、車輛防碰撞預(yù)警等智能技術(shù)的發(fā)展。目前,隨著深度學(xué)習(xí)的廣泛應(yīng)用,車輛檢測(cè)技術(shù)也愈發(fā)成熟。YOLOv5模型較YOLOv4更加輕量化且精度高。本文提出YOLOv5n算法對(duì)行駛車輛進(jìn)行目標(biāo)檢測(cè),并使用CIOU損失來(lái)提高邊界框回歸的準(zhǔn)確率。經(jīng)驗(yàn)證,該方法準(zhǔn)確率高,具有較高推廣價(jià)值。
關(guān)鍵詞:深度學(xué)習(xí);YOLOv5;目標(biāo)檢測(cè);車輛檢測(cè);CIOU;邊界框回歸
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2024)04-00-04
DOI:10.16667/j.issn.2095-1302.2024.04.008
0 引 言
隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,汽車保有量持續(xù)增長(zhǎng),由此帶來(lái)了一系列社會(huì)問(wèn)題,對(duì)如此龐大的車輛進(jìn)行管理極其困難。車輛檢測(cè)技術(shù)的發(fā)展為規(guī)范交通秩序提供了解決方案。目前,車輛檢測(cè)算法主要有2種,一種是傳統(tǒng)的目標(biāo)檢測(cè)算法,另一種是深度學(xué)習(xí)目標(biāo)檢測(cè)算法。
傳統(tǒng)的目標(biāo)檢測(cè)算法主要有尺度不變特征轉(zhuǎn)換算法、Boosting算法等[1],這些算法基于圖像處理和機(jī)器視覺(jué)技術(shù)提出。由于車輛檢測(cè)環(huán)境的復(fù)雜性和車輛外觀的多樣性,使得傳統(tǒng)車輛檢測(cè)效果達(dá)不到性能指標(biāo)要求。本文采用YOLOv5模型實(shí)現(xiàn)對(duì)車輛目標(biāo)的高效檢測(cè)。
1 基于深度學(xué)習(xí)的目標(biāo)檢測(cè)
1.1 雙階段目標(biāo)檢測(cè)
雙階段目標(biāo)檢測(cè)算法將檢測(cè)分為2個(gè)階段:首先在輸入的原始圖像上生成候選區(qū)域,接著對(duì)產(chǎn)生的候選區(qū)域再進(jìn)行一次修正[2]。雙階段目標(biāo)檢測(cè)算法的主要算法代表是R-CNN系列,此類檢測(cè)算法檢測(cè)精度較高,但是檢測(cè)速度較慢。R-CNN是一種基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)算法,它摒棄了傳統(tǒng)滑動(dòng)窗口和人工選取特征等操作[3]。R-CNN由3部分組成:第一部分是候選區(qū)域選取,使用Selective Search方法將輸入圖片生成約2 000個(gè)候選區(qū)域;第二部分是特征提取及分類,對(duì)于生成的候選區(qū)域,R-CNN首先將候選區(qū)域調(diào)整為統(tǒng)一大小,并通過(guò)卷積神經(jīng)網(wǎng)絡(luò)從中提取特征。最后使用不同類別的SVM分類器對(duì)2 000個(gè)候選區(qū)域的特征向量進(jìn)行分類;第三部分是聯(lián)合訓(xùn)練,使用大量正負(fù)樣本對(duì)SVM分類器和回歸器進(jìn)行訓(xùn)練。且每個(gè)候選區(qū)域都需要獨(dú)立分類和回歸。R-CNN在VOC07數(shù)據(jù)集上的mAP為58.5%。R-CNN特征學(xué)習(xí)步驟如圖1所示。
雖然R-CNN性能較好,但由于其需要分階段多次訓(xùn)練且對(duì)每個(gè)候選區(qū)域都要單獨(dú)計(jì)算一次特征圖,導(dǎo)致R-CNN訓(xùn)練時(shí)間長(zhǎng)且占用空間大。因此,Ross Girshick在R-CNN的基礎(chǔ)上又提出了Fast R-CNN和Faster R-CNN[4]。三者原理及優(yōu)缺點(diǎn)如下:
(1)R-CNN的原理:使用選擇性搜索算法對(duì)圖片進(jìn)行候選區(qū)域生成,使用CNN對(duì)生成的候選區(qū)域進(jìn)行特征提取,通過(guò)SVM分類。引入候選框與CNN可提高檢測(cè)準(zhǔn)確率,但占用空間大,訓(xùn)練時(shí)間長(zhǎng)。
(2)Fast R-CNN的原理:使用選擇新搜索法提取候選區(qū)域,使用CNN對(duì)整張圖像提取特征,通過(guò)SoftMax分類,多任務(wù)損失函數(shù)邊框回歸。此時(shí)測(cè)試速度和訓(xùn)練速度較R-CNN有提升,但使用選擇性搜索法導(dǎo)致檢測(cè)速度慢。
(3)Faster R-CNN的原理:使用RPN網(wǎng)絡(luò)代替前者的選擇性搜索算法生成候選區(qū)域,目標(biāo)存在的概率用sigmoid函數(shù)進(jìn)行處理。此舉雖然可以提高檢測(cè)速度、降低候選區(qū)域成本、提升檢測(cè)框的生成速度,但是無(wú)法進(jìn)行實(shí)時(shí)檢測(cè)。
1.2 單階段目標(biāo)檢測(cè)
單階段檢測(cè)方法無(wú)需產(chǎn)生候選區(qū)域,可直接通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征,預(yù)測(cè)目標(biāo)類別與定位,因而速度較快。最典型的單階段檢測(cè)算法有YOLO系列算法、SSD算法等。
YOLO算法將目標(biāo)檢測(cè)重新定義為一種單一的回歸問(wèn)題,該算法可以直接由圖像像素預(yù)測(cè)邊界框坐標(biāo)和類別概率。YOLO原理如圖2所示。首先系統(tǒng)將輸入圖片劃分成S×S的網(wǎng)格;其次在圖像運(yùn)行單個(gè)卷積網(wǎng)絡(luò);最后通過(guò)模型的置信度對(duì)結(jié)果檢測(cè)進(jìn)行閾值處理。因此,單個(gè)卷積網(wǎng)絡(luò)可以同時(shí)預(yù)測(cè)出多個(gè)邊界框和多個(gè)類別概率。
2 基于YOLOv5n的車輛目標(biāo)檢測(cè)
2.1 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5使用卷積神經(jīng)網(wǎng)絡(luò)不僅可以針對(duì)各種任務(wù)進(jìn)行預(yù)訓(xùn)練模型的調(diào)整,而且容易獲得模型和數(shù)據(jù)集。這使得YOLOv5計(jì)算成本低,且性能指標(biāo)良好。YOLOv5n是YOLOv5支持移動(dòng)端的最小化模型,僅1.9 MB,可在保持較快檢測(cè)速度的同時(shí)提供較高的準(zhǔn)確率。其網(wǎng)絡(luò)結(jié)構(gòu)分為輸入端、主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)、輸出端[5-6]。
輸入端:為了提高模型性能,輸入端采用多種方法,如Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框、自適應(yīng)圖片縮放等。Mosaic數(shù)據(jù)增強(qiáng)算法將4幅不同的原始輸入圖片進(jìn)行隨機(jī)縮放、裁剪和分布與拼接,融合成一張包含4幅原始圖像特征的合成圖像。通過(guò)該方法,可以訓(xùn)練出多個(gè)不同的目標(biāo),使得模型能夠高效學(xué)習(xí)復(fù)雜背景下的目標(biāo),具體實(shí)現(xiàn)效果如圖3所示。批量歸一化從每一層4個(gè)不同的圖像中計(jì)算激活統(tǒng)計(jì)信息,顯著減少了對(duì)mini-batch的需求。
自適應(yīng)圖片縮放。在目標(biāo)檢測(cè)過(guò)程中,由于輸入的圖像大小不一致,將會(huì)導(dǎo)致檢測(cè)效果不穩(wěn)定,因此輸入到主干網(wǎng)絡(luò)的圖片大小應(yīng)統(tǒng)一縮放。此時(shí)若使用resize函數(shù)可能導(dǎo)致圖像特征丟失,所以提出了letterbox自適應(yīng)圖像縮放技術(shù)。經(jīng)過(guò)letterbox處理的圖片通過(guò)灰邊來(lái)補(bǔ)齊缺邊,可完整保留圖片的所有特征,處理情況如圖4所示。
主干網(wǎng)絡(luò):主要由Focus層和CSP模塊等構(gòu)成。Focus 層的主要目的是減少層數(shù)、減少參數(shù)、減少FLOPS、提高前進(jìn)和后退速度,同時(shí)將mAP的影響降至最低。Focus的主要核心功能是切片,其原理如圖5所示。
頸部網(wǎng)絡(luò):其是使用FPN結(jié)合PAN的網(wǎng)絡(luò)結(jié)構(gòu),F(xiàn)PN包括自底向上和自頂向下2個(gè)過(guò)程,如圖6所示,通過(guò)向上采樣和向下采樣融合之前結(jié)構(gòu)獲得特征圖。
頭部結(jié)構(gòu):包括邊界框損失函數(shù)和非極大值抑制[7]部分。YOLOv5為了解決預(yù)測(cè)框與真實(shí)框存在重疊的問(wèn)題,選擇CIOU作為邊界框的損失函數(shù)。
2.2 損失函數(shù)
損失函數(shù)用于衡量模型預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽之間的差異,并通過(guò)梯度下降等優(yōu)化算法,更新模型參數(shù)以最小化損失函數(shù)。由于邊界框預(yù)測(cè)需要著重于該框與真實(shí)框的重疊區(qū)域面積,且重疊區(qū)域的面積與兩者并集區(qū)域的面積之比越大越好,因此提出了交并比這一概念。IOU損失函數(shù)示意圖如圖7所示。
IOU損失可以定義為式(1):
(1)
式中:Bgt=(xgt, ygt, wgt, hgt)為真實(shí)框的參數(shù);B=(x, y, w, h)為預(yù)測(cè)框參數(shù);IOU為預(yù)測(cè)框與目標(biāo)框交集與并集的比值;B為預(yù)測(cè)框;Bgt為真實(shí)框。
IOU存在收斂速度慢、定位不準(zhǔn)等問(wèn)題,現(xiàn)有的IOU損失忽略了信息錨框的重要性[8-10]。因此在IOU基礎(chǔ)上提出了CIOU損失。CIOU可以定義為式(2):
(2)
式中:b和bgt表示B和Bgt的中心點(diǎn);ρ(·)是歐幾里得距離;C是覆蓋2個(gè)框的最小封閉框的對(duì)角線長(zhǎng)度;α是正權(quán)衡參數(shù);v用于衡量縱橫比的一致性。
v的定義如式(3)所示:
(3)
權(quán)衡參數(shù)α定義見(jiàn)式(4)所示:
(4)
3 目標(biāo)檢測(cè)實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)在Windows11系統(tǒng)下進(jìn)行,基于PyTorch1.10.1深度學(xué)習(xí)框架和NVIDIA GeForce GTX 1650 GPU,軟件環(huán)境為Python3.9;CUDA 10.2。處理器為Intel(R) Core(TM) i5-9300H CPU @ 2.40 GHz。
本文數(shù)據(jù)集來(lái)自某市區(qū)公路視頻數(shù)據(jù)。車輛檢測(cè)數(shù)據(jù)集構(gòu)建方式:首先使用Python腳本將視頻按幀截取圖片,去除冗余和無(wú)效圖片,部分?jǐn)?shù)據(jù)集如圖8所示。使用Labelimg工具對(duì)獲取的圖片進(jìn)行標(biāo)注,本實(shí)驗(yàn)只標(biāo)注一個(gè)類別為“car”。將標(biāo)注格式轉(zhuǎn)化為VOC數(shù)據(jù)格式;最后得到5 000張具有標(biāo)注信息的數(shù)據(jù)集,按照訓(xùn)練集∶測(cè)試集∶驗(yàn)證集=8∶1∶1的比例劃分;生成訓(xùn)練集train.txt和驗(yàn)證集val.txt文件列表。
3.2 訓(xùn)練過(guò)程
由于訓(xùn)練階段消耗大量時(shí)間以及內(nèi)存空間,本實(shí)驗(yàn)采用凍結(jié)訓(xùn)練策略。凍結(jié)訓(xùn)練的作用:已有部分預(yù)訓(xùn)練權(quán)重,這部分預(yù)訓(xùn)練權(quán)重所應(yīng)用的網(wǎng)絡(luò)是通用的,可以將這部分權(quán)重的訓(xùn)練暫時(shí)中止,先將內(nèi)存和資源集中用于訓(xùn)練其他網(wǎng)絡(luò)參數(shù),使得資源能夠被充分利用。當(dāng)其他網(wǎng)絡(luò)參數(shù)訓(xùn)練之后再將之前中止的部分權(quán)重解凍,最后將所有網(wǎng)絡(luò)參數(shù)一起訓(xùn)練。
3.3 評(píng)價(jià)指標(biāo)和實(shí)驗(yàn)結(jié)果
用于計(jì)算類別的平均精度mAP(mean Average Precision, mAP)越大表示準(zhǔn)確率越高,即模型的檢測(cè)性能越好,計(jì)算方法如式(5):
(5)
查準(zhǔn)率(Precision):該指標(biāo)從預(yù)測(cè)角度出發(fā),描述了二分類預(yù)測(cè)器結(jié)果的正例結(jié)果中真實(shí)正例的數(shù)量,即該二分類預(yù)測(cè)器預(yù)測(cè)的正確正例的數(shù)量。而查全率(Recall)從真實(shí)角度出發(fā)描述測(cè)試集中的真實(shí)正例中被二分類預(yù)測(cè)器挑選出來(lái)的數(shù)量。二者計(jì)算公式如式(6)、式(7)所示:
(6)
(7)
式中:TP為將正樣本預(yù)測(cè)為正的數(shù)量;FN為將正樣本預(yù)測(cè)為負(fù)的數(shù)量;FP為將負(fù)樣本預(yù)測(cè)為正的數(shù)量。Precision和Recall通常是一對(duì)相矛盾的性能指標(biāo)。一般來(lái)說(shuō),Precision越高時(shí),Recall往往越低。本實(shí)驗(yàn)訓(xùn)練得到的Precision和Recall的曲線如圖9所示。圖9中Precision的數(shù)值趨于1,意味著在所有被模型預(yù)測(cè)為正類的樣本中,真正為正類的樣本數(shù)量占比很高。即precision的數(shù)值接近1表示模型對(duì)于預(yù)測(cè)為正類的樣本有較高的準(zhǔn)確性。圖中Recall數(shù)值最后維持在0.8左右,意味著模型能夠正確識(shí)別出大部分真實(shí)正樣本,并將其預(yù)測(cè)為正類。Recall接近1表示模型對(duì)于所有真實(shí)正樣本的覆蓋率較高。
本文實(shí)驗(yàn)結(jié)果所得mAP@0.5=0.957說(shuō)明本文所訓(xùn)練的模型在車輛檢測(cè)過(guò)程中的正確率較高。模型檢測(cè)效果如圖10所示。從檢測(cè)結(jié)果來(lái)看,本文模型能夠?qū)Σ煌瑪?shù)據(jù)集和場(chǎng)景下的道路車輛目標(biāo)進(jìn)行檢測(cè)。在夜間城市道路場(chǎng)景下和雨天道路場(chǎng)景等復(fù)雜檢測(cè)環(huán)境中都可以得到不錯(cuò)的檢測(cè)效果。即使車輛正在行駛且速度較快導(dǎo)致圖像中車輛虛化也能夠正確檢測(cè)出車輛并給出合理的置信度。
4 結(jié) 語(yǔ)
在自建的道路車輛數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試,并結(jié)合mAP、Precision、Recall等指標(biāo)評(píng)估模型性能。實(shí)驗(yàn)結(jié)果表明,YOLOv5n在道路車輛檢測(cè)任務(wù)中具有較高的準(zhǔn)確率和速度,在實(shí)際道路場(chǎng)景中具有較好的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] NG P C. SIFT:Predicting amino acid changes that affect protein function [J]. Nucleic acids research,2003,31(13):3812-3814.
[2]謝富,朱定局.深度學(xué)習(xí)目標(biāo)檢測(cè)方法綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2022,31(2):1-12.
[3]張學(xué)工.關(guān)于統(tǒng)計(jì)學(xué)習(xí)理論與支持向量機(jī)[J].自動(dòng)化學(xué)報(bào),2000,38(1):36-46.
[4] REN S,HE K,GIRSHICK R,et al. Faster R-CNN:towardreal-time object detection with region proposal networks [J]. IEEE transactions on pattern analysisamp;machine intelligence,2017,39(6):1137-1149.
[5]許德剛,王露,李凡.深度學(xué)習(xí)的典型目標(biāo)檢測(cè)算法研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2021,57(8):10-25.
[6]陳翠琴,范亞臣,王林.基于改進(jìn)Mosaic數(shù)據(jù)增強(qiáng)和特征融合的Logo檢測(cè)[J].計(jì)算機(jī)測(cè)量與控制,2022,30(10):188-194.
[7]江磊,崔艷榮.基于YOLOv5的小目標(biāo)檢測(cè)[J].電腦知識(shí)與技術(shù),2021,17(26):131-133.
[8] ZHANG Y F,REN W,ZHANG Z. Focal and efficient IOU loss for accurate bounding box regression [J]. Neurocomputing,2022:146-157.
[9] ZHENG Z,WANG P,LIU W,et al. Distance-IoU loss:Faster and better learning for bounding box regression [J]. Proceedings of the AAAI conference on artificial intelligence,2020:12993-13000.
[10]陳同宇,陳洋,范劍偉.改進(jìn)YOLOv3算法的煙盒缺陷檢測(cè)[J].物聯(lián)網(wǎng)技術(shù),2021,11(4):51-52.
收稿日期:2023-04-14 修回日期:2023-05-19
基金項(xiàng)目:江西省大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目資助(S202110407021)