?

基于改進YOLOv5的小目標交通標志檢測算法

2023-12-28 10:32徐鑫方凱
湖北汽車工業學院學報 2023年4期
關鍵詞:交通標志卷積特征

徐鑫,方凱

(湖北汽車工業學院 電氣與信息工程學院,湖北 十堰 442002)

交通標志檢測是高級駕駛輔助系統[1]和智能交通系統[2]的重要組成部分。常用的交通標志檢測算法包括以Faster R-CNN[3]系列為代表的二階段目標檢測算法和以YOLO[4-5]系列、SSD[6]為代表的單階段目標檢測算法。在傳統目標檢測中,被檢測對象通常占據整個圖像較大區域,而實際駕駛環境中捕獲的交通標志通常占據整個圖像的很小區域,可提取的像素特征不足,檢測難度大。針對小目標檢測,學者通常采用增加目標檢測層、引入注意力機制、改進損失函數等方法。江金洪等[7]在YOLOv3 中引入深度可分離卷積,在損失函數中用GIOU替換原始IOU,平均精度提升了6.6%,但檢測速度僅為12FPS,不適用于實時檢測。Wang等[8]在YOLOv4-Tiny 算法引入改進的K-Means 聚類算法并提出大規模特征圖優化策略,小目標檢測的均值平均精度為52.07%,雖然比YOLOv4-Tiny 算法提升了5.73%,但不滿足實際駕駛環境檢測精度要求。孟繁星等[9]以YOLOv5算法為基礎加入通道注意力機制、增加小尺度檢測層、使用藍圖可分離卷積替代主干網絡的標準卷積,算法平均精度提高了4.7%,但速度有所降低。為了解決小目標交通標志檢測精度低的問題,文中在YOLOv5 算法基礎上,調整了主干網絡下采樣倍數,將MobileViT Block融合到頸部網絡進行全局建模。采用離線增強方法對訓練集進行擴充,同時采用Mosaic-9 在線增強方法進行訓練。

1 YOLOv5算法與改進

1.1 YOLOv5算法

YOLOv5 算法結構主要由輸入、主干網絡、頸部網絡、預測層組成。主干網絡由Conv、C3、SPPF等模塊組成,用于提取圖片中的特征信息。根據網絡深度倍數和寬度倍數的不同,YOLOv5算法由小到 大 分 為YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x。交通標志檢測的實際應用需要同時考慮模型的實時性和準確性,YOLOv5s 模型的尺寸較小,計算推理速度快,部署起來更方便,所以選用YOLOv5s 版本作為改進模型,文中YOLOv5算法皆指YOLOv5s版本。

1.2 微小目標檢測層

卷積神經網絡進行特征提取時,隨著卷積層數的增加,特征圖的分辨率逐漸減小,感受野不斷擴大,深層網絡更傾向于關注全局信息,不利于對小目標的檢測。相反,淺層網絡的特征圖大,細節特征豐富,感受野重疊區域比較小,攜帶更多的小目標信息,可以彌補深層網絡的不足。YOLOv5算法的FPN和PAN結構中同時融合了主干網絡的8倍、16倍、32倍特征圖,背景以及噪聲信息會覆蓋小目標信息,導致檢測精度較低。

文中采用1 個微小目標檢測層替換YOLOv5算法的大目標檢測層,降低主干網絡下采樣倍數為4 倍、8 倍、16 倍,一方面可以減少深層網絡的背景和噪聲信息,另一方面改進后FPN 和PAN 結構可以充分融合淺層網絡信息,將更多淺層特征傳遞到深層特征,強化小目標特征。改進后的FPN 和PAN結構如圖1所示。

圖1 改進后FPN和PAN結構

1.3 MobileViT Block

MobileViT Block[10]的結構見圖2,輸入特征圖的尺寸為W×H×C,其中W和H分別表示特征圖的寬的高,C表示通道數。輸入的特征圖經過Conv模塊、Transformer Block[11]和特征融合模塊后,與原始特征圖進行疊加,系統輸出疊加后的特征圖。

圖2 MobileViT Block結構

具體操作流程:將輸入張量X通過1 個n×n卷積進行局部特征建模,再將其通過1個1×1卷積映射到高維空間中得到張量XL,最后將XL展開成N個扁平化且互不重疊的Patch 得到XU。Patch 中的像素p輸入Transformer Block,提取特征圖的全局空間信息得到XG,然后將其折疊復原至XU,再通過1×1標準卷積復原回特征圖XL,最后與X進行類似于shortcut拼接,使用n×n卷積做通道融合得到W×H×C特征圖作為輸出。其中:

式中:N為Patch個數;w和h為Patch寬度和高度。

卷積神經網絡(convolutional neural networks,CNN)的歸納偏置可以很好地學習視覺表征信息,然而由于卷積核大小的限制,CNN 只能對特征局部建模,存在感受野有限的問題。MobileViT Block集成了卷積和Transformer Block,以卷積中局部建模為基礎進行全局建模,同時具有CNN 和ViT 特性。將MobileViT Block融入微小目標檢測層可以增加全局感受野,更好地表示小目標交通標志特征。

2 數據集

2.1 實驗數據集

TT100K[12]數據集共有100 000張分辨率為2 048×2 048高清圖像,包含了30 000個交通標志實例,覆蓋國內5 個不同城市道路的真實交通場景。在TT100K數據集中篩選出道路上常見且實例個數大于100 的類別,共45 類交通標志,9 170 張圖片,按照6∶2∶2 隨機劃分訓練集、驗證集和測試集,其中訓練集5 503張,驗證集1 833張,測試集1 834張。

2.2 數據增強

劃分后的數據集存在不同種類交通標志的樣本數量差異過大的問題,導致數量多的樣本訓練效果較好,而數量少的樣本訓練效果不佳。文中采用離線增強和在線增強相結合的方式進行樣本訓練來解決該問題。為了保證實驗有效性,離線增強只對訓練集的5 503張圖片進行0.8~1.5倍隨機縮放、長和寬的扭曲和隨機色域變換處理,將不足500個的交通標志類別實例個數,擴充至500 個以上,離線增強后的訓練集有13868 張圖片。在線增強使用Mosaic-9數據增強方法,訓練時隨機選取9張圖片進行隨機裁剪、縮放,將處理后的圖片隨機分布后拼接成1張新的訓練樣本,增加樣本背景信息的多樣性,豐富了交通標志實例。

3 實驗結果與分析

3.1 實驗環境配置

實驗訓練和測試平臺均使用Windows10 操作系統,硬件主機CPU為Intel Core i5-10500,顯卡為NVIDIA GeForce GTX 3070,顯存為8G,內存為32GB RAM+100GB Virtual Memory。深度學習框架為Python3.8.15、Pytorch1.10.0、TorchVision0.11.0、CUDA11.3、CuDNN8.2.0。

訓練時使用YOLOv5默認低版本超參數配置,輸入圖像分辨率為640×640,初始學習率設置為0.01,使用余弦退火調整學習率,關閉Fliplr左右翻轉增強,默認使用SGD 優化器,批量大小為16,迭代輪次為200次。

3.2 性能評估指標

文中采用精確率P、召回率R、mAP@0.5、FPS及參數量NP作為算法性能評估指標,相關表達式為

式中:TP為真正例;FP為假正例;TN為真反例;FN為假反例;PmA為mAP@0.5 的值;PA為平均精度值。FPS為畫面每秒傳輸的幀數,用來衡量模型的檢測速度,當FPS越大時,模型每秒處理的圖像數越多,實時目標檢測的最低要求是FPS需達到30。

3.3 改進算法消融實驗結果分析

為了加速模型收斂,節約算力成本,實驗前采用K-Means++聚類初始錨框,并使用WIoU 作為邊界框損失函數。在TT100K 測試集上進行了消融實驗,依次引入數據增強(data augmentation, DA)、微小目標檢測層(tiny target detection layer,TTDL)和融合模塊MobileViT Block 與原始YOLOv5 算法作對比,實驗結果如表1 所示。實驗方法中,D、T、M分別表示DA、TTDL、MobileViT Block方法。

表1 消融實驗結果

根據表1 可知,YOLOv5 算法的精確度為81.3%,召回率為71.9%,mAP@0.5為79.6%,表現一般。YOLOv5算法引入DA后,擴充了交通標志實例數量少的樣本,訓練效果變好,表明確保充足且均衡的訓練樣本能有效提升算法性能。YOLOv5 算法引入TTDL 后,精確度、召回率和mAP@0.5 都有提升,模型參數量降低到3.9×106,有效增強了算法對于小目標的特征提取能力。YOLOv5 算法引入MobileViT Block 后的檢測效果一般,FPS 下降至78.2,模型參數量增加到7.7×106,整體提升不大。分析MobileViT Block原理可知,與8倍下采樣的小目標檢測層融合后,MobileViT Block會執行卷積下采樣操作,進一步增大感受野,導致MobileViT Block 的全局感受野無法充分發揮作用,因此應將MobileViT Block與TTDL結合進行改進。YOLOv5+TTDL+MobileViT Block與YOLOv5+TTDL相比顯著提升了模型的精確率和mAP@0.5,充分發揮了MobileViT Block 全局建模能力的優勢。YOLOv5+DA+TTDL 的模型參數量最小,速度最快。YOLOv5+DA+TTDL+MobileViT Block 與YOLOv5 算法相比,精確率、召回率、mAP@0.5 分別提升了8%、14.2%、11.5%,模型參數量降低了39%,FPS雖然有下降幅度不大,但仍然超過了實時目標檢測的最低要求,保證了交通標志檢測的實時性。

在訓練過程中,不同模型的mAP@0.5 變化曲線如圖3a 所示,總損失變化曲線如圖3b 所示。從圖3 可以看出每項改進方法對模型的性能都有一定的提升,其中總損失是邊界框回歸損失、置信度損失以及類別損失之和。改進算法在mAP@0.5和總損失上都優于基礎模型,其收斂速度快,損失曲線震蕩波動小且更加平滑,訓練效果更好。

圖3 訓練時不同模型的mAP@0.5和總損失變化

3.4 改進算法與其他算法實驗結果對比分析

為了進一步驗證改進算法對于小目標交通標志檢測的有效性,進行對比實驗。按照MS COCO數據集[13]對小目標的定義在測試集的1 834張圖片中提取出806張含有小目標交通標志的圖片,圖片中至少有1個或多個區域面積的分辨率小于32×32個像素點的交通標志。選取的對比算法為具有代表性的單階段目標檢測算法SSD、YOLOv3 以及最新提出的YOLOv7目標檢測算法,測試時輸入圖像尺寸統一為640×640,實驗結果如表2所示。

表2 不同算法檢測性能實驗結果

表2 中,SSD 算法在小目標交通標志上的檢測精度為56.5%,FPS為27.5,沒有達到實時目標檢測的最低要求。YOLOv3 算法無論在精度和速度上都不如YOLOv5 算法,而YOLOv7 算法在小目標交通標志檢測上也不如YOLOv5算法,檢測效果表現一般,但檢測速度上要略高于YOLOv3算法。改進算法在小目標和所有目標交通標志上的檢測精度分別達到了85.3%和91.1%,檢測速度雖然略低于YOLOv5和YOLOv7算法,但仍具有很好的實時性。

不同算法在小目標交通標志測試集上的部分檢測結果如圖4~6所示。從圖4可以看出,當檢測遠距離小目標交通標志時,改進算法很好地檢測出所有交通標志,其他算法均有漏檢。圖5中改進算法可準確地檢測出被遮擋的交通標志,預測框也有較高的置信度分數。圖6中SSD和YOLOv3算法均有漏檢現象,YOLOv5算法有誤檢現象,YOLOv7算法和改進算法都檢測出所有交通標志,但改進算法預測框的置信度得分更高,具有更好的檢測效果。

圖4 不同算法對遠距離小目標的檢測效果

圖5 不同算法對被遮擋目標的檢測效果

圖6 不同算法對側面目標的檢測效果

4 結論

對YOLOv5算法進行改進,通過消融實驗和檢測效果對比實驗,證明了改進算法可以提高小目標交通標志的檢測精度,同時保證了交通標志檢測的實時性。改進算法通過對主干網絡結構的優化減少了模型參數量,但浮點運算量沒有降低。模型訓練和測試時只選取了常見的45類交通標志,沒有覆蓋所有類別的交通標志,接下來將從擴展其他不常見的交通標志類別及降低模型浮點運算量方面開展研究。

猜你喜歡
交通標志卷積特征
基于雙向特征融合的交通標志識別
基于3D-Winograd的快速卷積算法設計及FPGA實現
如何表達“特征”
從濾波器理解卷積
不忠誠的四個特征
基于傅里葉域卷積表示的目標跟蹤算法
抓住特征巧觀察
交通標志小課堂
我們歡迎你!
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合