李明峰,邵琳鈺,蔡昌利
(1.上海理想信息產(chǎn)業(yè)(集團)有限公司,上海 201200; 2.北京郵電大學(xué)信息與通信工程學(xué)院,北京 100876)
圖像識別是計算機視覺領(lǐng)域的基礎(chǔ)任務(wù)和重要研究方向。隨著相關(guān)研究的不斷深入,更具挑戰(zhàn)性的細(xì)粒度圖像識別任務(wù)受到了越來越多的關(guān)注。細(xì)粒度圖像識別的目標(biāo)是準(zhǔn)確地區(qū)分一個大類下的多個子類別,例如區(qū)分圖1中3種形態(tài)十分相似的鳥類。相較于一般的圖像識別任務(wù),細(xì)粒度圖像識別具有類間差異小、類內(nèi)差異大的特點。具體來說,類間差異小是指,不同子類的對象具有相似性,需要通過一些關(guān)鍵的區(qū)域(以鳥類為例,如鳥嘴、翅膀、爪子等部分區(qū)域)來加以區(qū)分,然而標(biāo)注關(guān)鍵區(qū)域會增加額外的標(biāo)注成本;類內(nèi)差異大是指,同一個子類中,由于姿勢、背景、光線以及拍攝角度等因素的不同,對象之間差別相對較大。細(xì)粒度圖像識別的實際應(yīng)用非常廣泛,如圖1中提到的鳥類分類[1],以及針對零售商品[2]、車輛[3]、真菌[4]等對象的分類任務(wù),并且很多工業(yè)缺陷分類與醫(yī)學(xué)計算機體層攝影(computed tomography,CT)圖像分類任務(wù)也可以歸為細(xì)粒度圖像識別問題。
(a) 鉤嘴鳥 (b) 黑腳信天翁 (c) 鳳頭海雀
針對上述提到的細(xì)粒度圖像識別問題的特點和難點,目前已經(jīng)進行了大量的研究工作。早期的細(xì)粒度圖像識別算法[5-7]主要基于包含強監(jiān)督信息的圖像數(shù)據(jù)進行訓(xùn)練,除了圖像的類別信息之外,還需要使用額外的人工標(biāo)注信息(如針對鳥嘴翅膀等關(guān)鍵區(qū)域的標(biāo)注點以及對象標(biāo)注框等)。然而標(biāo)注需要一定的專家知識以及額外的標(biāo)注成本,制約了方法的實際應(yīng)用,例如在CT圖像中準(zhǔn)確地標(biāo)注病變部位需要專業(yè)的醫(yī)生。
近年來,基于弱監(jiān)督信息的細(xì)粒度圖像識別方法[8-20]的識別能力已經(jīng)逐漸超過基于強監(jiān)督信息的方法,并成為細(xì)粒度圖像識別問題研究的主流方向。這類方法只需要圖像標(biāo)注信息,減少了對于額外標(biāo)注信息的需求,降低了實際應(yīng)用難度。最新的研究主要集中在以下方向:1)模型結(jié)構(gòu)優(yōu)化,Lin等[8]首先提出了基于雙支路網(wǎng)絡(luò)B-CNN的特征提取器,近期的許多工作基于它進行了改進[12-13]。此外,部分研究使用Transformer網(wǎng)絡(luò)代替CNN[14-16],如Dosovitskiy等[14]提出了用于圖像分類的ViT方法,He等[15]則進一步設(shè)計了專用于細(xì)粒度圖像分類的Transformer網(wǎng)絡(luò)TransFG。Wang等[17]則關(guān)注了中間層特征對性能的影響。部分模型引入了注意力機制,如Sun等[18]提出壓縮多激勵(OSME)模塊來學(xué)習(xí)多個注意區(qū)域特征,然后在度量學(xué)習(xí)框架中應(yīng)用多注意多類約束(MAMC)進行分類,Ji等[19]基于二叉樹結(jié)構(gòu)搭建注意力網(wǎng)絡(luò)模型,這些方法有效地提升了識別精度,但復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)也極大地增加了訓(xùn)練開銷。2)網(wǎng)絡(luò)流程優(yōu)化,如Zhou等[9]提出了LIO,將自我監(jiān)督整合到傳統(tǒng)框架中來針對對象進行查看。Chang等[20]從損失函數(shù)入手,保持網(wǎng)絡(luò)結(jié)構(gòu)不變,設(shè)計了MC-loss方法,Chen等[21]提出的解構(gòu)-重構(gòu)學(xué)習(xí)(destruction and construction learning,DCL)直接將訓(xùn)練圖像進行區(qū)域打亂,增強局部細(xì)節(jié),并使用了一種對抗損失來區(qū)分原始圖像和破壞圖像,然而這些方法是非端到端的,訓(xùn)練過程中涉及大量的圖片裁剪和放大操作,大大增加了訓(xùn)練難度。已有研究主要依靠設(shè)計復(fù)雜網(wǎng)絡(luò)或者流程來捕獲精細(xì)特征,沒有考慮訓(xùn)練過程對該問題的重要性,本文針對細(xì)粒度圖像識別類內(nèi)差異大、類間差異小的問題開展研究,提出了更為有效的訓(xùn)練方式以及網(wǎng)絡(luò)模型。
Mixup[22]被廣泛應(yīng)用于圖像識別領(lǐng)域的網(wǎng)絡(luò)正則化以及數(shù)據(jù)增強方向。通過混合數(shù)據(jù)來生成虛擬樣本,從而達到擴充數(shù)據(jù)的效果,能夠有效改善過擬合問題,提升模型對于圖像識別的性能和魯棒性。并且生成的虛擬樣本往往能夠包含多個類別的特征信息。受此方法啟發(fā),本文提出將模型中間層輸出的特征圖進行混合,借助Mixup思想提取類間和類內(nèi)的特征信息。
非局部(Non-local,NL)模塊通常被用來捕獲圖像不同位置的依賴關(guān)系以及生成注意力權(quán)重[23-24]。最新的研究將其應(yīng)用于細(xì)粒度圖像識別領(lǐng)域,如劉洋等[25]將非局部模塊與Navigator進行結(jié)合,加強模型的全局信息感知能力; Ye等[26]通過NL模塊將具有不同的感受野的深層神經(jīng)元與多個淺層神經(jīng)元相關(guān)聯(lián),使深層可以從淺層中學(xué)習(xí)到更具區(qū)分性的多尺度特征。然而,多尺度特征融合增大了訓(xùn)練開銷,且模塊的遷移性較差。
針對細(xì)粒度圖像識別問題類內(nèi)差異大、類間差異小的問題,本文引入Mixup思想來比較不同的圖像,從而提高模型對圖像的辨別能力[27-28],突出不同類別的區(qū)分性特征和相同類別的共有特征。并在需要混合的網(wǎng)絡(luò)中間層后加入NL模塊捕獲特征信息??紤]到Mixup方式在獲取特征信息的同時,也帶來了噪聲和歧義,因此,本文設(shè)計了與訓(xùn)練過程耦合的多損失函數(shù)來優(yōu)化該問題。
本文的網(wǎng)絡(luò)模型總體架構(gòu)如圖2所示,首先,設(shè)計混合非局部增強(MixupNon-local,MNL)網(wǎng)絡(luò),通過Mixup混合NL模塊提取的網(wǎng)絡(luò)中間層特征,然后通過Adaptor在訓(xùn)練過程中動態(tài)調(diào)整多損失函數(shù)提升模型魯棒性,下文將詳細(xì)介紹模型的設(shè)計流程。
圖2 網(wǎng)絡(luò)總體架構(gòu)Fig.2 Overall structure of the network
Mixup是計算機視覺中常用的數(shù)據(jù)增強方法,其主要思想如下。
如圖3所示,對于任意的2個標(biāo)記數(shù)據(jù)樣本(xi,yi)和(xj,yj),其中xi、xj為圖像樣本,yi、yj為對應(yīng)標(biāo)簽的one-hot表示,通過線性插值混合2個樣本,從而創(chuàng)建新的虛擬訓(xùn)練樣本,公式表示如下:
圖3 Mixup生成虛擬樣本Fig.3 Generate virtual samples by Mixup
(1)
(2)
其中λ∈[0,1]。
通過Mixup方法混合不同的樣本,可以擴充訓(xùn)練樣本數(shù)量,且生成的樣本能夠讓模型通過對比進行訓(xùn)練學(xué)習(xí),能夠直接優(yōu)化細(xì)粒度圖像識別中類內(nèi)差異大、類間差異小的問題。
但是原始的Mixup僅考慮了底層特征信息,忽視了深層的語義特征信息。而底層特征的混合會產(chǎn)生歧義,容易影響高層語義特征的學(xué)習(xí)。因此,本文提出對卷積神經(jīng)網(wǎng)絡(luò)中不同深度的中間層特征圖進行混合,從而更好地獲取特征信息。
同時,考慮到直接對網(wǎng)絡(luò)中間層的輸出進行混合,缺少了對特征的提取和保存,容易導(dǎo)致訓(xùn)練欠擬合。因此,首先在骨干網(wǎng)絡(luò)需要進行混合的中間層之后插入NL模塊,通過混合NL模塊的輸出結(jié)果,指導(dǎo)其提取和保存類內(nèi)與類間的特征信息。
本節(jié)詳細(xì)介紹了NL模塊的結(jié)構(gòu)、功能及其在骨干網(wǎng)絡(luò)中的應(yīng)用。
在神經(jīng)網(wǎng)絡(luò)中,卷積運算通常只能提取局部相關(guān)性,使網(wǎng)絡(luò)很難捕獲大范圍或者全局中不同位置的聯(lián)系。而NL模塊可以很好地獲取全局中不同位置之間的依賴關(guān)系,聯(lián)系多個相關(guān)的區(qū)域特征,且不會改變輸入特征的維度,其結(jié)構(gòu)如圖4(b)所示。因此,我們在骨干網(wǎng)絡(luò)(以ResNet-50為例)的多個瓶頸(Bottleneck)(ResNet的基本組成結(jié)構(gòu),其結(jié)構(gòu)如圖4(c)所示)之間插入多個NL模塊,提升網(wǎng)絡(luò)對于不同尺度全局依賴關(guān)系的獲取能力,并用于保存類內(nèi)和類間的特征信息。插入NL模塊后的骨干網(wǎng)絡(luò)總體結(jié)構(gòu)如圖4(a)所示。
圖4 ResNet-50+5NL模塊結(jié)構(gòu)圖Fig.4 Architecture of ResNet-50+5NL module
結(jié)合文獻[26]中的定義,對于第l個Bottleneck模塊,Hl、Wl和Cl分別表示其輸出特征圖的高度、寬度和通道數(shù)。將特征表示為Xl∈RHlWl×Cl(粗體大寫字母表示矩陣,所有非粗體字母表示標(biāo)量。特征的上標(biāo)表示相應(yīng)層的索引)。為了獲取特征Xl中局部位置之間的全局依賴關(guān)系,首先通過3個可學(xué)習(xí)的變換函數(shù)θ(·)、φ(·)和g(·)對Xl進行特征變換,將其投影到新的特征空間中。然后,通過函數(shù)f(·,·)計算θ(Xl)和φ(Xl)的相關(guān)性以獲得全局的依賴關(guān)系,再經(jīng)過softmax函數(shù)將其轉(zhuǎn)換為注意力權(quán)重。將生成的注意力權(quán)重與g(Xl)相乘,獲得最終的全局依賴關(guān)系,最后,通過變換函數(shù)z(·)將結(jié)果投影到原本的特征空間并與特征Xl疊加,FNL(Xl)的具體計算過程如下:
FNL(Xl)=Xl+z(f(θ(Xl),φ(X))g(Xl))
(3)
式中:θ(·)、φ(·)、g(·)和z(·)通常實現(xiàn)為1×1卷積,θ(·)、φ(·)、g(·)對特征X做降維處理,z(·)將結(jié)果復(fù)原到原本的特征維度,以保證與特征X的維度一致性。f(·,·)函數(shù)為嵌入高斯函數(shù),公式如下:
f(θ(X),φ(X))=eθ(Xl)Tφ(Xl)
(4)
本節(jié)中將Mixup思想與NL模塊相結(jié)合,提出了本文模型的主要結(jié)構(gòu)——MNL模塊,結(jié)構(gòu)如圖5所示。
圖5 MNL模塊結(jié)構(gòu)圖Fig.5 Overall structure of MNL module
首先,選取2個樣本(xi,yi)和(xj,yj),xi、xj為圖像樣本,yi、yj為其對應(yīng)標(biāo)簽的one-hot表示,將xi、xj分別輸入網(wǎng)絡(luò)中。根據(jù)骨干網(wǎng)絡(luò)不同尺度卷積層的特征提取能力,我們選擇了N個不同深度的中間特征層,并在每個特征層后插入與之匹配的NL模塊,編號為NLm,其中m∈[1,N]。在訓(xùn)練階段,隨機選取一個NL模塊,如NLM,2個圖像樣本經(jīng)過NLM后的輸出特征分別為:
(5)
(6)
層后的輸出特征,θM(·)表示NLM中的θ(·)函數(shù),φM(·)、gM(·)同理。
(7)
其中λ由生成器(Generator)模塊產(chǎn)生,參考Chen等[28]的設(shè)置,在實驗中Generator會針對每個批次從Beta分布中采樣混合參數(shù)λ以完成特征的混合:
λ~Beta(β,β)
λ=max(λ,1-λ)
(8)
(9)
式中:p(·;φ)為MNL模型的分類器,φ為分類器參數(shù)。分類器由全局平均池化層(global average pooling,GAP)、全連接層(fully connected layer)以及Softmax層組成。
對于訓(xùn)練過程中的每一個批次的數(shù)據(jù),都會隨機選取NL模塊并進行特征混合,以保證不同深度的NL模塊都能夠?qū)W到對應(yīng)不同尺度的特征信息。
本質(zhì)上,訓(xùn)練過程中通過Mixup方式生成的虛擬樣本分類任務(wù)相比原任務(wù)更加復(fù)雜。增強的任務(wù)與原目標(biāo)任務(wù)實際上并不相同,即訓(xùn)練過程與測試過程并不完全匹配。因此,本文提出了MNL+Adaptor架構(gòu),通過設(shè)計與訓(xùn)練過程耦合的多損失函數(shù)來優(yōu)化Mixup帶來的問題,其中Adaptor模塊負(fù)責(zé)在訓(xùn)練過程中調(diào)節(jié)增強任務(wù)與目標(biāo)任務(wù)的權(quán)重。
如圖2所示,模型的損失由2部分組成,即輸入的2個批次經(jīng)過MNL模塊的預(yù)測損失LMNL以及各自的預(yù)測損失Li和Lj,總損失函數(shù)如下:
Lt=αLMNL+(1-α)Li+Lj
(10)
式中:α由Adaptor模塊產(chǎn)生。Adaptor內(nèi)部實現(xiàn)為與訓(xùn)練步數(shù)s相關(guān)的函數(shù)f(s),f(·)可由一個或多個遞減函數(shù)組成和實現(xiàn),本文中選取了指數(shù)函數(shù),f(s)公式如下:
(11)
式中:S為總訓(xùn)練步數(shù);a為外部參數(shù),用于調(diào)整變化速率。
在訓(xùn)練開始時,α=1,Adaptor模塊控制模型以虛擬任務(wù)為主要任務(wù),隨著訓(xùn)練過程的進行,α逐漸趨于0,Adaptor模塊將訓(xùn)練任務(wù)重心偏向于目標(biāo)任務(wù),降低Mixup帶來的影響。
首先,將成對的數(shù)據(jù)分別輸入插入了NL模塊的骨干網(wǎng)絡(luò);接著在MNL模塊中,通過Mixup將NL提取的網(wǎng)絡(luò)中間層特征進行混合,并分別計算原始預(yù)測與混合預(yù)測的損失函數(shù);然后通過Adaptor動態(tài)調(diào)整多個損失之間的權(quán)重,得到混合的預(yù)測損失,最后通過反向傳播更新骨干網(wǎng)絡(luò)的參數(shù)。
實驗選用ResNet-50作為骨干網(wǎng)絡(luò),并在其res2模塊與res3模塊中分別插入2個和3個NL模塊。訓(xùn)練和測試過程中,將輸入圖像的大小統(tǒng)一調(diào)整為448×448,為了權(quán)衡模型收斂與NL模塊收斂的速度,訓(xùn)練過程只選取了第一、三、五個 NL模塊進行混合。論文的方法使用PyTorch框架實現(xiàn),訓(xùn)練使用4張Tesla V100-SXM2 GPU,批次大小設(shè)置為64。適當(dāng)提高批次的大小有利于提升算法的魯棒性。Beta分布的超參數(shù)β設(shè)置為0.75,初始學(xué)習(xí)率設(shè)置為0.001,每20個訓(xùn)練輪數(shù)(epoch)學(xué)習(xí)率乘以下降系數(shù)0.1,使用Adam作為網(wǎng)絡(luò)優(yōu)化器,共訓(xùn)練120個epoch。
本文在CUB-200-2011[1]和Stanford Cars[3]數(shù)據(jù)集上進行了實驗。表1為數(shù)據(jù)集的詳細(xì)信息。
表1 細(xì)粒度數(shù)據(jù)集詳情Tab.1 Statistics of fine-grained datasets
其中,CUB-200-2011包含200個鳥類子類別,由5 994張訓(xùn)練圖像和5 794張測試圖像組成。Stanford Cars包含了196個汽車類別,由8 144張訓(xùn)練圖片和8 041張測試圖片組成。我們在2個數(shù)據(jù)集上將本文方法與多個細(xì)粒度圖像識別方法進行對比,結(jié)果如表2、表3所示。
表2 在CUB-200-2011數(shù)據(jù)集上的細(xì)粒度分類結(jié)果Tab.2 Fine-grained classification results on the CUB-200-2011 dataset
表3 在Stanford Cars數(shù)據(jù)集上的細(xì)粒度分類結(jié)果Tab.3 Fine-grained classification results on the Stanford Cars dataset
首先,依據(jù)是否有區(qū)域標(biāo)注將方法分為2類,并且為了更好地對比,本文給出了每種方法使用的骨干網(wǎng)絡(luò)。論文提出的MNL+Adaptor模型在CUB-200-2011和Stanford Cars上分別達到了87.4%與93.8%的top1識別精度,相較于基于強監(jiān)督信息的方法(如FACN和PA-CNN等)有明顯提升,并超過大量基于弱監(jiān)督信息的算法。在使用相同骨干網(wǎng)絡(luò)(ResNet-50)的情況下,MNL模型的識別精度優(yōu)于多個最新的方法(如MCL和CNL等),并且與同樣針對NL模塊進行改進的CNL方法相比,論文模型保留了NL模塊即插即用的優(yōu)點,無須對骨干網(wǎng)絡(luò)模型進行大量修改,可以動態(tài)地調(diào)整NL模塊的嵌入。
為了進一步驗證算法的有效性,我們在CUB-200-2011數(shù)據(jù)集上研究了論文模型中不同模塊對預(yù)測性能的影響。表4中展示了模型各個模塊或方法對模型預(yù)測的top1、top5準(zhǔn)確率以及模型參數(shù)量與計算復(fù)雜度的影響。
表4 在CUB-200-2011上的消融實驗結(jié)果Tab.4 Experimental results of ablation on CUB-200-2011
從性能角度分析,與作為基線的ResNet-50網(wǎng)絡(luò)模型相比,在ResNet-50中嵌入NL模塊提高了1.05%的top1準(zhǔn)確率。只使用Mixup對原始數(shù)據(jù)進行數(shù)據(jù)增強提高了1.23%的top1準(zhǔn)確率并提高了1.21%的top5準(zhǔn)確率。而將Mixup數(shù)據(jù)增強方法與NL模塊進行簡單的結(jié)合后,雖然依舊能夠提高性能,但是提升效果并不明顯。這是由于插入的NL模塊的參數(shù)是隨機初始化的,沒有加載預(yù)訓(xùn)練參數(shù),而Mixup方法對原始圖像進行增強經(jīng)過網(wǎng)絡(luò)的層層傳播,只能隱式地訓(xùn)練NL模塊,并不能直接指導(dǎo)NL模塊的參數(shù)學(xué)習(xí),導(dǎo)致結(jié)合的效率低下。而論文提出的MNL主體結(jié)構(gòu)在基線上提升了2.3%的top1準(zhǔn)確率,更加有效地訓(xùn)練了NL模塊,提取并保存了類內(nèi)與類間特征信息。此外,基于論文方法部分對于Mixup方法弊端的分析,論文提出的與訓(xùn)練過程耦合的損失函數(shù)使模型識別精度達到了87.42%,有效地改善了訓(xùn)練過程。
從復(fù)雜度角度分析,相比于ResNet-50,本文方法在提升性能的同時增加了參數(shù)量與計算量,但該增加量主要來自于NL模塊,證明本文提出的方法在不增加額外參數(shù)量的情況下有效發(fā)揮了NL模塊的性能。同時,相比于大型網(wǎng)絡(luò)ResNet-101,本文方法在參數(shù)量與計算量更少的情況下達到了更高的性能。
為了直觀地分析各個模塊對于模型性能的影響,在本節(jié)中使用Grad-CAM方法可視化了不同情況下模型的關(guān)注區(qū)域。通過熱力圖可以解釋模型的分類依據(jù),并分析每個模型的優(yōu)缺點。如圖6所示,從CUB-200-2011中選取了黑腳信天翁和黑背信天翁2個類別的部分圖片進行可視化,由于這2種類別有著很高的相似度,因此能夠更好地展示模型提取細(xì)粒度特征的性能。
圖6 不同模型的熱力圖分析Fig.6 Heatmap comparison of different models
嘴部的白色圓環(huán)是黑腳信天翁的顯著特征,并且頭部也是區(qū)分其與黑背信天翁的主要部位。相比于ResNet-50,Mixup、MNL以及MNL+Adaptor均對該位置有更高的關(guān)注,并且ResNet-50的高響應(yīng)注意力中包含了更多的背景區(qū)域,覆蓋了更大的范圍。而Mixup的高響應(yīng)注意力多次出現(xiàn)在了尾部等非關(guān)鍵區(qū)域,說明在對原始圖片進行混合時,圖片關(guān)鍵區(qū)域發(fā)生疊加可能會影響圖片的概念,比如頭尾重疊等等。而MNL網(wǎng)絡(luò)通過混合網(wǎng)絡(luò)中間層經(jīng)過NL模塊處理過的特征圖,有效地緩解了這一問題。在方法部分我們提出,引入了Mixup思想的任務(wù)相較于原任務(wù)更加復(fù)雜,通過熱力圖可以發(fā)現(xiàn),損失函數(shù)中加入的Adaptor雖然并不能使MNL模型對于關(guān)鍵部位的識別更加集中,但卻能夠降低模型對于翅膀、身體以及尾巴等非關(guān)鍵部位的關(guān)注度,減少Mixup引入的噪聲和歧義,改善模型的訓(xùn)練過程。
本文引入了Mixup思想來提升細(xì)粒度圖像識別的準(zhǔn)確率,提出了基于混合特征提取的細(xì)粒度圖像識別方法。相較于傳統(tǒng)的Mixup方式,本文首先設(shè)計了MNL網(wǎng)絡(luò)架構(gòu),通過混合不同深度的網(wǎng)絡(luò)中間層的輸出特征來指導(dǎo)網(wǎng)絡(luò)的學(xué)習(xí)過程,并在網(wǎng)絡(luò)中插入多個NL模塊來進一步提取和保存不同尺度的類內(nèi)和類間特征信息,顯式地優(yōu)化了類內(nèi)差異大、類間差異小的問題。同時,MNL保留了NL模塊即插即用的優(yōu)勢,能夠與各種基準(zhǔn)網(wǎng)絡(luò)進行結(jié)合,具有很好的可遷移性。此外,本文設(shè)計了Adaptor模塊進一步優(yōu)化MNL,通過在訓(xùn)練過程中動態(tài)調(diào)整多損失函數(shù)的比重,減少了Mixup帶來的噪聲和歧義,合理控制了訓(xùn)練任務(wù)的復(fù)雜度。論文在多個公開的數(shù)據(jù)集上實驗并驗證了MNL+Adaptor模型架構(gòu)的有效性。