摘 要:為全面識別并檢測攝像頭拍攝的在城市道路上的車輛目標,本文提出一種基于YOLOv7的改進模型C-YOLOv7。在頭部網絡末端加入注意力機制模塊,提高模型檢測準確率。為減少YOLOv7算法的參數量,降低計算的復雜度,對改進后的模型進行剪枝輕量化。試驗結果表示,與原模型相比,改進后的模型的平均精度(Average Precision,AP)、精度和召回率均有提高,與C-YOLOv7模型相比,輕量化后的模型的傳輸幀數增加,推理延遲和參數量減少。改進后的模型能夠提高車輛檢測的準確度,節(jié)省存儲空間,在交通安全與管理領域發(fā)揮更大作用。
關鍵詞:深度學習;目標檢測;注意力機制;輕量化
中國分類號:TP 391 " " " 文獻標志碼:A
在快速發(fā)展的交通領域,車輛檢測技術[1]是提升交通安全和效率的重要手段。深度學習基礎的車輛檢測算法具有出色的泛化能力,能夠適應多變的環(huán)境條件。盡管已有算法在檢測精度、檢測速度及模型參數優(yōu)化方面均有良好表現(xiàn),但綜合性能卓越的算法仍比較稀少。本文以城市道路車輛檢測為應用場景,依托深度學習技術[2],旨在構建一種體積更小、部署范圍更廣的目標檢測模型。該模型旨在克服傳統(tǒng)目標檢測方法中存在的準確度及計算效率偏低的問題,進而提升車輛目標檢測的準確率。
1 基于改進的YOLOv7目標檢測模型
YOLOv7[3]目標檢測模型的檢測速度較快,其采用多尺度特征融合策略,從不同層級的特征圖中提取信息,能夠檢測不同尺度的目標,更好地處理目標的上下文信息。模型的網絡結構比較簡單,在不同的硬件平臺和資源受限的設備上都可以運行。
1.1 YOLOv7的網絡結構
YOLOv7網絡模型主要包括3個部分,其特點如下。
1.1.1 骨干網絡
骨干網絡的主要任務是從輸入圖像中提取高質量的特征。YOLOv7使用優(yōu)化的高效長距離網絡(Efficient Long-Range Attention Network,ELAN)作為其骨干網絡,這種設計使網絡能夠在更淺的網絡層級收集更多的信息,并保持計算的高效性。
1.1.2 頸部網絡
頸部網絡的主要任務是將骨干網絡提取的特征進行進一步處理和融合,以執(zhí)行后續(xù)的檢測任務。其中,下采樣模塊利用最大池化(Max Pool)操作擴張當前特征層的感受野,再與正常卷積處理后的特征信息進行融合,增強了網絡的泛化性。
1.1.3 頭部網絡
頭部網絡的主要任務是對頸部網絡輸出的特征圖進行物體檢測。YOLOv7的頭部網絡采用多尺度的檢測機制,分別在不同尺度的特征圖中進行物體檢測,提升檢測的準確性。頭部網絡引入經過特殊設計的殘差結構輔助訓練,但是在轉換過程中可能會產生一定的精度損失。
1.2 YOLOv7使用的損失函數
1.2.1 定位損失(Location Loss)
在目標形狀不規(guī)則、大小不一致的情況下,CIoU的相似性度量更準確,能夠更好地滿足各種尺寸和形狀的目標檢測要求,因此在YOLOv7中使用CIoU損失計算定位損失。IoU 的計算過程如公式(1)所示。
(1)
式中:IoU 為交并比;A為預測框的面積;B為真實框的面積。
CIoU 的計算過程如公式(2)所示。
(2)
式中:CIoU 為完整的交并比;d為預測框與真實框中心點的距離;c為最小外接矩形的對角線距離;α為權重函數;v 為修正因子。
CIoU 損失函數的計算過程如公式(3)所示。
(3)
式中:LossCIoU為完整的交并比損失。
1.2.2 置信度損失(Confidence Loss)
置信度損失能夠評估預測邊界框的置信度與真實目標是否存在差距,并衡量其預測的準確性。本文采用二元交叉熵損失函數計算置信度損失,計算過程如公式(4)所示。
Lconf=-[ylog(p)+(1-y)log(1-p)] " " (4)
式中:Lconf為二元交叉熵損失;y為真實標簽;p為模型預測的概率,數值為0~1;log(1-p)為對模型預測的負類概率取自然對數。
1.2.3 類別損失(Class Loss)
類別損失的作用是衡量模型對目標類別的預測準確性。本文利用多類交叉熵損失來計算分類損失,損失函數計算過程如公式(5)所示。
(5)
式中:Lcls為多類交叉熵損失;C為類別總數;i為類別的索引,取值為1~C;yi為真實標簽,當yi為1時表示真實類別,當yi為0時表示其他類別;pi為模型預測第i類的概率。
1.3 C-YOLOv7算法改進
1.3.1 引入注意力機制
Head部分利用卷積進行特征提取,可能會出現(xiàn)只在局部感知域內進行特征提取,不能全面考慮全局上下文信息,導致對整體信息捕捉不足的情況。針對這個問題本文提出C-YOLOv7目標檢測框架,在Head部分融入注意力機制模塊(Convolutional Block Attention Module,CBAM),提高對整體信息的捕獲能力。CBAM由2個子模塊組成:通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)。CBAM引入注意力機制至特征圖中,使網絡能夠更有效地聚焦于關鍵特征,達到檢測效果。CBAM結構如圖1所示。
在YOLOv7-Head部分卷積層中串聯(lián)進CBAM,得到新的M-Conv卷積層,將M-Conv替換為原YOLOv7中的卷積層,得到C-YOLOv7模型,其結構如圖2所示。
不同尺寸的特征圖經過殘差結構進入通道注意力模塊,分別進行全局平均池化和全局最大池化,保留通道信息。分別將池化后的特征圖送入多層感知機(Multilayer Perceptron,MLP)中提取特征。將MLP輸出的特征進行加合,經過Sigmoid激活操作,得到通道注意力權重。通道注意力模塊的計算過程如公式(6)所示。
Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F))) (6)
式中:Mc(F)為特征圖F的通道注意力;σ為Sigmoid激活函數;MLP為多層感知機;AvgPool(F)為F的全局平均池化;MaxPool(F)為F的全局最大池化。
將利用通道注意力計算后輸出的特征圖作為空間注意力模塊輸入的特征圖,在通道維度分別進行全局平均池化和全局最大池化,保留空間信息。將這2個池化特征進行通道融合操作,利用卷積層操作提取特征。利用Sigmoid函數進行激活,得到包括通道注意力的空間注意力權重。在串行完成這2個步驟后,將空間注意力特征與原特征圖相乘,得到最終的輸出特征圖。通道注意力模塊的計算過程如公式(7)所示。
Ms(F)=σ(f 7*7([AvgPool(F));MaxPool(F)])) (7)
式中:Ms(F)為F的空間注意力;f 7*7為7*7的卷積操作。
1.3.2 模型輕量化
在深度學習模型中,剪枝[4]是一種重要的優(yōu)化技術,其作用是減少模型的計算量和參數量,加快推理速度,縮小模型的存儲空間。移除過濾器是一種適用于卷積神經網絡的剪枝方法,通過識別并移除對最終模型影響較小的卷積核來減少模型的參數量。針對C-YOLOv7檢測模型體積較大的問題,對C-YOLOv7進行剪枝操作,得到輕量化的目標檢測模型PC-YOLOv7。
對過濾器進行剪枝,流程如圖3所示。設ni為第i個卷積層的輸入通道數,hi/wi為輸入特征映射的高度/寬度。卷積層在ni個輸入通道中應用ni+1個3D濾波器Fi,j,將輸入特征映射xi轉換為輸出特征映射xi+1,生成的輸出特征映射將作為下一層卷積層的輸入特征映射。當對過濾器Fi,j進行剪枝時,去除其對應的特征映射,也去除下一個卷積層過濾器中特征映射的核。
從訓練良好的模型中去除不重要的過濾器來提高計算效率。計算過濾器的絕對權重總和Σ|Fi,j|來衡量每一層中過濾器的相對重要性。由于各過濾器的輸入通道數ni相同,因此Σ|Fi,j|也表示其平均核權重。與該層中的其他過濾器相比,核權重較小的過濾器傾向于生成弱激活的特征映射,該映射對最終結果影響較小,因此剪去核權重較小的過濾器。計算過濾器的絕對權重總和,如公式(8)所示。
(8)
式中:Sj為第i個過濾器的絕對值權重總和;Fi,j為第i個過濾器的第j個權重。
進行剪枝的具體步驟如下。1)統(tǒng)計卷積層的權重,計算每個卷積層權重的絕對值總和,將其作為剪枝依據。2)根據權重總和對過濾器進行排序,并選擇一部分進行剪枝。percent參數決定需要剪枝的比例。本文將percent設為0.2。3)移除選擇的卷積層中不重要的過濾器,創(chuàng)建一個新的卷積層,復制舊卷積層的權重和偏置來移除過濾器。4)將剪枝后的卷積層替換回模型中。
2 試驗結果
2.1 試驗環(huán)境
本文模型使用PyTorch語言編寫算法的程序代碼,操作系統(tǒng)為Windows 10,訓練模型使用的GPU為NVIDIA 4060Ti GPU,初始學習率為0.000 1。在每次訓練迭代中進行前向傳播再進行反向傳播,從而實現(xiàn)優(yōu)化。
2.2 數據集選取
本文選擇公開數據集Data for STREETS(A novel camera network dataset for traffic flow,STREETS)作為檢測對象,該數據集包括5 249張訓練集樣本、291張測試集樣本以及582張驗證集樣本。在數據集中有各種城市街道的交通場景,利用安裝在城市街道重要道路和交通繁忙的路口的高清攝像頭采集多樣化的交通車輛數據,其包括不同天氣條件、交通密度和時間段的數據類型。
2.3 各目標檢測模型對比試驗
C-YOLOv7與其他目標檢測模型的試驗對比結果見表1。
由表1可知,與原版本以及其衍生版本相比,改進后的C-YOLOv7在平均精度、精度以及召回率方面均有提高,精度為83.7%,說明改進后的模型在目標檢測方面效果較好。
2.4 目標檢測模型輕量化
使用輕量化目標檢測模型PC-YOLOv7與C-YOLOv7進行試驗,對比結果見表2,使用平均精度、傳輸幀數、推理延遲和參數量4個評價指標。試驗結果表明,經過剪枝后的YOLOv7模型準確度較高,模型尺寸更小,計算復雜度更低。
表2 輕量化模型試驗對比結果
模型 平均精度/% 傳輸幀數/(幀·s-1) 推理延遲/ms 參數量/G
C-YOLOv7 78.0 30 33 22.8
PC-YOLOv7 74.3 32 29 4.9
3 結論
本文提出一種改進的目標檢測模型C-YOLOv7,在YOLOv7頭部卷積層中添加CBAM,得到新的卷積層來替換YOLOv7中原來的卷積層,提高了模型的檢測精度。對改進后的模型進行剪枝輕量化,減少模型參數量,使模型更易于部署。試驗結果表明,與原模型相比,改進模型的平均精度、精度和召回率分別提升至78.0%、83.7%和74.0%;推理延遲縮短至29 ms,參數量為原模型的21.5%。
深度學習的車輛目標檢測模型仍然有改進空間,例如結合視覺、雷達等多種傳感器數據與檢測模型進行多模態(tài)數據融合,以提高對車輛的識別能力和檢測精度,并增強在各種環(huán)境條件下的適應性和魯棒性。在保障數據安全的前提下,有效地利用大數據來提升檢測算法的性能和智能化程度。
參考文獻
[1]曹家樂,李亞利,孫漢卿,等.基于深度學習的視覺目標檢測技術綜述[J].中國圖象圖形學報,2022,27(6):1697-1722.
[2]張陽婷,黃德啟,王東偉,等.基于深度學習的目標檢測算法研究與應用綜述[J].計算機工程與應用,2023,59(18):1-13.
[3]李長海.基于改進YOLOv7的紅外行人目標檢測方法[J].汽車工程師,2024(8):15-21.
[4]毛遠宏,曹健,賀鵬超,等.深度神經網絡剪枝方法綜述[J].微電子學與計算機,2023,40(10):1-8.