潘新辰,楊小健,秦 嶺
(南京工業(yè)大學 計算機科學與技術(shù)學院,江蘇 南京 211816)
目前,深度學習技術(shù)已被廣泛應用于圖像分類領(lǐng)域,細粒度圖像分類旨在區(qū)分同種對象的不同類別。相較于傳統(tǒng)圖像分類,細粒度圖像分類的難點在于:(1)不同類別之間的高相似性,難以找到具有辨別性的區(qū)域并提取細節(jié)特征;(2)同一種類別之間由于圖像視角、光照、背景和遮擋等因素的變化也存在著一定的差異性。因此,如何定位具有辨別性的局部區(qū)域,以及如何更精確地提取細粒度特征,成為目前細粒度圖像分類方法的主要研究方向。
為了檢測具有辨別性的局部區(qū)域,一些方法[1-2]通過人工標注的方式對細粒度圖像中具有辨別性的區(qū)域進行標注,然后通過網(wǎng)絡學習定位辨別性局部區(qū)域,從而提高網(wǎng)絡模型的分類準確性,需要花費大量的時間、人力對圖像進行標注,成本太大。還有一些方法[3-4]利用類別標簽以弱監(jiān)督的方式來學習具有辨別性的局部區(qū)域,這類方法雖然不能夠達到使用人工標注的標簽進行監(jiān)督學習的效果,但額外成本幾乎為零。
注意力機制作為提升網(wǎng)絡特征提取能力的重要手段[5]主要分為通道注意力機制和空間注意力機制,通道注意力機制可以學習到不同通道間的權(quán)重關(guān)系,空間注意力機制可以學習不同像素間的依賴關(guān)系。合理利用以上兩個注意力機制能夠更細粒度提取圖像的特征,從而能夠更好地進行分類。
本文通過結(jié)合雙注意力機制和多區(qū)域檢測,實現(xiàn)了一種細粒度圖像分類方法,雙注意力機制能夠使模型關(guān)注更加細節(jié)的圖像特征,并通過多區(qū)域檢測的方法,定位具有辨別性的局部區(qū)域,然后將局部區(qū)域裁剪出來進一步通過模型進行學習,從而整體提高了細粒度圖像分類的準確率。
細粒度圖像分類中的多區(qū)域檢測實質(zhì)是借鑒了目標檢測[6]的思想。在目標檢測領(lǐng)域,主要是以監(jiān)督學習的方式通過人工標注的框進行學習,而細粒度圖像分類中的多區(qū)域檢測則是建立在弱/無監(jiān)督學習上,通過圖像類別標簽/特征分布去自主學習具有辨別性的局部區(qū)域,無需額外的人工標注信息。Hu 等人[7]針對細粒度分類問題,通過弱監(jiān)督學習方法獲得每一張訓練圖像的辨別性區(qū)域,然后通過裁剪和丟棄辨別性區(qū)域來增強數(shù)據(jù),使得網(wǎng)絡在關(guān)注辨別性區(qū)域的同時,也關(guān)注除去辨別性區(qū)域外的其他區(qū)域。Yang 等人[8]受目標檢測中區(qū)域建議網(wǎng)絡(Region Proposal Network,RPN)的啟發(fā),利用圖像的類別標簽通過Navigator Network 生成一個表示所有預選框的列表,然后根據(jù)得分進行排序,將得分較高的K 個區(qū)域裁剪出來輸入至特征提取網(wǎng)絡,以提取更細粒度的特征。
注意力機制在使用深度學習方法來模仿人類的視覺機制中發(fā)揮了重要作用,能夠使網(wǎng)絡忽略無關(guān)的特征信息而更加關(guān)注重要的特征信息[9]。其主要應用于對圖像特征層的通道和空間的關(guān)系進行注意,捕獲更加詳細的特征信息。Hu 等人[10]通過建模通道間的相關(guān)性,提出了SE(Squeeze-and-Excitation)模塊,該方法能夠使網(wǎng)絡自適應地學習每個特征通道的重要程度,然后根據(jù)重要程度去強化有用的特征并抑制對當前任務用處不大的特征。Wang 等人[11]針對卷積是一種對局部區(qū)域進行的操作,缺少全局范圍的特征依賴關(guān)系,提出了一種非局部(Non-local)操作,該方法能夠建立圖像上兩個有一定距離的像素之間的聯(lián)系,從而使網(wǎng)絡關(guān)注大范圍里的特征依賴關(guān)系。
本節(jié)首先介紹本文中網(wǎng)絡的整體結(jié)構(gòu),然后分別對區(qū)域檢測部分和雙注意力機制部分進行詳細的說明。
如圖1 所示,將原始圖像R0∈RC×H×W輸入至特征提取網(wǎng)絡(Feature Extractor)中,用于提取原始圖像的全局特征,C、H、W 分別為通道數(shù)、高和寬。然后經(jīng)過雙注意力機制進一步細化全局特征,并通過第一個全連接層(FC0)計算圖像的原始損失L0。其次將上述輸出的全局特征層(Feature Map)輸入至多區(qū)域檢測模塊(Multi-region Detection Module)來獲得每個局部區(qū)域{R1,R2,…,RA}及對應的得分{S1,S2,…,SA},A為局部區(qū)域的數(shù)量,將區(qū)域得分排序以獲得最高得分的K 個辨別性最大的局部區(qū)域{R1,R2,…,RK},并將這K 個局部區(qū)域在原始圖像中裁剪出來上采樣至224×224 大小的尺寸,將其再次輸入至主干網(wǎng)絡(Backbone)中用于提取局部區(qū)域的特征,并使用其對應的全連接層(FCi,i∈K)通過Cross Entropy Loss 損失函數(shù)來計算這些局部區(qū)域損失Li,同時根據(jù)全連接層FCi的輸出使用log_softmax 函數(shù)來計算每個局部區(qū)域相對于類別標簽的置信度Di。最后結(jié)合圖像的全局特征和局部區(qū)域特征作為總體的特征表示,并將結(jié)果輸入到全連接層FCconcat中,利用Cross Entropy Loss 損失函數(shù)來計算總體損失Lconcat,最終得到整個網(wǎng)絡的分類結(jié)果。
圖1 整體網(wǎng)絡結(jié)構(gòu)
如圖2 所示,區(qū)域檢測的輸入為圖1 中主干網(wǎng)絡(Backbone)的輸出特征層(大小為2 048×14×14),通過使用具有橫向連接自上而下的結(jié)構(gòu)來檢測辨別性局部區(qū)域。具體為:分別使用濾波器(Filter)為128,卷積核大小為3×3,步長為1、1、2,填充為1 的三層卷積操作自上而下獲得不同尺度的特征層(128×14×14、128×7×7、128×4×4),每個卷積后緊接著ReLU 激活函數(shù);對于每層卷積后的輸出,分別使用濾波器(Filter)為6、6、9,卷積核大小為1×1,步長為1,填充為0 的3 個卷積操作對特征層進行降維,并提升網(wǎng)絡的表達能力;最終獲得3 個尺度分別為6×14×14、6×7×7、9×4×4 的特征層,對應3 個局部區(qū)域大小(48×48、96×96、192×192),這3 個特征層上的每個特征值均代表了一個候選區(qū)域的得分{S1,S2,…,SA},A 為3 個特征層中特征值的數(shù)量,為1 614。由于部分候選區(qū)域之間有著較大的重疊,為了減少網(wǎng)絡的計算量,采用極大值抑制的方法來減少候選區(qū)域的數(shù)量,通過設置一個閾值(threshold)來剔除不同區(qū)域之間的重疊率大于該閾值且得分相對較低的候選區(qū)域。最后對候選區(qū)域的得分進行排序,選出最大的K 個局部區(qū)域{R1,R2,…,RK}并上采樣至224×224大小,然后通過特征提取網(wǎng)絡進一步學習。
圖2 區(qū)域檢測模塊
注意力機制已經(jīng)成為提升卷積神經(jīng)網(wǎng)絡性能的一個重要模塊,并且通道注意力機制和空間注意力機制相結(jié)合的方法能夠更加顯著地提升網(wǎng)絡的性能。注意力模塊如圖3 所示,主要分為特征分組、通道注意力、空間注意力和特征融合四部分。
圖3 雙注意力機制模塊
2.3.1 特征分組
對于特征提取網(wǎng)絡的輸出特征層X ∈RC×H×W,特征分組按照通道的維度C 將X 拆分為G 組{X1,X2,…,XG}∈RC/G×H×W。對于 每一組子特征層Xk,k∈G,都將通過兩種注意力機制生成不同的權(quán)重系數(shù)。具體地,子特征層將被平均劃分為兩部分Xk1,Xk2∈RC/2G×H×W,一部分用于學習通道注意力特征,另一部分用于學習空間注意力特征。
2.3.2 通道注意力機制
本文在實現(xiàn)通道注意力時使用全局平均池化(Global Average Pooling,GAP)、全連接、Sigmoid 激活函數(shù)組合操作。具體為,對于輸入Xk1,首先使用全局平均池化操作(Fgap)生成通道的整體信息ca∈RC/2G×1×1,可以通過如下公式計算:
然后,通過全連接操作(Ffc)學習一個新的權(quán)重系數(shù)ω1∈RC/2G×1×1和偏 置b1∈RC/2G×1×1,用來表示各個通道的重要程度,最后再經(jīng)過Sigmoid 函數(shù)(σ)進行激活,并和輸入特征相乘。計算公式如下:
通道注意力實現(xiàn)的過程使用公式可以整體描述如下:
2.3.3 空間注意力機制
不同于通道注意力機制,空間注意更關(guān)注各個像素點之間的依賴關(guān)系,因此,本文利用空間的特征信息來捕捉輸入圖像中不同局部區(qū)域之間的相關(guān)性。本文分別使用兩個大小為1×1 的卷積Convm和Convn操作,在Convm后使用Softmax 激活函數(shù),并將兩者的結(jié)果進行相乘,最后和輸入的特征層相加得到空間注意特征。其計算公式如下:
其中,xi∈Xk2,N=W×H,ωm和ωn分別為卷積Convm和Convn的權(quán)重。為了進一步減小計算的復雜度,上述公式可以將Wn移到求和的外面,改進的公式如下:
2.3.4 特征融合
所有分組的子特征層Xk經(jīng)過雙注意力機制后,重新聚合到一起生成注意力特征層X'。最后,類似ShuffleNet v2[12]中的通道置換(channel shuffle)方法,通過設置一個通道置換操作來確保不同分組子特征的信息能夠“相互流轉(zhuǎn)”。具體為對于特征層X'∈RC×W×H,按照通道數(shù)C 分為GCS組,即特征層維度為G×C/GCS×W×H,然后將G 和C/GCS軸轉(zhuǎn)置得到C/GCS×G×W×H 維度的特征層,最后再將分組進行合并得到原始維度大小(C×W×H)的特征層。
對于整個網(wǎng)絡中的輸入{R0,R1,R2,…,RK},其中,R0為原始圖像,{R1,R2,…,RK}為區(qū)域檢測并上采樣得到的局部區(qū)域圖像,分別得到局部區(qū)域的得分{S1,S2,…,SK}和置信度{D0,D1,D2,…,DK},除了上文中提到的分類損失Li、L0、Lconcat使 用Cross Entropy Loss 損失函數(shù)來計算外,還需要計算局部區(qū)域得分損失LS、置信度損失LC。局部區(qū)域得分損失LS通過如下公式計算:
置信度損失LC通過如下公式計算:
在本文實驗部分,將在3 個公開的細粒度圖像數(shù)據(jù)集(CUB-200-2011、StandfordCars 和FGVC Aircraft)進行實驗,以評估所提出的方法。表1 列出了這3 個數(shù)據(jù)集的類別數(shù)量、訓練集和測試集的圖像數(shù)量。
表1 數(shù)據(jù)集
在本文實驗中,統(tǒng)一將所有輸入圖像上采樣至448×448 大小,多區(qū)域檢測中超參數(shù)K 的值設置為4,threshold 設置為0.25。使用在Image-Net 數(shù)據(jù)集上預訓練的ResNet-50[13]模型作為特征提取網(wǎng)絡,動量(Momentum)SGD 作為優(yōu)化算法,Batch Normalization 作為正則化方法,初始學習率為0.001,并且每60 個epoch 后乘以0.1,權(quán)重衰減因子設為1×10-4,使用PyTorch 框架來實現(xiàn)本方法。
表2 顯示了本文方法和其他細粒度圖像分類方法在3 種數(shù)據(jù)集(CUB-200-2011、StanfordCars 和FGVC Aircraft)上的實驗結(jié)果,在使用ResNet-50 作為特征提取網(wǎng)絡時,本文提出的方法在3 種數(shù)據(jù)集上的識別準確率分別為88.3%、94.5%和92.3%,優(yōu)于其他方法。
表2 實驗結(jié)果對比
此外,本文的方法比文獻[8]提出的方法分別高出0.8%(CUB-200-2011)、0.6%(StanfordCars)以及0.9%(FGVC Aircraft)。這也表明了本文在文獻[15]的基礎上加入雙注意力機制的改進是有效的。
由于本文中多區(qū)域檢測模塊對整體網(wǎng)絡性能的提升較大,因此,本文在數(shù)據(jù)集CUB-200-2011 進行了實驗來探究不同數(shù)量的局部區(qū)域(超參數(shù)K 的取值)對實驗結(jié)果的影響,結(jié)果如表3 所示。
表3 超參數(shù)K
ResNet-50 是目前較為強大的基準網(wǎng)絡,在數(shù)據(jù)集CUB-200-2011 上的細粒度分類任務中,其本身達到了83.8%的精度,而本文提出的方法在僅使用雙注意力機制的情況下相比高出0.8%。值得注意的是,只使用完整圖像(K=0)作為區(qū)域檢測模塊的輸出時,精度達到了85.3%,高于ResNet-50+Attentions 0.7%的準確率。這一現(xiàn)象表明,區(qū)域檢測模塊后連接的網(wǎng)絡通過進一步學習圖像的特征信息并與原始網(wǎng)絡的輸出特征相融合,能夠更好地學習整體特征的表示。同樣可以看到,在K=4時,獲得的分類準確率達到了最高88.3%,而選擇6 個局部區(qū)域時,準確率反而下降了0.7%,這說明過多的局部區(qū)域會對網(wǎng)絡提取的特征產(chǎn)生干擾,從而影響最終的分類結(jié)果。從K=0 變化到K=2 時,準確率獲得了大幅度提升(2.8%),這也驗證了區(qū)域檢測模塊的有效性。而從K=2 到K=4 的過程中,準確率僅有0.2%的提升,這說明了兩個局部區(qū)域的數(shù)量幾乎已能夠精準地提取細粒度的特征,再增加局部區(qū)域的數(shù)量僅能獲得微乎其微的提升,卻會一定程度上增加網(wǎng)絡的參數(shù)量。
然后通過固定K=4,以0.05 為間隔差,在0.1~0.5之間取多個threshold 的值在數(shù)據(jù)集CUB-200-2011 上進行模型訓練,驗證超參數(shù)threshold 對實驗結(jié)果的影響。
如圖4 所示,超參數(shù)threshold 在取0.25 時實驗結(jié)果達到最優(yōu);threshold 在0.1~0.25 這段變化中準確率呈增長趨勢,這是因為過小的threshold 會導致所選局部區(qū)域覆蓋較為分散;而隨著threshold 的繼續(xù)增長,就會導致所選局部區(qū)域有較大的重疊。
圖4 超參數(shù)threshold 的影響
本文在不使用注意力機制(no_att)以及分別使用通道注意力機制(only c_att)、空間注意力機制(only s_att)、雙注意力機制(two_att)4 種情況下在數(shù)據(jù)集CUB-200-2011上做了實驗對比,其中超參數(shù)K 的值固定為4,其他網(wǎng)絡設置相同。實驗結(jié)果如圖5 所示,從結(jié)果可以看出,兩種注意力機制的單獨應用均能夠提升網(wǎng)絡的分類準確率,并且兩種注意力機制結(jié)合應用能夠達到更好的效果。
圖5 雙注意力機制的影響
本文提出了一種結(jié)合雙注意力機制和多區(qū)域檢測的細粒度圖像分類方法。該方法首先通過含有雙注意力機制的主干網(wǎng)絡提取全局特征信息,然后通過區(qū)域檢測模塊識別出辨別性較高的局部區(qū)域,并將局部區(qū)域送到主干網(wǎng)絡進一步學習局部特征信息,最后將局部特征信息和全局特征信息相融合,對細粒度圖像進行分類。雙注意力機制的應用能夠使網(wǎng)絡更好地學習通道間和空間像素間的依賴關(guān)系,使網(wǎng)絡關(guān)注更多的細節(jié)特征。多區(qū)域檢測模塊的應用則能夠使網(wǎng)絡更加關(guān)注具有辨別性的局部區(qū)域。本文將兩者相結(jié)合,最終在3 個公開的細粒度圖像數(shù)據(jù)集上達到了較高的準確率,同時優(yōu)于其他方法。但本文的方法整體網(wǎng)絡結(jié)構(gòu)較為復雜,對計算性能有較高的要求,這也是未來工作進一步改進的方向。