羅大為,方建軍,劉艷霞
(1.北京聯(lián)合大學(xué)北京市信息服務(wù)工程重點(diǎn)實(shí)驗(yàn)室,北京 100101;2.北京聯(lián)合大學(xué)城市軌道交通與物流學(xué)院,北京 100101)
在基于深度學(xué)習(xí)的目標(biāo)檢測工作中,融合不同尺度的特征是提高特征提取性能的一個重要手段[1].大尺度的特征一般指淺層特征,感受野小,分辨率高,包含更多位置、細(xì)節(jié)信息,但是由于經(jīng)過的卷積更少,其語義性更低,噪聲更多.小尺度的特征指深層特征,感受野大,全局特征豐富,具有更強(qiáng)的語義信息,但是分辨率很低,對細(xì)節(jié)的感知能力較差[2].因此,在目標(biāo)檢測中,將不同的特征進(jìn)行融合,以達(dá)到增強(qiáng)特征提取、優(yōu)化檢測模型的目的.
當(dāng)前流行的融合方式主要有Concat和Add.Concat是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中很重要的一種操作,經(jīng)常用于連接特征,它可以將多個卷積層的特征或者是將輸出層的信息進(jìn)行融合[3].Concat并不會改變每一個特征的信息,只會增加特征的數(shù)量,比如DenseNet[4]、ParseNet[5]、YOLOv3[6].Add操作則是信息之間的疊加.Add是增加提取的各個特征信息,但是并沒有增加特征的數(shù)量,比如Resnet[7]、FPN[8]、FCN[9].在一些研究中,通常把兩種方式混合使用.或者通過卷積和采樣操作將不同尺度特征進(jìn)行Add或Concat操作,比如CFENet[10].采用類似特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)的思想,對特征融合后進(jìn)行預(yù)測,但它們本質(zhì)都是對特征進(jìn)行Concat或者Add操作.
這些特征融合都是直接將輸入的特征進(jìn)行疊加或拼接,沒有充分考慮其對于模型性能存在的不同影響.不同的特征對于檢測結(jié)果應(yīng)該存在著不同的影響,有些特征對于檢測結(jié)果甚至是無用的或產(chǎn)生負(fù)面影響的.為了使模型增強(qiáng)有用特征的融合,本文設(shè)計(jì)了幾種基于注意力機(jī)制[11]的融合方式,并在Pascal VOC2007數(shù)據(jù)集[12]上進(jìn)行測試.
直接將兩個特征進(jìn)行融合不能很好地將有效特征利用起來,會引入一些無效甚至負(fù)面的特征,對實(shí)驗(yàn)結(jié)果造成影響.本文在特征融合部分加入了注意力機(jī)制,讓模型在訓(xùn)練過程中學(xué)習(xí)哪些要融合的特征更加重要,并增加它們的權(quán)重,如圖1所示,圖1中Cat表示Concat操作.
Add(a)Add示意圖(b) A-Add示意圖(c)B-Add示意圖Con-cat(d)Cat示意圖(e) A-Cat示意圖(f)B-Cat示意圖
Add操作本質(zhì)是對2個輸入特征相對應(yīng)的像素進(jìn)行數(shù)學(xué)相加,如圖1(a)所示.經(jīng)過Add操作后,特征圖的大小不變,通道數(shù)不變.對于輸入的兩路特征X和Y,Add操作可表示為
(1)
其中:兩路輸入的通道分別為X1,X2,…,Xcx和Y1,Y2,…,Ycy.用Cx表示輸入特征X的通道數(shù),Cy表示輸入特征Y的通道數(shù),*表示卷積.1c表示一個1×1×c的張量.經(jīng)過Add操作后,特征圖的通道數(shù)不變,為C=Cx=Cy.Add操作要求兩路輸入特征維度一樣,即wX=wY,hX=hY,且Cx=Cy.
Concat操作公式為
(2)
與Add不一樣,Concat其實(shí)相當(dāng)于將2個特征進(jìn)行拼接,特征圖的大小不變,通道數(shù)增加.經(jīng)過Concat操作后,特征圖的通道數(shù)為Cx+Cy.Concat的2個輸入要求w和h一致,即wX=wY,且hX=hY.在Concat操作中,Cx與Cy可以不相等.如圖1(d)所示.
本文設(shè)計(jì)的特征融合方式,主要是基于通道域的注意力機(jī)制,即對不同通道的特征進(jìn)行注意力加權(quán).基于通道域的注意力是通過一個Squeeze操作得到各通道特征的平均值,再經(jīng)過一個卷積層學(xué)習(xí)它們的權(quán)值,最后再加權(quán)到各通道中,如圖2所示.
圖2 通道域注意力結(jié)構(gòu)示意圖
Squeeze操作本質(zhì)就是全局均值池化,使得h×w×c的特征圖變?yōu)?×1×c的實(shí)數(shù)序列;Uc即特征,等價于Xc和Yc.公式為
(3)
學(xué)習(xí)各特征權(quán)重,W是一個1×1×c的卷積核,用于學(xué)習(xí)權(quán)重.對輸入特征進(jìn)行加權(quán),增強(qiáng)有用特征,公式為
Sc=Fscale(Uc,Zc,W)=Uc×(Zc*W).
(4)
在Add操作中引入Attention模塊來增強(qiáng)特征融合效果,具體實(shí)現(xiàn)的結(jié)構(gòu)與Concat類似,分別為A-Add和B-Add.
A-Add為:
(5)
其本質(zhì)是在Add操作之后加入一個Attention模塊,對Add操作之后的特征進(jìn)行注意力學(xué)習(xí),如圖1(b)所示.Add操作不改變特征維度,改變特征值,因此與Concat不同.
B-Add公式為:
(6)
與A-Add不同,B-Add在Add操作之前對2個不同的特征進(jìn)行Attention模塊,分別學(xué)習(xí)2個特征的權(quán)重,如圖1(c)所示.
在Concat操作中引入Attention模塊來增強(qiáng)特征融合效果,公式為:
(7)
把Attention引入Concat操作的結(jié)構(gòu)有2種,分別為A-Cat和B-Cat.A-Cat的具體實(shí)現(xiàn)如圖1(e)所示,在Concat操作之后加入一個Attention模塊,對融合之后的特征進(jìn)行注意力學(xué)習(xí),削弱不重要特征的影響.B-Cat則是在Concat操作之前對2個不同的特征進(jìn)行Attention模塊,分別學(xué)習(xí)2個特征的權(quán)重,并降低無效或壞特征的權(quán)重,如圖1(f)所示.
本文設(shè)計(jì)了相關(guān)實(shí)驗(yàn)對基于注意力機(jī)制的特征融合方法進(jìn)行驗(yàn)證和分析.
2.1.1 數(shù)據(jù)集
本文將在Pascal VOC2007數(shù)據(jù)集上進(jìn)行測試.該數(shù)據(jù)集是當(dāng)前最流行的目標(biāo)檢測數(shù)據(jù)集之一,包含9 963張標(biāo)注過的圖片,共標(biāo)注出24 640個物體,涉及行人、汽車、狗等20類目標(biāo).
2.1.2 測試網(wǎng)絡(luò)
基于注意力機(jī)制的特征融合方式將在YOLOv3-Tiny網(wǎng)絡(luò)上進(jìn)行測試.YOLOv3-Tiny是當(dāng)前最輕量的網(wǎng)絡(luò)模型之一,它的主干網(wǎng)絡(luò)僅有15層,結(jié)構(gòu)簡單,性能高效,是許多工程應(yīng)用中的選擇.在原始的YOLOv3-Tiny中,包含一個大尺度和中尺度的特征融合,本文將基于注意力機(jī)制的特征融合方法用于融合大尺度和中尺度特征,進(jìn)行對比實(shí)驗(yàn).YOLOv3-Tiny的結(jié)構(gòu)如圖3所示,圖3中Cat表示YOLOv3-Tiny采用Concat特征融合方式.
圖3 YOLOv3-Tiny結(jié)構(gòu)示意圖
2.1.3 實(shí)驗(yàn)環(huán)境
本文所有實(shí)驗(yàn)都在NVIDIA GTX1080Ti、16 GB內(nèi)存、Ubuntu16.04系統(tǒng)下進(jìn)行,采用darknet框架.
2.2.1 基于注意力的特征融合方式訓(xùn)練情況
各模型訓(xùn)練loss曲線如圖4所示.所有模型的在訓(xùn)練4 h后,迭代約8萬次時loss趨于平穩(wěn),表明模型收斂.采用Concat進(jìn)行融合的模型,loss收斂于0.617 1.采用A-Cat進(jìn)行融合的模型,loss收斂于0.658 1.B-Cat的loss最低,收斂于0.539 1.loss在一定程度上反應(yīng)模型的性能,從loss上看B-Cat收斂效果最好.
2.2.2 基于注意力的特征融合方式實(shí)驗(yàn)結(jié)果分析
Thresh設(shè)置為0.5時的四值分析如表1所示.從表1可知,4種基于注意力機(jī)制的特征融合模塊的Precision(P)相較于原來提高了1%~2%,Recall(R)并未收到明顯影響,F(xiàn)1-score(F1)獲得了提高,A-Cat的AIOU比原來提高了1.14%,且浮點(diǎn)運(yùn)算量并沒有顯著增加.由于模型的運(yùn)行速度會受到設(shè)備的性能影響,因此采用模型的浮點(diǎn)運(yùn)算量作為模型效率衡量標(biāo)準(zhǔn),如表2 所示.
圖4 訓(xùn)練loss曲線圖
表1 基于注意力的特征融合算法性能分析
表2 基于注意力的特征融合算法復(fù)雜度與準(zhǔn)確度分析
A-Cat的mAP比原Concat提高了0.76%.B-Cat的AIOU比原來僅提高0.34%,浮點(diǎn)運(yùn)算量增加了0.001,但mAP提高了1.49%.Add操作中,A-Add和B-Add在P,R和F1中沒有帶來提升,甚至在AIOU中略微出現(xiàn)下降,但從mAP中可看出,注意力機(jī)制仍發(fā)揮作用.
對于4種特征融合結(jié)構(gòu)在VOC2007數(shù)據(jù)集上20個種類目標(biāo)的AP分析如表3所示.A-Cat比原Concat的mAP提高了0.76%,B-Cat比原Concat的mAP提高了1.49%.A-Cat在Diningtable和Pottledplant等復(fù)雜目標(biāo)的AP值相較于原來的Concat操作略有下降,但是在其他目標(biāo),如Aeroplane、Bicycle、Bird和Boat等有很大的提升.而B-Cat在各類中均有顯著提高,且提升幅度大于A-Cat.
表3 Pascal VOC2007上各類目標(biāo)的AP分析%
Add操作的檢測性能在Pascal VOC2007數(shù)據(jù)集上的表現(xiàn)遠(yuǎn)不如Concat.經(jīng)過實(shí)驗(yàn)分析,本文認(rèn)為Add操作直接將2個不同的特征進(jìn)行數(shù)學(xué)相加,這有可能會破壞或損失部分提取的特征,因此它的mAP普遍低于Concat操作.但引入注意力的Add操作性能得到了提升,如A-Add比原Add的mAP提高了0.34%,B-Add比原Add的mAP提高了1.14%.A-Add對于Aeroplane和Diningtable等大尺度目標(biāo)的檢測性能出現(xiàn)了下降,但對于Bird和Boat則提升明顯.A-Add的mAP在各類目標(biāo)上AP分析均出現(xiàn)大幅提升.
從上述實(shí)驗(yàn)結(jié)果可知,4種基于注意力機(jī)制的特征融合方式都得到了不同程度的提升,但就特征融合而言,B-Cat所展現(xiàn)的效果最佳,基于Concat操作的融合方式普遍比基于Add操作的方法效果好.
本文基于注意力機(jī)制,并設(shè)計(jì)了4種可學(xué)習(xí)的特征融合模塊,它們可以在模型訓(xùn)練中學(xué)習(xí)如何將有效特征進(jìn)行加權(quán)融合,提升特征融合的效率,進(jìn)而提升目標(biāo)檢測模型的性能.通過YOLOv3-Tiny在Pascal VOC2007數(shù)據(jù)集上的實(shí)驗(yàn),基于注意力機(jī)制的特征融合模塊比直接進(jìn)行特征融合的方式最高可提升1.49%,證明該方法的有效性.基于注意力機(jī)制的特征融合可用于提升多尺度特征融合、高底層特征融合等,為深度神經(jīng)網(wǎng)絡(luò)中多特征融合的設(shè)計(jì)和構(gòu)建提供了思路和理論基礎(chǔ).