湯彩蕓,張孫杰,裴自強
1(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)2(華中科技大學(xué) 人工智能與自動化學(xué)院,武漢 430074)
E-mail:15656230962@163.com
目標(biāo)檢測是計算機視覺領(lǐng)域最基本的任務(wù)之一.現(xiàn)在,大多算法都基于深度學(xué)習(xí)[1-3],按照訓(xùn)練方式可將目標(biāo)檢測分為兩個分支,一種是以Fast R-CNN[4]為代表的二階檢測器,包括RCNN[5,6],F(xiàn)aster-RCNN[7],SPPNet[8]等.另一種是以YOLO[9]為代表的一階檢測器,包括SSD[10],RetinaNet[11]等.一般來說,一階檢測器速度快,但是檢測精度沒有二階檢測器表現(xiàn)得好.雖然,檢測器的精度和速度都提升到一定高度了,但是多尺度檢測[12]仍然是目標(biāo)檢測需要攻克的難題之一.針對此問題,基于特征金字塔的算法[13]被提出.金字塔的深層特征語義表現(xiàn)能力強,而底層特征分辨率高,因此定位精度高.根據(jù)這一特性,很多檢測器都旨在建立具有強語義信息的精細分辨率特征,比如RCNN系列的Libra RCNN[14]在特征圖上進行rescale,integrate,refine以進一步融合特征信息,最后再和原特征相加,增加特征表示;YOLO的v2,v3[15,16]系列添加一個轉(zhuǎn)移層把淺層特征連接到深層特征圖里;SSD系列的變體[17-20],通過不同上采樣手段等操作融合高層信息到底層.
本文中,為解決多尺度問題,受到ASSD[21]啟發(fā),我們在檢測器中引入注意力模塊,旨在為特征圖提供更易學(xué)習(xí)的特征.在識別物體時,人類視覺系統(tǒng)會第一時間關(guān)注到感興趣的物體,并自動忽略沒用的信息.神經(jīng)網(wǎng)絡(luò)中用到的注意力機制就為達到人類視覺相同的效果.本文主要貢獻如下:1)從人類視覺注意力出發(fā),本文設(shè)計一種結(jié)合空間和通道的注意力模塊,這個模塊可以學(xué)習(xí)到全局信息,進而生成注意力圖可以作為檢測的一種指引;2)跟其他檢測算法相比,我們所提出的檢測算法大幅改進DSSD算法,在僅犧牲一點速度的情況下性能得到顯著提升.
R-CNN[5,6]開創(chuàng)式地把深度學(xué)習(xí)應(yīng)用到目標(biāo)檢測中.隨后Fast R-CNN[4]和SPP-Net[8]在R-CNN[5,6]的基礎(chǔ)上引入?yún)^(qū)域特征提取,提取每個候選區(qū)域的RoI(Region of Interest),經(jīng)過池化等操作后得到固定大小的特征圖用以檢測.Faster R-CNN[7],設(shè)計了RPN網(wǎng)絡(luò)代替費時的SS(Selective Search)方法,將特征提取,推薦區(qū)域提取,分類回歸整合到一個網(wǎng)絡(luò)中,使得檢測速度大幅提升.直到現(xiàn)在,F(xiàn)aster R-CNN[7]都被廣泛運用[22],近幾年提出的Cascade R-CNN[23]和Libra R-CNN[14]等都是基于這種思想.
YOLO[9]作為首個一階檢測器,提出將整張圖片作為網(wǎng)絡(luò)輸入,直接在輸出層回歸包圍框的位置及所屬類別,從而加速網(wǎng)絡(luò)檢測.其V2、V3[15,16]版本去掉全連接層,加以使用分類網(wǎng)絡(luò)darknet等,使其檢測性能達到巔峰.SSD[10]提出利用多個尺度特征圖用以檢測,保證了目標(biāo)定位精準(zhǔn),但對小目標(biāo)物體來說,由于底層特征缺少語義信息,精確定位的同時很難達到分類精準(zhǔn).針對這類問題,之后的DSSD[24]、FSSD[25]、ESSD[26]都提出在網(wǎng)絡(luò)中引入特征融合模塊,加強特征表示.圖1是基于SSD[10]的各種網(wǎng)絡(luò)結(jié)構(gòu)圖,其中(a)SSD,(b)DSSD,(c)FSSD,(d)ESSD,(f)DSSDA(本文).
圖1 SSD檢測器的各種變體Fig.1 Various variations of the SSD detectors
人類特有一種視覺信號處理機制,在掃描圖像后,獲得注意力焦點,人類視覺系統(tǒng)會對這一焦點區(qū)域投入更多的注意力資源,從而獲取該目標(biāo)的細節(jié)信息,并且抑制其他無用信息.深度學(xué)習(xí)領(lǐng)域首次應(yīng)用注意力機制解決機器翻譯[27,28]問題.之后,Dzmitry Bahdanau等人[29,30]在這個領(lǐng)域更深入的應(yīng)用注意力機制.現(xiàn)在,注意力機制廣泛應(yīng)用于多種視覺任務(wù)中,比如多標(biāo)簽圖像分類問題[31];多任務(wù)學(xué)習(xí)[32]提出每個任務(wù)學(xué)習(xí)一個attention作為特征選擇器,從而選擇與該任務(wù)相關(guān)的特征;跨模態(tài)分割任務(wù)中,L.Ye等人[33]設(shè)計了跨模態(tài)的self attention機制.由此可見,注意力機制的應(yīng)用場景十分廣泛[34].
本文提出的帶有注意力模塊的反卷積一階檢測器的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示,其中,卷積層(1-5)來自ResNet_101主干網(wǎng)絡(luò),其他特征層設(shè)置和DSSD一致.原始的SSD為解決多尺度問題,采用了在多個尺度特征圖上預(yù)測的方案,但是淺層特征相對深層特征來說缺少語義信息,因此小目標(biāo)檢測存在一定難度.相對的,對大目標(biāo)物體來說,定位不夠精準(zhǔn).本文為解決這些問題,采用DSSD的模型,依次融合高低層特征以加強語義表征并在此基礎(chǔ)上嵌入注意力模塊,以加強網(wǎng)絡(luò)表示.具體措施如下:采用ResNet_101(conv1-conv5_x)作為主干網(wǎng)絡(luò),后面連接的特征金字塔(conv6_x-conv9_x)和原始DSSD設(shè)置相同,但為了簡化計算,省去了原始DSSD最后一個上采樣過程.受到ASSD的啟發(fā),在預(yù)測前加入attention模塊,可以幫助檢測器更好地捕捉到需要關(guān)注的區(qū)域,抑制沒有意義的區(qū)域.Attention模塊位于特征圖和預(yù)測模塊之間,這樣可以更好地利用特征信息.表1是網(wǎng)絡(luò)選取特征圖,輸入圖片大小是320pixel320pixel,深度代表選用特征層在網(wǎng)絡(luò)中的位置.
圖2 DSSDA網(wǎng)絡(luò)架構(gòu)圖Fig.2 Overall architecture of our DSSDA object detector
表1 ResNet_101主干網(wǎng)絡(luò)中選取的特征圖Table 1 Selected feature layers in ResNet_101 backbone
特征融合的目的是建立高分辨率強語義信息的特征.本文采用可學(xué)習(xí)反卷積模塊對各個深層特征層做上采樣,然后把兩種特征做點乘融合信息,這個過程和DSSD的融合類似.整個特征融合模塊如圖3所示.具體做法是:網(wǎng)絡(luò)中的深層特征做反卷積上采樣到前一個特征同樣分辨率,為了防止混疊效應(yīng),在反卷積后面再做一次卷積和批標(biāo)準(zhǔn)化操作.而淺層特征經(jīng)過兩次3×3的卷積之后,和上采樣的深層特征做點乘,融合后的信息再經(jīng)過ReLU激活函數(shù)后得到最終預(yù)測用的特征圖.
圖3 帶有反卷積的特征融合模塊Fig.3 Feature fusion with deconvolution
整個注意力模塊包括通道和空間兩個子模塊,嵌入在每個預(yù)測模塊前,用于加強特征表示,結(jié)構(gòu)如圖4所示.送入注意力模塊的特征圖F∈RC×W×H,由兩個子模塊分別生成1D的通道注意力圖F1∈RC×1×1和2D的空間注意力圖F2∈R1×W×H,最終這兩個子圖經(jīng)過點乘操作得到用以預(yù)測的特征圖.整個運算過程如式(1)所示:
F′=F2⊙F1⊙F
(1)
其中⊙代表逐元素相乘,F(xiàn)′是最終調(diào)整好用以預(yù)測的特征圖.接下來詳細介紹兩個子模塊.
圖4 注意力模塊結(jié)構(gòu)圖Fig.4 Attention module structure
3.2.1 通道注意力模塊
Jie Hu et al[35]提出的Squeeze-and-Excitation模塊使用全局平均池化計算通道維度注意力.Sanghyun Woo[36,37]提出CBAM,BAM指出最大池化可以收集通道間的其他重要特征,通道模塊利用最大池化和平均池化共同作用,可以很大程度上提升網(wǎng)絡(luò)性能.我們受到這些思想的啟發(fā),同樣采用兩種池化并用的方式處理通道注意力.具體做法如下:
首先壓縮空間維度,對特征圖分別做平均池化和最大池化,得到融合不同空間信息的通道特征.設(shè)計一種共享參數(shù)的卷積網(wǎng)絡(luò),分別將兩個特征圖送入卷積層,可以進一步調(diào)整融合后的特征.再把這兩個通道特征相加后送入ReLU激活函數(shù),得到最終通道特征圖F1∈RC×1×1.這種設(shè)計不僅考慮了不同情況下的空間信息融合,而且卷積層的設(shè)計可以加強通道間的注意力表示.公式(2)代表了計算過程.
(2)
3.2.2 空間注意力模塊
空間注意力分支會生成一個2D空間注意力圖F2∈R1×W×H,用來強化或者抑制不同空間位置的特征信息.和通道注意力模塊一樣,空間注意力模塊也同時使用最大池化和平均池化.送入空間注意力模塊的是原始特征圖與通道注意力圖的融合結(jié)果,經(jīng)過兩種池化后分別得到兩個融合通道信息的2D特征圖.這兩個特征圖以兩種方式獲取通道維度的特征信息,之后再進行concat連接和卷積操作,最終得到可以確定目標(biāo)位置的空間注意力圖.整個計算過程可以表示成公式(3):
F2=σ(f3×3(AvgPool(F⊙F1);MaxPool(F⊙F1)))
(3)
其中σ是sigmoid激活函數(shù).f3×3是卷積核為3×3的卷積操作.
本文所提出觀點均經(jīng)實驗驗證其有效性,實驗基于Pytorch深度學(xué)習(xí)框架,在兩個顯存為8G的NVIDIA GTX1080 GPU上訓(xùn)練.主干網(wǎng)絡(luò)Resnet_101采用在ImageNet預(yù)訓(xùn)練的權(quán)重.實驗采用Stochastic Gradient Descent(SGD)優(yōu)化器,動量為0.9,初始學(xué)習(xí)率是0.001,權(quán)重衰減率為0.0005.本文提出網(wǎng)絡(luò)架構(gòu)分別在兩個公共數(shù)據(jù)集PASCAL VOC和MS COCO上訓(xùn)練和驗證網(wǎng)絡(luò)的有效性.
實驗用了兩種分辨率的圖片作為輸入,分別是320pixel×320pixel和512pixel×512pixel.和SSD一樣,我們對圖片也做了翻轉(zhuǎn),鏡像等數(shù)據(jù)增強操作,采用DSSD的縱橫比設(shè)置,每個用以預(yù)測的特征圖每個像素位置都設(shè)置8個先驗框,縱橫比為[1.6,2,3].網(wǎng)絡(luò)最終的預(yù)測框通過非極大值抑制來解決多框重疊的問題.實驗中采用難例挖掘處理正負樣本不平衡的問題,損失函數(shù)和DSSD一樣.
我們在VOC 07+12 trainval用兩塊顯存8G的NVIDIA GTX1080 GPU訓(xùn)練DSSDA.DSSDA320 batch size是10,共訓(xùn)練120k輪;DSSDA512 batch size是6,共訓(xùn)練120k輪.訓(xùn)練時在第80k和100k輪的時候?qū)W習(xí)率從原始的0.001降低到0.0001和0.00001.模型在VOC 2007 test上的測試結(jié)果如表2所示.和其他的檢測器相比,DSSDA的mAP沒有特別大的漲幅,但是具體類別有很大提高,比如船(5.4%),自行車(1%)等.根據(jù)我們分析,這是注意力模塊在特征圖上聚焦了某些難以識別或定位的物體,對檢測器性能提升起到了積極作用.圖5是在VOC測試集上選取的部分結(jié)果圖,其中第1-第3行分別代表輸入原始圖片、DSSD檢測結(jié)果圖以及DSSDA檢測結(jié)果圖.由圖5前4列可知,和原始的DSSD相比,DSSDA能檢測到很多DSSD無法檢測的目標(biāo),并且在某些類別的定位定位更精準(zhǔn);最后一列是二者置信度的比較,在定位相同的情況下,DSSDA具有更高的置信度.綜上分析可知,相較DSSD,本文所提DSSDA算法在定位和分類精度都有很大提升.
圖5 DSSDA和DSSD檢測結(jié)果對比圖(VOC)Fig.5 DSSDA vs DSSD on VOC
相對PASCAL VOC數(shù)據(jù)集來說,MS COCO數(shù)據(jù)集包含更多種類的物體(80類),也有更多的生活場景,在目標(biāo)檢測領(lǐng)域,MS COCO數(shù)據(jù)集的檢測難度大.我們在COCO 2017 train數(shù)據(jù)集上訓(xùn)練DSSDA,驗證在COCO 2017 val進行.總共訓(xùn)練400k輪,前280k輪以初試學(xué)習(xí)率0.001訓(xùn)練,之后在360k輪學(xué)習(xí)率為0.0001,直到訓(xùn)練結(jié)束.實驗中,DSSDA320的batch size是8,DSSDA512的batch size是4.在MS COCO數(shù)據(jù)集上的測試結(jié)果如表3所示.表中結(jié)果表明相對其他檢測器來說,DSSDA在檢測精度上并沒有太大提升.分析原因可能是由于為了減少計算量在這部分省去了最后一個特征圖,并且沒有上采樣,因此檢測器的特征提取部分少了更深層的語義信息及大目標(biāo)位置信息.導(dǎo)致最終檢測結(jié)果不盡如人意.
圖6 DSSDA和DSSD檢測結(jié)果對比圖(COCO)Fig.6 DSSDA vs DSSD on COCO
圖6是DSSDA和DSSD在COCO2017測試集上的部分結(jié)果圖,其中第1-第3行分別代表輸入原始圖片、DSSD檢測結(jié)果圖以及DSSDA檢測結(jié)果圖.由圖6前4列可以看出,相對DSSD來說,融合注意力機制的檢測器更能把“目光”鎖定在一些容易被忽略的物體上(無論大小目標(biāo)),因此可以定位到被DSSD忽略的目標(biāo);而圖6最后一列表明在COCO數(shù)據(jù)集上DSSDA可以做到同樣定位的情況下分類置信度更高.
表2 PASCAL VOC 2012測試結(jié)果Table 2 PASCAL VOC 2012 test detection results
表3 COCO測試結(jié)果Table 3 COCO test-dev detection results
實驗中,考慮多種嵌入注意力模塊的方式,包括空間注意力模塊的組合,嵌入方式等.考慮了僅使用空間注意力,以及合并兩種注意力,并對其嵌入位置進行研究.幾種實驗設(shè)置分別是反卷積+結(jié)合通道和空間的注意力模塊,反卷積后嵌入空間注意力模塊,空間注意力模塊嵌入在反卷積前.在PASCAL VOC數(shù)據(jù)集上進行實驗證實空間注意力和通道注意力并用的方式最佳.注意力模塊和特征融合位置分析是出于注意力模塊對加強融合前后特征強化作用力度的考慮.表4是幾種方式的比較結(jié)果,其中,運行時間是在單張NVIDIA GTX1080 GPU上計算的.由表4可以看出,在本文所提出的網(wǎng)絡(luò)架構(gòu)中,注意力模塊對融合后的特征更具有表征力.
表4 注意力模塊嵌入方式的比較(VOC)Table 4 Ablation study on PASCAL VOC2007 test dataset
本文設(shè)計了一種新的檢測算法,帶有注意力模塊的反卷積一階檢測器,簡稱為DSSDA.其具體實現(xiàn)方案是在原有DSSD模型經(jīng)反卷積融合特征后,再在每一個融合過的特征層后嵌入注意力模塊.利用注意力模塊可以把“注意”放在重點目標(biāo)并抑制無用信息的特點,來提升網(wǎng)絡(luò)對多尺度目標(biāo)檢測的準(zhǔn)確率.注意力模塊和檢測器結(jié)合,分別從通道和空間來獲取目標(biāo)的內(nèi)容和位置,可以有效提升檢測器的分類和定位性能.分析VOC和COCO數(shù)據(jù)集,可以發(fā)現(xiàn)人、車、船等類別容易產(chǎn)生多尺度問題,即不同圖片中同一目標(biāo)尺度變化較大.而融合了注意力模塊的檢測器可以提高目標(biāo)定位精度,因此一定程度上解決了多尺度檢測的問題.在PASCAL VOC和MS COCO數(shù)據(jù)集上所做的大量實驗驗證了本文所提新型檢測器的有效性.此外根據(jù)所做的消融實驗,證實了文章所用連接方式效果最好.