譚 潤,葉武劍,劉怡俊
(廣東工業大學信息工程學院,廣州 514000)
細粒度圖像分類是計算機視覺領域一項極具挑戰和應用價值的研究課題,其在傳統圖像分類基礎上進行更精細的圖像類別子類劃分,如區分鳥的種類等。區別于傳統圖像,細粒度圖像均來自同一基本類別,不同子類圖像間的差異較小,只通過目標整體輪廓往往無法取得良好的分類效果;而同一子類不同圖像中又存在姿態、光照、背景遮擋等諸多影響因素,類內差異較大,因此,細粒度圖像分類往往只能借助于極其細微的局部差異才能較好地完成分類。同時,細粒度圖像數據庫的獲取和標注依賴于專家級別的知識,制作成本和時間成本昂貴。上述這些問題都給細粒度圖像分類造成了極大的困難,使現有算法難以很好地完成分類任務。
細粒度圖像分類的研究工作主要分為基于強監督信息和基于弱監督信息2 個方向[1-2]。兩者區別在于,基于強監督信息的算法需要引入額外的人工標注信息,如局部區域位置、標注框等,用于定位圖像局部關鍵區域,而基于弱監督信息的算法僅依靠圖像標簽完成圖像局部關鍵部位的定位和特征提取。目前研究思路主要分為2 種:一是通過構建更具判決力的特征表征,適配于復雜的細粒度圖像分類任務;二是在算法中引入注意力機制,通過注意力機制弱監督式地聚焦于部分局部區域,進一步提取特征,但仍存在定位不準確的問題。同時,細粒度圖像中存在較多的遮擋,只通過提取少部分的局部關鍵特征,往往無法在所有同一類別圖像上得到對應,不能達到良好的分類效果。
本文提出一種基于雙語義增強和目標定位的細粒度圖像分類算法。以雙線性注意力池化(Bilinear Attention Pooling,BAP)方式構建注意力學習模塊和信息增益模塊提取雙語義數據,并結合原圖通過雙語義數據增強的方式提高模型分類準確率。該算法一方面通過模塊相互增益可控地學習圖像中多個局部關鍵特征,另一方面分別獲取2 種語義層次數據,用于豐富模型訓練數據,以雙語義數據增強的方式輔助模型訓練,同時在測試階段構建目標定位模塊,實現目標整體定位。
目前,單獨使用傳統的卷積神經網絡(如VGG[3]、ResNet[4]和Inception[5-6])無法很好 地完成細粒度 圖像分類任務,因此,研究者通常在傳統卷積神經網絡的基礎上進行基于強監督信息或基于弱監督信息方向的算法研究。
基于強監督信息的細粒度圖像分類算法需要利用訓練數據集中已有的人工標注信息定位局部關鍵部位,再進一步提取特征。ZHANG 等提出Part R-CNN算法[7],利用選擇性搜索形成關鍵部位的候選框,通過目標檢測R-CNN[8]算法對候選區域進行檢測,挑選出評分值高的區域提取卷積特征用于訓練SVM分類器。BRANSON 等從分類目標姿態入手,提出姿態歸一化CNN[9]。LIN 等提出Deep LAC[10],在同一個網絡中進行部件定位、對齊及分類,設計VLF 函數用于Deep LAC 中的反向傳播。但基于強監督信息的算法所依賴的人工標注信息獲取耗時且代價昂貴,導致該類算法實用性較差。
僅依靠圖像標簽信息完成細粒度圖像分類任務成為近年來主要的研究方向。JADERBERG 等提出時空卷積神經網絡(ST-CNN)[11],在目標合適的區域進行適當的幾何變換校正圖像姿態。FU 等提出循環注意力神經網絡(RA-CNN)[12],在多尺度下遞歸式地預測注意區域的位置并提取相應的特征,由粗到細迭代地得到最終的預測結果。但該模型在同一時間只能關注于一個注意力區域,存在時間效率問題。ZHENG 等提出多注意力卷積神經網絡(MA-CNN)[13],通過構建一個部位分類子網絡學習多個特征部位。但該模型在同一時間只能定位2~4 個關鍵局部區域,這對于復雜的細粒度圖像仍是不夠的。
雙線性網絡也是弱監督算法的一種,與同類算法不同,其從高階特征表達的角度出發,以外積匯合的方式聚合2個特征塊。這種高階特征間的交互作用適配于細粒度圖像分類任務,如LIN 等提出雙線性CNN[14]和 改進的 雙線性CNN[15]用 于細粒度圖像分類,LI 等利用矩陣平方進一步改進雙線性CNN[16]。但該類算法往往受限于較高的計算復雜度。HU 等在雙線性CNN 的基礎上提出雙線性注意力池化方法[17],同時對原圖采取注意力式剪切、注意力式丟棄,得到可以隨著模型迭代更新變動的增強數據,這些數據和原圖一起以數據增強的方式提高模型分類準確率。但該算法只利用了單一語義的數據增強方式,對于更復雜的細粒度圖像任務仍存在缺少有效分類信息的問題。
為提取足夠多的有區分度的局部關鍵特征,本文在訓練階段以雙線性注意力池化的方式在網絡不同深度構建注意力學習模塊和信息增益模塊,同時為提高模型中期特征表達能力,并行地在注意力學習模塊和信息增益模塊中分別引入卷積塊注意模塊(Convolutional Block Attention Mmodule,CBAM)。而在測試階段,通過注意力學習模塊和信息增益模塊分別得到特征圖,并以此構建目標定位模塊用于聚焦圖像中的目標整體,從而進一步提高分類準確率。
本文算法的訓練流程及網絡模型如圖1 和圖2所示,測試流程如圖3 所示。訓練流程模塊分別提取兩種語義層次的數據,以2 種語義數據增強的方式輔助模型訓練。

圖1 訓練流程Fig.1 Training procedure

圖2 網絡模型框架Fig.2 Framework of network model

圖3 測試流程Fig.3 Testing procedure
圖1 中的注意力學習模塊和圖片剪切模塊1 用于第1 類語義數據增強,其中注意力學習模塊負責分類特征的學習,圖片剪切模塊1 從分類特征中得到第1 種語義類型的剪切圖片輔助模型訓練,該語義類型圖片更關注于分類目標的局部細節信息。
1)注意力學習模塊
如圖1 所示,模型首先從特征提取模塊得到深度特征f1∈RC×H×W。對于細粒度圖像分類任務,為使特征圖有足夠的特征表達能力同時增強特定區域的表征,從特征圖本身出發,模型加入卷積塊注意力模塊(CBAM)[18],從通道維度和空間維度引入關注權重,提升特征圖對關鍵局部區域的關注度。(1)從通道維度引入關注權重。
對得到的初始深度特征f1分別進行全局平均池化和全局最大池化,得到2 個C維的池化特征,這2 個池化特征均經過一個共享參數的多層感知器(Multi-Layer Perceptron,MLP),分別得到2個1×1×C維的通道關注權重,最后將其分別對應元素相加,經sigmoid 激活函數激活得到最終的通道關注權重Mc(f1),如式(1)所示:

將該權重與初始特征f1相乘,得到通道關注特征f1c∈RC×H×W,如式(2)所示:

(2)從空間維度引入關注權重。
對上一步得到的通道關注特征f1c∈RC×H×W,沿著通道方向進行取平均(mean)和最大(max),得到2 個維度為1×H×W的特征圖,將這2 個特征圖進行維度拼接得到維度為2×H×W的特征圖,最后本模型選擇用一個卷積核大小為7×7 的卷積層對其進行卷積操作,經sigmoid 激活函數激活得到最終的空間關注權重Ms(f1c),如式(3)所示:

將該權重與特征f2相乘,得到最終的聚焦特征F1∈RC×H×W,如式(4)所示:

通過上述過程,得到經過CBAM 模塊的聚焦特征F1,之后模型采用雙線性注意力匯合的思想,將聚焦特征F1與其經過k個1×1 卷積核后得到的注意力圖A1k以外積即點乘的形式匯合,從注意力圖出發,使得到的分類特征的每一維代表分類目標中的一部分關鍵部位,最終得到注意力學習模塊的分類特征P1,如式(5)所示:

其中:g為特征聚合函數。本文在該模塊中采用全局平均池化方式為特征聚合函數聚合特征。
2)圖片剪切模塊1
從注意力學習模塊得到注意力圖A1k∈RK×H×W,其中每一通道的注意力圖代表分類目標的一關鍵部位。模型在每個迭代過程中隨機挑選一個通道的注意力圖,這樣隨著網絡訓練,每個通道的注意力圖都有可能被挑選到。然后由挑選到的注意力圖A1k1∈R1×H×W按是否大于閾值θ可以生成剪切的掩模圖,如式(6)所示:


其中:I為原圖;S為采樣函數。
圖1 中的信息增益模塊和圖片剪切模塊2 用于第2 類語義增強,其中信息增益模塊負責更深層次分類特征的學習,圖片剪切模塊2 從深度分類特征得到第2 種語義類型的剪切圖片輔助模型訓練,該語義類型圖片更關注于分類目標的重要輪廓。
1)信息增益模塊
對比注意力學習模塊,模型從特征提取模塊更深層次的卷積層中得到深度特征f2∈RC×H×W,一方面,更深網絡層次的卷積特征可以更關注于分類目標整體的重要信息;另一方面,隨著訓練迭代,模型分類逐漸滿足于注意力學習模塊的分類特征映射,通過構建一個結構相似但關注點區別于注意力學習模塊的新的信息學習模塊,可以形成相對的信息差,共同作用于最后的模型分類。因此,區別于以往的CBAM 模塊以單個或殘差的形式出現,模型并行地引入一個額外的CBAM 模塊得到特征F2∈RC×H×W,同理,最后運用雙線性注意力匯合的思想,將特征F2與生成的注意力圖A2k匯合得到最后的分類特征P2。
2)圖片剪切模塊2
與圖片剪切模塊1 同理,模型從信息增益模塊生成的注意力圖A2k∈RK×H×W中得到剪切圖片2,但為了增強其與注意力學習模塊的區分度,對注意力圖A2k采用K-Max pooling 處理,即保留前K個響應最大的注意力圖。由經過K-Max pooling 層的注意力圖去生成剪切圖片。
在測試階段,為了降低模型對分類圖片的誤判,模型通過構建一個目標定位模塊,定位原圖中的分類目標,并將其放大至原圖得到目標定位圖片。具體步驟:首先可以從注意力學習模塊和信息增益模塊分別得到經過CBAM 模塊的聚焦特征F1和F2。對于特征F1∈RC×H×W,沿著通道方向對特征F1進行深度求和,得到一個二維的深度描述子S(i,j)∈RH×W,由S(i,j)可以得到其均值a-,對于S(i,j)中大于均值aˉ的值設定為1,其他則設定為0。由此,最終可以從注意力學習模塊得到掩模圖M1(i,j)。同理,可以從信息增益模塊中的特征F2中得到掩模圖M2(i,j)。將這2 個掩模圖分別對應原圖,取其重疊的部分,最終將重疊部分放大至原圖大小得到目標定位圖片,如式(8)所示:

其中:S為采樣函數;I為原圖。
由以上提出模型,可以分別得到分類特征P1和P2,對其采用交叉熵損失函數指導模型訓練,與此同時,模型另外沿通道聯接特征P1和P2,得到特征P,同樣采用交叉熵損失函數。對于注意力學習模塊和信息增益模塊,模型采用雙線性注意力匯合的思想,引入中心損失函數Center Loss,迫使最終特征P1和P2的每一維能對應分類目標的一關鍵部位。在測試階段,模型實驗只取聯接特征P用于得到預測值。本模型實驗損失函數最終如式(9)所示:

本節通過實驗證明各模塊分別及其組合對模型分類準確率的貢獻,同時在3 個通用實驗數據集上對比其他主流算法,最后通過可視化實驗給出注意力學習模塊和信息增益模塊得到的不同語義層次的剪切圖片,及其測試時經過目標定位后得到的剪切圖片。本文模型由pytorch 深度學習框架所搭建,訓練環境為英偉達P40 GPU。
本次實驗采用細粒度圖像識別領域3 個通用實驗數據集:CUB-200-2011鳥類數據集[19],FGVC Aircraft飛機數據集[20],Stanford Cars 車類數據集[21]。這3 個數據集的詳細信息如表1 所示。

表1 細粒度圖像分類數據集Table 1 Fine-grained image classification datasets
實驗參數設置:本次實驗模型采用通用網絡模型Inception V3 作為特征提取器,取Mix6d 層特征映射作為注意力學習模塊的特征圖,取Mix6e 層特征映射作為信息增益模塊的特征圖。注意力圖由特征圖經若干個1×1 卷積核得到,其中注意力學習模塊和信息增益模塊本實驗均設置為64 個1×1 卷積核,即生成64 張注意力圖。剪切圖片模塊θ閾值設為:random(0.4,0.6)。中心損失函數參數λ設為1。
訓練參數設置:批量樣本數設為16,學習率設為0.01。實驗采用隨機梯度下降法(SGD)來訓練模型,動量設為0.9,權重衰減設為0.000 01。最大迭代次數設為180。在訓練階段,剪切模塊剪切圖片大小均為256像素×256像素。
測試參數設置:批量樣本數設為12,目標定位模塊圖片大小設為448像素×448像素。
實驗數據集預處理:實驗訓練過程將所有圖片調整尺寸為448像素×448像素,統一將圖片進行隨機翻轉、隨機調整亮度、標準化。測試過程將調整尺寸為448像素×448像素,統一將圖片標準化。
表2 給出在數據集CUB-200-2011 上模塊及其組合對模型分類準確率的貢獻,可以看出,各模塊能有效地提高模型分類準確率。本文構建的注意力模塊和信息增益模塊所提取的分類特征較好地表征了細粒度圖像。表3 給出2 種語義數據增強下上模塊及其組合對模型分類準確率的貢獻,可以看出,結合語義數據訓練能大幅提高模型分類準確率,且組合2 種語義數據輔助模型訓練達到了模型最高的準確率。數據增強可以提高細粒度圖像分類模型的準確率,并且雙語義數據增強的設置下可以使模型性能達到最優。

表2 模塊及其組合貢獻程度Table 2 Contribution of module and their combinations %

表3 2 種語義數據及其組合貢獻程度Table 3 Contribution of two kinds of semantic data and their combinations %
本文設置實驗在數據集CUB-200-2011、FGVC Aircraft和Stanford Cars上對比其他同期先進算法,實驗結果分別如表4~表6 所示??梢钥闯觯瑢Ρ缺緦嶒灥幕鶞示W絡Inception-V3,本文算法在CUB-200-2011鳥類數據集上準確率提高了5.8%,對比本文采用的雙線性注意力池化特征聚合方式,本文算法在CUB-200-2011 鳥類數據集上準確率提高了3.1%。對比其他同期先進細粒度圖像分類算法,本文模型在數據集CUB-200-2011、FGVC Aircraft 和Stanford Cars 上均表現出了更優越的性能。此外,本文模型在實驗細節參數設置下,模型復雜度為185.71 MB。

表4 在CUB-200-2011 數據集上的分類性能對比Table 4 Comparison of classification performance on CUB-200-2011 dataset %

表5 在FGVC Aircraft 數據集上的分類性能對比Table 5 Comparison of classification performance on FGVC Aircraft dataset %

表6 在Stanford Cars 數據集上的分類性能對比Table 6 Comparison of classification performance on Stanford Cars dataset %
由圖片剪切模塊1 和圖片剪切模塊2 得到的剪切圖片如圖4 所示??梢钥闯?,在雙語義數據增強模型的設置下,模型可以由此得到2 種不同語義層次的剪切圖片。其中剪切圖片1 更關注于分類目標局部細節信息例如鳥的眼睛等,剪切圖片2 更關注目標重要的有區分度的輪廓,結合這2 種語義層次的剪切圖片可以有效提高模型分類準確率。
本文給出經過目標定位模塊的圖片,如圖5 所示。可以看出,經過目標定位模塊模型可以準確地定位于分類目標整體,從而忽視圖片背景等無關信息的干擾。
針對細粒度圖像分類類內差異大、類間差異小的特點,本文基于雙線性注意力融合提出注意力學習模塊和信息增益模塊,分別關注目標局部細節信息和目標整體重要輪廓,由此得到2 種語義層次的增強數據輔助模型訓練,并在測試階段提出目標定位模塊用于定位目標整體,進一步提高分類準確率。實驗結果表明,本文算法在CUB-200-2011、FGVC Aircraft 和Stanford Cars 數據集上分別達到89.5%、93.6%和94.7%的分類準確率,性能優于對比算法。本文設計的2 種語義特征學習模塊可以得到2 種語義層次的增強數據,但得到的2 種語義層次的剪切圖片區分度不夠明顯,有可能成為冗余數據,無法為模型帶來增益。下一步將增加模塊間的區分度,減少冗余信息。此外,本文算法包含了特征間的外積運算,對比基準網絡Inception-V3 復雜度較高,這局限了模型在移動端的應用范圍,后續將考慮降低模型復雜度,構建輕量型細粒度圖像分類網絡。