王 賀,張 震
(山西大學(xué) 物理電子工程學(xué)院,山西 太原 030006)
圖像分類作為計(jì)算機(jī)視覺中的基本問題備受關(guān)注,常應(yīng)用于圖像檢索[1]、視頻注釋[2]和指紋識(shí)別[3]等領(lǐng)域。通常所研究的圖像中并非只包含一類對(duì)象,為了能夠更準(zhǔn)確地提取圖像信息,人們開始對(duì)多標(biāo)簽圖像分類(Multi-Label Image Classification,MLIC)展開研究。
早期多標(biāo)簽圖像分類將圖像信息轉(zhuǎn)化為多個(gè)二分類方法進(jìn)行訓(xùn)練,效率較低。2017 年,Zhu F 等[4]提出了SRN 對(duì)目標(biāo)出現(xiàn)區(qū)域進(jìn)行研究,利用注意圖對(duì)每個(gè)標(biāo)簽應(yīng)關(guān)注的圖像區(qū)域進(jìn)行劃分,使多標(biāo)簽圖像分類效率有了極大提高。隨著卷積神經(jīng)網(wǎng)絡(luò)(CNN)的發(fā)展,多標(biāo)簽圖像分類的精度逐步提升,但是圖像中目標(biāo)之間的關(guān)聯(lián)性還有待發(fā)掘,導(dǎo)致多標(biāo)簽圖像分類精度不高。2019 年,Chen Z M 等[5]提出了ML-GCN,為圖像上出現(xiàn)的標(biāo)簽建立了相關(guān)矩陣,使卷積神經(jīng)網(wǎng)絡(luò)一定程度上學(xué)習(xí)到了標(biāo)簽之間的關(guān)聯(lián)性,在多標(biāo)簽圖像分類上取得了很好的結(jié)果。但是MLGCN 模型獲得的標(biāo)簽相關(guān)性具有一定的局限性,因?yàn)樵跀?shù)據(jù)集中標(biāo)簽之間的頻率關(guān)系并不代表真實(shí)場(chǎng)景中目標(biāo)之間的關(guān)系。Chen T 等[6]提出了SSGRL,利用語義解耦模塊結(jié)合類別語義來學(xué)習(xí)特定語義的表示,將語義交互模塊與基于統(tǒng)計(jì)標(biāo)簽共現(xiàn)的圖相關(guān)聯(lián),并通過圖傳播機(jī)制探索它們之間的交互,效率獲得了很大提升。針對(duì)MLGCN 存在的問題,Ye J 等[7]提出的ADD-GCN 在一定程度上進(jìn)行了改善,該方法在圖像中建立了利用注意力機(jī)制驅(qū)動(dòng)的動(dòng)態(tài)圖卷積網(wǎng)絡(luò)來表示標(biāo)簽的相關(guān)性,獲得了更好的效果。
近些年,Transformer開始應(yīng)用于計(jì)算機(jī)視覺的各個(gè)領(lǐng)域,并獲得了巨大的成功,如Vision Transformers(ViT)用于圖像分類[8];DETR用于目標(biāo)檢測(cè)[9]。受到DETR的啟發(fā),2021年,Liu S等[10]提出利用ResNet作為特征提取網(wǎng)絡(luò),Transformer作為分類器進(jìn)行多標(biāo)簽分類:通過多頭注意力機(jī)制,從對(duì)象的不同部分或不同視圖中提取特征,將每個(gè)標(biāo)簽類視為Transformer解碼器中的查詢,并對(duì)后續(xù)二進(jìn)制分類的相關(guān)特征進(jìn)行交叉關(guān)注,該方法在多個(gè)數(shù)據(jù)集上獲得了很好的結(jié)果。此后,Ridnik T等[11]提出基于Transformer的分類頭ML-decoder對(duì)圖像進(jìn)行分類,ML-decoder靈活高效,可以用于單標(biāo)簽、多標(biāo)簽和零樣本等多種場(chǎng)景中。
本文提出了一種基于ResNeSt 與雙分支Transformer的網(wǎng)絡(luò)結(jié)構(gòu)。首先,ResNeSt網(wǎng)絡(luò)在不同的網(wǎng)絡(luò)分支上應(yīng)用通道注意力,利用特征圖注意力和多路徑表示的互補(bǔ)優(yōu)勢(shì),能更好地提取細(xì)微的特征,提高特征提取性能;其次,在Transformer模塊基礎(chǔ)上,加入BatchFormerV2[12]模塊分支,通過密集表示學(xué)習(xí)提高小樣本的類別精度。與其他多標(biāo)簽圖像分類模型相比,本文所提多標(biāo)簽圖像分類算法在不同數(shù)據(jù)集上的精度都有一定的提升。
如圖1 所示,系統(tǒng)框架由兩部分構(gòu)成。第一部分進(jìn)行特征提取,其中特征提取模塊選用分裂注意力網(wǎng)絡(luò)(ResNeSt),它將圖像進(jìn)行分割,利用通道注意力提取特征,再將其整合到一個(gè)統(tǒng)一的注意力塊中,以提取到不同網(wǎng)絡(luò)分支的特征。
圖1 系統(tǒng)框圖Fig.1 Structure diagram of system
模型第二部分由Transformer Encoder、Decoder 模 塊、BatchFormerV2 Encoder 模 塊、分類器(Classifier)和損失函數(shù)(Loss Function)組成。將ResNeSt 提取到的底層特征加入位置編碼(Positional Embeddings)作為Transformer Encoder模塊的輸入;Transformer Encoder 模塊在訓(xùn)練階段可以通過共享其模塊得到BatchFormerV2 Encoder 模塊,形成雙分支結(jié)構(gòu),兩個(gè)分支進(jìn)行融合得到鍵值對(duì)傳入Transformer Decoder 模塊中;然后,通過分類器進(jìn)行類別預(yù)測(cè);最后,通過損失函數(shù)進(jìn)行反向傳播,更新參數(shù)以得到最佳結(jié)果。需要注意的是,BatchFormerV2 Encoder模塊只在訓(xùn)練階段出現(xiàn),在測(cè)試階段會(huì)被刪除,這樣可以避免額外的推理負(fù)擔(dān)。
ResNet 解決了網(wǎng)絡(luò)加深出現(xiàn)的退化問題,但是它缺乏通道間的信息融合,因此,本文采用了一種在ResNet基礎(chǔ)上進(jìn)行改進(jìn)的網(wǎng)絡(luò)——分裂注意力網(wǎng)絡(luò)(ResNeSt)。其在ResNet 的基礎(chǔ)上加入了各個(gè)通道間的信息融合,將通道級(jí)注意力應(yīng)用于不同的網(wǎng)絡(luò)分支,在捕獲跨特征交互和學(xué)習(xí)多樣化表現(xiàn)方面具有重要作用,通過分裂注意力機(jī)制獲取每個(gè)通道不同的重要性,可以將感興趣區(qū)域更加精確地提取出來,得到比ResNet 更好的效果。
ResNeSt 模塊如圖2 所示,輸入特征圖被分割為t個(gè)基礎(chǔ)特征圖,其中每個(gè)組進(jìn)行切片處理得到N個(gè)切片;經(jīng)過1×1 卷積和3×3 卷積處理之后送入分裂注意力(見圖3)中;然后,將每個(gè)通過分裂注意力得到的輸出進(jìn)行融合操作,通過1×1 卷積還原通道數(shù),這樣得到的特征融合了各個(gè)通道之間的信息,而且輸入和輸出的形狀相同,可以當(dāng)作一個(gè)模塊加入模型中。
圖2 ResNeSt模塊Fig.2 ResNeSt block
圖3 分裂注意力模塊Fig.3 Split attention module
分裂注意力模塊如圖3 所示,在圖2 中經(jīng)過3×3 卷積處理后的N個(gè)切片進(jìn)入分裂注意力模塊,首先,進(jìn)行累加求和得到總特征,然后,通過平均池化層收集全局上下文信息,將收集到的信息通過全連接層、歸一化層和ReLU 函數(shù)得到每個(gè)切片的注意力權(quán)重大小,其分別與每個(gè)切片相乘再進(jìn)行融合,這樣可以對(duì)各個(gè)通道進(jìn)行信息融合,而且可獲取到每個(gè)通道的重要程度。
本文引入了一種新的Transformer 結(jié)構(gòu):BatchFormerV2。該模塊提出了一種密集表示的樣本學(xué)習(xí)方法,不僅具有空間注意,而且加入了批處理注意,實(shí)現(xiàn)了從圖像級(jí)到像素級(jí)的表示。相比于Transformer 需要大量圖片進(jìn)行訓(xùn)練而言,引入的BatchFormerV2 模塊可以緩解樣本稀缺問題,這有利于多標(biāo)簽圖像分類精度的提升,Transformer中注意力模塊的輸出Z表示為
式中:Q,K,V∈RN×C分別為查詢矩陣、鍵矩陣和值矩陣,N為圖像特征塊的數(shù)量,C為嵌入維度;d為通道數(shù)。查詢矩陣Q與鍵矩陣K內(nèi)積,得到一個(gè)注意力矩陣,它表示了Q與K的相關(guān)程度,對(duì)該注意力矩陣進(jìn)行歸一化并通過softmax激活函數(shù),然后點(diǎn)乘值矩陣V得到Z。
BatchFormerV2的表達(dá)式為
式 中:Qi,Ki,Vi∈RB×C,Z∈RB×N×C,B為Batch Size,指一個(gè)批量的數(shù)據(jù)。可以看出Batch-FormerV2并沒有改變Transformer的形式,只是將N個(gè)長度為B的序列視為一個(gè)批量,送入共享的Transformer模塊中,其中N=H×W。
如圖4 所示,將分裂注意力網(wǎng)絡(luò)得到的底層特征輸入到Transformer Encoder 模塊中,在原始Transformer Encoder 分支保持不變的情況下,通過共享創(chuàng)建一個(gè)新的分支,在這個(gè)分支中加入了BatchFormerV2 模塊,即兩個(gè)分支共享Transformer Encoder 模塊。兩個(gè)分支得到Key 和Value后進(jìn)行融合,輸入到Transformer Decoder 部分。Transformer Decoder 部分的交叉注意力可以自適應(yīng)地提取局部特征,通過查詢矩陣Q進(jìn)行查詢得到最后的結(jié)果。同時(shí)為了避免額外的參數(shù)增加,在解碼階段刪除了BatchFormerV2分支。
圖4 雙分支Transformer模塊結(jié)構(gòu)圖Fig.4 Structure diagram of dual-branch Transformer module
實(shí)驗(yàn)配置為:intel i7-11700CPU,64 位Windows 10 操作系統(tǒng),Nvidia GeForce RTX 3060Ti?;赑ytorch 深度學(xué)習(xí)框架搭建網(wǎng)絡(luò)模型。使用AdamW 優(yōu)化器對(duì)網(wǎng)絡(luò)優(yōu)化,初始學(xué)習(xí)率調(diào)整為1×10-6,并使用cutmix 進(jìn)行數(shù)據(jù)增強(qiáng)。將圖像統(tǒng)一裁剪為448×448 大小,使用均值[0,0,0]和標(biāo)準(zhǔn)差[1,1,1]對(duì)輸入圖像進(jìn)行歸一化,并使用RandAugment[13]進(jìn)行增強(qiáng)。
為了評(píng)估提出的多標(biāo)簽圖像分類方法,在Microsoft Common Objects in Context(MS COCO14)數(shù)據(jù)集和The PASCAL Visual Object Classes(VOC2007)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。MS COCO14 包括82 783 張訓(xùn)練集圖像,40 504 張驗(yàn)證集圖像,涵蓋80個(gè)常見的類別,平均每張圖像上有2.9 個(gè)標(biāo)簽,可以用于對(duì)象檢測(cè)和分割,也廣泛用于多標(biāo)簽圖像分類。VOC2007數(shù)據(jù)集中包含訓(xùn)練集(5 011 幅)和測(cè)試集(4 952 幅),總共9 963幅圖,涵蓋了20個(gè)常見的類別。
本文主要使用平均精度均值(Mean Average Precision,mAP)作為模型的評(píng)估指標(biāo)。其中平均精度均值的計(jì)算方式為
式中:TP(True Positive)為被判定為正樣本,事實(shí)上也是正樣本;FP(False Positive)為被判定為正樣本,但事實(shí)上是負(fù)樣本;P為準(zhǔn)確率;k為數(shù)據(jù)集中含有該類別的圖片數(shù)量;N為總類別個(gè)數(shù);AP為單標(biāo)簽精度值;mAP為所有目標(biāo)類別精度的平均值。
本文所提出模型在MS COCO14 數(shù)據(jù)集上的訓(xùn)練損失如圖5 所示,橫坐標(biāo)為迭代訓(xùn)練次數(shù)epoch,訓(xùn)練了25 個(gè)epoch,在第20 個(gè)epoch 后網(wǎng)絡(luò)趨于收斂。在MS COCO14數(shù)據(jù)集上的mAP曲線圖如圖6 所示。本文數(shù)據(jù)都是在圖像分辨率為448×448 上得到的,但是為了比較的公平性,還對(duì)圖像分辨率為576×576進(jìn)行訓(xùn)練,方便與其他模型進(jìn)行對(duì)比。
圖5 訓(xùn)練損失曲線Fig.5 Loss curve of training
圖6 mAP曲線Fig.6 Curve of mAP
由表1 和表2 的數(shù)據(jù)對(duì)比可以發(fā)現(xiàn),本文提出的模型所得到的mAP值最高,在圖像分辨率為448×448 的情況下,相比最高的ASL 模型[14],其mAP值高出2.0%;在圖像分辨率為576×576的情況下,相比最高的Q2L-R101 模型,其mAP值高出1.9%。說明該多標(biāo)簽分類算法的分類精度更高,效果更好。
表1 各算法結(jié)果比較(448×448)Tab.1 Comparison of the results of each algorithm(448×448)
表2 各算法結(jié)果比較(576×576)Tab.2 Comparison of the results of each algorithm(576×576)
另外,在VOC2007數(shù)據(jù)集上進(jìn)行了補(bǔ)充實(shí)驗(yàn),結(jié)果為表3 所示??梢钥闯?,本文所提模型平均類別精度mAP達(dá)到了96.0%,在20個(gè)類別中有13個(gè)類別都有不同的提升,相比于ResNet-101,MLGCN,SSGRL和ASL分別提高了5.2%,2.0%,1.0%和0.2%。對(duì)于ASL只有小幅度增加是因?yàn)閂OC2007的mAP值已經(jīng)趨近于飽和,但是對(duì)于以前的工作仍然有很大的提升。比如,與ASL相比,在bike,chair,tv類別上分別提高了0.7%,1.4%和0.8%,這說明所提方法是有效的。但是在某些類別上,所提模型的mAP也出現(xiàn)了下降,比如在plant類別上,比最高的ASL低1.3%,故還需要進(jìn)一步去研究,減少在個(gè)別類別上的差距。
表3 各算法在VOC2007數(shù)據(jù)集上mAP對(duì)比Tab.3 Comparison of the mAP of each algorithm on VOC2007 data set
在消融實(shí)驗(yàn)中,進(jìn)行了以下兩組對(duì)比實(shí)驗(yàn):1)使用ResNet 網(wǎng)絡(luò)和ResNeSt 網(wǎng)絡(luò)比較,2)使用Transformer 模塊和雙分支Transformer 模塊比較。在MS COCO14 數(shù)據(jù)集中進(jìn)行測(cè)試,使用mAP精度值進(jìn)行評(píng)價(jià)。
從表4 中對(duì)比可以發(fā)現(xiàn),減少本文算法中的任何一個(gè)模塊都會(huì)導(dǎo)致平均精度均值mAP下降。當(dāng)算法中都使用Transformer時(shí),在mAP指標(biāo)上ResNeSt網(wǎng)絡(luò)可以比ResNet網(wǎng)絡(luò)提升1.05%左右;當(dāng)算法中都使用ResNet網(wǎng)絡(luò)時(shí),雙分支Transformer模塊會(huì)比Transformer模塊提升0.51%左右;當(dāng)算法中使用ResNeSt和雙分支Transformer模塊時(shí),會(huì)比只使用ResNet和Transformer模塊提升1.59%左右。證明本文算法結(jié)合這兩個(gè)模塊可以得到更高的多標(biāo)簽圖像分類精度。
本文提出了一種簡(jiǎn)單高效的多標(biāo)簽圖像分類模型,該模型基于ResNeSt 分裂注意力網(wǎng)絡(luò)提取底層特征,在改進(jìn)后的雙分支Transformer網(wǎng)絡(luò)上進(jìn)行多標(biāo)簽圖像分類。介紹了模型的整體框架,并說明選用ResNeSt 分裂注意力網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò)可以得到更加豐富的特征信息,使用改進(jìn)后的雙分支Transformer 網(wǎng)絡(luò)模型可以提高Transformer 的分類效果。通過實(shí)驗(yàn)表明,本文所提出的多標(biāo)簽分類模型在mAP指標(biāo)上優(yōu)于其他算法。