王 坤,朱子奇
(武漢科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065)
細(xì)粒度圖像分類又稱之為具體子類別圖像分類[1],目的是對粗粒度大類別進(jìn)行更為精細(xì)的子類區(qū)分,比如識別不同的飛機(jī)、鳥、車、狗等[2-4]。不同于人臉識別等傳統(tǒng)對象級分類任務(wù),細(xì)粒度圖像任務(wù)難點在于類間差異小類內(nèi)差異大[5],比如兩種外形十分相似的狗屬于完全不同的品種,由于存在光照、遮擋、背景干擾等諸多不確定性元素,借助肉眼很難分辨。因此,細(xì)粒度圖像分類任務(wù)相比于傳統(tǒng)圖像分類任務(wù)難度更大。
解決細(xì)粒度圖像分類問題的關(guān)鍵是對目標(biāo)對象進(jìn)行有效檢測,并從中提取出具有區(qū)分性的局部特征。最近,隨著Transformer架構(gòu)在NLP的機(jī)器翻譯[6]等相關(guān)研究領(lǐng)域取得顯著成果,許多研究者將Transformer架構(gòu)逐漸遷移到計算機(jī)視覺任務(wù)上,比如圖像分類[7]、目標(biāo)分割[8]等。Alexey等人[7]將Transformer架構(gòu)直接應(yīng)用到圖像分類任務(wù)上提出ViT模型,顯著提高了傳統(tǒng)圖像分類任務(wù)的性能。作者思路是直接把圖像分割成固定大小的圖像塊序列,然后通過線性變換得到圖像塊嵌入向量,這也就類比于NLP中的詞序列和詞向量,然后將圖像塊嵌入向量和一個空白的分類標(biāo)記向量[7](class token)直接送入多層編碼器進(jìn)行特征提取分類。
由于Transformer的自注意力機(jī)制在整合全局信息方面比CNN更有優(yōu)勢,能夠獲得特征長距離依賴,因此基于ViT框架的一系列方法在計算機(jī)視覺領(lǐng)域的一些任務(wù)上表現(xiàn)出色。但ViT基于其自注意機(jī)制對圖像關(guān)注區(qū)域并非總是有效,結(jié)合注意力層捕捉到的注意力圖的可視化效果,發(fā)現(xiàn)還是會存在捕捉區(qū)域與目標(biāo)區(qū)域重疊度低的現(xiàn)象[9]。
同時ViT也有其固有缺陷:(a)對于圖片局部區(qū)域特征的關(guān)注度不夠且容易受光照等不確定因素干擾[9];(b)切割圖片帶來的關(guān)鍵特征不完整表達(dá)[10];(c)其注意力計算方式需要綜合全局信息導(dǎo)致計算量非常大[10]??紤]到細(xì)粒度圖像分類任務(wù)中圖片局部區(qū)分性特征的表征能力對分類效果十分關(guān)鍵,許多研究工作都圍繞著如何讓ViT模型提取出更具區(qū)分性的特征而展開,但是對圖像塊輸入特征做處理的工作非常少。而且編碼其中的多頭注意力機(jī)制主要通過建立所有圖像塊向量聯(lián)系來發(fā)揮作用,但所有的圖像塊起到的作用并非相等。
針對以上問題且結(jié)合提取圖像區(qū)分性局部特征對細(xì)粒度圖像分類任務(wù)至關(guān)重要的實際情況,在現(xiàn)有ViT工作的基礎(chǔ)上,該文提出一種基于加強圖像塊相關(guān)性的細(xì)粒度圖像分類方法。首先,通過賦予圖像塊相關(guān)性權(quán)重系數(shù)并對圖像塊相關(guān)度進(jìn)行評價差異化,加強對局部區(qū)分性特征的關(guān)注。其次,為了降低分割圖像對某些區(qū)分性圖像塊造成的特征不完整表達(dá),引入圖像塊位置信息加強圖像塊特征上下文信息的聯(lián)系。最后,在交叉熵?fù)p失函數(shù)基礎(chǔ)上增加相似損失函數(shù),更有利于細(xì)粒度圖像分類任務(wù)中降低相同子類別差異性。整個方法模塊以嵌套方式應(yīng)用于不同層次的編碼器中,融合了不同層次特征信息。結(jié)合實驗結(jié)果證明了該方法思路可行,進(jìn)一步提升了ViT框架在細(xì)粒度圖像分類任務(wù)上的表現(xiàn)效果。
對于現(xiàn)階段的細(xì)粒度圖像分類模型可以按照模型使用了多少輔助信息分為強監(jiān)督分類模型和弱監(jiān)督分類模型[11]。同時,最近基于ViT框架的分類模型在許多視覺任務(wù)上取得了良好效果,這類模型具有弱監(jiān)督的分類思想,許多研究工作基于此展開。
在細(xì)粒度分類任務(wù)上采用強監(jiān)督分類模型主要是通過數(shù)據(jù)集提供的額外標(biāo)注信息訓(xùn)練出一個網(wǎng)絡(luò)模塊,這個網(wǎng)絡(luò)可以檢測出目標(biāo)物體邊框以及部分物體部位的標(biāo)注框,然后將這個網(wǎng)絡(luò)獲取到的特征信息在主干網(wǎng)絡(luò)上進(jìn)行特征調(diào)整、融合等操作,最后通過訓(xùn)練分類在細(xì)粒度圖像分類任務(wù)上取得了較好的效果。比較有代表性的工作有Part-based R-CNN[12]、Pose-normalized CNN[13]等。
基于弱監(jiān)督學(xué)習(xí)的細(xì)粒度分類模型在不借助標(biāo)注信息的情況下,也實現(xiàn)了對全局特征和局部特征的較好捕捉。Lin等人[8]提出的雙線性卷積神經(jīng)網(wǎng)絡(luò)模型(B-CNN),通過兩個VGG-Net[6]網(wǎng)絡(luò)提取特征,并在特征送進(jìn)全連接層前對兩個分支提取出的特征進(jìn)行雙線性融合操作,有效提升了特征表征能力。但網(wǎng)絡(luò)模型參數(shù)量太大導(dǎo)致訓(xùn)練效率非常低,且VGG-Net特征提取網(wǎng)絡(luò)對目標(biāo)物體區(qū)分性局部部位的關(guān)注度不夠等問題對最后分類效果產(chǎn)生了一定影響。Xiao等人[13]提出的兩級注意力模型,首先在圖像上生成大量候選區(qū)域并過濾保留包含前景物體的候選區(qū)域,然后利用網(wǎng)絡(luò)的兩個特征分支分別對物體級特征和部位級特征進(jìn)行提取并融合,最后進(jìn)行SVM[10,14]分類。Fu等人[15]提出的循環(huán)注意卷積神經(jīng)網(wǎng)絡(luò)(RA-CNN)提出使用注意力區(qū)域網(wǎng)絡(luò)(APN)定位出圖像中的目標(biāo)物體區(qū)域,并進(jìn)行裁剪放大操作,然后將其送進(jìn)下一層網(wǎng)絡(luò)獲取物體部位級別的圖像,在最后一層網(wǎng)絡(luò)融合物體級和部位級特征進(jìn)行預(yù)測分類。
ViT框架在傳統(tǒng)圖像分類任務(wù)上表現(xiàn)很出色,主要因為其工作機(jī)制就是利用自注意力機(jī)制捕獲全局上下文的特征信息。許多工作基于ViT展開,如DeiT[16-17]進(jìn)一步探索了ViT架構(gòu)如何保證數(shù)據(jù)高效訓(xùn)練和特征提取。CrossViT[18-19]探索了ViT架構(gòu)在多尺度情況下的表現(xiàn),將不同尺度的圖像塊的特征提取并進(jìn)行有效融合,取得了非常理想的分類效果。TransFG[20]是第一個將ViT架構(gòu)應(yīng)用在細(xì)粒度圖像分類任務(wù)上并取得優(yōu)異表現(xiàn)的網(wǎng)絡(luò)。主要工作是在最后一層編碼器之前,提出部分選擇模塊PSM來選擇與物體目標(biāo)區(qū)域相關(guān)度大的圖像塊向量,然后和分類標(biāo)記向量一起作為最后一層編碼器的輸入進(jìn)行后續(xù)預(yù)測分類。
許多研究工作都圍繞著如何讓ViT模型提取出更具區(qū)分性的特征而展開,但是對圖像塊輸入特征做處理的工作非常少。并且編碼器中的多頭注意力機(jī)制主要通過建立所有圖像塊向量聯(lián)系來發(fā)揮作用,但所有的圖像塊起到的作用并非相等[20]這一特性在之前的工作中研究并不多。因此,該文是基于ViT架構(gòu)如何學(xué)習(xí)到圖像塊作用的量化值,使后續(xù)階段的多頭注意力機(jī)制學(xué)習(xí)到比較重要的圖像塊特征。同時為了學(xué)習(xí)到相同類別之間的差異性,提出相似損失函數(shù)來優(yōu)化模型,提升任務(wù)效果。
自注意力機(jī)制捕捉全局上下文信息在視覺信息中就是計算圖像塊向量的注意力;由于這個過程容易忽略圖像局部區(qū)域信息,而對于局部上下文信息,即圖像塊之間的聯(lián)系,會想到利用卷積操作的特性來使模型可以學(xué)習(xí)到不同圖像塊特征的重要程度,這樣就從全局和局部兩種互補角度使模型更適合細(xì)粒度圖像分類任務(wù)。對于每一組輸入向量A∈R(N+1)*D,N代表圖像塊向量個數(shù),D代表向量維度,通過池化操作,學(xué)習(xí)到代表每個向量的感受野值:
wi=fpooling(Ai),i∈(0,1,…,N)
(1)
其中,fpooling為平均池化函數(shù)。
然后,經(jīng)過全連接層和激活函數(shù)層來捕獲圖像塊向量的相關(guān)性,得到和圖像塊特征數(shù)量相等的一組特征權(quán)值。
(2)
為了更好地提取到具有區(qū)分性的局部特征,引入相關(guān)度評價函數(shù)fα對權(quán)值進(jìn)行過濾,得到一些對細(xì)粒度分類任務(wù)比較重要的圖像塊特征。具體做法是首先將上一步得到的圖像塊特征權(quán)值利用排序函數(shù)fsort進(jìn)行降序排序返回代表各權(quán)值大小序號的向量組,所以圖像塊特征并沒有被打亂順序,在相關(guān)度評價函數(shù)fα中引入圖像相關(guān)度因子α代表保留的圖像塊特征數(shù)量,經(jīng)過大量實驗證明保留前70%的圖像塊區(qū)域向量效果最佳即α=0.7,剩下的圖像塊權(quán)重值設(shè)置為零,這種處理方式抑制了許多的不相關(guān)信息表達(dá),同時在一定程度上降低了注意力計算量。最后將所得權(quán)值與對應(yīng)輸入向量加權(quán)相乘得到加權(quán)特征:
Apatch=A⊙fα(fsort(?patch),?patch)
(3)
(4)
相關(guān)度評價函數(shù)fα里Wrank代表權(quán)值向量組里面的排序情況,?代表具體權(quán)值,fts函數(shù)確定保留圖像塊區(qū)域的權(quán)值閾值。模型框架如圖1所示。
圖1 模型框架
由于圖片分割成一組圖像塊的操作會使局部區(qū)域的特征表達(dá)不完整[20],特別是當(dāng)細(xì)粒度圖像分類任務(wù)所需的類間區(qū)分性特征因分割操作受到影響時,就會降低分類精度。為了降低這種影響,可以選擇把圖片分割成互相有重疊區(qū)域的圖像塊[20],即:
(5)
其中,H、W代表原始圖像的分辨率,P代表分割后圖像塊的分辨率,因為這里分割成的圖像塊為正方形,所以P也就代表分割后的圖像塊的長度和寬度,S代表卷積核的滑動窗口大小,也就是實現(xiàn)了重疊的圖像塊劃分,得到的N就是一張圖片被分割成多少個圖像塊。但這也會造成計算量的增加,特別是在分辨率較高的數(shù)據(jù)集上,會對實驗環(huán)境產(chǎn)生很高的要求。
?pos=σ(W1?(Wpos?Apos))
(6)
Apos=W2?Apatch
(7)
其中,N標(biāo)識圖像塊數(shù)量;Apos的維度為4*d,d是圖像塊特征向量維度;(xtop,xbottom)和(yleft,yright)分別代表圖像塊區(qū)域的左上角和右下角坐標(biāo)。最后學(xué)習(xí)到的權(quán)重信息?pos與上一階段的圖像塊向量相乘作為編碼器的輸入向量:
Aecd=Apatch⊙?pos
(8)
為了模型更好地關(guān)注到細(xì)粒度圖像特征,文中方法選擇把輸出向量中的分類標(biāo)記向量z即第一個向量作為評價標(biāo)準(zhǔn),考慮到細(xì)粒度圖像分類任務(wù)子類別之間的差異非常小,為了盡可能學(xué)習(xí)到這個微小特征的差異性,在交叉熵?fù)p失函數(shù)基礎(chǔ)上增加了相似損失函數(shù)Lsim,使相同標(biāo)簽對應(yīng)的分類標(biāo)記向量差異性最小化,提升任務(wù)效果。
(9)
其中,fcos是計算余弦相似度函數(shù)。所以整體模型的損失為:
(10)
其中,Lcross為交叉熵?fù)p失函數(shù)。在Ltotal的基礎(chǔ)上,模型不斷訓(xùn)練優(yōu)化,最后使得整個網(wǎng)絡(luò)擬合,模型提取出具有區(qū)分性的局部特征的能力顯著提升。
CUB-200-2011鳥類數(shù)據(jù)集包括200種鳥類,共11 788張圖像,其中有5 994張訓(xùn)練圖像和5 794張測試圖像,每張圖像均有圖像類標(biāo)記信息,包括鳥的標(biāo)記框、鳥的關(guān)鍵部位信息,以及鳥類的屬性信息。Standford Dogs犬類數(shù)據(jù)集包括120種犬類,共20 580張圖像,其中12 000訓(xùn)練圖像和8 580張測試圖像,每張圖像有類標(biāo)記信息和的標(biāo)記框,關(guān)鍵特征包括毛發(fā)顏色、鼻子。
采用基于ViT-Base/16的ImageNet21k數(shù)據(jù)集預(yù)訓(xùn)練模型[7]。首先,將輸入的原始圖像進(jìn)行預(yù)處理。預(yù)處理包括將圖像像素大小隨機(jī)縮放,然后裁剪到448*448的像素級別,并對裁剪后的圖像進(jìn)行隨機(jī)旋轉(zhuǎn),其中對用于訓(xùn)練的數(shù)據(jù)集進(jìn)行隨機(jī)裁剪,對用于測試的數(shù)據(jù)集進(jìn)行中心裁剪。實驗中統(tǒng)一把圖片分割為16*16大小的圖像塊,滑動窗口步長大小也為16,Batchsize大小設(shè)置為16,Epoch大小為100。網(wǎng)絡(luò)權(quán)值更新使用SGD優(yōu)化器,SGD優(yōu)化器的動量設(shè)置為0.9。CUB-200-2011數(shù)據(jù)集的學(xué)習(xí)率設(shè)置為0.03,Standford Dogs數(shù)據(jù)集的學(xué)習(xí)率設(shè)置為0.003。所有實驗均使用了三張NVIDIA GeForce RTX3090 GPU,在Linux系統(tǒng)上運行并基于Pytorch框架,借助了Apex工具。
為證明加入賦予權(quán)值模塊和嵌入位置編碼信息對分類效果的影響,采用ViT作為基準(zhǔn)模型,分別對不加入位置編碼信息和加入位置編碼信息的加強圖像塊相關(guān)性兩種模塊進(jìn)行消融實驗。采用交叉熵?fù)p失函數(shù)和相似損失函數(shù),對三種模型分別訓(xùn)練40次,實驗結(jié)果如表1所示。
表1 消融實驗結(jié)果
可以看出,與基準(zhǔn)相比,兩種模型的準(zhǔn)確率均有提升,且因為加入位置編碼信息的模型提升了局部區(qū)域上下文信息的利用率,較之沒嵌入位置編碼信息的模型也有提升效果。說明提出的方法能使模型學(xué)習(xí)到更多局部區(qū)分性特征,并降低了分割圖片帶來的特征不完整表達(dá)影響。
表2 不同α值實驗結(jié)果
然后調(diào)整嵌套比的m值,如表3所示,當(dāng)把模塊疊加到編碼器中時,效果都會提升,當(dāng)m大于等于3時效果相當(dāng),但為了減少計算量,應(yīng)盡可能把模塊嵌入數(shù)量降低,所以m取值3比較好,也就是嵌入三個模塊。
表3 不同m值實驗結(jié)果
為了證明提出方法的有效性,將文中方法與先進(jìn)的方法進(jìn)行對比,文中方法的基準(zhǔn)網(wǎng)絡(luò)為ViT,加入加強圖像塊相關(guān)性模塊后,在數(shù)據(jù)集CUB-200-2011和 Standford Dogs分別提升了0.63、0.45百分點,也證明了文中方法能夠有效加強局部信息的表征能力。如表4所示,相比于一些基于CNN方法的模型,文中方法效果提升明顯。Cross-X網(wǎng)絡(luò)利用不同圖像之間和不同網(wǎng)絡(luò)層之間的關(guān)系對細(xì)粒度圖像數(shù)據(jù)集進(jìn)行多尺度特征學(xué)習(xí),也達(dá)到了不錯的效果。API-Net通過構(gòu)建注意力成對交互網(wǎng)絡(luò)進(jìn)行互向量學(xué)習(xí)區(qū)分微小差異,達(dá)到了非常好的效果,但對微小差異捕捉能力更強,性能更好。對比FDL網(wǎng)絡(luò)方法,文中方法也表現(xiàn)的非常好。相比于基準(zhǔn)網(wǎng)絡(luò)ViT模型,效果也有提升。
表4 對比實驗結(jié)果
在細(xì)粒度圖像分類任務(wù)中,針對ViT框架對圖像局部區(qū)域關(guān)注不夠的問題且為進(jìn)一步加強圖像塊特征的上下文聯(lián)系,提出一種基于加強圖像塊相關(guān)性的細(xì)粒度圖像分類方法。賦予圖像塊相關(guān)性權(quán)重并對其評價差異化,加強網(wǎng)絡(luò)對局部區(qū)域的關(guān)注,引入圖像塊位置信息加強圖像塊上下文信息的聯(lián)系,有效降低了分割圖片對圖像塊造成的特征不完整,整個模塊與編碼器以嵌套方式組合豐富了不同層次的特征表達(dá),并引入相似損失函數(shù)提升任務(wù)表現(xiàn)。實驗表明,該方法有效提升了細(xì)粒度圖像分類效果。下一步的研究可以考慮如何充分利用當(dāng)前圖像塊與局部相鄰圖像塊區(qū)域的聯(lián)系,進(jìn)一步加強圖像塊特征的表征能力,提升分類效果。