江 濤,彭太樂,胡曉斌,朱仕寧,郭 嘉,朱曉彤
(淮北師范大學計算機科學與技術學院,安徽淮北 235000)
人工智能技術的迅猛發展,使得子類別圖像分類的需求越來越多,例如物種種類識別、零售場景下商品識別等. 細粒度視覺識別[1]是計算機視覺領域中的一個研究熱點,近年來已取得了很大的進展,并已廣泛應用于專家級圖像識別、自動駕駛等諸多應用中. 與區分基本類別的圖像分類(如ImageNet 分類)不同的是,細粒度圖像在對象外觀上具有較小的差異[2],因此只能通過一些細微或局部的差異來識別,例如根據鳥的背部顏色或喙的形狀來區分鳥的品種.
對象的部件級特征通常在細粒度圖像分類任務中起著重要的作用,受此啟發,許多用于實現細粒度分類的算法都是基于目標塊檢測的[3-6]. 這些算法都遵循如下流程:首先找到前景對象及其局部區域,之后對這些區域進行特征提取,適當處理所得的特征后,最終完成分類器的訓練和預測. 這些方法有兩個基本限制:第一,嚴重依賴于人工標注信息,但是人工標注信息的獲取代價十分昂貴,這在一定程度上制約了算法的實用性;第二,很難確保手動定義的部分是最佳的或者適合最終的細粒度分類任務. 因此,一些學者開始尋求使用無監督或者弱監督的算法來檢測差異性信息. Xiao 等[7]最先提出了不使用標注信息的兩級注意力模型,分別關注對象級別和部件級別信息,將獲取到的兩部分信息相結合作為模型的輸出從而提高分類準確率,但是利用聚類算法得到的局部信息準確度十分有限. Wang 等[8]提出在卷積神經網絡中加入非對稱多流網絡,可有區別地學習特征,以此提高細粒度圖像分類任務的精度. Yang 等[9]提出NTS 網絡,通過自監督有效地定位信息區域. Chen 等[10]提出一種新的“破壞和構造學習”,除了標準的分類主干網絡,另一網絡被引入“破壞”圖像后“重建”圖像,對圖像各部分之間的語義進行關聯建模,通過各部件的交互達到增強網絡識別效果. Zheng 等[11]提出TASN 模型,使用三線性注意抽樣網絡,有效地減少了計算成本,同時還能提高一定準確率,但是該方法僅僅對圖像進行了采樣,并未對卷積特征進行基于注意力的采樣.
細粒度圖像中對分類有影響的差異性信息往往存在于較小的部件級區域中,而且背景信息對前景對象有較大干擾,特征向量中差異性信息提取的越多則分類精度則越高. 因此如何使特征向量中包含更多區分度的特征信息是提高細粒度圖像分類精度關鍵問題之一.本文在B-CNN模型的基礎之上,構建結合注意力機制的跨層雙線性網絡模型,使用跨層雙線性網絡能夠有效利用中間層特征信息,減少中間層特征信息損失,通過融合注意力機制避免圖片中的冗余信息影響,以此提升分類精度,并在鳥類數據集上進行分類效果驗證.
B-CNN 模型[12]是Lin 等人于2015 年提出的,其架構如圖1 所示. 一個雙線性網絡模型β由一個四元組組成:β=(fa,fb,p,c),其中fa、fb代表特征提取函數,即圖1中的網絡A 和網絡B,p為池化函數,c是分類函數. 一幅圖像經過兩個并列的卷積神經網絡完成特征提取,然后使用外積運算對特征相乘,獲得雙線性向量,最后通過一個分類層進行分類. 在只有圖像類別標簽的情況下,該模型實現了較好的弱監督分類效果.

圖1 B-CNN模型
B-CNN 類模型存在兩個缺陷[13]:第一,現有的基于雙線性網絡的模型僅將最后一個卷積層提取到的特征圖作為圖像的表示,這不足以對圖像的各個語義部分進行描述;第二,忽略了中間卷積激活,導致細粒度類別區別信息的丟失,從而影響細粒度類別分類的準確率.
計算機視覺中的注意力機制旨在讓系統忽略圖像中的背景等干擾信息,而將更多的關注重點放在有效信息上,它經常被使用在深度學習模型中以提升模型的分類、識別以及預測精度上. 本文算法根據細粒度圖像類間差距小而類內差異大的特點,在算法模型中融入注意力機制,以獲取圖片中的細微特征,從而提高算法的分類準確率.
混合域注意力機制CBAM 結構[14]如圖2 所示.其中通道注意力[15](Channel Attention)關注“什么是有意義的”,空間注意力[16](Spatial Attention)側重“何處是有效信息”. 混合域注意力機制經過測試,采用串聯結構,且通道注意力在前、空間注意力在后能夠得到最大程度提高分類準確率的效果.

圖2 CBAM結構
CBAM模塊過程如下:

式中:Mc(F)表示F經過通道注意力的輸出權值,Ms(F′)表示F′′經過空間注意力的輸出權值,F′′表示最終的注意力模型的輸出,?表示特征圖加權乘法運算符號.
雙線性網絡忽略中間層特征,會導致重要的判別信息丟失. 對此,本文構建一種跨層雙線性網絡(cross layer bilinear pooling,CL-BCNN)用于細粒度圖像分類,而不是僅使用最后一層卷積層的激活特征作為圖像的表達. 為了更好地利用層間交互以捕獲區分信息,本文提出一種跨層特征融合方法(如圖3),將Conv_i, Conv_j … Conv_n 提取到的特征定義為Fi,Fj…Fn,融合后的特征表示為:

圖3 跨層特征融合

其中?表示雙線性運算.該方法充分考慮多層卷積層之間的特征交互,在最終分類之前,將多個卷積層提取到的特征進行級聯,通過提高特征提取器的表達能力從而提高細粒度分類任務的準確率.
算法選擇以ResNet-50[17]作為雙線性網絡模型的特征提取器,去掉ResNet-50網絡的全連接層,選取最后一個殘差單元進行跨層雙線性池化操作,相較于其他層,該層最能捕獲圖像語義級信息. 將最后三個卷積層定義為Conv5_1,Conv5_2,Conv5_3,進行跨層特征融合,從而得到三組特征向量,再將其級聯后送入softmax分類器得到最終的分類效果.
為了避免圖片中冗余信息對測試精度的影響,引入注意力機制對圖片中的細微區域進行提取,從而使網絡能夠更好的利用圖片中的局部信息. 本文使用融入混合域注意力機制的CBAM-ResNet-50,其網絡結構如圖4 所示,Conv Block 表示多個卷積組合而成的卷積塊,ID Block 表示Identity 塊. 在第一階段的Conv 層和后四個階段的Conv Block 層后加入混合域注意力機制,圖中表示為CA(Channel Attention)+SA(Spatial Attention),在跨層雙線性網絡中將骨干網絡替換為加上注意力機制的ResNet-50網絡.

圖4 CBAM-ResNet-50
本文以CUB200-2011[18]為數據集,它是目前細粒度圖像分類識別研究的基準數據集,包含200 種鳥類子類,共11 788 張鳥類圖像數據. 其中訓練數據集5 994 張圖片,測試集5 794 張圖片. 該數據集包含了多種部件級標注信息,本文僅采用類別標簽.
對數據集進行預處理,將圖片按比例縮放為600×600,對圖片進行打亂和隨機裁切,輸入網絡的圖片尺寸為448×448,batch size 為32. 因CUB200-2011 是小型數據集,樣本過少,為了避免過擬合,實驗經過如下兩步進行:
步驟1:加載在ImageNet 上的預訓練模型初始化ResNet-50 權重參數,將訓練集輸入進網絡. 各參數設置為:初始學習率設為1.0,學習率衰減為0.001,動量設置為0.9,權重衰減為1E-5,迭代次數為200 次. 采用SGD 優化器,每隔40 次調整迭代調整一次學習率.訓練損失收斂后,保存模型參數.
步驟2:加載步驟1中保存的模型初始化整個網絡,再將測試集輸入進網絡. 各參數設置為:初始學習率設置為0.01,學習率衰減為0.001,動量設置為0.9,權重衰減為1E-5,迭代次數為200 次. 采用SGD優化器,損失收斂后,得到最終的測試準確率.
為了驗證本文算法的有效性,以分類準確率(Accuracy,%)作為實驗結果評價指標,其定義如下:

式中,R為測試集的圖片數量,Ra為測試實驗中分類正確的圖片數量.
將分類準確率為評價指標在CUB200-2011 數據集上與典型算法進行比較. 實驗中使用相同的訓練集和測試集、相同的骨干網絡、相同的圖像分辨率,得到的結果如表1所示(Ours為本文算法).

表1 不同算法在CUB200-2011數據集上的分類精度
從表1 可知,本文提出的算法在CUB200-2011數據集上的精度達到了88.2%,相比僅使用最后一層激活作為特征的BCNN 模型提升了4.1%,與表1中其他算法相比,也有一定程度的提升. 由此可見,融入注意力模塊的卷積神經網絡能夠最大限度地學習到圖像的特征信息,使用不同層之間的層間特征交互有利于捕捉子類別之間的區別,進一步增強了特征的表示能力,有效提升細粒度圖像分類精度.
為了驗證跨層特征融合以及注意力機制的有效性,對文中設計的算法模型進行消融實驗,各組實驗的測試精度如表2 所示. 表中第一組實驗為基礎雙線性網絡,骨干網絡為VGGD+VGGM;表中第二組實驗為基礎雙線性網絡模型,骨干網路換為ResNet-50,并將第二組的網絡模型定為base model;第三組實驗在base model的基礎加上CBAM 注意力機制;第四組實驗為3.1 節提出的跨層雙線性網絡;第四組實驗為本文最終的模型.
從表2 可以得出:(1)在基礎雙線性網絡基礎上,將骨干網絡換位ResNet-50,準確率提升了0.2%,表明隨著網絡的加深,提取到的深層特征能夠對測試精度有一定效果的提升.(2)在雙線性網絡的基礎上,加入注意力機制,測試精度有1.2%的提升;在跨層雙線性網絡的基礎上加入注意力機制,測試精度得到1.3%的提升,可以看出對于細粒度圖像分類任務,注意力機制對于網絡提取到更細節的特征有一定的作用.(3)在使用跨層雙線性網絡后,相較于基礎的雙線性網絡,測試精度提升了2.6%,可以看出在加入了中間卷積層的特征激活后,可以對分類精度有較大程度的提升,證明了中間層存在能夠區分細粒度任務的特征,利用好中間層特征,能夠有效提升細粒度任務分類精度.

表2 消融實驗驗證
為了提升鳥類數據集的分類精度,本文提出了一種結合注意力機制與跨層雙線性網絡的模型. 模型融合了通道注意力以及空間注意力,同時使用了跨層特征融合考慮到中間卷積層的特征,充分利用了圖像中可以區分類別的細微特征.
雖然準確率得到提升,但是加入混合注意力機制,同時由于跨層特征的融合,網絡訓練過程中參數也隨之增加,因此會導致訓練時間增加. 未來的研究工作中將討論如何降低網絡模型參數,同時不影響網絡性能.