李文書,王志驍,李紳皓,趙 朋
(浙江理工大學(xué) 信息學(xué)院,杭州 310018)
近些年來圖像分類技術(shù)通過對深度卷積神經(jīng)網(wǎng)絡(luò)的運用取得了長足的發(fā)展,然而其不足也依然存在.在當下這個智能化要求又不斷提高的大環(huán)境下,簡單的“語義級”的圖片分類已經(jīng)不足以滿足用戶的需求,因而更加精細化的細粒度圖像分類更加值得關(guān)注,例如在生態(tài)保護場景中識別不同種類的珍稀鳥類,水稻種植生產(chǎn)中識別不同種類的蟲害,新零售場景下對同類食品的細分類等等.利用計算機視覺方法識別細粒度類別(如鳥類[1,2]、花卉[3,4]、狗類[5,6]、車型[7]等)的技術(shù)已引起研究者們的廣泛關(guān)注[8-10].其中能夠準確定位和表示類別中細微視覺差異的細粒度圖像識別技術(shù)是非常具有挑戰(zhàn)性的.
隨著計算機硬件算力的提升,深度學(xué)習技術(shù)被廣泛用于解決復(fù)雜圖像分類的問題.其中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學(xué)習解決分類問題的代表性網(wǎng)絡(luò)之一.2015年,何愷明等提出的殘差神經(jīng)網(wǎng)絡(luò)(Residual Network,ResNet)[11]采用了更深的網(wǎng)絡(luò)層數(shù),并且引入了殘差處理單元解決網(wǎng)絡(luò)退化的問題,取得了極佳的效果.2017年,Google團隊設(shè)計一種具有優(yōu)良局部拓撲結(jié)構(gòu)的網(wǎng)絡(luò)Inception-V3[12],即對輸入圖像并行地執(zhí)行多個卷積運算及池化操作,并將所有輸出結(jié)果拼接為一個非常深的特征圖,取得了優(yōu)異的效果.但是經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)聚焦于類間分類的問題,并不能有效解決細粒度圖像分類(類內(nèi)分類)的分類問題.細粒度圖像的類別精度更加細致,類間差異更加細微,往往只能借助于微小的局部差異才能區(qū)分出不同的類別.
細粒度圖像分類發(fā)展初期仍依靠人工注釋的邊界框/部件注釋.大量的人工參與使得部分定義和注釋變得昂貴且主觀,這對于細粒度的識別任務(wù)都不是最優(yōu)的(文獻[13,14]表明邊界框/部件注釋依賴于人的注釋,由此帶來主觀性強和成本昂貴等問題).越來越多的算法傾向于不再依賴人工標注信息,而使用類別標簽來完成分類任務(wù).
Lin等提出了一種端到端的雙線性網(wǎng)絡(luò)[15],通過對卷積層輸出的特征進行外積操作,能夠建模不同通道之間的線性相關(guān),從而增強了卷積網(wǎng)絡(luò)的表達能力.Ge等基于雙線性網(wǎng)絡(luò)提出一種核化的雙線性卷積網(wǎng)絡(luò)[16],通過使用核函數(shù)的方式有效地建模特征圖中通道之間的非線性關(guān)系,進一步增強卷積網(wǎng)絡(luò)的表達能力.此模型能夠融合不同通道的信息,但是并沒有有效地提取出具有鑒別性的局部特征.
一種采用錨框的機制[17,18]可以有效地定位信息區(qū)域而無須邊界框并挖掘概率較高的含更多的對象特征語義的區(qū)域,從而增強整個圖像的分類性能,但是對特征全局定位有所欠缺.除了使用錨框定位局部特征,注意力機制也被應(yīng)用于細粒度圖像分類,Fu等[19]提出了一種注意力網(wǎng)絡(luò),利用兩個任務(wù)之間的聯(lián)系,相互增益彼此的精度,在多尺度上遞歸地學(xué)習區(qū)分度大的區(qū)域以及多尺度下的特征表達.該方法較好地提取了局部的特征信息,但是對全局信息捕捉較弱.為了進一步在圖像中同時產(chǎn)生多個注意位置,基于提取多個局部特征的注意力方法[20,21]相繼提出,但有限的注意力個數(shù)并不能充分表達圖像的特征.
人類視覺系統(tǒng)中存在一種現(xiàn)象,當人眼在接受外部信息時對每個區(qū)域的關(guān)注度存在差異,例如人眼在看一幅圖像時會聚焦在感興趣的目標身上而忽略背景圖像,這就是人類視覺系統(tǒng)中的注意力機制,這一機制也被應(yīng)用于計算機視覺中.近幾年,計算機視覺中注意力機制發(fā)展迅速[22],出現(xiàn)了很多基于注意力機制提出的深度學(xué)習網(wǎng)絡(luò),其主要實現(xiàn)方式是通過為特征圖添加掩碼(mask)的形式,即通過為特征圖添加權(quán)重,將有用的特征標識出來.從注意力域的角度可以將注意力實現(xiàn)方式分為空間域和通道域.
空間域是從特征圖的空間位置關(guān)系出發(fā),不區(qū)分通道帶來對分類性能的影響.其中,細粒度圖像分類任務(wù)中,2020年Yan等[23]提出的網(wǎng)絡(luò)模型,在細粒度圖像分類中,不同空間位置能夠獲得不同的關(guān)注點,不同大小的空間特征圖能夠獲得遞進的特征信息,所以作者提出了一種空間轉(zhuǎn)換器,對圖像做空間變換將關(guān)鍵信息提取出來.
通道域是對不同通道的加權(quán),不考慮通道中每個像素點的位置差異.在卷積神經(jīng)網(wǎng)絡(luò)中,每張圖像初始都有RGB 三個通道.卷積層的卷積操作變換圖像的通道,其等價于對原圖像進行了分解.每個通道都是原圖在不同卷積核上的分量.雖然每個通道都是原圖的分量,但在具體任務(wù)中并不是每個通道都發(fā)揮著相同的作用.基于此,Li等[24,25]提出了SKnet網(wǎng)絡(luò)模型,SKnet通過對每個通道加權(quán)的方式標注出對結(jié)果貢獻較大的通道,具體做法是通過對每個特征圖做全局平均池化將H×W×C的特征圖擠壓到長度為C的一維向量,然后通過激勵函數(shù)以獲得每個通道的權(quán)重,最后對原始特征圖上的每個像素點加權(quán).
現(xiàn)有的方法著重挖掘圖像的細節(jié)特征,但是沒有將細節(jié)特征更好地融合到全局特征.另一方面,如何將注意力網(wǎng)絡(luò)和雙線性網(wǎng)絡(luò)融合值得關(guān)注.本文的貢獻如下:
1)通過線性融合不同通道的特征來建模不同通道之間的線性相關(guān),從而增強了卷積網(wǎng)絡(luò)的表達能力;
2)通過注意力機制提取顯著特征中具有鑒別性的細節(jié)部分放入網(wǎng)絡(luò)中訓(xùn)練,進一步挖掘具有鑒別性的特征,以提升細粒度圖像的識別能力;
3)通過主網(wǎng)絡(luò)和注意力網(wǎng)絡(luò)分合作訓(xùn)練及共享訓(xùn)練參數(shù),在挖掘表征細粒度圖像視覺差異的細節(jié)特征的同時,兼顧全局特征的學(xué)習.
在圖像細粒度分類中,如何獲取物體整體與局部信息是一個難點.針對這一難點,本文提出了一種基于注意力機制的弱監(jiān)督細粒度圖像分類(ATtention mechanism Convolutional Neural Networks,AT-CNN)的學(xué)習方法用以自動定位和學(xué)習細粒度圖像中語義敏感對象.該方法首先采用經(jīng)典的卷積網(wǎng)絡(luò)方法(ResNet[11],Inception-Net[12]等)提取圖像的特征圖.主網(wǎng)絡(luò)通過雙通道融合網(wǎng)絡(luò)表達細粒度特征的整體信息; 然后通過弱監(jiān)督學(xué)習的方式,將特征圖通道進行排序并篩選顯著的特征放入注意力網(wǎng)絡(luò)中獲取對細節(jié)特征的表征能力; 最后通過主網(wǎng)絡(luò)和注意力網(wǎng)絡(luò)共享網(wǎng)絡(luò)參數(shù),共同訓(xùn)練,增強網(wǎng)絡(luò)對細粒度圖像中具有代表性特征的表達能力.本文方法不依賴于邊界框/零件標注,可以實現(xiàn)對細粒度圖像物體位置的追蹤及分類,實現(xiàn)了細粒度端到端的弱監(jiān)督分類任務(wù),總體分類網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 總體分類網(wǎng)絡(luò)結(jié)構(gòu)
圖2 主網(wǎng)絡(luò)結(jié)構(gòu)
設(shè)I表示為輸入的訓(xùn)練圖片,X表示為卷積網(wǎng)絡(luò)提取的特征圖.則有:
Conv1和Conv2卷積層設(shè)計在3.1節(jié)詳細闡述.通過對f和f′進行外積聚合得到圖像的表達,公式如下:
為了使特征矩陣具有較好的分布,需要對特征進行歸一化.首先將得到的聚合矩陣展開成向量g,再進行帶符號的平方根正則化和歸一化,具體公式如下:
最后將特征cmain作為圖像的最終表達,送至Softmax中進行端到端的聯(lián)合訓(xùn)練.
經(jīng)典的注意力網(wǎng)絡(luò)[23,26]可以有效提取圖像中關(guān)注物體的空間位置,但是細粒度圖像分類任務(wù)需要定位到具有鑒別性特征的空間位置.為此,本文注意力機制分為注意力特征提取和注意力網(wǎng)絡(luò)兩個步驟.注意力特征提取通過對通道的篩選,提取出關(guān)注物體中最顯著的局部特征.注意力網(wǎng)絡(luò)將提取出的局部特征,放入網(wǎng)絡(luò)中繼續(xù)訓(xùn)練,提高網(wǎng)絡(luò)對細粒度對象具有鑒別性特征的表達能力.
2.2.1 注意力特征提取
隨著訓(xùn)練次數(shù)的增加,輸入圖像通過卷積得到特征的感受野隨網(wǎng)絡(luò)深度變化而變化,網(wǎng)絡(luò)可以逐步定位到關(guān)注區(qū)域的位置.
假設(shè)輸入圖像通過一系列的卷積層及池化層得到大小為C×H×W的特征圖,然后特征圖上每個C×1×1的跨通道的向量,隨著訓(xùn)練次數(shù)的增加,能在固定的空間位置上表示原始圖像中的對應(yīng)位置.對應(yīng)的熱力圖,如圖3所示.基于分類神經(jīng)網(wǎng)絡(luò)能夠?qū)D像中關(guān)注對象的自動聚焦的特性,本文設(shè)計的注意力機制網(wǎng)絡(luò)可以將聚焦的位置信息反饋到最初的圖像上.通過類別信息學(xué)習到顯著特征的位置信息以實現(xiàn)網(wǎng)絡(luò)的弱監(jiān)督學(xué)習.
圖3 訓(xùn)練后卷積網(wǎng)絡(luò)得到的熱力圖
特征圖的熱力圖可以隨著訓(xùn)練或者物體的整體空間位置.為得到物體細粒度對象的空間位置,需要通過計算特征圖不同通道的掩碼,對圖像通道進一步篩選提取.
首先通過主網(wǎng)絡(luò)分支可以得到n個特征圖p1,p2,···,pn(即n個通道):
權(quán)重wi越大意味著該通道的特征越顯著.通過取前m個權(quán)重作和得到注意力掩碼(mask),從而在顯著物體中得到更細粒度的顯著特征.特征進一步提取示意圖見圖4.
圖4 特征圖通過篩選通道的前后對比圖
2.2.2 注意力網(wǎng)絡(luò)
從特征圖中提取到多個最顯著特征的位置信息后,通過掩碼(mask)操作將前景的物體(較顯著特征)在原圖中提取出來,記為Iattention.
再將提取到的較顯著特征放入網(wǎng)絡(luò)訓(xùn)練,可以得到顯著圖的特征圖cattention,增強神經(jīng)網(wǎng)絡(luò)對顯著特征的表達能力.注意力網(wǎng)絡(luò)與主網(wǎng)絡(luò)共用網(wǎng)絡(luò)結(jié)構(gòu),通過共同訓(xùn)練參數(shù),實現(xiàn)網(wǎng)絡(luò)對整體圖像類別和鑒別性的特征都有較好的表達能力.注意力網(wǎng)絡(luò)如圖5所示.
圖5 基于注意力機制提取的特征
2.2.3 損失函數(shù)
總損失函數(shù)結(jié)合主網(wǎng)絡(luò)的損失函數(shù)和注意力網(wǎng)絡(luò)的損失函數(shù),達到合作訓(xùn)練、共同優(yōu)化.
其中,x表示圖像類別信息,cmain、cattention分別表示主網(wǎng)絡(luò)分支,注意力網(wǎng)絡(luò)分支預(yù)測的類型信息.
分類損失使用的是Softmax函數(shù),Loss的計算公式如下:
其中,p(xi)為xi的目標值.
模型在梯度下降方法上采用Adam和SGD聯(lián)合訓(xùn)練的方式.Adam與AdaDelta方法收斂速度更快,但是由于細粒度圖像的特征較難學(xué)習,導(dǎo)致模型的準確率往往達不到最優(yōu)解,而SGD的收斂速度較慢,但最終得到的預(yù)測效果要優(yōu)于Adam.因此為了較快收斂同時避免出現(xiàn)局部最優(yōu)的現(xiàn)象,最終選定先用Adam訓(xùn)練,等準確率不再繼續(xù)提高的時候,保存網(wǎng)絡(luò)權(quán)重,再采用SGD方法微調(diào).
整體算法總結(jié)如算法1.
本文主要通過3個典型細粒度圖像數(shù)據(jù)集(包括CUB-200-2011鳥類數(shù)據(jù)集,FGVC飛機數(shù)據(jù)集,斯坦福狗數(shù)據(jù)集)進行驗證,如表1所示.
表1 3種常用細粒度分類數(shù)據(jù)集介紹
實驗是在Linux下的Python 3.6.6、TensorFlow 1.12.0和2塊16 GB NVIDIA Tesla GPU下進行的.使用Inception-V3預(yù)訓(xùn)練模型,訓(xùn)練時batchsize為16,weight decay為0.0001,初始的學(xué)習率為0.001,后續(xù)采用指數(shù)型衰減法,逐步計算學(xué)習率.
圖6 不同的特征融合網(wǎng)絡(luò)結(jié)構(gòu)
通過當網(wǎng)絡(luò)結(jié)構(gòu)只有主網(wǎng)絡(luò)分支,分別采用4種不同卷積核在數(shù)據(jù)集CUB-200-2011上的分類實驗,以驗證不同卷積核對分類結(jié)果的影響.實驗結(jié)果如表2所示.
表2 不同特征融合網(wǎng)絡(luò)對分類結(jié)果的影響
比較這3種方案對分類結(jié)果的影響,可以得出以圖6(c)方式在單主網(wǎng)絡(luò)分支中進行特征融合取得最高的準確率,其能更好地計算特征圖在某一區(qū)域的響應(yīng).
如上所述分類算法由基礎(chǔ)網(wǎng)絡(luò)、線性融合、注意力網(wǎng)絡(luò)3部分組成.通過在CUB-200-2011數(shù)據(jù)集中進行實驗探索每個組件可以做出的貢獻,如表3所示.
表3 不同組件組合對分類結(jié)果的影響
通過BaseNet選用Inception-V3作為基線方法,在CUB-200-2011數(shù)據(jù)集中網(wǎng)絡(luò)的預(yù)測準確率如圖7所示.
圖7展示了訓(xùn)練次數(shù)(epoches)對分類精準度的影響.可以發(fā)現(xiàn)隨著迭代次數(shù)的增加,混合模型準確度有所提高,但當訓(xùn)練次數(shù)達到一定值(4萬次左右),準確度會保持穩(wěn)定.
圖7 模型在數(shù)據(jù)集CUB-200-2011的準確率圖
為了驗證模型的有效性,我們分別在CUB-200-2011、FGVC-Aircraft和Stanford-Dogs三個細粒度經(jīng)典數(shù)據(jù)集上進行實驗,結(jié)果如表4、表5和表6所示.
表4 相關(guān)分類方法在CUB 200-2011的準確度
表5 相關(guān)分類方法在FGVC-Aircraft的準確度
表6 相關(guān)分類方法在Stanford Dogs的準確度
由實驗結(jié)果可知,本文方法在3個細粒度圖像識別數(shù)據(jù)庫上均優(yōu)于基線方法(BCNN,Inception),如在CUB-200-2011數(shù)據(jù)上比Inception-V3高出4%,比BCNN高出3.7%.并在3個細粒度數(shù)據(jù)庫上與先進分類方法相比,均取得了領(lǐng)先的水平.
本文提出了一種基于注意力機制的弱監(jiān)督細粒度圖像分類.該算法針對細粒度圖像類別中細微的視覺差異,設(shè)計了基于線性融合網(wǎng)絡(luò)、注意力網(wǎng)絡(luò)同步訓(xùn)練的網(wǎng)絡(luò)模型用于提取細粒度圖像中鑒別性強的特征.經(jīng)實驗論證,所提方案可行且有效,進一步提升了細粒度分類的準確性.
細粒度圖像分類任務(wù)為了識別圖中具有鑒別性的對象并對其進行有效的學(xué)習,往往模塊較多且網(wǎng)絡(luò)層次較深,這導(dǎo)致模型較大難以部署.下一步,我們關(guān)注如何在保證精準度的情況下壓縮網(wǎng)絡(luò)模型,滿足移動端的性能要求.