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