秦大勇,林玉娥,梁興柱,2
(1.安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001;2.安徽理工大學(xué) 環(huán)境友好材料與職業(yè)健康研究院(蕪湖),安徽 蕪湖 241003)
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的重要研究內(nèi)容之一,廣泛應(yīng)用于人們的生產(chǎn)生活中[1-2]。近年來,隨著深度學(xué)習(xí)的發(fā)展和大規(guī)模數(shù)據(jù)集的出現(xiàn),極大地提高了目標(biāo)檢測的性能,許多學(xué)者提出了很多基于深度神經(jīng)網(wǎng)絡(luò)的檢測器,用以提高檢測的速度和精度。
基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩類:兩階段(two-stage)算法和單階段(one-stage)算法。Two-stage算法準(zhǔn)確率高但速度較慢,代表算法包含R-CNN[3]、Faster R-CNN[4]等。One-stage的目標(biāo)檢測算法具有更快的檢測速度,代表算法包含Yolo[5-6]系列、SSD[7]等。為了能夠檢測到尺度不同的目標(biāo),SSD使用多個(gè)特征層去進(jìn)行目標(biāo)檢測,由此產(chǎn)生了另外一個(gè)缺點(diǎn):每個(gè)具有獨(dú)立檢測器的有效特征層限制了感受野的大小,SSD網(wǎng)絡(luò)在檢測小目標(biāo)物體時(shí)僅使用了Cov4_3這一淺層特征層,導(dǎo)致小目標(biāo)檢測的準(zhǔn)確率較低,對(duì)最終檢測的準(zhǔn)確率有著極大影響。
針對(duì)SSD算法,許多學(xué)者在提升模型的檢測能力方面進(jìn)行了相應(yīng)的研究。如Fu等提出了DSSD模型[8],增加了反卷積模塊來融合上下文信息,但是由于網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,使計(jì)算量過大,導(dǎo)致檢測速度降低幅度明顯。Jeong等人提出了RSSD模型[9],對(duì)特征融合的方式進(jìn)行了改進(jìn),增加了更多用于檢測的有效特征圖,將模型特征更加充分的進(jìn)行利用,檢測性能與DSSD 持平。Li等將FocalLoss損失函數(shù)用于SSD[10],減少了易分類樣本的權(quán)重,讓模型更關(guān)注于含有信息更加豐富的難分類樣本,提高訓(xùn)練效率,但計(jì)算速度相對(duì)較慢。Li等人提出了 FSSD模型[11],將SSD和FPN的思想結(jié)合在一起,構(gòu)建了一組新的有效特征層,速度得到了提高,但是精度提高有限。
基于此,本文以SSD為理論基礎(chǔ),提出了一種基于特征融合和注意力機(jī)制的SSD模型,該模型具有以下特點(diǎn):
1) 修改并使用了強(qiáng)大的特征提取網(wǎng)絡(luò)ResNet50,提高了主干網(wǎng)絡(luò)的特征提取能力;
2) 在采用更為強(qiáng)大的特征提取網(wǎng)絡(luò)的基礎(chǔ)上,加入了特征融合模塊,將含有不同信息的特征層融合在一起,增強(qiáng)單一特征圖的語義信息和判別能力;
3) 利用注意力機(jī)制,增強(qiáng)特征圖中關(guān)鍵信息的權(quán)重,緩解了融合特征圖產(chǎn)生的冗余信息帶來的負(fù)面影響,如混疊效應(yīng)、位置偏移等。
本文提出一種特征融合與注意力機(jī)制的SSD目標(biāo)檢測算法,改進(jìn)的算法將ResNet50作為特征提取網(wǎng)絡(luò)用于特征提取,在此基礎(chǔ)上融入了特征融合與注意力機(jī)制。改進(jìn)的模型設(shè)計(jì)結(jié)構(gòu)如圖1所示。
圖1 基于特征融合和注意力機(jī)制的改進(jìn)SSD網(wǎng)絡(luò)
改進(jìn)的模型主要包括三大模塊。
1) 通過修改Resnet50網(wǎng)絡(luò),構(gòu)建新的特征提取網(wǎng)絡(luò)(圖中紅色框線所示)得到有效特征層;
2) 特征融合模塊(包含深度特征融合模塊),將有效特征層通過特征融合模塊,得到擁有更強(qiáng)判別能力的新的有效特征層,增加針對(duì)小目標(biāo)的檢測能力;
3) ECA注意力模塊,將融合后的有效特征層經(jīng)過ECA注意力模塊,使有效特征層中關(guān)鍵信息的權(quán)重進(jìn)行增大。
為了取得更好的效果,已有很多學(xué)者對(duì)SSD的特征提取網(wǎng)絡(luò)進(jìn)行研究,如常見的將VGG替換為Mobile-net等,但是已有的研究中很少對(duì)細(xì)節(jié)部分進(jìn)行詳細(xì)介紹,本文提出的基于ResNet50特征提取網(wǎng)絡(luò)模塊如圖2所示,有兩種構(gòu)造方式。
圖2(a)依據(jù)ResNet50的結(jié)構(gòu)基礎(chǔ),進(jìn)行了簡單的網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整,將ResNet50中的3個(gè)block塊Con3_x、Con4_x、Con5_x的輸出結(jié)果作為淺層有效特征圖,并且仿照VGG在其后增加了額外添加層作為深層有效特征層;圖2(b)相比于圖2(a),使用了ResNet50更深的block塊Con4_x的輸出結(jié)果作為第一層有效特征層,使得第一層有效特征層可以提取到更多的有效信息,但刪除了最后一個(gè)block塊Con5_x,用以減少參數(shù)量,然后在Con4_x后增加了額外添加層作為有效特征層,使得總體參數(shù)變得更少且最終的檢測精度得到了提升,后續(xù)實(shí)驗(yàn)中將采用圖2(b)的策略作為SSD的特征提取網(wǎng)絡(luò)。
由于反卷積增大特征層的方法存在不可避免的問題,在本文改進(jìn)的SSD模型中,使用通過上采樣增大特征層分辨率的方法,使用深層特征層增強(qiáng)淺層特征層的語義信息,從而提高模型的檢測效果。
對(duì)于SSD中的6層有效特征層(C1,C2,C3,C4,C5,C6),從高到低使用特征融合模塊,將深層特征層中的有效信息融合到低層特征層,但是對(duì)尺度過小的深層特征層進(jìn)行融合,幾乎不會(huì)提高檢測精度,反而會(huì)降低檢測速度,故對(duì)于尺度過小的深層特征層C4、C5、C6不能簡單的使用特征融合模塊,為此我們設(shè)計(jì)了深度特征模塊進(jìn)行特征融合;并且額外引入包含大量邊緣和形狀等細(xì)節(jié)信息的Conv3_x,將其作為C0融合到C1中(C0與C1分辨率相同,因此將C0融合到C1的過程中跳過特征融合模塊中的上采樣環(huán)節(jié))使得C1中的細(xì)節(jié)信息更為豐富。
特征融合模塊如圖3所示。Layer A代表待增強(qiáng)的特征層,Layer B代表被融合的特征層。首先,將Layer B的特征層進(jìn)行上采樣,若特征層尺寸已經(jīng)一致,如圖1中將Conv3_x融合到Conv4_6,則跳過上一個(gè)采樣環(huán)節(jié),然后經(jīng)過卷積、BN操作和激活函數(shù),與經(jīng)過卷積、BN和激活函數(shù)的Layer A進(jìn)行concat操作;接下來利用卷積核大小為1的卷積操作對(duì)融合后得到的特征層進(jìn)行通道數(shù)轉(zhuǎn)換,將通道數(shù)轉(zhuǎn)換為與Layer A的通道數(shù)相同,最后經(jīng)過激活函數(shù)得到融合后的特征層Layer A*,將Layer A*替換為Layer A作為新的有效特征層,對(duì)其進(jìn)行后續(xù)的檢測操作。
圖3 特征融合模塊
深度特征模塊如圖4所示,其借鑒SE注意力機(jī)制的思想,對(duì)C4和C5進(jìn)行全局平均池化得到1x1大小的特征圖與C6進(jìn)行Add操作后再與C4進(jìn)行全乘,最終得到C4_2。如式(1)所示,其中GAP表示全局池化。
C4_2=((C6⊕GAP(C5)⊕GAP(C4))?C4.
(1)
圖4 深度特征融合模塊
特征融合一方面可以生成更具有判別能力的特征層,另一方面也可能會(huì)產(chǎn)生冗余信息,帶來負(fù)面影響。為解決這一問題,本文引用了一種高效的通道注意力模塊(Efficient Channel Attention for Deep Convolutional Neural Networks, ECA)[12],在增加性能的同時(shí)并沒有使模型的復(fù)雜度增大,僅僅通過少量的參數(shù),便可以實(shí)現(xiàn)更理想的效果。
ECA模塊的結(jié)構(gòu)如圖5所示, 將上一層卷積的輸出記為X∈RH×W×C(H、W、C表示的是特征圖的長度、寬度和通道數(shù),)作為注意力機(jī)制的輸入(令X=[x1,x2,…,xc],其中xc表示的是第c個(gè)卷積核的參數(shù)),隨后進(jìn)行全局平均池化操作(令全局平均池化過程為Pavg,其輸出為Aavg∈R1×1×C),計(jì)算如式(2)所示。
(2)
圖5 注意力機(jī)制(ECA)模塊
然后通過進(jìn)行1維卷積和Sigmoid激活函數(shù)得到1×1×C的通道注意力權(quán)重,最終得到通道加權(quán)之后的特征圖,其中一維卷積的卷積核大小K由通道自適應(yīng)參數(shù)決定,即
(3)
式中:C表示通道數(shù);|·|odd表示取離結(jié)果最近的奇數(shù);γ和b表示常量,用于改變通道數(shù)C與卷積核大小和之間的比例,這里分別取值為2和1。
經(jīng)過特征融合后的特征層再經(jīng)過ECA模塊后得到最終用于目標(biāo)檢測的有效特征圖,此時(shí)有效特征圖的特征信息更加豐富且有效,并且緩解了特征圖融合過程中產(chǎn)生的冗余信息帶來的負(fù)面影響,可以使模型更加關(guān)注于重要的特征。
數(shù)據(jù)集:本文采用公開數(shù)據(jù)集PASCAL VOC[13]2007+2012進(jìn)行實(shí)驗(yàn),PASCAL VOC數(shù)據(jù)集包含了20種類別(不含背景類),使用VOC 2007訓(xùn)練集和VOC 2012的訓(xùn)練集合并作為此次實(shí)驗(yàn)的訓(xùn)練集,VOC 2007測試集作為此次實(shí)驗(yàn)的測試集。
評(píng)價(jià)指標(biāo):mAP(mean average precision)是目標(biāo)檢測領(lǐng)域非常重要的性能評(píng)價(jià)指標(biāo),綜合考慮了所有的類別以及定位精度等問題,mAP越大代表模型的檢測性能越好。計(jì)算方法如式(4)~(5)所示。
(4)
mAP=sum(AP)/N,
(5)
式中:r表示選取回歸的閾值;P表示各個(gè)閾值下的數(shù)值;N表示類別的總數(shù)目。
實(shí)驗(yàn)使用2個(gè)Tesla P100 16G進(jìn)行訓(xùn)練,模型輸入圖片為300×300 dpi。訓(xùn)練時(shí),為了防止過擬合現(xiàn)象的發(fā)生,在訓(xùn)練前先對(duì)輸入圖片進(jìn)行數(shù)據(jù)增強(qiáng),包括對(duì)圖片隨機(jī)水平翻轉(zhuǎn)、灰度變換等操作,增強(qiáng)了模型的魯棒性,盡量避免過擬合現(xiàn)象的發(fā)生。訓(xùn)練參數(shù)方面,batch size設(shè)置為32,epoch設(shè)置為250,動(dòng)量為0.937,權(quán)值衰減為0.000 5,學(xué)習(xí)率下降方式采用余弦退火衰減, 最大學(xué)習(xí)率設(shè)置為0.002,最小學(xué)習(xí)率設(shè)置為0.000 02,網(wǎng)絡(luò)的優(yōu)化采用隨機(jī)梯度下降法(stochastic gradient descent, SGD),模型訓(xùn)練過程中損失以及mAP如圖6所示。
圖6 訓(xùn)練損失函數(shù)和mAP
為了更直觀的展示改進(jìn)算法的有效性,分別采用改進(jìn)前后算法部分檢測結(jié)果,如圖7所示。
(a) 漏檢
圖7(a)和(b)分別對(duì)比展示了原始SSD和改進(jìn)后的SSD在檢測結(jié)果上對(duì)于漏檢和多檢情況的提升,可以看出本文提出的改進(jìn)后的SSD算法,相對(duì)于傳統(tǒng)的SSD300目標(biāo)檢測算法,模型可以更好的區(qū)分出不同的目標(biāo),檢測結(jié)果顯示改進(jìn)后的方法可以檢測出更多的小目標(biāo)物體以及減少了誤檢的發(fā)生。總體來說,改進(jìn)后的算法使得目標(biāo)檢測中的分類和定位任務(wù)均得到了提升。
為了驗(yàn)證本文提出算法的有效性,將本文算法和已有的算法在相同的數(shù)據(jù)集上進(jìn)行對(duì)比,結(jié)果如表1所示。
表1 PASCAL VOC 數(shù)據(jù)集下各算法性能對(duì)比
表1中,SSD300*代表本文改進(jìn)的模型,改進(jìn)后的SSD300*模型對(duì)比于原始的SSD300模型在檢測精度上提高了3.9%,并且可以看出本文算法在檢測準(zhǔn)確率和檢測速度上均優(yōu)于兩階段算法Faster R-CNN和R-FCN,與YOLOv3相比,mAP提升了1.6%,但由于增加了模型參數(shù)量導(dǎo)致檢測速度有所下降。與SSD以及其改進(jìn)的RSSD和DSSD相比,提升效果顯著,證明了本文通過更換特征提取網(wǎng)絡(luò),以及特征融合模塊和注意力機(jī)制模塊的有效性。
本文選擇在VOC數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn),在SSD模型上逐步添加各個(gè)模塊,分析每個(gè)模塊的性能,從而證明各個(gè)模塊的有效性,消融實(shí)驗(yàn)結(jié)果如表2所示。
表2 消融實(shí)驗(yàn)結(jié)果
從表2中可以看出,Resnet-50-A和Resnet-50-B兩種修改后的特征提取網(wǎng)絡(luò)的mAP相差不大,但是由于Resnet-50-B具有更少的網(wǎng)絡(luò)參數(shù),使得FPS有小幅度提升;并且本文提出的每個(gè)模塊都對(duì)mAP有著不同程度的提高,當(dāng)所有模塊同時(shí)使用時(shí),檢測精度達(dá)到了最高值81.2%。
本文提出了SSD網(wǎng)絡(luò)的改進(jìn)算法,提出了兩種將ResNet50網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò)的方案,以及在SSD網(wǎng)絡(luò)中加入了特征融合模塊和注意力機(jī)制模塊。對(duì)比實(shí)驗(yàn)結(jié)果表明,改進(jìn)后算法的檢測精度有明顯提升;不足之處:由于采用了更大的特征提取網(wǎng)絡(luò)ResNet50以及引入了特征融合模塊和注意力機(jī)制模塊,使得整體網(wǎng)絡(luò)結(jié)構(gòu)較大,檢測速度較原SSD網(wǎng)絡(luò)有所下降。未來的工作主要針對(duì)于模型簡化來展開,在保證精度的基礎(chǔ)上提高速度。