王彥雅,李衛(wèi)東,張偉娜,李曉娟
(河北經(jīng)貿(mào)大學(xué)信息技術(shù)學(xué)院,河北 石家莊 050061)
目前的目標(biāo)檢測(cè)算法大多使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,卷積神經(jīng)網(wǎng)絡(luò)的提取能力毋庸置疑,但一味地通過增加網(wǎng)絡(luò)深度來(lái)提升檢測(cè)精度是不可行的。越來(lái)越深的網(wǎng)絡(luò)層數(shù)不僅伴隨著龐大的計(jì)算量,計(jì)算成本十分昂貴,而且深層的網(wǎng)絡(luò)會(huì)使得圖像中小目標(biāo)的位置信息丟失嚴(yán)重,導(dǎo)致算法對(duì)圖像中小目標(biāo)的識(shí)別準(zhǔn)確率變低。這就面臨著一個(gè)難題,如何在識(shí)別精度提升的前提下,更好地識(shí)別圖像中的小目標(biāo),這是目標(biāo)檢測(cè)領(lǐng)域一直以來(lái)研究的熱點(diǎn)問題[1]。
ResNet(Residual Network)[2]是何凱明團(tuán)隊(duì)在2015年提出來(lái)的網(wǎng)絡(luò)模型,通過許多短連接的殘差結(jié)構(gòu),使得特征提取過程中淺層特征信息與深層特征信息相結(jié)合,有效減少了深層特征中小目標(biāo)信息丟失的問題,取得了十分矚目的提取效果。Faster RCNN(Region Convolutional Neural Network)[3]在兩階段目標(biāo)檢測(cè)中較為成功,其提出的區(qū)域建議網(wǎng)絡(luò)效果良好,首次使目標(biāo)檢測(cè)實(shí)現(xiàn)端到端的檢測(cè),檢測(cè)精度高,但弊端也很明顯,檢測(cè)速度較慢。YOLO(You Only Look Once)系列是主流的單階段目標(biāo)檢測(cè)算法,至今已經(jīng)迭代了YOLOv1[4]、YOLOv2[5]、YOLOv3[6]、YOLOv4[7]和YOLOv5五個(gè)版本。YOLO系列算法有著檢測(cè)精度高且速度快的優(yōu)勢(shì),但在小目標(biāo)檢測(cè)方面仍有很大的進(jìn)步空間。趙一鳴等人[8]提出了一種基于反饋的特征融合網(wǎng)絡(luò)ReFPN(Retroaction Feature Pyramid Networks)用于YOLOv4,加強(qiáng)小目標(biāo)特征信息,在COCO數(shù)據(jù)集上平均精度提升了1.9%,小目標(biāo)平均精度提升了3.3%。王卜等人[9]提出一種改進(jìn)的YOLOv3模型檢測(cè)交通標(biāo)志,通過引入特征金字塔,加入FI模塊進(jìn)行特征融合等操作對(duì)TT100K交通標(biāo)志數(shù)據(jù)集進(jìn)行檢測(cè),較原模型mAP提升了11.1%,且檢測(cè)每張圖片耗時(shí)僅增加6.6ms。
針對(duì)以上問題,本文采用YOLOv5為基本框架,首先針對(duì)小目標(biāo)特征容易丟失的問題,提出一種CS-AM(Channel Spatial Attention Module)混合注意力機(jī)制,對(duì)空間維度和通道維度中重要性較高的特征層賦予更高的權(quán)重,以加強(qiáng)特征提取過程中對(duì)有效特征層的關(guān)注,并提升在淺層網(wǎng)絡(luò)中小目標(biāo)特征信息的提取能力。其次,針對(duì)YOLOv5中輸出的三種大小特征圖相互獨(dú)立的問題進(jìn)行改進(jìn),基于原有的PANet(Path Aggregation Network)特征融合結(jié)構(gòu),添加ASFF(Adaptively Spatial Feature Fusion)[10]自適應(yīng)特征融合,對(duì)三種尺度的特征輸出進(jìn)行自適應(yīng)特征融合,自動(dòng)提取三種尺寸的特征圖中特征信息最有效的特征層進(jìn)行融合,有效提升特征提取效果。
YOLOv5發(fā)布之初共四個(gè)版本v5s、v5m、v5l和v5x。各版本只是在模型的深度與寬度有所不同,見表1。本文使用YOLOv5s框架進(jìn)行實(shí)驗(yàn)。模型框架可分為四部分:輸入端、Backbone、Neck和預(yù)測(cè)頭,如圖1所示。
表1 YOLOv5模型參數(shù)
輸入圖像尺寸為640×640,尺寸不同的圖片會(huì)被壓縮和填充為同一大小。Backbone使用CSPDarkNet-53特征提取模型,由Focus、CBS(Convolution Batch Normalization SiLU)、Resunit、CSP結(jié)構(gòu)和SPP(Spatial Pyramid Pooling)組成,如圖2所示。Focus是將輸入圖像進(jìn)行切片操作,將640×640×3的圖片切割成四份,寬度與高度縮減一半,并將切割好的圖像進(jìn)行拼接,生成320×320×12的圖片,增加通道維度的同時(shí)減小空間維度,可減少計(jì)算量。CBS是由卷積、批量歸一化和SiLU激活函數(shù)組成。Resunit借鑒殘差結(jié)構(gòu)思想,可以使網(wǎng)絡(luò)構(gòu)建的更深。CSP在Backbone和Neck部分分為CSP1和CSP2兩種結(jié)構(gòu),CSP1主要由殘差塊和CSB組成,CSP2將殘差塊換成了CBS結(jié)構(gòu)。SPP通過三次最大池化操作將任意大小的特征圖輸出固定維度。
圖1 YOLOv5整體框架圖
圖2 YOLOv5各組件結(jié)構(gòu)圖
小目標(biāo)的特征在卷積過程中容易丟失,因此可以使用注意機(jī)制對(duì)小目標(biāo)的特征信息進(jìn)行加強(qiáng)處理。通道注意力可以對(duì)不同的通道分別施加不同的權(quán)重,以此加強(qiáng)特征提取過程中對(duì)重要通道的關(guān)注度。空間注意力機(jī)制是分析特征圖中空間維度上的特征信息,對(duì)不同特征層施加不同的權(quán)重,以此加強(qiáng)重要空間信息的關(guān)注度?;旌献⒁饬?duì)通道域和空間域中的重要特征信息分別施加關(guān)注度,可以更好地增強(qiáng)模型特征提取能力。SENet(Squeeze Excitation Net)是Jie Hu等人[11]提出的通道注意力機(jī)制,通過Squeeze、Excitation和Scale三部分組成,并使用殘差結(jié)構(gòu)的方式插入分類模型中,取得了較好的效果。CBAM(Convolutional Block Attention Module)注意力[12]包括通道域模塊和空間域模塊,并將兩部分串聯(lián)輸出,同樣取得了較好的效果?;谝陨纤枷?,本文提出一種混合注意力機(jī)制CS-AM。
CAM(Channel Attention Module)將特征圖F在空間上進(jìn)行最大池化和平均池化,將得到的兩個(gè)C×1×1的特征圖進(jìn)行相加操作,得到一個(gè)C×1×1的特征圖,再經(jīng)過Sigmoid函數(shù)激活輸出,得到通道維度不變且空間維度是1×1的權(quán)重矩陣,每個(gè)通道的重要程度都會(huì)被賦予一個(gè)權(quán)重系數(shù),CAM結(jié)構(gòu)如圖3所示。
圖3 通道注意力CAM結(jié)構(gòu)圖
SAM(Spatial attention module)將特征圖在通道上進(jìn)行最大池化和平均池化,得到兩個(gè)1×H×W的特征圖,兩個(gè)特征圖高和寬不變,通道數(shù)變?yōu)?。將二者進(jìn)行拼接操作得到一個(gè)2×H×W的特征圖,再使用1×1的卷積核進(jìn)行卷積,使用Sigmoid激活,就得到了通道維度是1,空間維度不變的權(quán)重矩陣,每個(gè)權(quán)重系數(shù)代表了空間位置的重要性,SAM結(jié)構(gòu)如圖4所示。
圖4 空間注意力SAM結(jié)構(gòu)圖
CS-AM混合注意力機(jī)制如圖5所示,首先將特征圖輸入子模塊CAM,將輸出的權(quán)重與原特征圖相乘,得到加強(qiáng)的特征圖Fc。其次,將Fc作為SAM模塊的輸入,輸出結(jié)果與Fc進(jìn)行相乘,最終得到經(jīng)過通道域與空間域加強(qiáng)的特征圖Fs。由于CAM與SAM將特征圖進(jìn)行全局平均池化與全局最大池化的方法會(huì)導(dǎo)致部分特征信息丟失,故決定采用殘差結(jié)構(gòu)的思想,將Fs與原特征圖進(jìn)行相加操作,再經(jīng)過Sigmoid激活,最終得到輸出F′。
⑥鄭石橋、劉慶堯:《〈審計(jì)法〉涉及的若干基礎(chǔ)性問題的再思考——基于十九大報(bào)告的視角》,《南京審計(jì)大學(xué)學(xué)報(bào)》2018年第1期。
圖5 混合注意力模塊CS-AM結(jié)構(gòu)圖
公式(1) (2) (3)分別為CAM、SAM和CS-AM的計(jì)算公式,其中σ為Sigmoid激活函數(shù),GAP為全局平均池化,GMP為全局最大池化,⊕為張量相加。
Fc=σ(GAP(F)⊕GMP(F))
(1)
Fs=σ(Cov(Concat(GAP(F)⊕GMP(F))))
(2)
F′=σ(F⊕Fs)
(3)
將CS-AM混合注意力模塊添加在Backbone中的CSP結(jié)構(gòu)之后,可以在特征提取之后直接對(duì)特征圖中的小目標(biāo)的特征信息進(jìn)行加強(qiáng),增強(qiáng)模型對(duì)小目標(biāo)的特征提取能力。
在特征提取過程中,卷積層加深,提取到的特征更為抽象,小目標(biāo)的位置信息容易消失。FPN[13]是一種自上而下的特征融合方法,從而可以解決深層網(wǎng)絡(luò)對(duì)小目標(biāo)檢測(cè)不友好的問題。PANet[14]在FPN的思想之上又加入了一條自底向上的特征融合路徑,使特征融合的更好。YOLOv5中使用的PANet結(jié)構(gòu)分別輸出20×20、40×40和80×80三種固定大小的特征圖對(duì)大、中、小目標(biāo)進(jìn)行預(yù)測(cè),達(dá)到了不錯(cuò)的效果,而使用固定大小的特征圖進(jìn)行預(yù)測(cè)仍具有一定局限性。
ASFF是一種自適應(yīng)特征融合結(jié)構(gòu),它可以自適應(yīng)的學(xué)習(xí)三個(gè)尺度特征圖在融合的過程中的權(quán)重占比,并且能夠直接過濾掉低權(quán)重的特征層,保留高權(quán)重的特征層進(jìn)行組合。如圖6所示,Level 1、Level 2、Level 3和ASFF-1、ASFF-2、ASFF-3之間是全連接,融合時(shí)需要將特征圖進(jìn)行上采樣或下采樣。
圖6 ASFF結(jié)構(gòu)和添加位置
2.2.1 上采樣與下采樣
YOLOv5具有三種不同大小和通道數(shù)的特征圖,三種尺度融合需要進(jìn)行上采樣或下采樣保持特征圖的大小和通道數(shù)一致。上采樣ASFF使用1×1卷積增加通道數(shù),并使用差值法提升分辨率。下采樣使用3×3卷積和最大池化降低圖片通道數(shù)和分辨率。
自適應(yīng)特征融合可表示為公式(4):
(4)
(5)
輸出的y1、y2、y3就是ASFF-1、ASFF-2、ASFF-3結(jié)構(gòu),作為預(yù)測(cè)頭的輸入。
將ASFF結(jié)構(gòu)添加在原PANet與預(yù)測(cè)頭之間,可以將原模型的三種尺度的輸出進(jìn)行自適應(yīng)特征融合,有效特征層被賦予更高的權(quán)重,并組合成新的特征圖。小目標(biāo)在新的特征圖中特征信息更加明顯,提升預(yù)測(cè)頭的預(yù)測(cè)效果。
實(shí)驗(yàn)數(shù)據(jù)集使用MS COCO2017,其中小目標(biāo)占比較高,有41%,共80個(gè)類別,如表2所示。由于數(shù)據(jù)集數(shù)量龐大,選取訓(xùn)練集中50 000張進(jìn)行訓(xùn)練。
表2 MS COCO2017數(shù)據(jù)集
實(shí)驗(yàn)在Ubuntu18.04.5操作系統(tǒng)中進(jìn)行。硬件配置為12核CPU Intel(R) Xeon? Platinum 8255C,主頻2.50GHz。GPU 為Nvidia RTX 2080 Ti 11G顯卡。軟件版本為Pytorch1.9.0,CUDA 11.1,Python3.8.10。訓(xùn)練參數(shù)學(xué)習(xí)率0.01,余弦退火0.1,預(yù)熱Epochs3,權(quán)重衰減系數(shù)0.000 5,學(xué)習(xí)動(dòng)量率0.973,Batchsize32,Epoch 300。
實(shí)驗(yàn)使用四種評(píng)價(jià)指標(biāo)。P為查準(zhǔn)率,R為查全率,如公式(6)(7)所示。TP為真實(shí)正類別,F(xiàn)N為錯(cuò)誤負(fù)類別,F(xiàn)P為錯(cuò)誤正類別,TN為真實(shí)負(fù)類別。mAP為所有類別的平均精度均值。mAP @0.5為IoU為0.5時(shí)的平均精度均值,mAP @0.5∶0.95為IoU在[0.5∶0.95]之間步長(zhǎng)為0.05的平均精度均值。
(6)
(7)
為了證明算法的有效性,將本文的算法在MS COCO2017數(shù)據(jù)集上與目前主流的目標(biāo)檢測(cè)算法進(jìn)行比較,如表3所示。改進(jìn)的YOLOv5算法較Faster-RCNN mAP @0.5/%提升了2.7%,較YOLOv3 mAP @0.5/%提升了6.7%,較YOLOv4 mAP @0.5/%提升了4.6%,較原YOLOv5提升了1.8%。結(jié)果表明在MS COCO2017數(shù)據(jù)集中本算法的有效性。
表3 與主流算法對(duì)比表
文獻(xiàn)[8]中算法較原YOLOv4平均精度提升1.9%,而本文算法提升了4.6%,提升幅度更加明顯。文獻(xiàn)[9]中改進(jìn)的YOLOv3算法精度雖提升了11.1%,但每張圖片的檢測(cè)耗時(shí)增加了6.6ms,而本文算法在精度提升6.7%的同時(shí)檢測(cè)耗時(shí)減少了0.4ms,更好地兼顧了檢測(cè)精度與檢測(cè)速度。
如表4所示,使用CS-AM混合注意力機(jī)制的模型較原模型精度提升了0.6%,召回率提升了1.2%,mAP @0.5提升了0.5%,mAP @0.5∶0.95提升了1%。
使用ASFF改進(jìn)的特征融合結(jié)構(gòu)較原模型精度提升了1.6%,召回率提升了1.4%,mAP @0.5提升了1.2%,mAP @0.5∶0.95提升了1.8%。
綜合改進(jìn)后的模型較原模型精度提升了2.8%,召回率提升了2%,mAP @0.5提升了1.8%,mAP @0.5∶0.95提升了2.4%。
結(jié)果表明,本文提出的CS-AM混合注意力機(jī)制可以較好地提升對(duì)小目標(biāo)的特征信息關(guān)注度,ASFF自適應(yīng)特征融合可以更好地對(duì)三種尺度的特征輸出進(jìn)行融合,綜合模型對(duì)小目標(biāo)的檢測(cè)效果增加明顯。
表4 實(shí)驗(yàn)結(jié)果對(duì)比表
為了更好的證明算法效果,在MS COCO數(shù)據(jù)集中挑選出兩張含有小目標(biāo)的圖片。圖7左側(cè)是使用YOLOv5模型檢測(cè)的效果,圖7右側(cè)是使用改進(jìn)后模型的檢測(cè)效果。不難發(fā)現(xiàn),使用原YOLOv5模型對(duì)圖7左上進(jìn)行檢測(cè),只檢測(cè)出圖片中距離較近的6個(gè)人,而改進(jìn)后的模型在此基礎(chǔ)上檢測(cè)出了距離較遠(yuǎn)的一個(gè)人和左側(cè)只露出了半個(gè)身子的人,并且檢測(cè)出了兩個(gè)體積非常小的沖浪板。證明算法不僅對(duì)小目標(biāo)的檢測(cè)效果有所提升,而且對(duì)圖片中被遮擋的物體以及部分露出的物體檢測(cè)效果均有提升。
圖7左下檢測(cè)出了面積占比較大的兩個(gè)人和兩個(gè)沖浪板,而圖片右上角的海面上存在一個(gè)肉眼難以發(fā)現(xiàn)的人,改進(jìn)后的模型精準(zhǔn)的檢測(cè)出了面積占比極小的人。證明提出的算法對(duì)小目標(biāo)的檢測(cè)效果明顯提升。
針對(duì)目標(biāo)檢測(cè)常用算法對(duì)小目標(biāo)的檢測(cè)效果較差的問題,基于YOLOv5檢測(cè)模型,提出了CS-AM注意力機(jī)制加強(qiáng)對(duì)小目標(biāo)特征信息的關(guān)注度。使用ASFF改進(jìn)原PANet特征融合結(jié)構(gòu),將三個(gè)輸出維度的特征圖中權(quán)重較大的特征層進(jìn)行自適應(yīng)融合,提升了預(yù)測(cè)頭對(duì)小目標(biāo)的預(yù)測(cè)能力。
小目標(biāo)的預(yù)測(cè)一直是目標(biāo)檢測(cè)領(lǐng)域的重難點(diǎn),由于像素占比較少,在特征提取過程中特征信息極易丟失。現(xiàn)有模型對(duì)小目標(biāo)的檢測(cè)效果較為一般,經(jīng)常出現(xiàn)漏檢的現(xiàn)象,所以對(duì)小目標(biāo)的檢測(cè)仍有較大的提升空間。