董瀟瀟,何小海,吳曉紅,卿粼波,滕奇志
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
目標(biāo)檢測是結(jié)合了目標(biāo)定位和識別2個任務(wù)的一項基礎(chǔ)性計算機(jī)視覺任務(wù),它的目的是在圖像的復(fù)雜背景中找出若干目標(biāo),給出一個精確的目標(biāo)邊框(Bounding box),并判斷該邊框中目標(biāo)所屬的類別[1]。目標(biāo)檢測在人工智能和信息技術(shù)的諸多領(lǐng)域如機(jī)器人視覺、消費電子、自動駕駛、人機(jī)交互、基于內(nèi)容的圖像檢索、智能視頻監(jiān)控[2-3]等有著廣泛的應(yīng)用。
目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩類,一是單階段方法,二是兩階段方法。兩階段方法將檢測問題劃分為兩個過程,首先產(chǎn)生區(qū)域建議(Region proposals),然后對候選區(qū)域進(jìn)行分類和邊界框回歸,這類算法的典型代表是基于區(qū)域建議的R-CNN系列算法,如R-CNN[4]、SPPNet[5]、Fast R-CNN[6]、Faster R-CNN[7]、Mask R-CNN[8]等。一階段方法采用基于回歸的思想,跳過區(qū)域建議階段,直接產(chǎn)生物體的類別概率和位置坐標(biāo)值,經(jīng)過單次檢測即可得出最終的檢測結(jié)果,故在檢測速度上有更好的結(jié)果,其代表性算法有:YOLO[9]、SSD[10]、Focal Loss[11]等。SSD結(jié)合了YOLO中的回歸思想和Faster-RCNN中的Anchor機(jī)制,使用多尺度的特征圖譜進(jìn)行回歸,既保持了YOLO速度快的特性,也保證了Faster-RCNN精度高的優(yōu)點。隨后為了進(jìn)一步提高SSD的精度和對小目標(biāo)的檢測能力,各種不同的方法被提出來。Fu等[12]為了提高淺層特征的表征能力,將基礎(chǔ)網(wǎng)絡(luò)由VGG替換為ResNet,并借助反卷積模塊以增加各層之間的上下文信息,提高了對小目標(biāo)的檢測能力,但是速度相對于SSD卻大幅下降。Liu等[13]從人類視覺的感受野結(jié)構(gòu)出發(fā),提出了感受野模塊(RFB),通過構(gòu)建多分支卷積層和隨后的空洞卷積層以加強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)到的深層特征。Zhang等[14]綜合一階段和兩階段目標(biāo)檢測的技巧,一方面引入兩階段中對包圍框由粗到細(xì)的思想,一方面結(jié)合特征融合用于檢測網(wǎng)絡(luò),取得了很好的效果。Liang等[15]利用多層卷積特征進(jìn)行目標(biāo)檢測,其中利用淺層卷積特征實現(xiàn)目標(biāo)定位,利用深層卷積特征實現(xiàn)目標(biāo)識別,以充分發(fā)揮各層卷積特征的作用。
近年來,注意力機(jī)制在計算機(jī)視覺中的應(yīng)用逐漸增加?,F(xiàn)有的視覺注意模型可分為軟注意模型和強(qiáng)注意模型。軟注意模型以確定性的方式預(yù)測注意區(qū)域,由于它是可微的,故可以使用反向傳播進(jìn)行訓(xùn)練[16],讓神經(jīng)網(wǎng)絡(luò)學(xué)到每一張新圖片中需要關(guān)注的區(qū)域,因而形成了注意力。強(qiáng)注意模型隨機(jī)預(yù)測圖像的注意點,通常通過強(qiáng)化學(xué)習(xí)或最大化近似變分下界來訓(xùn)練。一般來說,軟注意模型比強(qiáng)注意模型更有效,因為強(qiáng)注意模型需要抽樣進(jìn)行訓(xùn)練,而軟注意模型可以進(jìn)行端到端訓(xùn)練。Hu等[17]設(shè)計了目標(biāo)關(guān)系模塊,其注意力權(quán)重主要由外觀特征權(quán)重和空間權(quán)重組成,通過聯(lián)合其他目標(biāo)的信息從而允許對它們之間的關(guān)系進(jìn)行建模。Wang等[18]提出了一種基于Attention的殘差學(xué)習(xí)方式,設(shè)計了一種可堆疊的網(wǎng)絡(luò)結(jié)構(gòu),并從可堆疊的基本模塊中引入了注意力機(jī)制,不同的注意力特征圖譜可以捕捉到不同類型的注意力。Hu等[19]重點關(guān)注通道關(guān)系,顯示地建模特征通道之間的依賴關(guān)系,自適應(yīng)地重新校準(zhǔn)通道特征響應(yīng),從而增強(qiáng)有用的特征而抑制冗余特征。綜上,為了讓目標(biāo)檢測重點關(guān)注有效信息,本文將注意力模型融入到目標(biāo)檢測中去,在SSD和RefineDet基礎(chǔ)上提出了基于注意力掩模融合的改進(jìn)的特征金字塔算法,主要用于改進(jìn)當(dāng)前目標(biāo)檢測算法缺乏視覺注意力信息的缺點。實驗結(jié)果表明,本文算法進(jìn)一步改進(jìn)了目標(biāo)檢測的精度,同時也能保持高效的速度。
RefineDet的損失函數(shù)主要包含ARM和ODM兩方面。ARM包含二進(jìn)制分類損失Lb和回歸損失Lr,ODM包含多類別分類損失Lm和回歸損失Lr,ARM和ODM兩部分的損失函數(shù)一起前向傳播,損失函數(shù)如下:
(1)
圖1 RefineDet網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network of RefineDet
算法的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。以輸入尺寸為320×320的圖像為例:
(1)使用基準(zhǔn)網(wǎng)絡(luò)VGG16[20]提取特征,經(jīng)過卷積操作和6次下采樣操作后,得到多尺度的卷積特征層。
(2)使用基本的卷積層conv4_3,conv5_3,fc7以及conv6_2進(jìn)行初步的二分類和包圍框回歸操作,以得到預(yù)選框,減少負(fù)樣本搜索。
(3)將注意力掩模模塊Attention Mask Module(AMM)和特征金字塔結(jié)構(gòu)結(jié)合起來,即將頂層特征同底層特征融合后,再輔之以注意力信息AMM,得到更加有效的特征P1,P2,P3,P4。
(4)最后將上述特征直接用于多分類和回歸操作,不斷訓(xùn)練迭代模型,得到最終的檢測結(jié)果。
圖2 本文算法網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network of proposed algorithm
觀察一幅圖片時,人腦并不均衡地關(guān)注整幅圖片,而是帶有一定權(quán)重分布的。對于深度學(xué)習(xí)中的目標(biāo)檢測任務(wù)而言,想要檢測出相關(guān)的人或者特定物體,將其與背景天空等區(qū)分開來,同樣需要有一定的選擇性側(cè)重。為此,引入文獻(xiàn)[18]中的注意力模型,將原本的殘差結(jié)構(gòu)改為基本的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并去除了一些卷積層,以便更加適應(yīng)本文的網(wǎng)絡(luò)訓(xùn)練。
注意力掩模模塊(AMM)的結(jié)構(gòu)圖如圖3所示。在本文中,使用基本的卷積函數(shù)(conv),激活函數(shù)(relu)和池化函數(shù)(pool)來構(gòu)建基本網(wǎng)絡(luò)。每個注意力掩模模塊分為兩個分支:掩模分支和主干分支。給定輸入x,主干分支經(jīng)過卷積后得到輸出G(x),掩模分支經(jīng)過卷積和反卷積操作得到相同尺寸的輸出M(x)。掩模分支中,首先經(jīng)過兩次conv,relu,pool操作,然后經(jīng)過兩次deconv操作得到特征圖譜S(x),最后經(jīng)過sigmoid函數(shù)得到輸出的掩模:
在選取特征點匹配的算法時要考慮與其搭配的特征點提取算法,使用特征提取過程得到的特征描述符(DESCRIPTOR)數(shù)據(jù)類型有的是FLOAT類型的,比如說:SURF,SIFT,有的是UCHAR類型的,比如說有ORB,BRIEF。對應(yīng)FLOAT類型的匹配方式有:FLANNBASEDMATCHER,BRUTEFORCE等。對應(yīng)UCHAR類型的匹配方式有:BRUTEFORCE。所以O(shè)RB特征描述子只能使用BRUTEFORCE匹配法。另外還有一種相對于更加傳統(tǒng)的SURF+FLANN的方法。
(2)
圖3 注意力掩模模塊Fig.3 Attention mask module
輸出掩模類似于Highway Network[21]中的門控單元,控制著主干分支的神經(jīng)元,可以自適應(yīng)地學(xué)習(xí)到有效的特征并且抑制噪聲。主干分支中,經(jīng)過兩次conv函數(shù)得到主干輸出。最后輸出的注意力模型P(x)公式如下所示:
Pi,c(x)=(1+Mi,c(x))*Gi,c(x),
(3)
式中:i代表神經(jīng)元的空間位置,c代表神經(jīng)元的通道位置。類似于殘差網(wǎng)絡(luò)中的恒等映射,M(x)的輸出范圍為[0,1],當(dāng)M(x)接近0時,P(x)的輸出接近原始的特征G(x)。
在注意力掩模模塊中,注意力掩模不僅在前向傳播中充當(dāng)特征選擇器,在反向傳播中也能進(jìn)行梯度更新。特征掩模的梯度如下所示:
(4)
其中:θ是掩模分支參數(shù),φ是主干分支參數(shù)。
SSD網(wǎng)絡(luò)雖然取得了較好的效果,但由于其只在若干個特征圖譜上進(jìn)行檢測,并沒有結(jié)合不同尺寸的特征,導(dǎo)致低層的特征圖譜缺乏語義信息,這樣不利于小目標(biāo)的檢測。而RefineDet網(wǎng)絡(luò)采取側(cè)邊連接的方法,將高層語義信息同低層定位信息融合在一起,可以進(jìn)行多種尺度的檢測,仍然缺乏注意力信息。本文提出了融合不同特征圖譜與注意力掩模的結(jié)構(gòu),不僅能進(jìn)行多尺度檢測,還可以結(jié)合注意力模型關(guān)注感興趣區(qū)域,從而有效地檢測出所有尺度物體。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 特征金字塔融合結(jié)構(gòu)Fig.4 Feature pyramid fusion structure
輸入的特征圖譜為(H×W×C),其中H和W代表高和寬,C代表通道的個數(shù)。對于底部特征L1,首先經(jīng)過3×3的卷積層進(jìn)行特征降維,將維度從512降到256,對于檢測特征P2,經(jīng)過2×2的反卷積操作,在擴(kuò)大特征圖譜同時也進(jìn)行了降維的操作,得到的輸出為(40×40×256);然后將上述輸出進(jìn)行eltwise sum操作,得到融合后的特征圖譜T1亦為(40×40×256);最后將注意力掩模模塊同T1融合以增加注意力信息,經(jīng)過Relu層后得到的檢測特征P1可應(yīng)用于檢測系統(tǒng)。
若圖片中存在多種尺度的目標(biāo),低層的特征如P1和P2可以用來檢測小目標(biāo),而高層的特征如P3和P4具有更大的感受野,負(fù)責(zé)檢測大目標(biāo)。
本次實驗在以下兩個公開數(shù)據(jù)集中開展:PASCAL VOC[22]2007和PASCAL VOC 2012。PASCAL VOC數(shù)據(jù)集包含20類物體,包括飛機(jī)、自行車、鳥等。本文的實驗平臺為:Ubuntu 16.04.5,Nvidia GTX 1080Ti GPU,Intel(R)Xeon(R)CPU E5-2686。采用的深度學(xué)習(xí)框架為Caffe,采用的精度評價指標(biāo)為mAP(Mean average precision),速度評價指標(biāo)為fps(Frames per second)。
VOC2007數(shù)據(jù)集的訓(xùn)練集有5 011張,測試集有4 952張。本次實驗在VOC2007 trainval和VOC2012 trainval上進(jìn)行訓(xùn)練,在VOC2007 test數(shù)據(jù)集上測試。所有的方法在VGG16基準(zhǔn)網(wǎng)絡(luò)中進(jìn)行預(yù)訓(xùn)練。如圖2所示,使用conv4,conv5,fc7以及新增的conv6層進(jìn)行定位和置信度的預(yù)測。使用Multistep方式來調(diào)整學(xué)習(xí)率,即在前80k次迭代中學(xué)習(xí)率設(shè)置為10-2,隨后20k和40k次迭代中學(xué)習(xí)率分別設(shè)置為10-3和10-4。輸入圖片尺寸為320×320時,訓(xùn)練時batch size設(shè)置為16,GPU數(shù)量為1;當(dāng)圖片尺寸為512×512時,由于一塊GPU顯存不夠,故采用兩塊GPU進(jìn)行聯(lián)合訓(xùn)練。測試時batch size設(shè)置為1。
表1 不同算法在VOC2007和VOC2012數(shù)據(jù)集上的測試結(jié)果Tab.1 Test results of different algorithms on VOC2007 and VOC2012 datasets
續(xù) 表
表2 不同算法在VOC2007數(shù)據(jù)集上20類別的AP比較Tab.2 AP comparison of 20 categoriesfor different algorithms on VOC2007 dataset
如表1所示,將本文的算法與其他主流的目標(biāo)檢測算法進(jìn)行對比。對于320×320的輸入,mAP達(dá)到了81%,與RefineDet 320相比提高了1%,與SSD相比提高了6.7%。由于本文測試所使用的GPU不同于RefineDet,故將RefineDet中在VOC07+12數(shù)據(jù)集上訓(xùn)練的320×320的模型在1080Ti上進(jìn)行測試,觀察得到,本文算法的速度同其相比降低了18.4%。在速度和精度的均衡下,本文算法仍能取得較好的效果。對于512×512的輸入,mAP為82.2%,比RefineDet的精度提高了0.4%,這也證明了本文算法的有效性。同精度更高的基于區(qū)域的目標(biāo)檢測方法進(jìn)行比較,可以看到,本文算法在尺寸小于CoupleNet的情況下,mAP幾乎能夠達(dá)到CoupleNet的效果。
表2中列舉出各類算法中20類目標(biāo)的AP(Average precision),可以看到大部分類別的平均精度都有提升。
VOC2012數(shù)據(jù)集的訓(xùn)練集有11 540張,測試集有10 991張。本次實驗在VOC2007 trainval和VOC2012 trainval上進(jìn)行訓(xùn)練,在VOC2012 test數(shù)據(jù)集上測試。使用Multistep方式來調(diào)整學(xué)習(xí)率,即在前160k次迭代中學(xué)習(xí)率設(shè)置為10-2,隨后40k和80k次迭代中學(xué)習(xí)率分別設(shè)置為10-3和10-4。對于320×320和512×512的輸入,訓(xùn)練的batch size設(shè)置為16,并且使用兩塊GPU進(jìn)行訓(xùn)練。其余實驗設(shè)定和4.1中相同。
如表1所示,Proposed320 mAP為79.0%,與RefineDet 320相比提高了0.9%,與SSD相比提高了6.6%。同二階段方法相比,本文算法比精度最高的CoupleNet低了1.4%。Proposed512 mAP為80.8%,與RefineDet 320相比提高了0.7%,且精度超過了CoupleNet,為所提算法中最高的。
圖5給出了本文算法模型在VOC2007和VOC2012數(shù)據(jù)集上的具體測試結(jié)果。
圖5 VOC2007和VOC2012數(shù)據(jù)集的測試結(jié)果。(a)VOC2007測試結(jié)果,強(qiáng)調(diào)檢測的多尺度效果;(b)VOC2007測試結(jié)果,重點檢測小目標(biāo);(c)VOC2012測試結(jié)果,強(qiáng)調(diào)檢測的多尺度效果;(d)VOC2012測試結(jié)果,重點檢測小目標(biāo)。Fig.5 Test result on VOC2007 and VOC2012 dataset.(a)Test result on VOC2007,emphasizing the multiscale effect of detection;(b)Test result on VOC2007,focusing on small targets;(c)Test result on VOC2012,emphasizing the multiscale effect of detection;(d)Test result on VOC2012,focusing on small targets.
本文提出了一種基于注意力掩模融合的目標(biāo)檢測算法,通過神經(jīng)網(wǎng)絡(luò)提取特征得到多尺度卷積特征圖譜,初步進(jìn)行二分類和回歸,在特征金字塔結(jié)構(gòu)中結(jié)合注意力掩模模塊進(jìn)行多尺度的檢測。實驗結(jié)果證明:對于320×320的圖片輸入,本文算法在VOC2007和VOC2012數(shù)據(jù)集上達(dá)到了81.0%mAP和79.0%mAP,檢測速度為60.9 fps;對于512×512的圖片輸入,本文算法在VOC2007和VOC2012數(shù)據(jù)集上達(dá)到了82.2%mAP和80.8%mAP,檢測速度為35.0 fps,實現(xiàn)了精度和速度的均衡要求。