?

基于YOLOv7的道路監控車輛檢測方法

2023-12-06 06:37蔡劉暢楊培峰張秋儀
陜西科技大學學報 2023年6期
關鍵詞:注意力卷積車輛

蔡劉暢, 楊培峰, 張秋儀

(1.福建理工大學 計算機科學與數學學院, 福建 福州 350118; 2.福建理工大學 建筑與城鄉規劃學院, 福建 福州 350118)

0 引言

目標檢測廣泛應用于交通場景中,比如視頻監控、自動駕駛、車牌識別、車流檢測等.交通監控的普及產生了海量交通圖片視頻,使智能交通系統日益備受關注,智能交通系統可以通過交通監控分析車流狀態,以實現交通智能化管理以及道路規劃.車輛目標檢測是智能交通系統重要的一環,如識別車輛、分類車型、檢測超速和逆行等.

為了實現高效的車輛目標檢測,已經有學者研究智能化檢測方法,研究包括機器學習以及與深度學習有關的識別方法.

基于機器學習的車輛檢測步驟分為特征提取和分類器訓練.特征提取方法有Haar/Haar-like[1,2]、方向梯度直方圖[3,4](Histogram of Oriented Gridients,HOG)和變型部件模型[5](Deformable Parts Model,DPM),它們在車輛的類型狀態發生改變時仍穩定提取特征,在車輛檢測中有良好效果.尺度不變特征變換[6,7](Scale-invariant Feature Transform,SIFT)、加速穩健特征[8](Speeded-Up Robust Features,SURF)、局部二值模式[9,10](Local Binary Pattern,LBP)特征提取方法可以產生更豐富的車輛檢測特征.提取的特征用于訓練分類器,從而使用分類器識別車輛目標.而分類器需要平衡泛化能力和擬合精度,常用的分類器有K-近鄰算法[11](K-Nearest Neighbor,KNN)、支持向量機[12](Support Vector Machine,SVM)、決策樹[13]和自適應提升算法[14](Adaptive boosting,AdaBoost).但是傳統方法檢測過程被分解為多個步驟,缺乏實時性.其檢測精度不高、泛化能力不強.

深度學習方法根據車輛檢測過程分為兩步檢測和單步檢測兩種方法.前者分為預測車輛區域和從預測區域中檢測車輛目標兩個階段,典型的方法有基于區域的卷積神經網絡[15](Region-based Convolutional Neural Networks,R-CNN)、空間金字塔池化網絡[16,17](Spatial Pyramid Pooling Networks,SPP-Net)、基于區域的快速卷積網絡方法[18,19](Fast Region-based Convolutional Network,Faster R-CNN).后者把車輛識別和檢測整合到同一個網絡中,不先預測車輛區域.典型的方法有單發多框檢測器[20](Single Shot Multibox Detector,SDD)、YOLO[21-23]( You Only Look Once)、多級特征金字塔目標檢測[24](Multi-Level Multi-Scale Detector, M2Det);兩步檢測方法的準確性普遍高于一級檢測方法,但單步檢測方法更具有實時性[25].隨著單步檢測方法的不斷改進,其檢測準確度得到改善,逐漸適用于要求高檢測精度的車輛目標識別場景.深度學習方法的端到端結構,將特征提取和anchor box集成到一個網絡中,提高了車輛目標檢測速度,增強了目標檢測在實際應用中的實時性.

目前,目標檢測算法已經達到了較高的準確率.但針對道路監控下的車輛目標檢測存在兩方面的不足,一方面,檢測算法需要較強算力的設備.車輛檢測算法可以部署到嵌入式設備中,從而減少推理延遲.但嵌入設備計算能力不強,存儲空間有限,因此將車輛檢測算法進行輕量化處理,使其可以部署在計算能力不強、儲存空間有限的嵌入式設備.另一方面,小目標檢測精度不高.由于道路上的監控攝像頭往往是俯視視角,導致部分車輛目標較小含有的圖像信息少,如遠處的轎車或摩托車.因此檢測小目標車輛存在精度不高的問題.

YOLO模型更適合應用于實際交通場景的目標檢測[25].在實際應用中目標檢測的實時性發揮著越來越重要的作用,單步檢測模型如SDD、YOLO,采用回歸方法檢測對象,操作速度更高.但SDD沒有考慮到不同尺度之間的關系,在檢測小目標方面有一定的局限性.而YOLO更容易學習一般特征,運算速度更高.目前,在FPS為5~160范圍內,YOLO v7模型的速度和精度都超過了所有已知的目標檢測模型[26].

因此,本文選擇YOLOv7作為基礎車輛檢測方法,以提升精確度、降低模型體量為方向,優化YOLOv7車輛檢測方法.將YOLOv7主干網絡替換為高效的網絡GhostNet.為了在輕量化的同時保證檢測精確度,通過對有效特征層添加通道注意力機制,模型的特征提取能力得到增強.最后將改進的模型在自主構建的數據集上進行試驗,并與其他常用模型進行檢測性能對比,以期為監控視角下的車輛識別分類提供一種輕量化的檢測方法.

1 相關理論基礎

1.1 YOLOv7概述

YOLOv7[27]是一個單階段的目標檢測算法, 分為3部分.首先通過主干網絡,將輸入圖像的尺寸調整為640×640大小,采用多分支堆疊結構,利用最大池化和2×2的卷積核提取特征,最終形成三個有效特征層.

為了捕捉更準確的車輛特征,對不同尺度的特征層進行結合,得到三個加強的有效特征層,其結構如圖1加強特征提取網絡部分所示,特征層包含特征點,特征點上有三個先驗框.利用三個增強的特征層,從多個特征中抽取出最優的,實現多維的特征融合.YOLOv7為了提高效率,訓練過程中,將每個真實框分配給多個先驗框,更有針對性地進行預測,預測框與先驗框對比調整后,更有效地確定符合真實框的先驗框.

為了提高特征提取網絡的性能,YOLOv7用空間金字塔池化(Spatial Pyramid Pooling,SPP)結構來擴大感受野,并且在其中添加一個大的殘差邊,以便將最大池化操作后輸出的特征層堆疊起來優化和提取特征.其結構如圖1中包含上下文信息的空間金字塔池化卷積 (Spatial Pyramid Pooling with Contextualized Spatial Pyramid Convolution,SPPCSPC)部分所示.基于感受野塊的卷積神經網絡[28](Receptive Field Block-based Convolutional Neural Network,RepConv)模塊用一種重參數化的方法,降低網絡的復雜性,改善模型的性能.訓練時,給3× 3的卷積添加1×1的分支,部署時,將分支的參數通過重參數化整合為一個分支,在3×3 主分支卷積輸出,從而降低訓練的復雜性.Yolo Head部分是YOLOv7的分類器,用于分類特征點對應的先驗框.

1.2 GhostNet概述

GhostNet[29]網絡由華為諾亞方舟實驗室在2020年發布,優勢在于輕量化.通過計算量較小的線性處理,生成冗余的特征,從而實現準確檢測,同時還可以降低網絡的復雜度.

網絡利用Ghost Bottleneck的堆積來實現,Ghost Module是Ghost Bottleneck的組成部分,Ghost Module 用1×1卷積來調整輸入特征層的維度,之后用深度可分離卷積得到相似特征圖.Ghost Bottlenecks由Ghost Mudule、殘差邊以及2×2的深度可分離卷積構成,其中,2×2卷積對圖像的寬、高進行壓縮.

Ghost Bottlenect根據卷積核步長s的不同,分為兩類,s=2表示輸入進來的特征層需要被壓縮時,此時在GhostModule中加入分組卷積層,步長為2.在殘差邊中加入s=2的分組卷積,1×1的普通卷積.Ghost Bottlenect結構如圖2所示.

圖2 Ghost Bottlenect網絡結構

2 改進的YOLOv7算法

2.1 網絡架構

本文通過使用 GhostNet來代替主干部分,以達到在確保檢測準確性良好的前提下,盡可能縮減模型參數.改進后YOLOv7網絡如前述圖1的主干特征提取網絡部分所示.

GhostNet 模塊可以有效地替代傳統的卷積操作,將傳統卷積生成的特征分為兩部分輸出,首先通過卷積核計算得出一部分特征,再通過線性操作的方式使已生成的特征輸出另一部分特征.而傳統卷積操作生成的特征都是通過卷積核計算得到.通過線性操作的方法,GhostNet 模塊可以有效地減少參數量,同時保持輸出特征的大小不變,從而使得計算復雜度低于傳統的卷積神經網絡.

GhostMoudle和傳統卷積輸出特征的參數量分別如式(1)和式(2)所示,計算量分別如式(3)和式(4)所示.

(1)

paramenters=ksize×ksize×cin×cout

(2)

(3)

FLOPs=cout×hout×wout×cin×ksize×ksize

(4)

式(1)~(4)中:k表示卷積核的大小;c表示通道數,h和w表示圖片的高和寬,out和in表示輸出和輸入圖.

通過比較式 (1)~(4),GhostMoudle網絡的計算量和參數量與普通卷積操作比值小于1,如式(5)所示.由此可知,采用GhostNet作為YOLOv7的特征提取,能夠顯著減少模型的參數.

(5)

2.2 融合高效的注意力機制模塊

通過GhostNet結合YOLOv7,可以降低模型的復雜性.但是,由于計算量及相關參數的減少,導致了檢測的準確性受到影響,因此,將YOLOv7的特征層添加注意力機制,以此來改善其特征提取的性能.

高效通道注意力[30](Efficient Channel Attention,ECA)是一種通道注意力機制.ECA用一維卷積代替SENet(Squeeze-and-Excitation Networks)的全連接層(Full Connection,FC),減少了參數,并且可以有效地交換多個通道之間的信息,從而更好地識別出各個通道之間的權重及其對應的關聯,其結構如圖3所示.假設W、H、C為特征圖的寬、高和通道數.對每個特征圖全局平均池化操作,以獲取圖3中1×1×C的特征圖.然后,設卷積核大小k=5,將特征圖卷積后經過 Sigmoid 激活函數,再與原輸入的特征圖相乘,從而獲取最終的輸出特征圖.本文選用了ECA模塊來提取特征,是因為相比于其他主流的注意力機制如SENet、通道注意力(Channel Attention,CA)和卷積塊注意力模塊(Convolutional Block Attention Module,CBAM) 模塊,ECA 模塊更有效提取圖片關鍵特征點.

圖3 ECA模型結構

基于YOLOv7結合GhostNet的網絡結構,添加不同注意力機制進行對比實驗,具體參數設置如3.3實驗參數所示.在文中數據集上,實驗結果為使用ECA模塊改進的YOLOv7的mAP為90.37%,替換為SENet后mAP為89.32%,替換為CBAM模塊后mAP為88.45%,替換為CA后mAP為88.47%.通過實驗對比得出,選用ECA為改進YOLOv7的較好選擇.

結合GhostNet和YOLOv7,用GhostNet替換YOLOv7的主干網絡,針對經過堆疊的Ghostbottlenect輸出的三個有效特征層,增加通道注意力機制ECA后,最終生成的基于YOLOv7的車輛檢測方法網絡模型結構如圖1所示.

3 實驗結果分析

3.1 車輛數據集

車輛檢測數據集源于福州交警發布的實時路況.為模擬真實的道路監控拍攝情況,錄制了福州市福飛路往森林公園路段和貴新隧道的實時監控視頻,對監控視頻進行分幀,設置圖像大小為1 920*1 080.

3.2 數據標注

通過使用LabelImg工具,標注目標為三類:large vehicle(包括公交車和貨車)、medium(包括轎車和面包車)和compact car(包括摩托車).共標注6 121張圖片,各類別目標數量分別有3 515、14 723和1 151個,如表1所示.

表1 三種目標及標簽

3.3 參數設置

模型總共訓練epoch=180,batch_size=4,最大學習率Init_lr=le-2,最小學習率=Init_lr×0.01,優化器SDG中動量參數momentum=0.937,權值衰減weight_decay=5e-4,學習率下降方式lr_decay_type=“cos”.

3.4 實驗環境

實驗配置為 Intel?Core i9-10900K CPU @3.70 GHz,內存是64 GB,GPU是NVIDIA GeForce RTX3070,pytorch版本1.7.0;Cuda版本11.6;python版本3.8.10.

3.5 性能指標評價

評估改進的YOLOv7指標為mAP值(mean AveragePrecision),平均精度 (Average Precision, AP)、召回率(Recall,R)、精確率 (Precision,P)和F1(F1-Score) ,計算如式(6)~(9)所示:

(6)

(7)

(8)

(9)

式(6)~(9)中:TP表示正確檢測個數,FP表示錯誤檢測個數,FN表示檢測個數,∑AP指所有缺陷類別的總AP值,N(class)指缺陷類別總數.

3.6 改進方法有效性評價

通過消融實驗,觀察YOLOv7網絡性能受不同改進方法的影響,從而證明改進方法的有效性和必要性.對比結果如表2所示.

表2 消融實驗結果對比

在表2中,“√”代表引入了對應方法,而“×”則代表未引用對應方法.首先對比GhostNet主干網絡的效果,然后對比注意力機制ECA.實驗中除了改進方法不同,其他參數均相同.由表2可知,本文把GhostNet引入YOLOv7主干部分,使得參數量由38.21 M降低至32.54 M,浮點計算量由106.48 G降低至48.206 G,權值文件縮小了15%.針對模型輕量化后檢測精度降低的問題,對GhostNet輸出的特征層添加了通道注意力機制,網絡準確率較原始YOLOv7提高了1.73百分點.因此改進的YOLOv7相比原始YOLOv7方法,可以提高準確性,同時減少計算量和參數.

3.7 不同網絡對比試驗

本文將改進的YOLOv7與Faster-RCNN、YOLOv4、Tiny-YOLOv4和原始YOLOv7在自制數據集上進行車輛檢測對比實驗.對比結果如表3所示.

表3 不同網絡性能對比

由表3可知,在大型、中型車輛檢測中,改進的YOLOv7的準確率高于其他三類對比模型,在小型車輛檢測中,改進的YOLOv7的檢測精度低于YOLOv4,相比表3中其余檢測方法總體較好.改進YOLOv7檢測結果平均獲得90.36%的精確度,88.24%的召回率,89.33%的F1值.比YOLOv7的指標分別提高了1.72個百分點、1.17個百分點、1.33個百分點.

為了評估改進的YOLOv7模型大小和檢測速度,引入評價模型指標浮點運算量、參數量和每秒識別幀率 (Frames Per Second,FPS).用Fast-RCNN、原始YOLOv7、YOLOv4和TinyYOLOv4與改進YOLOv7對比.結果如表4所示.

表4 網絡模型復雜度對比

由表4可知,Tiny-YOLOv4模型的復雜度和運算速度最快,但是其檢測準確率太低,特別是對于小目標檢測的準確率僅67%.而改進的YOLOv7模型參數量和計算量在其余四種模型中最低,并且其精確度最高.因此,改進的YOLOv7在提高精確度的同時輕量化了原始模型,該方法可以為較低算力的設備應用車輛檢測方法提供參考.

3.8 注意力機制對比試驗

為了使提取到的特征具有更強的表觀信息和語義信息,針對YOLOv7網絡生成的三個有效特征層增加注意力機制.通過對比實驗評估不同注意力機制對檢測算法的影響,觀察車輛檢測算法的性能變化.對比效果如表5所示.

表5 不同注意力機制影響模型性能對比

添加ECA后,網絡AP 為90.37%.添加CBAM后,網絡mAP為88.45%.添加注意力機制SE后,網絡mAP為89.32%.添加注意力機制CA后,網絡mAP為88.47%.實驗對比得出,在結合GhostNet的基礎上,ECA對原始的YOLOv7的性能提升最明顯,相比原始的YOLOv7的mAP提高了1.73百分點.

3.9 檢測結果對比

為直觀地表現本文算法更有效檢測監控視角下車輛,圖4~6展示了YOLOv7和改進YOLOv7的檢測效果.在光線明亮的公路上,車輛無重疊或距離較遠的情況,兩類檢測器對車輛的檢測效果均良好;但是,當車輛較多以至遮擋、有小型車或較遠的中大型車時,YOLOv7模型出現漏檢,其檢測效果比改進的YOLOv7 較差.

圖4 摩托車檢測對比

在光線明亮的場景中,當道路中出現小型車輛摩托車的情況下,如圖4所示,原始的YOLOv7 存在摩托車小目標的漏檢現象,改進的YOLOv7能檢測出道路中的摩托車.

當多個車輛重疊遮擋的情況下,如圖5所示,原始YOLOv7 檢測算法可以檢測出 8個目標,改進的 YOLOv7 檢測算法共測出 11個車輛目標,包含被遮擋3個的車輛.

圖5 遮擋車輛檢測對比

在光線昏暗的隧道中,如圖6所示,原始的YOLOv7檢測出3個目標.改進的YOLOv7檢測出4個目標,包含遠處的1個型車輛目標.

圖6 隧道小目標檢測對比

通過分析可知,YOLOv7和改進的YOLOv7可以準確識別近處且未被遮擋的車輛,但是原始的 YOLOv7 漏檢了部分被遮擋車輛、遠處車輛和小型摩托車.相比原始的YOLOv7,改進的YOLOv7可以檢測出更多遮擋車輛和遠處的車輛.

4 結論

本文提出了一種改進的YOLOv7網絡和道路監控相結合檢測車輛的方法.基于自制的道路監控車輛數據集,使用GhostNet網絡替換YOLOv7主干網絡,減少模型參數和計算量.并在原始YOLOv7網絡增加通道注意力機制模塊聚焦車輛特征,提高檢測精度.實驗表明,針對道路監控下的小目標和不完整目標,本模型可以為道路監控的車輛提供輔助檢測.通過對YOLOv7的優化,不僅實現了較精確的車輛識別,還減少了模型的計算復雜度,減少參數和權值文件大小,使車輛檢測方法更適合于計算性能較弱、內存小的嵌入式設備.但優化過的算法仍有改進空間,如何保證準確率的前提下,提高檢測的速度是下一步研究待解決的問題.

猜你喜歡
注意力卷積車輛
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
車輛
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
冬天路滑 遠離車輛
A Beautiful Way Of Looking At Things
提高車輛響應的轉向輔助控制系統
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合