李昊霖 俞成海 盧智龍 陳涵穎
摘? 要: 特征金字塔(FPN)因能將低尺度的特征與更高尺度的特征融合、呈現(xiàn)每個(gè)層次豐富的語義信息,而被廣泛應(yīng)用于小尺度目標(biāo)定位識(shí)別中,但其目前無法連接跨尺度特征信息,且分類準(zhǔn)確率不高。本文提出特征融合金字塔模塊(FFPN),通過在ResNet50主干網(wǎng)絡(luò)中引入FFPN模塊,有效地提高了細(xì)粒度鳥類圖像分類的性能。模型在CUB-200-2011數(shù)據(jù)集上達(dá)到了83.379%的分類準(zhǔn)確度,在Bird-400數(shù)據(jù)集中達(dá)到了91.201%的準(zhǔn)確度,實(shí)現(xiàn)了較好的分類效果。
關(guān)鍵詞: 特征融合; 多尺度特征; 細(xì)粒度圖像分類; 鳥類圖像識(shí)別
中圖分類號(hào):TP391.41? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2023)12-130-05
Research on fine-grained bird image classification based on feature fusion
Li Haolin1, Yu Chenghai1, Lu Zhilong1, Chen HanYing2
(1. School of Computer Science and Technology, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China;
2. North China Electric Power University)
Abstract: Feature pyramid network (FPN) is widely used for small object detection and localization, owing to its ability to fuse features from different scales to provide rich semantic information for each feature level. However, the current FPN still cannot build connections between features across scales, and has suboptimal classification accuracy. To address this, the feature fusion pyramid network (FFPN) is proposed, which effectively improves the performance of fine-grained bird image classification by incorporating FFPN modules into the ResNet50 backbone. The model achieves 83.379% classification accuracy on CUB-200-2011 dataset and 91.201% on Bird-400 dataset, realizing good classification results.
Key words: feature fusion; multi-scale features; fine-grained image classification; bird image recognition
0 引言
近年來,許多圖像分類場(chǎng)景都面臨著類內(nèi)圖像存在細(xì)粒度差異難以區(qū)分的問題,因此細(xì)粒度圖像分類引起廣泛學(xué)者的關(guān)注。細(xì)粒度圖像分類中的分類算法可以大致分為基于局部檢測(cè)的分類方法、基于端到端的分類方法和基于注意力機(jī)制的分類方法三個(gè)階段[1]。其中基于端到端的分類方法簡(jiǎn)單有效,在細(xì)粒度圖像分類任務(wù)中取得了較好的性能。細(xì)粒度圖像分類實(shí)際上是對(duì)特定區(qū)域進(jìn)行特征提取和處理,在圖1中展示了從CUB-200-2011數(shù)據(jù)集[2]截取的五張不同種類的鳥類。不同種類的鳥之間存在著微小的差異,如顏色、形狀、紋理等。這些特征難以捕捉,提取細(xì)粒度的特征并準(zhǔn)確分類是算法的重要研究方向。
通過應(yīng)用特征融合機(jī)制,網(wǎng)絡(luò)能夠檢測(cè)到圖像中多個(gè)尺度的特征信息,其對(duì)應(yīng)的特征可用于不同細(xì)粒度特征的提取。Laurent等人首次提出了一種視覺注意力模型,該模型能夠?qū)⒍喑叨鹊膱D像特征整合成一個(gè)單一的顯著性圖,并利用動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)DNN(Dynamical Neural Network)按順序選擇關(guān)鍵的注意區(qū)域[3]。這一視覺注意力模型的創(chuàng)新之處在于它能夠自動(dòng)建模圖像中的顯著性,并根據(jù)具體任務(wù)有選擇地處理最相關(guān)和重要的區(qū)域。通過將多尺度的圖像特征進(jìn)行融合,該模型生成一個(gè)顯著性圖,通過DNN按照順序選擇出關(guān)注度高的區(qū)域進(jìn)行進(jìn)一步處理。
Fu等人提出了循環(huán)注意力卷積神經(jīng)網(wǎng)絡(luò)RA-CNN(Recurrent Attention Convolutional Neural Network)[4]。該網(wǎng)絡(luò)在多個(gè)尺度上學(xué)習(xí)可判別區(qū)域注意力。RA-CNN通過引入循環(huán)注意力機(jī)制,在不同的尺度上對(duì)圖像進(jìn)行逐步的細(xì)粒度分析。該網(wǎng)絡(luò)通過學(xué)習(xí)可判別區(qū)域注意力,能夠自動(dòng)地聚焦于關(guān)鍵區(qū)域,從而提高目標(biāo)檢測(cè)和分類的精度。
Chou等提出了一種全新的特征融合模塊,該模型中引入了特征金字塔網(wǎng)絡(luò)(FPN),用于有效融合不同尺度的特征[5]。FPN能夠在不同層次上融合多尺度的特征圖,以增強(qiáng)對(duì)不同大小目標(biāo)的識(shí)別能力。通過將FPN與特征融合模塊相結(jié)合,模型能夠更好地適應(yīng)各種尺度的視覺特征,從而提高分類的準(zhǔn)確性和魯棒性。
基于以上研究,本文提出在ResNet50主干網(wǎng)絡(luò)中引入FFPN模塊來提升分類精度,利用FFPN模塊,通過在多個(gè)層級(jí)上提取特征并融合,實(shí)現(xiàn)更全面和豐富的特征表達(dá),實(shí)現(xiàn)對(duì)鳥類圖像的有效分類。
1 總體網(wǎng)絡(luò)設(shè)計(jì)
總體網(wǎng)絡(luò)結(jié)構(gòu)(如圖2)中的主干網(wǎng)絡(luò)ResNet可以被拆分成多個(gè)Block,每個(gè)Block之間相對(duì)獨(dú)立。這樣的設(shè)計(jì)使得網(wǎng)絡(luò)能夠有效地提取每個(gè)Block的輸出層(圖2中Layer1-Layer4),從而獲取該網(wǎng)絡(luò)的多尺度特征,并將這些特征用于后續(xù)的特征融合處理。高層Block通常對(duì)圖像具有更高級(jí)的語義信息,而低層Block則保留了更多的細(xì)節(jié)和邊緣信息。通過提取每個(gè)Block的輸出層,網(wǎng)絡(luò)能夠獲得多個(gè)不同尺度的特征圖。這些多尺度特征圖在后續(xù)的特征融合處理中發(fā)揮著關(guān)鍵作用。特征融合是將不同尺度的特征進(jìn)行融合和整合,從而得到更具有豐富語義信息和高分辨率的特征表達(dá)。通過將不同Block的輸出層進(jìn)行融合,網(wǎng)絡(luò)能夠在多個(gè)層級(jí)上捕捉目標(biāo)的細(xì)粒度特征并提高性能。
ResNet50是一種經(jīng)典的深度殘差網(wǎng)絡(luò),作為主干網(wǎng)絡(luò)廣泛應(yīng)用于各種深度學(xué)習(xí)任務(wù)中[6]。當(dāng)深度學(xué)習(xí)網(wǎng)絡(luò)的層數(shù)增加時(shí),理論上模型的表達(dá)能力應(yīng)該增強(qiáng)。然而,在卷積神經(jīng)網(wǎng)絡(luò)(CNN)達(dá)到一定深度后,繼續(xù)加深網(wǎng)絡(luò)并不能帶來性能的提升,反而會(huì)導(dǎo)致網(wǎng)絡(luò)收斂變得更慢,并且分類準(zhǔn)確率會(huì)下降。即使通過增大數(shù)據(jù)集和解決過擬合問題,分類性能和準(zhǔn)確度也不會(huì)顯著提高。
ResNet50(如圖3)的核心組成部分是四個(gè)Block,每個(gè)Block包含了多個(gè)BottleNeck單元。在ResNet50架構(gòu)中,每個(gè)Block分別包含3、4、6和三個(gè)BottleNeck單元。每個(gè)BottleNeck單元由多個(gè)卷積層和殘差連接組成,它能夠?qū)⒊跏继卣骱徒?jīng)過卷積處理后的特征疊加在一起,有效地緩解了當(dāng)網(wǎng)絡(luò)層數(shù)過深時(shí)無法訓(xùn)練的問題。
BottleNeck單元結(jié)構(gòu)見圖4,該單元首先通過一個(gè)1×1的卷積操作將輸入特征圖的通道數(shù)降低,然后經(jīng)過一個(gè)3×3的卷積操作進(jìn)行特征提取,最后再通過一個(gè)1×1的卷積操作將通道數(shù)恢復(fù)到原始維度。在這個(gè)過程中,殘差連接將初始的輸入特征直接與經(jīng)過卷積處理后的特征相加,形成殘差塊。這樣的設(shè)計(jì)使得網(wǎng)絡(luò)可以更容易地學(xué)習(xí)到殘差部分,進(jìn)而加強(qiáng)了特征的傳遞和梯度流動(dòng),有助于避免梯度消失和梯度爆炸問題。
通過使用BottleNeck單元和殘差連接,ResNet50網(wǎng)絡(luò)有效地緩解了深度網(wǎng)絡(luò)難以訓(xùn)練的問題。殘差塊的引入不僅提高了梯度的傳播效率,還使得網(wǎng)絡(luò)能夠更好地適應(yīng)不同深度任務(wù)的需求。此外,BottleNeck單元中的1×1卷積操作可以降低參數(shù)數(shù)量和計(jì)算復(fù)雜度,進(jìn)一步優(yōu)化了網(wǎng)絡(luò)的性能和效率。
2 基于特征融合的圖像分類模型
2.1 特征提取模塊FEM
ResNet50網(wǎng)絡(luò)在圖像特征提取方面表現(xiàn)較好,這是因?yàn)槠洳捎脷埐罱Y(jié)構(gòu)有效地緩解了網(wǎng)絡(luò)層數(shù)加深時(shí)的梯度消失問題,從而能夠構(gòu)建出較深的模型,同時(shí)殘差模塊也增強(qiáng)了特征的表達(dá)能力。但是,ResNet50對(duì)細(xì)粒度圖像特征的學(xué)習(xí)表達(dá)能力較為欠缺,這主要是因?yàn)樵诰W(wǎng)絡(luò)的深層處理中,來自底層的低尺度特征被逐步丟棄,無法為高層提供足夠的細(xì)節(jié)信息。尤其是在圖像中存在較多細(xì)節(jié)紋理或較小目標(biāo)的情況下,ResNet50的特征表示會(huì)丟失這些關(guān)鍵細(xì)節(jié),導(dǎo)致對(duì)細(xì)粒度特征表達(dá)不足。為了進(jìn)一步提升特征表達(dá)能力,本文提出了一個(gè)特征提取模塊。
本文將ResNet50網(wǎng)絡(luò)中每個(gè)殘差模塊(ResNet Block)的最后一個(gè)輸出特征圖定義為一個(gè)層,依次命名為L(zhǎng)ayer1至Layer4,如圖5所示。這些層的特征圖將作為后續(xù)提出的多尺度特征融合模塊的輸入。該模塊通過融合ResNet50不同Block輸出的多尺度特征,形成一個(gè)信息更加豐富完整的特征表達(dá)。Layer1輸出保留了原始圖像空間中的高分辨率細(xì)節(jié)信息,Layer2至Layer4逐步獲得了更高級(jí)的語義特征。將這些互補(bǔ)的多尺度特征有效融合,可以增強(qiáng)網(wǎng)絡(luò)對(duì)細(xì)致圖像細(xì)節(jié)的理解,提高其對(duì)細(xì)粒度特征的表示能力。
2.2 特征融合模塊FFPN
特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)是一種用于處理多尺度特征的計(jì)算機(jī)視覺網(wǎng)絡(luò)[7]。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中,高層特征具有更豐富的語義信息,但其分辨率較低,難以精確定位小尺度的目標(biāo)。而低層特征具有更高的分辨率,但語義信息較少,難以識(shí)別復(fù)雜的目標(biāo)。為了克服這一問題,F(xiàn)PN構(gòu)建了一個(gè)特征金字塔,通過在不同尺度上提取豐富的語義信息并保持高分辨率。如圖6所示,特征金字塔網(wǎng)絡(luò)由自底向上和自頂向下兩個(gè)階段組成。
自底向上階段利用標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)從輸入圖像中提取特征,并生成多個(gè)尺度的特征圖。然后,在自頂向下階段,網(wǎng)絡(luò)通過上采樣操作逐層向上傳遞特征,并與來自更高層的特征進(jìn)行融合。這樣,較低層的高分辨率特征可以與較高層的高語義特征融合,形成一個(gè)特征金字塔,其中每個(gè)層級(jí)都具有豐富的語義信息和較高的分辨率。
本文提出了一種名為特征融合金字塔模塊(Feature Fusion Pyramid Network,F(xiàn)FPN)的方法,旨在通過修改上采樣過程中的特征融合操作,以提高對(duì)細(xì)粒度特征的提取能力。
具體操作如圖7所示:首先,從ResNet網(wǎng)絡(luò)中提取每個(gè)階段(Stage)的輸出層,分別命名為L(zhǎng)ayer1至Layer4,并將它們組裝為一個(gè)名為return_nodes的對(duì)象。隨后,將每個(gè)Layer的輸出輸入到一個(gè)較小的卷積網(wǎng)絡(luò)中,該網(wǎng)絡(luò)的主要目的是對(duì)齊輸出層的第二個(gè)維度。最后,通過逐層上采樣將較小的輸出層與較大的輸出層逐步融合,從而得到Layer1至Layer4的輸出結(jié)果。最后,將每個(gè)Layer的輸出層連接到相應(yīng)的分類頭部,以獲得該層的分類結(jié)果,然后從四個(gè)層中選擇具有最大值的結(jié)果。
FFPN方法的關(guān)鍵在于其特征融合金字塔模塊,通過逐層上采樣和融合,能夠有效地提取和利用細(xì)粒度特征信息。與FPN中的上采樣相比,F(xiàn)FPN通過修改特征融合操作,使得較小的特征圖能夠逐級(jí)的融合到較大的特征圖中,從而提升了網(wǎng)絡(luò)提取細(xì)粒度特征的能力。通過這種方式,F(xiàn)FPN可以在不同層級(jí)上獲取豐富的特征信息,并將其應(yīng)用于細(xì)粒度圖像分類任務(wù)中。本文提出的FFPN方法通過修改上采樣過程中的特征融合操作,能夠有效地提取和利用細(xì)粒度特征信息,從而提高細(xì)粒度圖像分類任務(wù)的性能。
3 實(shí)驗(yàn)分析
3.1 實(shí)驗(yàn)環(huán)境
本次實(shí)驗(yàn)使用Ubuntu操作系統(tǒng),使用的GPU為RTX 3090 24GB,CPU為AMD EPYC 7601,內(nèi)存64GB。運(yùn)行環(huán)境使用Python3.8,Pytorch2.0.1,Cuda12.1,使用改進(jìn)的Timm框架進(jìn)行主干網(wǎng)絡(luò)編寫。所用的第一項(xiàng)數(shù)據(jù)集為CUB-200-2011公開鳥類細(xì)粒度圖像分類數(shù)據(jù)集,該數(shù)據(jù)集包含了200種不同鳥類的共計(jì)11788張圖像,其中訓(xùn)練集有5994張圖像,測(cè)試集有5794張圖像。第二項(xiàng)數(shù)據(jù)集為Kaggle上的公開數(shù)據(jù)集Birds-400,該數(shù)據(jù)集包含400種鳥類,其中訓(xùn)練數(shù)據(jù)有58388張圖像,測(cè)試集和驗(yàn)證集均為2000張。為了均衡驗(yàn)證效果,本文采用隨機(jī)分割的方式將訓(xùn)練集切分為50781張訓(xùn)練樣本以及33854張驗(yàn)證樣本。
3.2 實(shí)驗(yàn)細(xì)節(jié)
實(shí)驗(yàn)中的主干網(wǎng)絡(luò)采用在ImageNet-1K數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練的ResNet50網(wǎng)絡(luò)。原始圖像的尺寸設(shè)置為384×384,并將其作為網(wǎng)絡(luò)的輸入尺寸,訓(xùn)練輪數(shù)統(tǒng)一設(shè)置為50輪,Batch_Size設(shè)置為16。
在訓(xùn)練過程中,網(wǎng)絡(luò)采用了隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)算法[8],并設(shè)置動(dòng)量值為0.9,這可以加速收斂。初始學(xué)習(xí)率設(shè)置為0.0005,這是為了在訓(xùn)練的初期階段使網(wǎng)絡(luò)快速收斂。本文采用了余弦退火算法(Cosine Annealing)來有序地調(diào)整學(xué)習(xí)率,以在訓(xùn)練的后期階段更細(xì)致地優(yōu)化網(wǎng)絡(luò)參數(shù)。
網(wǎng)絡(luò)中使用了一項(xiàng)超參數(shù)FPN_SIZE,每個(gè)Stage輸出結(jié)果的第二個(gè)維度即通道數(shù)都會(huì)通過一個(gè)一維卷積升維到FPN_SIZE個(gè)通道。本文在CUB-200-2011數(shù)據(jù)集中使用了1000至6000的FPN_SIZE作為超參數(shù),對(duì)輸出層進(jìn)行上采樣。由實(shí)驗(yàn)得FPN_SIZE在網(wǎng)絡(luò)未達(dá)到過擬合的情況下逐漸增大時(shí),網(wǎng)絡(luò)訓(xùn)練效果成正比提升。在FPN_SIZE增大至5000時(shí)出現(xiàn)了分類精度降低的情況。據(jù)此本文采用了FPN_SIZE 4000作為驗(yàn)證網(wǎng)絡(luò)有效性的參數(shù)。
在網(wǎng)絡(luò)中,模型采用了交叉熵?fù)p失函數(shù)(CrossEntropyLoss)作為目標(biāo)函數(shù),用于度量模型預(yù)測(cè)結(jié)果與真實(shí)結(jié)果之間的差異。網(wǎng)絡(luò)對(duì)第二個(gè)維度的向量進(jìn)行平均操作,然后將平均結(jié)果與真實(shí)結(jié)果計(jì)算交叉熵?fù)p失。這樣可以使網(wǎng)絡(luò)學(xué)習(xí)到更準(zhǔn)確的分類結(jié)果,并不斷優(yōu)化模型的性能。
3.3 實(shí)驗(yàn)結(jié)果
本文針對(duì)該模型進(jìn)行了消融對(duì)比實(shí)驗(yàn),以評(píng)估所提出的特征融合金字塔模塊(FFPN)對(duì)分類精度的影響。首先,本文在CUB-200-2011數(shù)據(jù)集上進(jìn)行了訓(xùn)練,相關(guān)結(jié)果如表1所示。在使用相同的超參數(shù)FPN_SIZE 1600進(jìn)行訓(xùn)練時(shí),常規(guī)FPN模塊得到的Top-1準(zhǔn)確率為70.262%,而本文的FFPN模塊則達(dá)到76.200%。當(dāng)將FPN_SIZE擴(kuò)大到4000后,F(xiàn)FPN的優(yōu)勢(shì)更加明顯,準(zhǔn)確率提升至83.379%。這充分驗(yàn)證了FFPN模塊在提取細(xì)粒度特征上的效果。
此外,本文還在Kaggle公開的Birds-400數(shù)據(jù)集上進(jìn)行了驗(yàn)證,相關(guān)結(jié)果如表2所示。結(jié)果表明,本文方法相較于使用常規(guī)FPN準(zhǔn)確率提升了1.467%。這進(jìn)一步證明了本文模型具有較強(qiáng)的泛化能力,可以很好地遷移到其他鳥類圖像數(shù)據(jù)集。
4 總結(jié)
本文提出了一種新的特征融合金字塔模塊(FFPN),該模塊通過提取不同層的輸出并進(jìn)行特征對(duì)齊和融合,可以有效利用多尺度特征。相比原始的FPN模塊,F(xiàn)FPN修改了上采樣過程的融合方式,可以更好地突出細(xì)粒度信息。
在CUB-200-2011和Bird-400兩個(gè)數(shù)據(jù)集上,本文進(jìn)行了消融對(duì)比試驗(yàn),結(jié)果表明,F(xiàn)FPN 模塊可以有效提升分類準(zhǔn)確率。與僅使用ResNet50或結(jié)合常規(guī)FPN的ResNet50相比,采用ResNet50+FFPN能夠取得更高的分類準(zhǔn)確率,這證實(shí)了所提出的FFPN模塊在捕捉多尺度細(xì)粒度特征方面的優(yōu)勢(shì)。
參考文獻(xiàn)(References):
[1] 申志軍,穆麗娜,高靜,等.細(xì)粒度圖像分類綜述[J].計(jì)算機(jī)
應(yīng)用,2023,43(1):51-60.
[2] WAH C, BRANSON S, WELINDER P, et al. The Caltech-
UCSD Birds-200-2011 Dataset[J].2011.
[3] ITTI L, KOCH C, NIEBUR E. A Model of Saliency-Based
Visual Attention for Rapid Scene Analysis[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,1998.
[4] FU J, ZHENG H, MEI T. Look Closer to See Better:
Recurrent Attention Convolutional Neural Network for Fine-Grained Image Recognition[C]. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI,2017.
[5] CHOU P Y, LIN C H, KAO W C. A Novel Plug-in Module
for Fine-Grained Visual Classification[J].2023.
[6] HE K, ZHANG X, REN S, et al. Deep Residual Learning
for Image Recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA,2016.
[7] LIN T Y, DOLLAR P, GIRSHICK R, et al. Feature Pyramid
Networks for Object Detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI,2017.
[8] RUDER S. An overview of gradient descent optimization
algorithms[J]. arXiv: Learning,arXiv: Learning,2016.