姜孟超,范靈毓,李碩豪
(1.軍事科學(xué)院 戰(zhàn)略評估咨詢中心,北京 100091;2.96962部隊,北京 102206;3.國防科技大學(xué) 信息系統(tǒng)工程重點實驗室,湖南 長沙 410073)
細粒度圖像識別的目的是識別同一大類別下的不同子類,相對于普通的圖像識別它的特點在于:細粒度圖像識別的粒度更為精細,比如細粒度圖像識別往往是對一些不同種類的鳥或者對不同種類的汽車等進行識別,需要精確地識別出它是哪種鳥或者哪款車等。而普通的圖像識別一般是在不同物種之間進行識別,例如僅僅識別出貓和狗,而不需要識別出到底是什么種類的貓和狗。
研究細粒度的主流方法主要是基于強監(jiān)督學(xué)習(xí)的識別方法、基于弱監(jiān)督的識別方法和基于無監(jiān)督的識別方法。強監(jiān)督學(xué)習(xí)的方法[1-3]需要對圖像進行類似bounding box或者part annotations的標注,該方法需要進行大量的人工標注,標注成本較高;無監(jiān)督學(xué)習(xí)的方法[4]雖然不需要任何人工標注,減少了高標注成本的弊端,但是因為沒有任何作為指導(dǎo)機器學(xué)習(xí)的標簽信息,導(dǎo)致識別的準確率往往不高。基于弱監(jiān)督學(xué)習(xí)的方法[5-7]解決了以上兩種監(jiān)督方法的不足,它只需要每個圖像有一個對應(yīng)的標簽就可以進行學(xué)習(xí),不需要花費大量的標注成本,同時也能達到較好的識別精度。
細粒度圖像識別的關(guān)鍵在于學(xué)習(xí)到圖像的判別性特征,當(dāng)前研究細粒度圖像識別的方法大多是基于弱監(jiān)督的局部定位、裁剪圖像區(qū)域和多級訓(xùn)練的方法[8-10]。這些方法雖然也可以達到很好的識別率,但是存在局部定位不準確及經(jīng)常裁剪到一些背景區(qū)域,由此給訓(xùn)練模型帶來多余背景噪聲的問題,而且多級訓(xùn)練的方法往往有復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),使得模型的參數(shù)比較大、時間復(fù)雜度比較高。
針對以上情況,該文提出使用一種雙線性約束的通道和空間注意力方法直接引導(dǎo)模型學(xué)習(xí)到圖像的判別性特征,從而提高模型的識別率。
主要貢獻如下:
首先,在僅有類別標簽的弱監(jiān)督環(huán)境下,利用帶有通道和空間注意力的兩個網(wǎng)絡(luò)分支充分挖掘圖像的通道特征和空間特征,使得網(wǎng)絡(luò)捕獲更多的可區(qū)分性局部特征;同時再利用一個不含注意力機制的主分支去捕獲圖像的全局特征,以增強網(wǎng)絡(luò)的表征能力。
然后,對學(xué)習(xí)到的通道注意力特征和空間注意力特征進一步利用雙線性池化操作,促使通道注意力特征和空間注意力特征進行特征融合,提高不同特征之間的相互依賴性,從而學(xué)習(xí)到圖像更豐富的局部判別性特征。
最后,提供了一個自然場景下的細粒度艦船圖像數(shù)據(jù)集,共有2 360張圖像,包含七個種類,該方法在此數(shù)據(jù)集上取得了較好的識別效果。
目前有很多關(guān)于細粒度圖像識別的網(wǎng)絡(luò)模型,一類是典型的基于圖像判別性區(qū)域定位的方法,Mask-CNN[3]不僅使用全連接網(wǎng)絡(luò)(FCN)在細粒度圖像中定位目標和判別性部分,而且還將預(yù)測的分割視為目標和部分的掩模。Peng等人提出代表性的模型OPAM[11]通過生成Object和Part級別的特征進行細粒度圖像識別。Yang等人提出了自我監(jiān)督導(dǎo)航網(wǎng)絡(luò)(NTS-net)[12],在不使用人工部件標注的弱監(jiān)督環(huán)境下,利用導(dǎo)航模塊引導(dǎo)網(wǎng)絡(luò)定位到圖像的判別性區(qū)域,通過一種反饋和審查的方法學(xué)習(xí)到圖像的顯著部位特征來進行細粒度圖像識別。
另一類是直接抽取圖像判別性特征的方法,Wang等人通過1×1的卷積核[13]作為小的“patch檢測算子”設(shè)計一個非對稱的、多支路的網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)有區(qū)別的mid_level patches,避免了識別和定位之間的權(quán)衡。Zheng等人提出一種新穎的三線性注意力采樣網(wǎng)絡(luò)(TASN)[14],以從數(shù)百個用于細粒度圖像識別的parts提案中用teacher-student的方式學(xué)習(xí)微妙的判別性特征表示。
視覺注意力機制是模擬了人類在觀察事物的時候總是首先關(guān)注最顯著的特征這一特點,DT-RAM[15]提出了一種循環(huán)視覺注意力機制的動態(tài)計算時間模型,該模型可以在動態(tài)步驟中挖掘最顯著的特征。Zhao等人提出多樣化的視覺注意力網(wǎng)絡(luò)(DVAN),以明確追求關(guān)注特征的多樣性,更好地學(xué)習(xí)圖像的判別性特征。Fu等人提出了一種循環(huán)的注意力卷積神經(jīng)網(wǎng)絡(luò)RA-CNN來反復(fù)學(xué)習(xí)多個尺度上的注意力特征。MA-CNN進一步通過設(shè)計通道分組模塊,在單個尺度上生成多個一致性注意特征圖。但是這種注意力分組模塊是通過人為設(shè)計出來的,可能不適應(yīng)實際情況,缺少靈活性。以上提到的注意力方法大多只是在圖像通道層面做注意力,提取圖像的通道特征,卻忽略了對于細粒度圖像識別同樣重要的空間特征。而該文提出的方法可以同時在圖像通道和空間層面提取圖像的細粒度判別特征,彌補了現(xiàn)有方法的不足。
細粒度圖像識別最大的挑戰(zhàn)在于圖像類間差異小,類內(nèi)差異大,具體表現(xiàn)在同一類別的物體從不同角度拍攝下來呈現(xiàn)出不同的姿態(tài),因此讓網(wǎng)絡(luò)充分學(xué)習(xí)到不同類別的判別性特征是細粒度圖像識別的關(guān)鍵。如圖1所示,設(shè)計了一種注意力雙線性池化的方法,通過兩個通道和空間注意力分支分別學(xué)習(xí)圖像通道層面的特征和空間層面的特征,用以充分挖掘到圖像的局部特征,同時抽取了卷積神經(jīng)網(wǎng)絡(luò)的最后一層作為主分支,用于捕獲圖像的全局特征。為了使學(xué)習(xí)到的通道特征和空間特征得到交互并更好地關(guān)聯(lián)起來,利用雙線性池化操作對通道特征和空間特征再進行特征融合。最后將融合后的局部特征和全局特征concat起來,再經(jīng)過一個全連接層輸出去做最后的預(yù)測。
圖1 注意力雙線性池化網(wǎng)絡(luò)模型
對于每個特征圖C*H*W來說,通道注意力機制是在每個通道(channel)維度C上學(xué)習(xí)到不同的注意力權(quán)重,但是在平面維度H*W上的權(quán)重不變,通道注意力關(guān)注的是“是什么”的問題,它側(cè)重于關(guān)注的是圖像的不同特征。利用Hu等人提出的Squeeze-and-Excitation Networks(SENet)[16]作為通道注意力分支,如圖2所示,主要包含Squeeze和Excitation兩部分。
Ftr是一個C*H*W的特征圖,經(jīng)過全局平均池化(global average pooling),將C*H*W的輸入轉(zhuǎn)化成1*1*C的通道統(tǒng)計,如下式:
接下來進行Excitation操作,將前面Squeeze操作得到的Zc經(jīng)過一個全連接層,即W1乘以z,然后再經(jīng)過一個ReLU層δ和全連接層,最后再經(jīng)過激活函數(shù)σ得到通道注意力權(quán)值s。
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
在得到通道注意力權(quán)重之后,就可以對原來的特征Uc圖進行channel-wise multiplitation,對應(yīng)于下面的公式中的Fscale。
圖2 SENet網(wǎng)絡(luò)模塊
空間注意力機制對于每個特征圖C*H*W來說,空間域注意力是在每個通道W上擁有相同的權(quán)重,而在平面維度H*W上學(xué)習(xí)不同的注意力權(quán)重,空間注意力主要關(guān)注的是物體“在哪里”,注重學(xué)習(xí)圖像的不同的區(qū)域。該文利用CBAM[17]模型中的空間注意力模塊獨立成一個分支,用來重點提取圖像的空間特征。如圖3所示,將上一層輸出的特征圖Feature Map作為空間注意力模塊的輸入,首先沿著通道層面做一個Global Max Pooling和Global Average Pooling,接著再沿著通道進行concat拼接操作。然后經(jīng)過一個卷積操作,降維為1個通道,之后再經(jīng)過Sigmoid函數(shù)生成空間注意力特征Ms(F),7*7表示卷積核的大小。最后將空間注意力特征權(quán)重和該模塊輸入的原特征圖做乘法,得到最終生成的空間注意力特征圖。
Ms(F)=σ(f([AvgPool(F);MaxPool(F)]))=
圖3 空間注意力模塊
Lin等人提出一種雙線性模型Bilinear CNN Models[18],已經(jīng)被證實在細粒度圖像識別上具有良好的識別效果。如圖4所示,它由兩個CNN特征提取器組成,這兩個特征提取器經(jīng)過卷積和池化后對提取的特征做矩陣外積(matrix outer product),輸出的是融合后的特征。這種雙線性池化的方法可以用圖像平移不變的方式,對圖像局部判別性特征進行交互,用以捕捉圖像成對的特征關(guān)系,進而提升模型的分類性能。
圖4 Bilinear CNN網(wǎng)絡(luò)模型
雙線性池化模型由如下一個四元組構(gòu)成:
B=(fA,fB,P,C)
其中,fA和fB是來自兩個不同網(wǎng)絡(luò)的特征函數(shù),P是一個池化操作,C是一個分類函數(shù)。在位置l處進行雙線性池化的公式如下:
(l,I,fA,fB)=fA(l,I)ΤfB(l,I)
將通道注意力分支和空間注意力分支輸出的注意力特征分別當(dāng)作圖4中雙線性池化操作的兩個輸入特征,并對雙線性池化后的特征和主分支學(xué)習(xí)到的全局特征進行concat拼接,經(jīng)過一個全連接層和交叉熵損失函數(shù)預(yù)測識別的結(jié)果。為了使雙線性池化過程交互到期望類別的判別性特征,對雙線性池化單獨使用交叉熵損失函數(shù)以進行約束。
實驗是在一個Intel Core I7-6800K CPU、32 GB內(nèi)存和Nvidia Geforce 1080Ti的GPU的Ubuntu16.04電腦上進行的,使用基于Imagenet預(yù)訓(xùn)練的ResNet 50作為預(yù)訓(xùn)練特征。首先把圖像統(tǒng)一縮放為448*448大小的輸入模型,批量大小設(shè)置為16,使用Pytorch1.6,采用隨機梯度下降的優(yōu)化方法SGD對模型進行優(yōu)化,隨機梯度下降的動量設(shè)置為0.9,以10-5作為權(quán)重衰減值,初始學(xué)習(xí)率設(shè)置10-3。
實驗中用的數(shù)據(jù)集是對互聯(lián)網(wǎng)公開的艦船圖片進行搜集和標注得到的,總共搜集到2 360張圖片,每個類別大約330張。包含7種不同類別的艦船,部分示例如圖5所示。這些艦船同一類別下?lián)碛胁煌嵌扰臄z下的照片,而不同類別之間的相似度很高,同時也存在不同環(huán)境的背景,符合細粒度圖像識別的特點。
圖5 艦船數(shù)據(jù)集示例
實驗開始之前,從網(wǎng)上搜集了大量的艦船圖片,并進行了篩選,去掉一些模糊和水印的圖像,然后按照艦船的種類進行了整理。首先搭建了圖1所示的基于ResNet 50的注意力雙線性池化的網(wǎng)絡(luò)結(jié)構(gòu),輸入一張圖片首先加載到RseNet 50的網(wǎng)絡(luò)模型進行初步的判別性特征提取。然后將提取的特征分成三個分支,兩個低層分支分別利用通道注意力機制和空間注意機制提取圖像的局部判別性特征,另一個高層分支則用來提取圖像的全局特征。接著將提取的局部判別性特征利用雙線性池化進行特征融合,最后再將融合后的局部特征和全局特征拼接在一起,經(jīng)過一個全連接層做最后的分類預(yù)測。實驗中經(jīng)過200次的迭代訓(xùn)練,網(wǎng)絡(luò)模型收斂到平穩(wěn)狀態(tài)。
使用模型在艦船數(shù)據(jù)集上進行細粒度識別的準確率可以達到91.3%。同時也與其他主流的細粒度圖像識別方法在文中數(shù)據(jù)集上進行了對比,如表1所示。文中方法比基準模型ResNet 50在準確率上提高了10%;比傳統(tǒng)的基于人工標注的方法分別提高了5.9%和4.5%,具體來說,基于人工標注的方法可能會存在人工標注不準確的情況,造成網(wǎng)絡(luò)學(xué)到錯誤的標簽或者特征區(qū)域,而文中研究的弱監(jiān)督方法則有效解決了這個問題,故比傳統(tǒng)的人工標注方法好。另外與傳統(tǒng)的雙線性池化的Bilinear CNN方法、基于注意力機制的RA-CNN方法和分層雙線性池化的HBP方法進行了比較,實驗結(jié)果顯示文中方法在準確率上分別提高了4.6%、3.0%和1.2%。
表1 在艦船數(shù)據(jù)集上與不同方法進行比較的結(jié)果
圖6展示了文中模型在不同類別的艦船數(shù)據(jù)上的熱力圖可視化結(jié)果。由圖可見,該模型可以很好地關(guān)注圖片的顯著區(qū)域,弱化背景區(qū)域?qū)Ψ诸愃惴ǖ母蓴_。
圖6 艦船識別可視化熱力圖
為了研究通道注意力、空間注意力和雙線性池化對模型精度的貢獻程度,進行了消融實驗,如表2所示。當(dāng)該模型在不使用通道注意力機制模塊進行訓(xùn)練測試的準確率只有87.8%,比完整模型下的準確率下降了2.5個百分點,說明通道注意力特征對模型準確率的影響很大;在模型去掉空間注意力模塊進行訓(xùn)練測試的準確率相比完整模型下的準確率下降了2個百分點;該模型在不使用雙線性池化進行訓(xùn)練測試的準確率下降了1.1個百分點。由此可見,不同模塊都對細粒度識別的準確率做出了相應(yīng)的貢獻。
表2 在艦船數(shù)據(jù)集上進行消融實驗的結(jié)果
針對自然場景下弱監(jiān)督的細粒度艦船圖像識別進行了研究,提出一種基于注意力雙線性池化的細粒度艦船識別方法。通過利用通道注意力機制和空間注意力機制分別在圖像的通道層面和空間層面進行判別性特征提取,然后利用分層雙線性池化操作對提取到的通道特征和空間特征進行融合,將通道特征和空間特征關(guān)聯(lián)起來作為局部特征,然后再將局部特征和主分支學(xué)習(xí)到的全局特征進行拼接,最終實現(xiàn)艦船類別的預(yù)測。在搜集到的艦船數(shù)據(jù)集上進行了實驗,達到了91.3%的準確率。