楊 航,陶青川
(四川大學電子信息學院,成都 610065)
隨著時代的高速發展,目標檢測日趨成為深度學習領域最為熱門的研究方法之一,在越來越多的實際場景得到應用。如人臉、行人、車輛車牌檢測等檢測場景不斷擴寬,目標檢測也在不斷的發展中涌現出越來越多優秀的網絡模型算法。
目標檢測的基于深度特征的檢測方法,主要是通過特定的網絡結構去進行模型計算及不同的訓練方法去完成訓練過程,從輸入圖像中通過設計的網絡去學習更為高級、抽象的語義特征,綜合得到的結果用于檢測。這其中就包含如由Krizhevsky 等[1]提出的目標檢測模型AlexNet,AlexNet 第一次對圖像的檢測和分類使用大規模的人工卷積神經網絡進行結果訓練計算,該模型也斬獲了2012 年舉行的ImageNet[2]競賽中圖像分類組的冠軍,其錯誤率為16.4%(在1000 類圖片的分類計算處理中),該模型無論是從速度還是準確率等指標都全面超越了當時的傳統非深度學習類的目標檢測算法。此后目標檢測算法如雨后春筍,相繼有ZFNet[3]的出現,包括VGGNet[4]以及GoogLeNet[5]等一系列的卷積神經網絡模型的問世,這類卷積神經網絡模型主要是在兩方面繼續進行深度的研究拓展,包括卷積層的深度和構成,這些檢測模型的不斷問世使得目標檢測分類的誤差下降明顯。2015年Girshick等[6]提出了R-CNN模型,該模型第一次對大規模自然圖像的目標檢測使用卷積神經網絡進行訓練計算。隨后,Fast R-CNN[7]和Faster R-CNN[8],以及后續的R-FCN 網絡模型[9]等基于R-CNN 改進的卷積神經網絡模型問世,目標檢測的速度和精度都有了顯著的提升。2016 年,一系列將目標檢測任務轉化成回歸問題的神經網絡模型相繼被提出,這其中就包括YOLO[10]和SSD[11],至此目標檢測有了一種新的研究思路,雖然該類檢測算法在檢測精度上有所降低,但是計算速度得到了顯著提高。此后隨著YOLO 算法系列的不斷演進,從YOLOv4[12]到如今的YOLOv7[13],檢測精度和速度都得到了不同程度的提升,推動了目標檢測的不斷前進發展。神經網絡模型利用計算機的計算資源,能夠快且準地得到目標檢測分類結果,而且避免了復雜的人工特征設計,是今后目標檢測領域的重要研究方向,本文就已提出的YOLOv7-Tiny 的特征提取方面引入注意力機制,并且進行了相關的實驗研究。
本文主要從以下幾個方面展開:第一部分主要介紹需要用到的方法基礎;第二部分介紹新方法YOLOv7-TC 的網絡結構和評價指標以及實驗結果的對比;最后進行總結和展望。
本部分主要對用到的一些方法進行了介紹,主要包括YOLOv7和CBAM注意力機制。
YOLOv7 是由Wang 等[13]提出的實時目標檢測算法,目前YOLOv7無論是在實時性還是準確率上都已經超過了已知的所有目標檢測算法。根據論文的數據結果,YOLOv7 相同體量下比YOLOv5 精度更高,速度上也更快120%(FPS),相比YOLOX 更是快達180%(FPS)。并且它在COCO 數據集上達到了56.8%的AP。就本文使用的輕量級小模型YOLOv7-Tiny 而言,與YOLOv4-Tiny 相比,YOLOv7-Tiny 減少了39%的參數量和49%的計算量,但保持相同的AP;在計算速度上,YOLOv7-Tiny 比YOLO-N(v6.1)快達127幀,并且在此基礎上準確率提高10.7%。
CBAM(convolutional block attention module)是Woo 等[14]在2018 年提出的卷積塊注意力模塊,CBAM是一種通用的輕量級模塊,該模塊不僅可以非常方便地在各種網絡中的各個模塊中進行添加,也能有效提升模型的性能。CBAM模塊是一種由通道注意力機制和空間注意力機制混合而成的注意力模型,其模塊構成如圖1所示。

圖1 CBAM注意力機制模塊
將輸入特征圖F與通道注意模塊(channel attention module)處理得到的權重值Mc兩個矩陣的對應元素相乘,對F進行特征重標定處理,得到能夠有效體現特征關鍵通道信息的特征映射。在通道加權的基礎上,利用串聯的空間注意力機制對空間特征信息進行自適應加權,將F'作為空間注意力模塊的輸入,與空間注意模塊(spatial attention module)權重系數Ms兩個矩陣的對應元素相乘,得到包含通道位置信息、空間位置信息的顯著特征圖F″,使網絡能夠更多關注檢測目標中輸入特征較強的部分,提升其空間特征選擇能力。其過程用公式表示為:
上式中:?表示該符號左右兩側矩陣對應元素相乘。
本節主要介紹YOLO-TC 的網絡結構、評價指標以及實驗結果。
本文是對文獻[13]中提出的YOLOv7進行改進,主要改進方式為對文中的輕量級小模型YOLOv7-Tiny添加文獻[14]中的CBAM 注意力機制,添加位置為在YOLOv7-Tiny 的Backbone 主干網絡,對作者提出的圖中所示的CBL 網絡中的Conv 進行替換,分別在1、2、14、21、28 層進行替換,添加位置如圖2所示的黑色加粗框位置。另外原算法Head 網絡不作更改,以便在提取紅外圖像特征時能更好關注有效的目標信息,專注于有用信息的提取,減少無用信息的干擾。方法中使用的回歸損失、平均精確度等評價指標計算方法與原文保持一致,本文的網絡模型如圖2所示。
本文主要沿用文獻[13]中使用到的精確率(precision)、召回率(recall)、平均精確度mAP@0.5和mAP@0.5∶0.95三個評價指標。
目標檢測的評價指標主要有召回率Rec(recall)、精確率Pre(precision)和平均精度均值mAP(mean average precision),分別取交并比IoU(intersection over union)為0.5 時的平均精度均值mAP@0.5,IoU從0.5 到0.95(步長0.05)時的平均精度均值mAP@0.5∶0.95,定義如下:

圖2 本文網絡模型
其中:TP表示正樣本判定為正樣本,FP表示負樣本判定為正樣本,FN表示正樣本判定為負樣本,TN表示負樣本判定為負樣本。
其中:Pinter表示插補精度,即對PR曲線上的每個點的Pre值取該點右側最大的值,ri表示按升序排列的Pre插值段的第i個插值處對應的Rec值。
其中:k表示檢測任務中的類別(一般大于1),即mAP定義為所有類別的AP平均值。
2.3.1 實驗環境及參數設置
本文代碼使用的是PyTorch 框架,訓練環境均為:四張NVIDIA GeForce RTX 3080 GPU,顯存40 GB;12 核CPU,型號為Intel(R)Xeon(R)CPU E-2650 v4 @2.20 GHZ,內存60 GB。實驗主要在FLIR_ADAS_v2 數據集和KAIST 紅外圖像行人數據集上進行。FLIR_ADAS_v2 為FLIR Systems 公司在2022 發布的新版紅外數據集,相較于上一代FLIR 數據集,新版本有著更多的類別和更多數量的圖像,檢測類別達80 類,訓練集10742 張紅外圖像,驗證集1144 張圖像;KAIST 行人數據集是由韓國科學技術院(Korea Advanced Institute of Science and Technology)在2015 年發布的多光譜行人檢測數據集,本文使用該數據集的紅外數據,并對其進行清洗,保留7601張訓練集,2257張驗證集。
在訓練過程中,對于FLIR_ADAS_v2 數據集,學習率設為0.01,加載原文預訓練模型的訓練100 個epoch 得到結果;對于清洗后的KAIST 紅外行人數據集數據訓練時學習率為0.01,加載原文預訓練模型訓練50個epoch。
2.3.2 實驗結果
在數據集FLIR_ADAS_v2 和KAIST 紅外圖像行人數據集上的實驗結果分別如表1 和表2 所示,表中指標越大,表明效果越好。

表1 FLIR_ADAS_v2數據集實驗結果

表2 清洗后的KAIST數據集實驗結果
本文通過對YOLOv7-Tiny 添加注意力機制CBAM[14]改進得到新網絡模型YOLO-TC。在多類別的FLIR_ADAS_v2 數據集和少量類別的KAIST 紅外圖像行人數據集上進行了訓練和測試,新網絡檢測精度和平均精度均值都有一定的提升,在保證網絡模型輕量級的基礎上,FPS不變的情況下,最大程度提高了檢測精度和平均精度均值,取得了比原網絡更好的結果。在未來,YOLO-TC 可以繼續在Head 網絡進行改進,引入一些優秀的機制使得網絡的相關數據能得到進一步提升。