楊 祺,孫 俊,2
1(江南大學 人工智能與計算機學院,江蘇 無錫 214122)2(江南大學 江蘇省模式識別與計算智能工程實驗室,江蘇 無錫 214122) E-mail:6191914068@stu.jiangnan.edu.cn
細粒度圖像分類旨在識別給定對象類別的子類,例如不同種類的鳥類[1]以及飛機[2]和汽車[3].由于這些子類存在細微的類間差異和顯著的類內(nèi)變化,細粒度圖像分類比傳統(tǒng)分類問題更具挑戰(zhàn)性.迄今為止,最有效的解決方案依賴于從局部區(qū)域提取辨別性的細粒度特征表示,這種局部辨別性特征被集中融合以進行最終分類.早期工作中辨別性特征絕大多數(shù)來自于相關領域?qū)<业娜斯ぷ⑨孾4-6].然而由于專業(yè)性限制使得人工注釋獲取代價高昂且有一定誤差.因此,近年來的研究重點已經(jīng)轉(zhuǎn)移到僅使用類別標簽的弱監(jiān)督訓練模型[7-9].這些模型擁有能夠定位更具辨別性的局部區(qū)域的能力,這使得它們能夠在不使用額外人工注釋的情況下獲得不俗的性能.
然而,盡管依靠定位局部辨別性區(qū)域的弱監(jiān)督細粒度分類研究取得了很多進展,但普遍來說它們都很少關注以下兩個問題:第一,提取的具有辨別性的局部區(qū)域在哪些粒度上最具辨別性,例如鳥的頭部或爪兩個辨別性區(qū)域中哪個對分類結(jié)果幫助更大,第二,用什么方式可以將不同粒度上的信息融合在一起以提高分類精度,換句話說就是頭部和爪的兩個不同辨別性區(qū)域如何能夠更好地協(xié)同工作來提升分類結(jié)果.由于跨不同粒度的信息有助于避免大的類內(nèi)變化的影響,例如,鳥類鑒別專家有時需要使用鳥頭部的整體結(jié)構(gòu)和更精細的細節(jié),如鳥喙的形狀來識別一只鳥.因此本文認為,模型不僅需要找到最具區(qū)別性的粒度,同時還需要考慮不同粒度的局部如何有效地合并.
本文提出了一個融合多粒度特征的網(wǎng)絡框架,該框架通過迭代學習方式引導網(wǎng)絡學習由低到高的不同粒度及不同粒度之間的互補信息,同時將多粒度特征融合在一起,從而提高分類準確率.具體地說,這是通過以下幾個相互協(xié)同工作的組件來實現(xiàn)的:1)限定輸入圖像粒度的局部錯位模塊,它能夠迫使網(wǎng)絡學習限定粒度下圖像的局部信息;2)注意力模塊,因為圖像的背景中存在噪聲,所以有必要先通過注意力來定位辨別性的局部,同時有選擇地增強其中具有豐富信息的特征,并抑制那些語義無關的特征;3)迭代學習方式,具體來說,該方式從更細的粒度開始訓練,逐漸轉(zhuǎn)向更粗的粒度,當每個迭代步驟結(jié)束時,在當前迭代步驟訓練的參數(shù)將作為下一迭代步驟的初始化參數(shù),這種傳遞使網(wǎng)絡能夠基于上一迭代步驟的經(jīng)驗來挖掘更大粒度的信息;4)有效融合多粒度特征的可變形卷積模塊,在迭代學習完成后,利用原始圖像進行新一輪訓練,并將提取到的多粒度進行融合,以更進一步提升效果.
本文的主要貢獻如下:
1)本文提出了一種融合多粒度特征的細粒度分類網(wǎng)絡,它能夠通過局部錯位模塊生成不同粒度的圖像并通過迭代學習方式學習不同粒度之間的互補信息.
2)本文引入了注意力機制,它融合了空間注意力和通道注意力,它能夠適應不同粒度特征,實現(xiàn)細粒度辨別性局部定位功能.
3)本文在3個廣泛使用的細粒度圖像分類數(shù)據(jù)集(CUB-200-2011、Stanford-Cars和FGVC-Aircraft)上進行對比和消融實驗,證明本文方法擁有優(yōu)秀的分類性能.
現(xiàn)有的細粒度圖像分類算法大致分為基于強監(jiān)督學習和基于弱監(jiān)督學習的算法研究,在強監(jiān)督場景下,算法主要借助額外標注信息(如邊界框、部件語義信息)來提升分類效果,Zhang等[10]提出了基于局部區(qū)域的R-CNN分類算法,該方法借助額外標注的邊界框來訓練一個檢測器以定位物體整體位置及局部位置,并用若干個獨立的CNN網(wǎng)絡提取其中的特征,再用全連接層聯(lián)接物體整體及局部的特征表示,最后用SVM對聯(lián)接后的特征進行分類.該方法取得了卓越的效果提升,并且奠定了接下來幾年的研究基礎,其后的一系列研究基本都是遵循定位局部區(qū)域,局部區(qū)域特征提取,利用提取的特征表示進行分類這套流程.然而該類方法對于額外標注的信息依賴度很高,為了提高測試準確率,甚至需要測試集數(shù)據(jù)提供相應的額外標注信息,這大大限制了強監(jiān)督學習在實際場景下的應用.因此,近年來有關細粒度圖像分類的研究已經(jīng)從帶有額外標注信息的強監(jiān)督場景發(fā)展到只使用類別標簽的弱監(jiān)督場景.在弱監(jiān)督場景下,細粒度分類舍棄了對額外標注信息的利用,為了模擬額外標注信息帶來的分類效果提升,最近的研究主要集中在定位目標物體中最有辨別性的部分和不同粒度特征的部分.Wang等[11]人提出多粒度CNN,該方法通過自底向上的區(qū)域生成方法生成與粒度相關的辨別性區(qū)域,其中細粒度的辨別性區(qū)域通常是由粗粒度的辨別性區(qū)域采樣而來.之后,訓練一組并行的CNN網(wǎng)絡來對各個粒度的辨別性區(qū)域進行特征提取,最后將提取到的多粒度特征合并后送入分類器,產(chǎn)生最終的分類結(jié)果.
盡管在弱監(jiān)督場景下,很多研究通過定位圖像中最有辨別性的局部和利用多粒度的特征取得了進展.然而,很少有人考慮如何更好地將這些辨別性的局部以及不同粒度的信息融合在一起,目前的融合技術大致可以分為兩類.第一種方法將從不同部分提取的特征連接在一起,之后放入一個分類器進行預測.Fu等[12]發(fā)現(xiàn)局部區(qū)域檢測和細粒度特征學習可以相互加強,并構(gòu)建了一系列網(wǎng)絡,這些網(wǎng)絡在進行預測時為下一個網(wǎng)絡找到有辨別性的局部區(qū)域,最后通過訓練一個全連接層來融合所有被找到的辨別性區(qū)域,該方法旨在通過充分挖掘某一具有辨別性區(qū)域的細節(jié)信息以提高分類效果,但忽略了其他具有互補信息的局部區(qū)域,并且每一次循環(huán)都會訓練一個具有全新參數(shù)的子網(wǎng)絡,導致整體網(wǎng)絡的參數(shù)量成倍的增長.Ge等[13]運用目標檢測的方法捕獲目標核心區(qū)域,然后通過建立的互補零件模型挖掘核心目標周圍蘊含互補信息的多個零件,最后使用雙向LSTM對多個零件的互補信息進行編碼并進行分類,然而該方法不足之處在于互補零件間存在高冗余且對細節(jié)信息提取不充分,因此如何制定更加有效和準確的互補信息提取策略尤為重要.第二種技術基于不同的部分進行預測,每個部分用一個分類器得出預測結(jié)果,然后直接將它們的預測結(jié)合在一起.Zhang等[14]訓練了幾個集中于不同粒度特征的網(wǎng)絡,以產(chǎn)生不同的預測分布,然后通過加權的方式將基于不同粒度特征得到的預測結(jié)果組合在一起以得到最終的分類結(jié)果,然而如何找到合適的權重來充分發(fā)揮各個粒度特征間的互補作用仍是一大挑戰(zhàn).
注意力機制是近幾年在圖像、語音、自然語言處理方面應用比較廣泛的方法,一些弱監(jiān)督的細粒度分類方法嘗試引入注意力機制來定位圖像中的辨別性區(qū)域,Liu等[15]提出了一種基于強化學習的全卷積注意力定位網(wǎng)絡,該網(wǎng)絡由部件定位模塊和分類模塊組成,部件定位模塊以VGG提取的卷積特征圖為基礎,通過兩個堆疊的卷積層和一個softmax層生成一個單通道的置信圖作為每個部件的得分圖,然后根據(jù)得分圖選擇最佳的注意力區(qū)域送入分類模塊.該網(wǎng)絡可以同時提取多個注意力區(qū)域并為每個區(qū)域訓練單獨的分類器,最后平均各獨立分類器的結(jié)果作為最終分類結(jié)果,此方法雖取得了分類效果的提升,但對于大量的冗余信息并未進行有效的優(yōu)化,且平均各分類器的結(jié)果的操作無法體現(xiàn)各不同注意力區(qū)域?qū)ψ罱K分類結(jié)果的貢獻.Zheng等[16]提出了漸進注意力卷積神經(jīng)網(wǎng)絡,該方法主要包含局部建議子網(wǎng)絡和局部校正子網(wǎng)絡,兩個子網(wǎng)絡都包含一個或多個注意力模塊,局部建議子網(wǎng)絡首先通過注意力模塊生成多個局部注意力圖并將其作為局部校正子網(wǎng)絡的輸入,之后局部校正子網(wǎng)絡進一步提取每個局部的特征,并為局部建議子網(wǎng)絡提供修正后的注意力圖.借由此機制,兩個子網(wǎng)絡在不斷循環(huán)作用下相互加強,最終獲取多個局部細粒度特征.該網(wǎng)絡會為每個局部訓練一個CNN來進行分類,而對于不同圖片網(wǎng)絡提取的局部數(shù)量并不一致,這會導致網(wǎng)絡參數(shù)量的暴增及訓練速度、推理速度的降低.
圖1 多粒度特征融合網(wǎng)絡結(jié)構(gòu)圖Fig.1 Architecture of multi-granularity feature fusion
在自然語言處理的任務中,G. Lample等[17]人將句子中單詞打亂語序從而迫使神經(jīng)網(wǎng)絡專注于有區(qū)別的單詞而忽略不相關的單詞.在最近的細粒度圖像分類研究中,DCL[18]通過破壞全局結(jié)構(gòu)來強調(diào)局部細節(jié),它們將圖像分割成若干區(qū)域并重構(gòu)圖像來學習局部區(qū)域之間的語義相關性.
如圖2所示,輸入圖像的位置矩陣被隨機打亂并生成新的位置矩陣,這些被劃分的局部會根據(jù)新的位置矩陣重新合并為新圖像B(p,n).這里,局部的粒度由超參數(shù)n控制.超參數(shù)n需要滿足兩個條件:1)所劃分局部的大小要小于對應階段的感受野,否則會降低局部錯位模塊的性能;2)所劃分局部的大小應隨著不同迭代步驟感受野的增加而成比例地增加.通常,每個迭代步驟的感受野大約是后面一個迭代步驟的兩倍.因此,對于第l個迭代步驟n設置為2L-l+1.其中l(wèi)∈{1,2,…,s},s為迭代學習的總步驟數(shù).
圖2 局部錯位模塊Fig.2 Part dislocation module
在迭代學習的過程中,對于單一的迭代步驟s而言,訓練數(shù)據(jù)p將首先被通過局部錯位模塊擴充獲得B(p,n),其中n=2L-l+1,它與p共享相同的標簽y.該模塊為每個不同的迭代步驟生成不同粒度的輸入圖像B(p,n)以替代單一粒度的輸入p,這種做法的優(yōu)勢在于它能夠選擇輸入圖像的粒度級別,從而迫使模型的其他部分在特定的粒度級別中找到更多具有辨別性的局部.
3.3.1 空間注意力
(1)
其中APi代表特征圖通過壓縮得到的全局平均池化圖,c代表特征圖的通道數(shù),Fi(k)代表特征圖在每個通道對應空間位置的局部像素值.
(2)
(3)
(4)
(5)
3.3.2 通道注意力
(6)
(7)
其中σ和ReLU分別代表sigmoid函數(shù)和ReLU函數(shù),W1和W2為兩個全連接層的權重矩陣,GAP(·)是全局平均池化函數(shù),Wi和Hi代表Fi的空間維度,(m,n)表示空間維度中的像素位置.
圖3 注意力模塊Fig. 3 Attention module
(8)
其中?代表對應元素相乘,⊕表示對應元素相加.
本文采用迭代學習方式來增量地學習多粒度特征,旨在尋找多粒度特征間的互補信息,首先訓練ResNet50特征提取的低層階段,然后逐步增加新的迭代步驟訓練特征提取的高層階段.這是因為如果讓模型同時學習所有的粒度,那么模型提取出的多粒度局部特征會有相當高的相似性,與直接訓練整個網(wǎng)絡相比,迭代學習允許模型在圖像粒度逐漸增大的過程中將低層階段的權重系數(shù)帶到高層階段,從而學習到多粒度特征間的互補信息.為了實現(xiàn)這一目的,本文采用交叉熵函數(shù)來計算真實標簽y和預測概率分布之間的損失,并通過反向傳播來更新系數(shù).對于第l個迭代學習步驟的預測值yl,損失函數(shù)如下:
(9)
為了融合多粒度特征,本文引入可變形卷積[19],可變形卷積的思想是將原來固定形狀的卷積核變成可變的,如圖4所示,與標準卷積不同,可變形卷積的位置隨位移變化而變化,它能夠自適應的調(diào)整感受野和采樣位置.
圖4 普通卷積與可變形卷積比較圖Fig.4 Comparison of convolution and Deformable convolution
FVc=concat[FVL-s+1,…,FVL-1,FVL]
(10)
其中L代表主干網(wǎng)絡特征提取過程中的階段數(shù),s代表本文迭代學習的總迭代步驟數(shù),concat代表向量連接操作.
然后本文將融合特征FVc輸入一個額外的分類器得到最終預測值yc.并對yc施加交叉熵損失來進一步優(yōu)化網(wǎng)絡參數(shù):
(11)
本文所有的實驗均在一個擁有4張1080Ti GPU資源的服務器集群上運行,pytorch框架版本為1.4,python版本為3.6.為全面衡量本文方法的性能,本文在3個廣泛使用的細粒度圖像分類領域的數(shù)據(jù)集上進行了相關實驗,如表1所示,這些數(shù)據(jù)集分別是CUB-200-2011,FGVC-Aircraft和Stanford Cars.
表1 數(shù)據(jù)集信息匯總表Table 1 Datasets information
本文用分類準確率Accuracy來評價細粒度圖像分類方法的性能,公式如下:
(12)
其中N表示測試集圖片數(shù)量,NT表示測試集圖片中分類正確的圖片數(shù)量.
整個實驗過程中本文只使用圖像的類別標簽而不使用任何額外標注.本文使用預訓練的ResNet50作為特征提取器,在訓練過程中,本文將輸入圖像大小調(diào)整到550×550,并將其隨機裁剪成448×448大小,并運用隨機水平翻轉(zhuǎn)做數(shù)據(jù)增強.在測試過程中,輸入圖像被調(diào)整到550×550的大小,后被中心裁剪成448×448大小.本文使用隨機梯度下降優(yōu)化器和批量歸一化作為正則化器.同時,本文添加的可變形卷積層和全連接層的學習速率分別被初始化為0.002.本文進行了200個Epoch的訓練,批次大小為32,使用的權重衰減為0.0005,動量為0.9.
在迭代學習步數(shù)選擇上,本文設置迭代步數(shù)從1變化到5,如表2所示,當s<4時,s的增加顯著提高了模型的性能.然而,當s=4時,模型準確率開始下降,當s=5時,準確率下降更為明顯.實驗證明,迭代步數(shù)為3時效果最佳.
表2 不同迭代步數(shù)下的準確率Table 2 Accuracy under different iterations
本文的方法與其他最先進方法在CUB200-2011、Stanford Cars和FGVC-Aircraft數(shù)據(jù)集上的比較見表3,其中列出了基礎模型和分類準確率.
4.3.1 CUB-200-2011數(shù)據(jù)集分類結(jié)果
本文方法在CUB-200-2011數(shù)據(jù)集上進行實驗,實驗結(jié)果都優(yōu)于其他所有的對比方法.在所有的方法中,MSEC具有較高的準確率,它首先將輸入圖像劃分為若干子區(qū)域,通過置信度函數(shù)計算這些子區(qū)域的置信度得分.然后擦除具有較低置信度分數(shù)的子區(qū)域,之后用多粒度區(qū)域模塊分別對被擦除子區(qū)域和置信度較高的子區(qū)域分別進行劃分和混淆,生成具有多粒度信息的圖像.最后,骨干網(wǎng)絡分別提取上述兩份圖像中的特征,利用多損失函數(shù)優(yōu)化整個網(wǎng)絡,實現(xiàn)分類任務.與它不同的是,本文所提方法并沒有放棄一些相關度不高的特征,而是挖掘出多粒度特征間的互補信息并對多粒度特征進行了融合,這有利于提高分類的準確率.最終本文方法獲得了88.6%的分類準確率.
表3 不同方法在3個數(shù)據(jù)集中分類準確率的對比結(jié)果Table 3 Comparisons of different methods on three datasets
4.3.2 FGVC-Aircraft數(shù)據(jù)集分類結(jié)果
同樣的,本文方法在FGVC-Aircraft數(shù)據(jù)集上進行了實驗并于其他方法進行比較.顯然,本文方法取得了領先的性能,準確率為93.6%.BAM B-CNN用一個基于注意力的雙線性卷積神經(jīng)網(wǎng)絡來進行分類,具體來說,它將原始圖像、物體圖像、局部圖像分別輸入網(wǎng)絡得到特征后將其融合起來用作分類,這和本文中融合多粒度特征的想法有些許類似,但不同的是本文用迭代學習的方式來挖掘不用粒度之間的互補信息從而增強分類效果,實驗表明在FGVC-Aircraft數(shù)據(jù)集上本文的分類準確率對比BAM B-CNN提升了4.6%,這印證了本文方法的優(yōu)越性.
4.3.3 Stanford Cars數(shù)據(jù)集分類結(jié)果
從表2中可以看出,本文方法以ResNet50為基礎模型獲得了94.8%的準確率,優(yōu)于其他的方法,Corss-X認為相同語義部分的特征應該比不同語義部分的特征相關性大,盡管這些相同語義特征來自同類別的其他圖像或不同類別的圖像,所以Corss-X利用來自不同圖像和不同網(wǎng)絡層的特征之間的關系來學習強大的細粒度特征,并取得了優(yōu)秀的效果.與它不同的是本文讓網(wǎng)絡學習同一圖像下的多粒度特征及其互補信息,這一差異使得本文方法在Stanford Cars數(shù)據(jù)集上的準確率比Corss-X提升了0.2%.ACNet構(gòu)建了一個結(jié)合注意力的二叉神經(jīng)樹結(jié)構(gòu),它通過從根節(jié)點到葉子節(jié)點的計算方式來學習從細到粗粒度的特征,并在每個葉子節(jié)點利用特征進行預測,最后將結(jié)合所有葉子節(jié)點的預測得到最終預測值.與它相比,本文方法不僅循序漸進的學習了由細到粗的多粒度特征,并且還將他們?nèi)诤显谝黄?從而在效果上比ACNet提升了0.2%.盡管相對上述兩個方法來說,本文方法得到的效果提升并不顯著,但是考慮到Stanford Cars數(shù)據(jù)集中的汽車數(shù)據(jù)相似度極高,取得的微弱優(yōu)勢仍然足以證明本文方法具有強大的競爭力.
本文在CUB-200-2011數(shù)據(jù)集上進行了一些消融實驗,來探究局部錯位模塊,注意力模塊以及可變形卷積在本文方法中的實用性.實驗中設置迭代學習步數(shù)S=3,各模塊消融實驗的準確率比較如表4所示,精度-召回率(PR)曲線以及平均精度mAP如圖5所示,其中PDM代表局部錯位模塊,A代表注意力模塊,D代表可變形卷積模塊.
表4 在CUB-200-2011數(shù)據(jù)集上的消融實驗結(jié)果表Table 4 Result of ablation study on CUB-200-2011
圖5 數(shù)據(jù)集CUB-200-2011上的PR曲線圖Fig.5 PR curves on CUB-200-2011 datasets
在只加入局部錯位模塊的情況下,模型的準確率提高了0.7%,這是因為局部錯位模塊能夠生成不同粒度的輸入圖像,有助于網(wǎng)絡利用不同粒度的特征來彌補只使用相同粒度特征的劣勢,實驗結(jié)果顯示,加入局部錯位模塊后的PR曲線明顯優(yōu)于添加該模塊之前,平均精度提高0.7,說明局部錯位模塊對模型的性能提升有幫助.同時注意力模塊也給模型的效果帶來了穩(wěn)定的提升,加入注意力模塊的情況比只使用局部錯位模塊提升了0.9%的模型準確率,并且平均精度mAP也提升了0.8,這是因為引入的注意力模塊可以更好地定位特征中具有辨別性的區(qū)域.可形變卷積模塊能夠?qū)⒑谢パa信息的多粒度特征融合在一起,貢獻了1.3%的準確率提升和1.1的平均精度提升,同時PR曲線也更優(yōu),這有力的印證了可變性卷積模塊的有效性.實驗表明,上述3個模塊都對模型性能做出了貢獻,并且由于它們作用的內(nèi)在聯(lián)系,3個模塊的協(xié)同合作的效果遠遠大于單個模塊給模型帶來的提升,在加入3個模塊的情況下,準確率整整比只是用ResNet50時增長了2.8%,PR曲線相較ResNet50有明顯優(yōu)勢,且平均精度也在ResNet50基礎上有明顯提升,這再一次驗證了本文使用的模塊的有效性.
本節(jié)使用FLOPs和推理時間來衡量模型的時間復雜度,使用參數(shù)量來描述模型的空間復雜度,FLOPs指代浮點運算數(shù)量,能夠借由該指標表示模型的計算量,推理時間代表模型在推理單張圖片的分類結(jié)果所需要的時間.參數(shù)量描述模型每一層的參數(shù)數(shù)量之和,用來衡量模型所占空間.
表5 模型復雜度Table 5 Model complexity
如表5所示,PDM模塊在沒有帶來額外的計算量與參數(shù)量的基礎上得到了準確率的提高,增加的注意力模塊和可變形卷積模塊用少量的計算量和參數(shù)量的提升以及少量推理速度的犧牲,換取了模型可觀的效果提升.
本文面向細粒度圖像分類,提出了一種融合多粒度特征的網(wǎng)絡,該網(wǎng)絡通過局部錯位模塊、注意力模塊、迭代學習方式和可變形卷積模塊的協(xié)同合作,使網(wǎng)絡逐步學習粒度從細到粗的特征表示并將提取到不同粒度的特征進行融合,目的是利用不同粒度特征之間的互補信息來提高分類網(wǎng)絡的準確率.本文在CUB-200-2011、FGVC-Aircraft和Stanford Cars 3個數(shù)據(jù)集上的進行了一系列的實驗,證明了本文方法的優(yōu)越性.在未來的工作計劃中,將致力于通過去除多粒度特征的冗余信息以及解決過擬合現(xiàn)象的方式,來提高細粒度圖像分類方法的性能.