楊 航,陶青川
(四川大學(xué)電子信息學(xué)院,成都 610065)
隨著時(shí)代的高速發(fā)展,目標(biāo)檢測(cè)日趨成為深度學(xué)習(xí)領(lǐng)域最為熱門的研究方法之一,在越來越多的實(shí)際場(chǎng)景得到應(yīng)用。如人臉、行人、車輛車牌檢測(cè)等檢測(cè)場(chǎng)景不斷擴(kuò)寬,目標(biāo)檢測(cè)也在不斷的發(fā)展中涌現(xiàn)出越來越多優(yōu)秀的網(wǎng)絡(luò)模型算法。
目標(biāo)檢測(cè)的基于深度特征的檢測(cè)方法,主要是通過特定的網(wǎng)絡(luò)結(jié)構(gòu)去進(jìn)行模型計(jì)算及不同的訓(xùn)練方法去完成訓(xùn)練過程,從輸入圖像中通過設(shè)計(jì)的網(wǎng)絡(luò)去學(xué)習(xí)更為高級(jí)、抽象的語義特征,綜合得到的結(jié)果用于檢測(cè)。這其中就包含如由Krizhevsky 等[1]提出的目標(biāo)檢測(cè)模型AlexNet,AlexNet 第一次對(duì)圖像的檢測(cè)和分類使用大規(guī)模的人工卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)果訓(xùn)練計(jì)算,該模型也斬獲了2012 年舉行的ImageNet[2]競(jìng)賽中圖像分類組的冠軍,其錯(cuò)誤率為16.4%(在1000 類圖片的分類計(jì)算處理中),該模型無論是從速度還是準(zhǔn)確率等指標(biāo)都全面超越了當(dāng)時(shí)的傳統(tǒng)非深度學(xué)習(xí)類的目標(biāo)檢測(cè)算法。此后目標(biāo)檢測(cè)算法如雨后春筍,相繼有ZFNet[3]的出現(xiàn),包括VGGNet[4]以及GoogLeNet[5]等一系列的卷積神經(jīng)網(wǎng)絡(luò)模型的問世,這類卷積神經(jīng)網(wǎng)絡(luò)模型主要是在兩方面繼續(xù)進(jìn)行深度的研究拓展,包括卷積層的深度和構(gòu)成,這些檢測(cè)模型的不斷問世使得目標(biāo)檢測(cè)分類的誤差下降明顯。2015年Girshick等[6]提出了R-CNN模型,該模型第一次對(duì)大規(guī)模自然圖像的目標(biāo)檢測(cè)使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練計(jì)算。隨后,F(xiàn)ast R-CNN[7]和Faster R-CNN[8],以及后續(xù)的R-FCN 網(wǎng)絡(luò)模型[9]等基于R-CNN 改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)模型問世,目標(biāo)檢測(cè)的速度和精度都有了顯著的提升。2016 年,一系列將目標(biāo)檢測(cè)任務(wù)轉(zhuǎn)化成回歸問題的神經(jīng)網(wǎng)絡(luò)模型相繼被提出,這其中就包括YOLO[10]和SSD[11],至此目標(biāo)檢測(cè)有了一種新的研究思路,雖然該類檢測(cè)算法在檢測(cè)精度上有所降低,但是計(jì)算速度得到了顯著提高。此后隨著YOLO 算法系列的不斷演進(jìn),從YOLOv4[12]到如今的YOLOv7[13],檢測(cè)精度和速度都得到了不同程度的提升,推動(dòng)了目標(biāo)檢測(cè)的不斷前進(jìn)發(fā)展。神經(jīng)網(wǎng)絡(luò)模型利用計(jì)算機(jī)的計(jì)算資源,能夠快且準(zhǔn)地得到目標(biāo)檢測(cè)分類結(jié)果,而且避免了復(fù)雜的人工特征設(shè)計(jì),是今后目標(biāo)檢測(cè)領(lǐng)域的重要研究方向,本文就已提出的YOLOv7-Tiny 的特征提取方面引入注意力機(jī)制,并且進(jìn)行了相關(guān)的實(shí)驗(yàn)研究。
本文主要從以下幾個(gè)方面展開:第一部分主要介紹需要用到的方法基礎(chǔ);第二部分介紹新方法YOLOv7-TC 的網(wǎng)絡(luò)結(jié)構(gòu)和評(píng)價(jià)指標(biāo)以及實(shí)驗(yàn)結(jié)果的對(duì)比;最后進(jìn)行總結(jié)和展望。
本部分主要對(duì)用到的一些方法進(jìn)行了介紹,主要包括YOLOv7和CBAM注意力機(jī)制。
YOLOv7 是由Wang 等[13]提出的實(shí)時(shí)目標(biāo)檢測(cè)算法,目前YOLOv7無論是在實(shí)時(shí)性還是準(zhǔn)確率上都已經(jīng)超過了已知的所有目標(biāo)檢測(cè)算法。根據(jù)論文的數(shù)據(jù)結(jié)果,YOLOv7 相同體量下比YOLOv5 精度更高,速度上也更快120%(FPS),相比YOLOX 更是快達(dá)180%(FPS)。并且它在COCO 數(shù)據(jù)集上達(dá)到了56.8%的AP。就本文使用的輕量級(jí)小模型YOLOv7-Tiny 而言,與YOLOv4-Tiny 相比,YOLOv7-Tiny 減少了39%的參數(shù)量和49%的計(jì)算量,但保持相同的AP;在計(jì)算速度上,YOLOv7-Tiny 比YOLO-N(v6.1)快達(dá)127幀,并且在此基礎(chǔ)上準(zhǔn)確率提高10.7%。
CBAM(convolutional block attention module)是Woo 等[14]在2018 年提出的卷積塊注意力模塊,CBAM是一種通用的輕量級(jí)模塊,該模塊不僅可以非常方便地在各種網(wǎng)絡(luò)中的各個(gè)模塊中進(jìn)行添加,也能有效提升模型的性能。CBAM模塊是一種由通道注意力機(jī)制和空間注意力機(jī)制混合而成的注意力模型,其模塊構(gòu)成如圖1所示。
圖1 CBAM注意力機(jī)制模塊
將輸入特征圖F與通道注意模塊(channel attention module)處理得到的權(quán)重值Mc兩個(gè)矩陣的對(duì)應(yīng)元素相乘,對(duì)F進(jìn)行特征重標(biāo)定處理,得到能夠有效體現(xiàn)特征關(guān)鍵通道信息的特征映射。在通道加權(quán)的基礎(chǔ)上,利用串聯(lián)的空間注意力機(jī)制對(duì)空間特征信息進(jìn)行自適應(yīng)加權(quán),將F'作為空間注意力模塊的輸入,與空間注意模塊(spatial attention module)權(quán)重系數(shù)Ms兩個(gè)矩陣的對(duì)應(yīng)元素相乘,得到包含通道位置信息、空間位置信息的顯著特征圖F″,使網(wǎng)絡(luò)能夠更多關(guān)注檢測(cè)目標(biāo)中輸入特征較強(qiáng)的部分,提升其空間特征選擇能力。其過程用公式表示為:
上式中:?表示該符號(hào)左右兩側(cè)矩陣對(duì)應(yīng)元素相乘。
本節(jié)主要介紹YOLO-TC 的網(wǎng)絡(luò)結(jié)構(gòu)、評(píng)價(jià)指標(biāo)以及實(shí)驗(yàn)結(jié)果。
本文是對(duì)文獻(xiàn)[13]中提出的YOLOv7進(jìn)行改進(jìn),主要改進(jìn)方式為對(duì)文中的輕量級(jí)小模型YOLOv7-Tiny添加文獻(xiàn)[14]中的CBAM 注意力機(jī)制,添加位置為在YOLOv7-Tiny 的Backbone 主干網(wǎng)絡(luò),對(duì)作者提出的圖中所示的CBL 網(wǎng)絡(luò)中的Conv 進(jìn)行替換,分別在1、2、14、21、28 層進(jìn)行替換,添加位置如圖2所示的黑色加粗框位置。另外原算法Head 網(wǎng)絡(luò)不作更改,以便在提取紅外圖像特征時(shí)能更好關(guān)注有效的目標(biāo)信息,專注于有用信息的提取,減少無用信息的干擾。方法中使用的回歸損失、平均精確度等評(píng)價(jià)指標(biāo)計(jì)算方法與原文保持一致,本文的網(wǎng)絡(luò)模型如圖2所示。
本文主要沿用文獻(xiàn)[13]中使用到的精確率(precision)、召回率(recall)、平均精確度mAP@0.5和mAP@0.5∶0.95三個(gè)評(píng)價(jià)指標(biāo)。
目標(biāo)檢測(cè)的評(píng)價(jià)指標(biāo)主要有召回率Rec(recall)、精確率Pre(precision)和平均精度均值mAP(mean average precision),分別取交并比IoU(intersection over union)為0.5 時(shí)的平均精度均值mAP@0.5,IoU從0.5 到0.95(步長(zhǎng)0.05)時(shí)的平均精度均值mAP@0.5∶0.95,定義如下:
圖2 本文網(wǎng)絡(luò)模型
其中:TP表示正樣本判定為正樣本,F(xiàn)P表示負(fù)樣本判定為正樣本,F(xiàn)N表示正樣本判定為負(fù)樣本,TN表示負(fù)樣本判定為負(fù)樣本。
其中:Pinter表示插補(bǔ)精度,即對(duì)PR曲線上的每個(gè)點(diǎn)的Pre值取該點(diǎn)右側(cè)最大的值,ri表示按升序排列的Pre插值段的第i個(gè)插值處對(duì)應(yīng)的Rec值。
其中:k表示檢測(cè)任務(wù)中的類別(一般大于1),即mAP定義為所有類別的AP平均值。
2.3.1 實(shí)驗(yàn)環(huán)境及參數(shù)設(shè)置
本文代碼使用的是PyTorch 框架,訓(xùn)練環(huán)境均為:四張NVIDIA GeForce RTX 3080 GPU,顯存40 GB;12 核CPU,型號(hào)為Intel(R)Xeon(R)CPU E-2650 v4 @2.20 GHZ,內(nèi)存60 GB。實(shí)驗(yàn)主要在FLIR_ADAS_v2 數(shù)據(jù)集和KAIST 紅外圖像行人數(shù)據(jù)集上進(jìn)行。FLIR_ADAS_v2 為FLIR Systems 公司在2022 發(fā)布的新版紅外數(shù)據(jù)集,相較于上一代FLIR 數(shù)據(jù)集,新版本有著更多的類別和更多數(shù)量的圖像,檢測(cè)類別達(dá)80 類,訓(xùn)練集10742 張紅外圖像,驗(yàn)證集1144 張圖像;KAIST 行人數(shù)據(jù)集是由韓國(guó)科學(xué)技術(shù)院(Korea Advanced Institute of Science and Technology)在2015 年發(fā)布的多光譜行人檢測(cè)數(shù)據(jù)集,本文使用該數(shù)據(jù)集的紅外數(shù)據(jù),并對(duì)其進(jìn)行清洗,保留7601張訓(xùn)練集,2257張驗(yàn)證集。
在訓(xùn)練過程中,對(duì)于FLIR_ADAS_v2 數(shù)據(jù)集,學(xué)習(xí)率設(shè)為0.01,加載原文預(yù)訓(xùn)練模型的訓(xùn)練100 個(gè)epoch 得到結(jié)果;對(duì)于清洗后的KAIST 紅外行人數(shù)據(jù)集數(shù)據(jù)訓(xùn)練時(shí)學(xué)習(xí)率為0.01,加載原文預(yù)訓(xùn)練模型訓(xùn)練50個(gè)epoch。
2.3.2 實(shí)驗(yàn)結(jié)果
在數(shù)據(jù)集FLIR_ADAS_v2 和KAIST 紅外圖像行人數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果分別如表1 和表2 所示,表中指標(biāo)越大,表明效果越好。
表1 FLIR_ADAS_v2數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
表2 清洗后的KAIST數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
本文通過對(duì)YOLOv7-Tiny 添加注意力機(jī)制CBAM[14]改進(jìn)得到新網(wǎng)絡(luò)模型YOLO-TC。在多類別的FLIR_ADAS_v2 數(shù)據(jù)集和少量類別的KAIST 紅外圖像行人數(shù)據(jù)集上進(jìn)行了訓(xùn)練和測(cè)試,新網(wǎng)絡(luò)檢測(cè)精度和平均精度均值都有一定的提升,在保證網(wǎng)絡(luò)模型輕量級(jí)的基礎(chǔ)上,F(xiàn)PS不變的情況下,最大程度提高了檢測(cè)精度和平均精度均值,取得了比原網(wǎng)絡(luò)更好的結(jié)果。在未來,YOLO-TC 可以繼續(xù)在Head 網(wǎng)絡(luò)進(jìn)行改進(jìn),引入一些優(yōu)秀的機(jī)制使得網(wǎng)絡(luò)的相關(guān)數(shù)據(jù)能得到進(jìn)一步提升。