齊 妍,孫 涵
(南京航空航天大學 計算機科學與技術學院/人工智能學院,江蘇 南京 211106)
細粒度圖像識別一直是計算機視覺領域上的研究熱點之一[1-2],由于細粒度圖像識別研究的對象常常來自于在某一傳統類別下的子類別,這種同類之間的圖像差異較小,識別難度也更高。目前深度學習的方法已經取得了良好的分類性能,但深度學習模型的成功,很大程度上依賴于大量訓練數據[3],需要大量具有不同視覺變化的標記數據來有效地訓練一個網絡,而對數據進行標記將會消耗大量的時間和人力,并且通常需要專業人員提供的特定領域的知識,這既昂貴又難以獲得。不僅如此,在現實的場景中,某些類別僅能獲得極少量的樣本,例如稀有動植物、新型號的汽車等,這就對現有的方法帶來了極大的挑戰。因此,如何利用少量標記樣本來識別細粒度對象,即小樣本細粒度圖像識別,是深度學習領域一個極具挑戰性的問題。相較于常規的小樣本圖像分類,小樣本細粒度圖像分類更具有挑戰性,原因主要有:(1)類內差異大。由于姿勢、光照條件、背景等的不同,使得同一類樣本中的圖像可能在視覺外觀上差異較大;(2)類間差異小。屬于不同類別的圖像往往可能存在著相似的紋理或外觀,例如柴犬和秋田犬的毛色、紋路等十分相似,很難區分細微的視覺差異;(3)樣本數量少,每個類的樣本數量非常有限,很難有效地表示類的分布[4];(4)在不同的分類任務中,對應的區分性特征可能是不同的,如圖1所示。

任務1 任務2
對于任務1來說,不同鳥類的翅膀較為相似,而鳥喙的差異較大,因此鳥喙是一個有區分性的特征,而對于任務2,鳥喙不是最關鍵的特征,而翅膀更加有判別性,因此在這個任務中,翅膀更為重要。因此僅得到常規的判別性特征是不夠的,需要挖掘到任務內對于當前分類任務貢獻更大的判別性特征。
細粒度圖像之間的差異通常隱藏在細微之處,因此,挖掘判別性的局部區域對于分類來說是至關重要的。Zhu等人[5]提出了任務學習機來捕捉圖像的區分性部分,通過數據分布來調整模型的參數,使得模型僅依賴很少數量的樣本就可以獲得良好的參數分布。Li等人[6]提出了使用兩種相似性度量的方法來學習特征映射,使得模型通過少量樣本的學習就能學習到更多的判別性特征,從而顯著提高模型的泛化能力。這些方法能夠顯著提升小樣本細粒度圖像識別的精度,但都忽略了細粒度任務中的另一個關鍵問題,即由于光照、角度、背景等影響,同類樣本之間可能表現出千差萬別的視覺效果[7]。這種較大的類內差異使得模型難以挖掘圖像之間的共性特征,模型的泛化能力較差。此外,不同分類任務之間的區分性特征是不同的。事實上,在任務中被多個類共享的特征對于分類的貢獻并不是很大,例如,對于一個查詢樣本的局部描述子,支持集中不同類別樣本的局部部分都具有與其較高的相似性,這實際上對分類并不重要??傊?不同的部分對于不同任務的重要性是不同的。挖掘特定于分類任務的判別性特征是重要的。針對上述問題,該文提出基于判別性特征增強的方法來學習類內一致的特征表示,同時挖掘任務內特定的區分性信息。具體地說,提出的小樣本細粒度圖像識別算法(DFENet)包括三個核心模塊:對稱注意力模塊、通道判別性特征增強模塊和相似度量模塊。首先,對稱注意力機制來重新對特征表示進行加權,使用支持集樣本查詢集樣本互相指導,從而提高圖像中共同出現的區域的權重,即學習一致的特征表示,減少復雜的背景和較大的類內視覺外觀的變化帶來的影響。其次,對于支持集樣本,通過通道判別性特征增強模塊產生權值來表示每個類的通道判別能力,這些權重用于生成更關注區分細節的任務自適應特征圖,并限制對當前任務分類作用不大的通道。最后,加權之后的特征表示被送入相似性度量模塊,該文的相似性度量模塊利用全局和局部相似性度量,充分利用全局特征的類內不變性,挖掘隱藏在局部細節中的豐富信息[8]。大量的實驗結果表明,DFENet能夠顯著提升細粒度檢索精度。
貢獻如下:
(1)針對小樣本細粒度圖像識別問題,提出了一種基于判別性特征增強的小樣本細粒度圖像識別方法(DFENet),挖掘類內一致的判別性特征表示,同時學習特定任務內的區分性特征。
(2)設計對稱注意力機制來重新對特征表示進行加權來學習一致的特征表示,減少背景帶來的影響。同時,通過通道判別性特征增強模塊利用類內和類間樣本的關系,生成任務特定的通道注意力,給予包含任務內判別性特征的通道更高的權重。
(3)在三個代表性細粒度數據集上進行了詳細的實驗,驗證了提出的DFENet的有效性。
與常規的粗粒度圖像分類不同[9-10],細粒度圖像識別旨在對某一超類圖像中的不同子類圖像進行識別,這些圖像通常具有相似的視覺表示,以及千差萬別的姿態。早期的傳統細粒度分類方法一般基于手工特征,例如從圖像中提取SIFT[11]或者HOG[12]特征,再經過編碼模型對特征進行編碼。但是這種手工的方法有很大的局限性,很難準確地獲取到圖片樣本之間的細微差異。隨著人工智能技術的飛速發展,傳統的手工特征方法逐漸被深度學習的方法所取代,越來越多的網絡模型被提出。深度學習的方法可以大致分為強監督方法和弱監督方法[13]。Zheng等人[14]通過將特征通道聚類到不同的分組來關注多個對象部分,同時提出了部件分類損失和通道分組損失,鼓勵模型從不同的特征通道中生成更多的判別性部分,并以相互強化的方式學習更好的局部細粒度特征。Chang等人[15]認為挖掘多區域多粒度特征是細粒度圖像分類的關鍵,該模型利用高層特征生成的注意力來約束中層特征,以獲得多粒度特征。Hu等人[16]提出利用注意力機制對圖像進行隨機裁剪和隨機丟棄,以獲得更多的樣本數據。
小樣本學習是通過對有限數量樣本的學習[17]對新樣本進行建模,以模擬人類快速學習新事物的能力。Finn等人[18]提出模型無關元學習算法,通過訓練一個元學習器來學習參數初始化,計算模型損失并通過梯度下降算法對參數進行訓練。Koch等人[19]提出了一個孿生神經網絡,通過自發地對輸入進行相似性排序來學習通用的圖像表示。Snell等人[20]提出將每一個分類下所有樣本的平均值作為類別的原型表示,找到所有類樣本所共有的特征,并利用歐氏距離對樣本進行分類。Li等人[4]提出采用k-最近鄰來捕獲所有圖像到類的局部特征描述子之間的相似性。
小樣本細粒度圖像識別是在小樣本情況下處理細粒度視覺任務,已經成為一個熱門的交叉領域,逐漸吸引了學者們的興趣。Wei等人[21]首次提出了小樣本細粒度圖像分類,該方法采用雙線性特征,通過將樣本圖像的分類信息進行編碼,得到特征向量表示,并在分類器映射模塊中將中間圖像特征映射到類別級別決策邊界。Zhu等人[22]提出了任務學習機來捕捉圖像的區分性部分,通過數據分布來調整模型的參數,使得模型僅依賴很少數量的樣本就可以獲得良好的參數分布。Li等人[6]提出了使用兩種相似性度量的方法來學習特征映射,使得模型通過少量樣本的學習就能學習到更多的判別性特征,從而顯著提高模型的泛化能力。
方法的網絡結構如圖2所示。首先,圖片經過特征提取網絡得到特征圖,接著通過對稱注意力模塊來學習一致性的特征表示,賦予支持集樣本與查詢樣本圖像中共同出現的區域更高的權重,并抑制背景等無關信息。然后,通道注意力模塊利用支持集中類內和類間的特征距離生成任務特定的通道注意力權重,用來挖掘并加權判別性信息。接著加權之后的特征被送入相似性度量模塊來計算相似性,本章由全局和局部特征表示來分別計算相似性,充分利用全局特征的類內不變性和局部細節的判別性表示。

圖2 DFENet算法框架
一個小樣本細粒度圖像識別問題通常被形式化為一個“N-way K-shot”的任務,其中,N表示圖像類別數,K表示每類包含的訓練樣本數。在訓練和測試過程中,樣本被分為支持集S和查詢集Q,少樣本學習的目標是根據集合S對Q中的每個未標記樣本進行分類。由于小樣本場景下訓練樣本的有限性,很難有效地訓練一個深度神經網絡。因此,通常引入輔助集A來學習可轉移知識來提高分類性能。特別地,S和A有自己不同的標簽空間,沒有交集。
在訓練階段,本研究遵循了小樣本方法常用的episode訓練機制[23],來學習可轉移知識。具體來說,在每次迭代過程中,從輔助集A中隨機選擇一部分樣本作為支持集AS和查詢集AQ,來模擬一次小樣本細粒度圖像識別的新任務。在訓練過程中,通過構建多個episode來訓練網絡模型,充分學習可轉移知識。在測試階段,訓練好的模型可以直接用來預測查詢圖像的類別。
圖像中,復雜的背景和較大的類內視覺外觀的變化可能會對學習到的圖像表示造成影響,導致同一類別圖像得到的特征嵌入的距離較遠[24]。因此,本研究通過對稱的注意力機制來重新對特征表示進行加權,提高查詢樣本和支持集樣本圖像中共同出現的區域的權重,減少具有高方差的背景區域以及在兩幅圖像中不共享的物體部分的權重。通常來說,兩幅圖像之間的背景差異通常較大,因此,對稱注意力機制可以使得網絡更加關注前景特征,更有效地減少背景的干擾。具體地,計算查詢圖像與支持集圖像之間的相關性,使用支持集來指導查詢集樣本,同樣,查詢樣本也反過來指導支持集的樣本的特征學習,挖掘圖像中共同出現的特征,并生成增強的特征表示。
首先,對于輸入圖片X,經過特征嵌入模塊fφ得到特征圖F∈RH×W×C,其中H,W分別表示特征圖的高和寬,C表示特征的通道數。接下來,計算支持集樣本和查詢集樣本的相關性得分,生成注意力并分別對查詢樣本和支持集樣本進行加權。以生成查詢樣本的注意力為例,利用一個查詢樣本的特征與支持集樣本中的特征之間的點積來生成一個相關性分數作為權重值:
Fs'=g(Fs)
(1)
si=Fq·Fs'
(2)
其中,g(·)表示全局平均池化層,Fs和Fq分別表示支持集樣本的特征和查詢樣本的特征,si表示相關性分數。接著將相關性分數經過卷積塊得到權重值。
wi=f(si)
(3)
其中,f(·)表示卷積塊,由卷積層和激活函數組成。將計算得到的權重作用到特征圖上,得到加權之后的查詢樣本的特征圖。對于支持集樣本也是同樣的操作。通過對稱的注意力機制,查詢樣本可以對支持集樣本進行加權,選擇支持集樣本中與查詢樣本相關性更高的特征區域,類似地,支持集樣本也可以反過來對查詢樣本進行加權,選擇查詢樣本中與支持集樣本相關性更高的特征區域。通過這種方式,相關性更高的區域得到了更高的注意力得分,提高了共享的對象區域的權重,而圖像與圖像之間共享的區域更多的為前景特征表示,進而增強了判別性的特征表示,減少圖像中背景區域的影響。
一些研究中[25-28]指出,一個卷積特征通道通常對應于一種特定類型的視覺模式,例如鳥的喙、翅膀等位置,而有些通道的特征對于分類來說是至關重要的,相反,有些通道的特征對于圖像識別來說并不那么重要。因此,本節利用支持集中同類樣本內以及不同類樣本之間的關系對不同通道進行加權,突出顯示不同通道中對于分類任務更重要的判別性區域,并限制對分類作用不大的通道。
首先計算同類樣本內的通道關系。對于支持集圖像特征圖Fs,首先計算類均值,作為當前類的原型,計算公式如下:
(4)
其中,i表示支持集中的第i類樣本,K代表每類中的樣本數量。接著計算類原型的所有通道的均值,作為該類對應的特征表示,對應的特征表示表示一個顯著的對象區域。計算公式如下:
(5)

(6)
其中,cos(·)表示余弦相似度。
本研究同樣考慮了不同類別樣本之間的通道關系,挖掘任務內特定的判別性特征。例如,一個類別的特征通道與其他類別的類特征表示的相似性較低,那么就代表這個通道所表示的特征與其他的類別是不同的,即當前通道具有更好的區分性,而如果一個通道的特征表示與其他類別的特征十分相似,那么它所表示的特征就是不足夠有判別性的。因此,本研究計算了不同類別之間的通道關系,在一次分類任務中去考慮判別性特征,計算公式如下:
(7)
當類間的關系得分越小,表明該特征越具有區分性。接著,將計算得到的兩個關系得分通過全連接層轉換為權重。
(8)
(9)
其中,f1和f2表示兩個不同的全連接塊,由全連接層、歸一化層和激活函數組成。接著,結合計算出的兩個權重,得到第i類支持集樣本特定于當前任務的通道權重,由類內和類間兩種權重線性組合而成,如下式:
(10)
其中,α為超參數。通道維度的判別性特征增強模塊利用支持集樣本之間的關系,使類內相似的局部特征變得更加相似,而類間不同的局部特征則更加不同。最終,利用任務特定的權重來生成任務自適應特征映射。
2.4.1 全局相似性模塊
全局相似性度量模塊使用支持集和查詢集樣本的全局特征表示來計算相似性。對于支持集樣本,每個支持集類中圖像的特征表示的平均值作為類原型,表示每個類別的全局結構,以學習類內不變的特征表示。首先,經過兩個卷積塊(hconv)來學習圖像中具有全局表示的通用知識,接著使用一個余弦相似度層(hcos)來度量查詢圖片與支持集圖片的相似度,具體地,相似性得分計算公式如下:
(11)
其中,Xq表示查詢圖片,n表示支持集中的第n個類別。
2.4.2 局部相似性模塊
對于細粒度圖像來說,局部的細節特征對于分類來說是至關重要的,而基于局部描述子的特征表示比圖像級特征更加豐富,并且局部描述符可以捕獲局部細微信息,也可以緩解小樣本問題中樣本稀缺的問題,因此DFENet同時利用局部描述子來度量相似性。具體地,給定一幅圖像的特征向量F∈RH×W×C,可以將其表示為H*W個C維的局部特征描述子,每個局部描述子對應于原圖像中的空間局部區域,如下式:
fφ(X)=[x1,x2,…,xm]∈RC×HW
(12)
其中,xi表示第i個深度局部描述子。
對于每個查詢樣本,可以表示為Lq=fφ(q)∈RC×HW。對于支持集圖片,同類中所有圖像的所有局部描述符將一起來表示該類樣本,記為Ls=fφ(s)∈RC×NKHW。接下來,DFENet選擇局部描述子中得分最高的top-k區域,即最具有判別性的局部部分,來計算查詢圖像Xq和支持集圖像Xs的局部相似性得分,如下式:
(13)
(14)
其中,cos(·)表示余弦相似度量。
查詢圖像對于第n類的總的相似性得分為全局和局部相似性得分的均值。
(15)
特別地,提出的局部分支是非參數化的,由于非參數模型不涉及參數學習,小樣本學習方法中的過擬合問題也可以在一定程度上得到緩解。

(16)
(17)
因此,總的損失函數為:
(18)
損失函數進行反向傳播,通過最小化損失函數以達到訓練網絡的目的。
該方法在3個廣泛使用的細粒度數據集上進行了實驗,即CUB-200-2011,Stanford Dogs和Stanford Cars,并與其他先進的方法做出比較。將數據集劃分為訓練集、驗證集和測試集,分別占數據集的50%,25%和25%。
該研究分別在5-way 1-shot和5-way 5-shot任務中進行實驗,并使用平均精度作為評價指標,并報告了95%的置信區間。
DFENet利用Conv-64F網絡得到特征表示,該網絡由4層卷積塊組成,每個卷積塊由一個3*3的卷積層、一個歸一化層和一個激活函數組成,前兩個卷積塊還在最后添加了最大池化層。在訓練過程中,遵循小樣本常用的訓練方法,即episode訓練機制。該文分別在3個經典的細粒度數據集上進行實驗,在5-way 1-shot和5-way 5-shot任務中分別訓練了600和400個epoch,使用Adam優化器來訓練網絡,初始學習率為0.001,每100 000個episode衰減一半。在測試階段,從測試集中隨機采樣,得到top-1的準確性,并且報告了95%的置信區間。
為了驗證提出的DFENet方法的有效性,首先與其他經典的小樣本學習方法進行了比較,在3個經典的細粒度數據集上對所有的方法進行評估。
如表1所示,DFENet算法在3個數據集上與其他小樣本學習方法相比較都取得了顯著的提升。具體來說,在CUB-200-2011數據集上,DFENet在5-way 1-shot任務中取得了70.06%的識別率,與第二名相比提高了4.71百分點,在5-way 5-shot方案中,與第二名比較提高了2.45百分點。同樣在Stanford Dogs和Stanford Cars數據集上,該方法都取得了最好的效果,特別地,提出的DFENet在1-shot任務中的表現更為出色。產生如此巨大差異的主要原因是該方法是專門針對細粒度圖像而設計的,傳統的圖像識別與細粒度圖像識別之間的差異是巨大的,細粒度圖像識別需要特征提取網絡具有關注局部細節的能力,從而提升識別準確率。

表1 與小樣本方法的比較
本節進行了分析實驗,如表2所示,以評估本研究與其他五種小樣本細粒度識別方法的性能。從表中可以看出,在不同的任務設置中DFENet與其他小樣本細粒度識別方法相比仍有較大的優勢。例如,在CUB-200-2011數據集上,DFENet在5-way 1-shot任務中高出第二名2.60%,在5-way 5-shot方案中,取得了第二好的效果。在Stanford Dogs數據集上,該方法在兩種設置中都取得了最好的效果,分別提升了3.55百分點和1.78百分點。在Stanford Cars數據集上,也分別取得了第一和第二的效果。實驗結果驗證了所提模塊的有效性,并且在多個數據集上表現穩定。特別地,BSNet[6]方法是與文中方法關系最密切的方法,該方法同樣采用了兩種相似度量方法,與文中方法不同的是,BSNet是在全局特征表示的基礎上使用了兩種不同的度量方法。如表2所示,DFENet在3個數據集上的結果均好于BSNet,結果的改善主要是由于文中方法同時使用了全局特征和局部特征,既獲取到全局不變的特征表示,又能利用隱藏的局部細節。

表2 與小樣本細粒度方法的比較
如表3所示,實驗進一步驗證了DFENet每個部分的有效性。DFENet的一個重要模塊是對稱注意力,從表3中可以看出,加入對稱注意力模塊后識別有了明顯的提升,在5-way 1-shot和5-way 5-shot任務中分別提高了2.72百分點和0.80百分點。顯著的效果提升主要來自于挖掘到了類內一致的特征表示。通過對稱的注意力機制對特征表示進行加權,使得查詢樣本和支持集樣本圖像中共同出現的區域獲得更大的權重,而不共享的部分則獲得較低的權重。通過重新加權,可以抑制圖像內背景以及類內視覺變化等帶來的影響,網絡更加關注一致性的前景特征表示,以提升識別的準確率。

表3 消融實驗
DFENet在通道維度上進一步挖掘了對于當前分類任務更具有區分性的判別性特征表示。如表3所示,加入了通道維度判別性特征增強模塊后,在5-way 1-shot和5-way 5-shot任務中的識別效果分別提升了2.10百分點和1.59百分點,這表明了利用支持集中同類樣本內和不同類樣本之間通道的相關性對通道進行重加權是十分有效的,可以挖掘到對當前分類任務更加有幫助的判別性特征表示,并抑制了對于分類作用不到的通道特征,從而提升了模型的識別效果。
可視化結果顯示了DFENet關注的特征表示,從圖3可以看出,相較于其他先進方法,DFENet關注的區域更加集中在判別性的前景特征表示,例如鳥的頭部和翅膀,而在背景等無關區域的激活較少。這說明提出的特征增強方法顯著提高了模型對于判別性特征的學習能力,挖掘到了細微而又具有區別性的特征表示,突出了原始圖像上的局部細節,進而提升模型的識別效果。

圖3 可視化結果
提出了一種用于小樣本細粒度圖像識別的基于判別性特征增強方法(DFENet)。該網絡由三個設計的組件組成,一個對稱注意力模塊、一個挖掘任務間關系的通道注意力模塊和一個相似性度量模塊。具體來說,對稱注意力模塊旨在增強查詢樣本與支持集樣本中共有的圖像特征,抑制背景等無關信息。通道注意力模塊則利用任務中支持集樣本內以及不同樣本之間的通道特征對支持集樣本的通道進行加權,充分特定于任務的判別性特征。而相似度量模塊則利用全局和局部特征來探索相似性。大量的實驗表明,DFENet在多個數據集上均表現出優于或與先前方法有競爭性的結果。