邊小勇 ,江沛齡 ,趙 敏 ,丁 勝 ,張曉龍
(1.武漢科技大學 計算機科學與技術學院,武漢430065; 2.武漢科技大學大數據科學與工程研究院,武漢430065;3.智能信息處理與實時工業系統湖北省重點實驗室(武漢科技大學),武漢430065;4.武漢科技大學信息科學與工程學院,武漢430081; 5.冶金自動化與檢測技術教育部工程研究中心(武漢科技大學),武漢430081)(?通信作者電子郵箱xyongwh04@163.com)
細粒度圖像分類是近年來計算機視覺、模式識別等領域一個非常熱門的研究課題[1],是對屬于同一基礎類別的圖像(如birds類、aircrafts類、dogs類等)進行更加細致的子類劃分,但由于類內差異更大,存在姿態、視角、遮擋和背景干擾等諸多變化,而類間差異更加細微,因此細粒度圖像分類是一項極具挑戰的研究任務。
近十年來,細粒度圖像分類研究方法大多數是從局部可區分性部位檢測出發,尋找對圖像魯棒的特征表示,具體可分為4個研究內容:1)基于常規圖像分類網絡的微調方法,2)基于部位檢測和對齊的方法,3)基于細粒度特征學習的方法,4)基于視覺注意機制的方法。以上前兩類方法通常需要額外的對象標注信息,例如包圍邊框(Bounding Box,Bbox)或部位(Part),而獲取人工標注信息的成本極高,且有較強的主觀性,因而模型往往不是最優的。國內外學者越來越多地集中在后兩類方法的研究上。Xiao等[2]提出了兩級注意力算法,首次嘗試只依靠類別標簽實現細粒度圖像分類。此后,弱監督細粒度圖像分類研究得到快速發展。以上述方法3)為代表的工作有:Lin等[3]提出的雙線性卷積神經網絡模型(Bilinear-CNN),該方法使用 VGG-D(Visual Geometry Group-D)和 VGG-M(Visual Geometry Group-M)兩個網絡作為基礎網絡,并組合它們的輸出特征進行分類,對細粒度圖像產生更好的表示;Zhang等[4]從卷積神經網絡(Convolutional Neural Network,CNN)中提取神經激活,分別用于定位局部區域和描述特征,提出了一種空間加權Fisher向量的編碼方法(Spatially Weighted Fisher Vector CNN,SWFV-CNN),通過Fisher向量的空間加權組合來描述判別性特征;Wang等[5]提出了非對稱多分支網絡,同時關注局部區域與全局信息,并利用顯著性檢測,提取顯著性區域的特征;王永雄等[6]構建聚焦—識別的聯合學習框架,通過去除背景、突出待識別目標,消除無關信息對分類的影響;從數據擴增方面,Yang等[7]提出了一種新的自監督機制,學習具有判別性的細微特征。
最近,基于注意力的細粒度圖像分類研究取得了不少進展。針對傳統注意力模型只關注單個位置,Zhao等[8]提出多樣注意力網絡,采用長短期記憶(Long Short-Term Memory,LSTM)網絡作為注意力機制,在不同時間生成不同的注意區域,每個時間步都會預測物體類別,采用各個預測結果的均值后得到最終預測結果;隨著對注意力研究的深入,Sun等[9]提出多注意力多約束網絡,結合了度量學習,加強了注意力特征之間的聯系;針對局部信息關注不足的問題,王培森等[10]提出了一種端到端訓練的多通道視覺注意力網絡,通過多視覺注意力圖提取對應高階統計特性的視覺表示用于細粒度圖像分類。盡管上述方法都取得了一定的效果,但是基本都是考慮部位檢測及其變種,很少關注到對象大小、姿態和視角等諸多變化表達的差異性。現有的細粒度圖像分類仍然存在一些困難,主要體現在:如何對潛在語義區域進行有效的關注,以及減少因姿態、視角等諸多變化造成的干擾;針對非剛性、弱結構對象如何提取豐富的特征信息。
本文在我們以前工作[11]的基礎上,受Zhou等[12]在圖像區域定位和Zhou等[13-14]在濾波器旋轉學習上所做工作的啟發,提出了一種多分支神經網絡模型的弱監督細粒度圖像分類方法。不同于以上方法,本文首先通過輕量級定位網絡定位圖像中有潛在語義信息的局部區域用作新的輸入,然后設計可變形卷積的ResNet-50網絡和旋轉不變編碼的方向響應網絡(Oriented Response Network,ORN)[13]進行特征提取,最后通過網絡微調提取混淆少、對象形變適應和旋轉不變的特征并組合學習。主要工作如下:1)基于類激活圖(Class Activation Map,CAM)[12]網絡定位有潛在語義信息的局部區域;2)設計了可變形卷積的ResNet-50的網絡結構和旋轉不變編碼的ORN網絡結構,提取對象形變適應的局部特征和旋轉不變特征;3)將以上特征嵌入到一個多分支損失計算的優化目標中,使整合后的特征具有更好的判別性。
細粒度圖像分類研究的核心任務是抽取局部具有判別性的細微特征,產生類內差異小、類間差異大的特征表示。近年來,隨著深度學習的快速發展,細粒度圖像分類方法從細粒度特征學習到弱監督部位檢測方法不斷涌現。
物體的細粒度特征有助于物體的分類識別,從尋找局部判別性特征出發,Liu等[15]提出了全卷積注意力網絡(Fully Convolutional Attention Network,FCAN),該方法利用基于強化學習的視覺注意力模型來學習定位物體的多個局部區域,提取局部區域的細粒度特征用于分類,但由于使用固定尺寸的注意力區域,無法有效避免背景干擾。基于局部區域定位的細粒度圖像分類方法可能會丟失具有判別性的微小區域,如鳥爪、尾翼等。而基于特征表示的圖像分類方法可能會提取到判別性不夠好的特征,基于此,Fu等[16]提出循環注意力卷積神經網絡(Recurrent Attention Convolutional Neural Network,RA-CNN),學習多尺度局部區域特征,組合多個尺度的特征進行分類,不足的是關注的是一個多尺度局部區域,特征之間可能有較大冗余。基于一幅圖像關注一個局部區域或許不足以作出判斷,同時關注多個局部區域才能獲得更多的圖像信息,Zheng等[17]提出了多注意力卷積神經網絡(Multi-Attention Convolutional Neural Network,MA-CNN),利用特征圖不同通道關注的視覺部位不同,聚類峰值響應相近的通道從而得到注意力區域,但針對多個區域的特征對齊問題值得探索。
基于部件檢測的方法中,代表性的工作有Sermanet等[18]提出一種基于GoogLeNet的深度遞歸神經網絡,網絡在每個時間步處理一個圖像部位來學習圖像特征。由于圖像塊之間存在冗余,并且包含了無用的背景信息,因此最終分類結果不夠理想。Han等[19]提出了基于部件的卷積神經網絡基于壓縮-刺激(Squeeze-and-Excitation,SE)模塊加強信息信道和抑制無用信道,來學習信道特征響應,利用卷積濾波器定位判別性部件,學習部位特征和全局特征聯合進行分類。
不同于以上所有方法,本文利用輕量級CAM網絡定位有潛在語義信息的局部區域,輸入到可變形卷積的ResNet-50網絡和旋轉不變編碼的ORN,有效提取形變適應的局部特征和旋轉不變特征。通過組合分支內和分支間損失計算優化整個網絡,可以提取更好的區分特征,提高對非剛性、弱結構對象和姿態、視角等諸多變化的分類性能。
針對傳統的基于注意力機制的神經網絡模型不能聯合關注局部特征和旋轉不變特征的問題,本文提出一種多分支神經網絡模型的弱監督細粒度圖像分類方法。首先,研究了基于輕量級CAM網絡定位有潛在語義信息的局部區域;然后,設計了可變形卷積的ResNet-50網絡和旋轉不變編碼的ORN,將原圖像和局部區域輸入到特征網絡進行特征提取;最后,組合3個分支內損失和分支間損失優化整個網絡,進行分類。
本文方法的整體框架如圖1所示,包括兩個子網絡:局部區域定位網絡與特征提取網絡,其中,利用CAM定位網絡的最后一個卷積層、全局平均池化層(Global Average Pooling,GAP)和Softmax分類層聯合生成類激活圖,定位有潛在語義信息的局部區域(如圖1所示)。隨后將原圖和定位出的局部區域分別輸入到兩個可變形卷積的ResNet-50網絡和旋轉不變編碼的ORN,構成3個分支的特征網絡,并組合3個分支內損失和分支間損失優化整個網絡,直至收斂。

圖1 多分支神經網絡模型Fig.1 Model of multi-branch neural network
如圖1所示,在CAM定位網絡[12]中,最后一個卷積層之后緊跟著的是GAP層,以及Softmax分類層。將Softmax層輸出的預測概率映射回最后一個卷積層來產生類激活圖。具體是,對于給定的圖像,在GAP層對每一個特征圖求全局平均值,輸出每個特征圖的平均值。用c表示某個類別標簽,fk(x,y)表示第k個特征圖上位置(x,y)的值,wck表示在第k個特征圖上第c類的權重,兩者相乘后得到第c類的激活特征圖。最后,將多個激活特征圖加權得到該圖像的類激活圖。定義屬于某個類別c的類激活圖為:

Mc(x,y)表示不同的特征圖對識別類別c的加權結果,即定位到當前圖像最強響應特征的高亮區域。然后基于灰度閾值框選出有潛在語義信息的局部區域,如圖1中感興趣區域選擇(Region Of Interest Selection,ROI Selection)框為增加的處理模塊,最后結合原圖像和ROI位置信息就可以得到裁剪后的局部區域。局部區域仍然保留一定數量的上下文像素有助于產生輔助信息。
基于CAM的定位網絡由于使用GAP層取代全連接層,減少了網絡參數,避免了過擬合,能定位到有潛在語義信息的局部區域。同時CAM網絡是輕量級的,因而沒有增加額外的計算開銷,具有好的適應性。
1)可變形卷積的ResNet-50網絡。
傳統的卷積核受固定形狀的影響,只能采集固定鄰域內的局部信息,因而缺少自適應特征表達能力。而可變形卷積(Deformable Convolution)[20-21]通過擴展卷積,在更大的鄰域范圍采樣到更為豐富的特征信息,但輸出特征圖仍然具有相同的空間分辨率。
本分支以ResNet-50網絡為基礎,其中每一個殘差模塊都是由卷積核大小分別為1×1、3×3、1×1的三個卷積層串聯在一起,Conv1包含一個卷積層,Conv2_x、Conv3_x和Conv4_x分別由3、4、6個殘差塊組成。參照文獻[20],如圖1所示,設計將Conv5_x層中3個3×3傳統卷積替換為可變形卷積,構成可變形卷積的ResNet-50網絡。因此,原先規則網格R會附加一個偏移量{Δps|s=1,2,…,A|},A=|R|,對于輸出特征圖U中的每個位置p0,U(p0)計算為:

其中I(?)表示輸入特征圖。根據可變形卷積原理,首先在輸入特征圖的每個位置生成一個偏移量,并將其向前傳播;在后向傳播階段,新增的偏移位置ps+Δps會同時被學習,然后經過雙線性插值得到整數的空間位置,進而執行可變形卷積。由以上可知,可變形卷積的ResNet-50網絡增加了對物體形變的檢測能力,能提取到更為豐富的判別特征。
2)旋轉不變編碼的方向響應網絡。
細粒度圖像類內差異更大,存在姿態、視角、遮擋和背景干擾等諸多變化。為減少類內變化帶來的影響,本分支引入ORN[13]進行旋轉不變特征學習。如圖1所示,將所有普通卷積層均替換為方向響應卷積(Oriented Response Convolution,ORConv),且最后一個ORConv層之后接入一個旋轉不變對齊層,構成旋轉不變的方向響應網絡。該網絡首先設計多個不同方向的主動旋轉濾波器(Active Rotating Filter,ARF)來產生不同方向的特征信息。一個含有O個方向的ARF在卷積過程中主動旋轉O-1次產生O個通道的特征圖,該特征圖顯式包括了位置和方向信息。基于主動旋轉濾波器F和O個通道的特 征 圖M,定 義 方 向 響 應 卷 積(ORConv)為=ORConv(F,M)。輸出特征圖?具有O個通道,其中第k個通道計算為:

其中:F(o)θk為第o個方向旋轉角為θk的主動旋轉濾波器F。第0個方向的主動旋轉濾波器F可看成是物理的,通過后向傳播進行學習,即使用其余O-1個方向(虛擬)的主動旋轉濾波器進行更新,定義為:

其中:δ(k)-θk表示第k個方向對齊到-θk的訓練誤差,L表示訓練損失,η表示學習率。依照式(4),后向傳播階段對第0個方向的主濾波器進行更新,因而對于外觀相似但方向不同的樣本(塊)的訓練誤差得以聚合。
在ORN中,通過以上步驟獲得的輸出特征編碼了方向信息,但還不是旋轉不變的。為了獲得類內旋轉不變表示,本分支引入方向響應對齊(Oriented Response Align,ORAlign)層編碼上述特征。具體是,采用類似尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)的對齊方式,找到特征響應最強的方向,將其作為主方向,然后旋轉輸入特征,從而獲得類內旋轉不變特征,進而保持類間判別性。
與卷積神經網絡(CNN)相比,ORN使用ARF取代常規濾波器,網絡參數更少,能捕獲更多方向的模式特征,并基于ORAlign層處理使得輸出特征具有旋轉不變性。
本文方法定義了分支內損失和分支間損失兩種損失函數,將分支內損失和相鄰分支之間的損失組合起來優化網絡,總損失函數定義為:

其中:B表示分支數,α是調整總損失和相鄰分支損失之間關系的因子,如圖1融合層所示。分支內損失L(b)intra使用交叉熵損失,計算為:

其中:N表示訓練樣本數,C是類別數,yi,k是真實類別,第k個樣本被預測為第i個類別的概率為pi,k。為了確保分支之間以相互強化的方式學習,定義分支間損失為:

其中:Yk是所有類別上的yi,k,P(?)k為所有類別上指定分支的pi,k。每個分支參考相鄰分支逐步學習各自的特征表示,使總體損失誤差趨于最小,提高分類性能。
在第b個分支上的卷積權重通過隨機梯度下降計算為:

其中:η表示學習率,Lj表示第j個訓練樣本的損失值函數,q表示批大小。Τ表示相鄰分支之間的關聯度,定義為:

如果分支損失明顯高于分支損失,學習率α將增加以減小分支b和分支b-1之間的距離。通過訓練總損失函數來優化整個網絡,將不同分支計算的結果進行融合,得到最終的預測類別。
本文方法在Ubuntu 16.0 LTS系統中進行實驗仿真,使用基于Pytorch的深度學習框架,采用Tesla V100圖形加速卡進行訓練。
本文使用細粒度圖像分類領域中兩個廣泛使用的、富于挑戰性的圖像數據集CUB-200-2011[22]、飛行器細粒度視覺分類 (Fine-Grained Visual Classification of Aircraft,FGVC_Aircraft)[23]和 一 個 實 驗 室 收 集 的 戰 斗 機 數 據 集Aircraft_2進行實驗,概述如下:
CUB-200-2011 該數據集是細粒度圖像分類領域最富挑戰性的數據庫,有200種不同鳥類的圖像,共有11 788幅圖像。該數據集由于鳥類姿態、位置各異,因此類間差異小、類內差異大。
FGVC_Aircraft 有102類不同的飛行器圖像,包含民航客機、直升機和無人機等。每一類包括100張不同的圖像,共有10 200張圖像。該數據集飛機型號劃分非常細致,類間相似性高。
Aircraft_2 在FGVC_Aircraft數據集的基礎上,我們收集了20類戰斗機圖像,每類包含100張圖像,一共2 000張圖像。相對于FGVC_Aircraft數據集,由于戰斗機的涂裝和所處環境不同,導致類內差異較大。
CUB-200-2011數據集中的圖像,每幅圖像的大小從200像素×200像素到500像素×500像素不等,實驗中被調整為448像素×448像素。FGVC_Aircraft數據集中的每幅圖像大約為800像素×600像素,實驗中被固定為800像素×600像素。實驗室收集的數據集Aircraft_2圖像大小約為600像素×400像素,統一調整為600像素×400像素。三個細粒度圖像數據庫的示例圖像如圖2所示,每個數據集的訓練集與測試集的劃分如表1所示。

圖2 細粒度圖像數據集示例圖像Fig.2 Example images of fine-grained image datasets

表1 細粒度圖像數據集統計信息Tab.1 Statistics of fine-grained image datasets
實驗中,可變形卷積分支用于偏移學習的卷積層參數初始化為0,學習率的倍數β設為1。α和m分別設置為0.1、0.05。批處理大小統一設置為16,初始學習率為0.002,迭代200次,每迭代50次學習率減半,當損失值保持平穩后得到最優模型。可變形卷積的ResNet-50網絡和旋轉不變編碼的ORN的層數分別為50、18,分別使用預訓練模型ResNet-50和OR-ResNet-18進行初始化。
為驗證本文方法的分類性能,首先設計了不同方法的對比實驗,實驗結果如表2所示,對照方法中一部分使用了圖像類別之外的額外監督信息,包括數據集提供的包圍邊框(Bbox)和部位標注(Part);另一部分使用了弱監督注意力機制。從表2中實驗結果可知,本文方法相較于此前使用包圍邊框等數據集標注的強監督分類方法,分類精度達到了同一水平,比多粒度卷積神經網絡(Multiple Granularity CNN,MGCNN)提高了2.3個百分點;同時相較于不使用額外標注的弱監督分類方法,本方法有明顯提升,比最近的MA-CNN提高了1.2個百分點。這一結果證明了多分支神經網絡模型具有有效提取互補特征,對細粒度圖像(鳥類圖像具有不同大小且對象像素少)進行有效區分的能力。

表2 CUB-200-2011數據集上的分類結果Tab.2 Classification results on CUB-200-2011 dataset
按照上文所述配置,本文基于多分支神經網絡模型的弱監督細粒度分類方法在FGVC_Aircraft數據集上得到了90.8%的分類精度,表3展示了不同方法在這個數據集中的比較結果。本文方法比最近的MA-CNN高出0.9個百分點,比挖掘判別性三元組(Mining Discriminative Triplet of Patch,MDTP)卷積神經網絡提高了5.4個百分點,比Fisher向量卷積神經網絡(Fisher Vector Convolutional Neural Network,FVCNN)提高了9.3個百分比,證明了本文所提方法的有效性。同樣地,部分方法使用了包圍邊框等額外標注信息。

表3 FGVC_Aircraft數據集上的分類結果Tab.3 Classification results on FGVC_Aircraft dataset
按照上文所述配置,本文所述多分支神經網絡模型在實驗室收集的Aircraft_2數據集中得到了91.8%的分類精度。其他三個對比方法FCAN、RA-CNN和MA-CNN均在本實驗中實現。從表中結果可知,本文方法相較于其他方法,在分類精度上有所提高。同時,結合網絡模型的復雜度進行比較,可知在使用預訓練模型的基礎上,本文方法所采用的多分支神經網絡模型能夠更為有效地提取與細粒度圖像分類相關的特征。由于飛機是剛性對象,且有較清晰的背景,因此分類精度更高。

表4 Aircraft_2數據集上的分類結果Tab.4 Classification resultson Aircraft_2 dataset
為進一步驗證本文方法各個分支的貢獻度,分別對局部區域定位網絡(CAM)、可變形卷積網絡(Deformable Convolutional Network,DCN)和方向響應網絡(ORN)三個不同分支進行實驗。實驗以ResNet-50網絡作為基礎網絡(Baseline)。不同分支(或分支組合)在上述三個數據集上的實驗結果如表5所示。

表5 本文方法不同分支在三個數據集上的實驗結果 單位:%Tab.5 Experimental resultsof different branchesof the proposed method on three datasets unit:%
從表5可知,本文所述多分支神經網絡模型在所有數據集上均要好于單個分支(或兩個分支)和基礎網絡的分類結果,在三個細粒度數據集上分別高出基礎網絡6.0個百分點、4.1個百分點和4.1個百分點,證明了多分支神經網絡整體優化可以有效地提取到有助于分類的重要信息。從實驗結果還可以看出,可變形卷積網絡(DCN)的分類結果略好于局部定位網絡(CAM)和方向響應網絡(ORN),這與該網絡層數更深有關。
考慮到弱監督細粒度圖像分類受語義對象像素大小和對象姿態、視角等諸多變化的影響,本文提出了一個新穎的多分支神經網絡模型的弱監督細粒度圖像分類方法。該方法首先利用CAM網絡快速定位圖像中有潛在語義信息的局部區域,輸入到可變形卷積的ResNet-50網絡和旋轉不變編碼的ORN學習物體形變適應的局部特征和旋轉不變特征表示,并將這些特征嵌入到一個多分支損失計算的優化目標中,從而獲得更具有判別性的圖像表示。在兩個公開的細粒度圖像數據集CUB-200-2011和FGVC_Aircraft,以及實驗室收集的戰斗機數據集Aircraft_2上評估驗證了本文方法的有效性,且實驗結果表明本文方法在不同數據集上的準確率均優于對比方法。然而在本文研究中僅考慮利用圖像中包含潛在語義對象的單個局部區域,沒有考慮定位圖像中多對象的其他區域。在接下來的工作中將探索如何改進模型,使得本文方法更加完善。