摘" 要: 特征金字塔(FPN)因能將低尺度的特征與更高尺度的特征融合、呈現每個層次豐富的語義信息,而被廣泛應用于小尺度目標定位識別中,但其目前無法連接跨尺度特征信息,且分類準確率不高。本文提出特征融合金字塔模塊(FFPN),通過在ResNet50主干網絡中引入FFPN模塊,有效地提高了細粒度鳥類圖像分類的性能。模型在CUB-200-2011數據集上達到了83.379%的分類準確度,在Bird-400數據集中達到了91.201%的準確度,實現了較好的分類效果。
關鍵詞: 特征融合; 多尺度特征; 細粒度圖像分類; 鳥類圖像識別
中圖分類號:TP391.41" " " " " 文獻標識碼:A" " "文章編號: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 引言
近年來,許多圖像分類場景都面臨著類內圖像存在細粒度差異難以區分的問題,因此細粒度圖像分類引起廣泛學者的關注。細粒度圖像分類中的分類算法可以大致分為基于局部檢測的分類方法、基于端到端的分類方法和基于注意力機制的分類方法三個階段[1]。其中基于端到端的分類方法簡單有效,在細粒度圖像分類任務中取得了較好的性能。細粒度圖像分類實際上是對特定區域進行特征提取和處理,在圖1中展示了從CUB-200-2011數據集[2]截取的五張不同種類的鳥類。不同種類的鳥之間存在著微小的差異,如顏色、形狀、紋理等。這些特征難以捕捉,提取細粒度的特征并準確分類是算法的重要研究方向。
通過應用特征融合機制,網絡能夠檢測到圖像中多個尺度的特征信息,其對應的特征可用于不同細粒度特征的提取。Laurent等人首次提出了一種視覺注意力模型,該模型能夠將多尺度的圖像特征整合成一個單一的顯著性圖,并利用動態神經網絡DNN(Dynamical Neural Network)按順序選擇關鍵的注意區域[3]。這一視覺注意力模型的創新之處在于它能夠自動建模圖像中的顯著性,并根據具體任務有選擇地處理最相關和重要的區域。通過將多尺度的圖像特征進行融合,該模型生成一個顯著性圖,通過DNN按照順序選擇出關注度高的區域進行進一步處理。
Fu等人提出了循環注意力卷積神經網絡RA-CNN(Recurrent Attention Convolutional Neural Network)[4]。該網絡在多個尺度上學習可判別區域注意力。RA-CNN通過引入循環注意力機制,在不同的尺度上對圖像進行逐步的細粒度分析。該網絡通過學習可判別區域注意力,能夠自動地聚焦于關鍵區域,從而提高目標檢測和分類的精度。
Chou等提出了一種全新的特征融合模塊,該模型中引入了特征金字塔網絡(FPN),用于有效融合不同尺度的特征[5]。FPN能夠在不同層次上融合多尺度的特征圖,以增強對不同大小目標的識別能力。通過將FPN與特征融合模塊相結合,模型能夠更好地適應各種尺度的視覺特征,從而提高分類的準確性和魯棒性。
基于以上研究,本文提出在ResNet50主干網絡中引入FFPN模塊來提升分類精度,利用FFPN模塊,通過在多個層級上提取特征并融合,實現更全面和豐富的特征表達,實現對鳥類圖像的有效分類。
1 總體網絡設計
總體網絡結構(如圖2)中的主干網絡ResNet可以被拆分成多個Block,每個Block之間相對獨立。這樣的設計使得網絡能夠有效地提取每個Block的輸出層(圖2中Layer1-Layer4),從而獲取該網絡的多尺度特征,并將這些特征用于后續的特征融合處理。高層Block通常對圖像具有更高級的語義信息,而低層Block則保留了更多的細節和邊緣信息。通過提取每個Block的輸出層,網絡能夠獲得多個不同尺度的特征圖。這些多尺度特征圖在后續的特征融合處理中發揮著關鍵作用。特征融合是將不同尺度的特征進行融合和整合,從而得到更具有豐富語義信息和高分辨率的特征表達。通過將不同Block的輸出層進行融合,網絡能夠在多個層級上捕捉目標的細粒度特征并提高性能。
ResNet50是一種經典的深度殘差網絡,作為主干網絡廣泛應用于各種深度學習任務中[6]。當深度學習網絡的層數增加時,理論上模型的表達能力應該增強。然而,在卷積神經網絡(CNN)達到一定深度后,繼續加深網絡并不能帶來性能的提升,反而會導致網絡收斂變得更慢,并且分類準確率會下降。即使通過增大數據集和解決過擬合問題,分類性能和準確度也不會顯著提高。
ResNet50(如圖3)的核心組成部分是四個Block,每個Block包含了多個BottleNeck單元。在ResNet50架構中,每個Block分別包含3、4、6和三個BottleNeck單元。每個BottleNeck單元由多個卷積層和殘差連接組成,它能夠將初始特征和經過卷積處理后的特征疊加在一起,有效地緩解了當網絡層數過深時無法訓練的問題。
BottleNeck單元結構見圖4,該單元首先通過一個1×1的卷積操作將輸入特征圖的通道數降低,然后經過一個3×3的卷積操作進行特征提取,最后再通過一個1×1的卷積操作將通道數恢復到原始維度。在這個過程中,殘差連接將初始的輸入特征直接與經過卷積處理后的特征相加,形成殘差塊。這樣的設計使得網絡可以更容易地學習到殘差部分,進而加強了特征的傳遞和梯度流動,有助于避免梯度消失和梯度爆炸問題。
通過使用BottleNeck單元和殘差連接,ResNet50網絡有效地緩解了深度網絡難以訓練的問題。殘差塊的引入不僅提高了梯度的傳播效率,還使得網絡能夠更好地適應不同深度任務的需求。此外,BottleNeck單元中的1×1卷積操作可以降低參數數量和計算復雜度,進一步優化了網絡的性能和效率。
2 基于特征融合的圖像分類模型
2.1 特征提取模塊FEM
ResNet50網絡在圖像特征提取方面表現較好,這是因為其采用殘差結構有效地緩解了網絡層數加深時的梯度消失問題,從而能夠構建出較深的模型,同時殘差模塊也增強了特征的表達能力。但是,ResNet50對細粒度圖像特征的學習表達能力較為欠缺,這主要是因為在網絡的深層處理中,來自底層的低尺度特征被逐步丟棄,無法為高層提供足夠的細節信息。尤其是在圖像中存在較多細節紋理或較小目標的情況下,ResNet50的特征表示會丟失這些關鍵細節,導致對細粒度特征表達不足。為了進一步提升特征表達能力,本文提出了一個特征提取模塊。
本文將ResNet50網絡中每個殘差模塊(ResNet Block)的最后一個輸出特征圖定義為一個層,依次命名為Layer1至Layer4,如圖5所示。這些層的特征圖將作為后續提出的多尺度特征融合模塊的輸入。該模塊通過融合ResNet50不同Block輸出的多尺度特征,形成一個信息更加豐富完整的特征表達。Layer1輸出保留了原始圖像空間中的高分辨率細節信息,Layer2至Layer4逐步獲得了更高級的語義特征。將這些互補的多尺度特征有效融合,可以增強網絡對細致圖像細節的理解,提高其對細粒度特征的表示能力。
2.2 特征融合模塊FFPN
特征金字塔網絡(Feature Pyramid Network,FPN)是一種用于處理多尺度特征的計算機視覺網絡[7]。傳統的卷積神經網絡中,高層特征具有更豐富的語義信息,但其分辨率較低,難以精確定位小尺度的目標。而低層特征具有更高的分辨率,但語義信息較少,難以識別復雜的目標。為了克服這一問題,FPN構建了一個特征金字塔,通過在不同尺度上提取豐富的語義信息并保持高分辨率。如圖6所示,特征金字塔網絡由自底向上和自頂向下兩個階段組成。
自底向上階段利用標準的神經網絡從輸入圖像中提取特征,并生成多個尺度的特征圖。然后,在自頂向下階段,網絡通過上采樣操作逐層向上傳遞特征,并與來自更高層的特征進行融合。這樣,較低層的高分辨率特征可以與較高層的高語義特征融合,形成一個特征金字塔,其中每個層級都具有豐富的語義信息和較高的分辨率。
本文提出了一種名為特征融合金字塔模塊(Feature Fusion Pyramid Network,FFPN)的方法,旨在通過修改上采樣過程中的特征融合操作,以提高對細粒度特征的提取能力。
具體操作如圖7所示:首先,從ResNet網絡中提取每個階段(Stage)的輸出層,分別命名為Layer1至Layer4,并將它們組裝為一個名為return_nodes的對象。隨后,將每個Layer的輸出輸入到一個較小的卷積網絡中,該網絡的主要目的是對齊輸出層的第二個維度。最后,通過逐層上采樣將較小的輸出層與較大的輸出層逐步融合,從而得到Layer1至Layer4的輸出結果。最后,將每個Layer的輸出層連接到相應的分類頭部,以獲得該層的分類結果,然后從四個層中選擇具有最大值的結果。
FFPN方法的關鍵在于其特征融合金字塔模塊,通過逐層上采樣和融合,能夠有效地提取和利用細粒度特征信息。與FPN中的上采樣相比,FFPN通過修改特征融合操作,使得較小的特征圖能夠逐級的融合到較大的特征圖中,從而提升了網絡提取細粒度特征的能力。通過這種方式,FFPN可以在不同層級上獲取豐富的特征信息,并將其應用于細粒度圖像分類任務中。本文提出的FFPN方法通過修改上采樣過程中的特征融合操作,能夠有效地提取和利用細粒度特征信息,從而提高細粒度圖像分類任務的性能。
3 實驗分析
3.1 實驗環境
本次實驗使用Ubuntu操作系統,使用的GPU為RTX 3090 24GB,CPU為AMD EPYC 7601,內存64GB。運行環境使用Python3.8,Pytorch2.0.1,Cuda12.1,使用改進的Timm框架進行主干網絡編寫。所用的第一項數據集為CUB-200-2011公開鳥類細粒度圖像分類數據集,該數據集包含了200種不同鳥類的共計11788張圖像,其中訓練集有5994張圖像,測試集有5794張圖像。第二項數據集為Kaggle上的公開數據集Birds-400,該數據集包含400種鳥類,其中訓練數據有58388張圖像,測試集和驗證集均為2000張。為了均衡驗證效果,本文采用隨機分割的方式將訓練集切分為50781張訓練樣本以及33854張驗證樣本。
3.2 實驗細節
實驗中的主干網絡采用在ImageNet-1K數據集上進行預訓練的ResNet50網絡。原始圖像的尺寸設置為384×384,并將其作為網絡的輸入尺寸,訓練輪數統一設置為50輪,Batch_Size設置為16。
在訓練過程中,網絡采用了隨機梯度下降(Stochastic Gradient Descent,SGD)算法[8],并設置動量值為0.9,這可以加速收斂。初始學習率設置為0.0005,這是為了在訓練的初期階段使網絡快速收斂。本文采用了余弦退火算法(Cosine Annealing)來有序地調整學習率,以在訓練的后期階段更細致地優化網絡參數。
網絡中使用了一項超參數FPN_SIZE,每個Stage輸出結果的第二個維度即通道數都會通過一個一維卷積升維到FPN_SIZE個通道。本文在CUB-200-2011數據集中使用了1000至6000的FPN_SIZE作為超參數,對輸出層進行上采樣。由實驗得FPN_SIZE在網絡未達到過擬合的情況下逐漸增大時,網絡訓練效果成正比提升。在FPN_SIZE增大至5000時出現了分類精度降低的情況。據此本文采用了FPN_SIZE 4000作為驗證網絡有效性的參數。
在網絡中,模型采用了交叉熵損失函數(CrossEntropyLoss)作為目標函數,用于度量模型預測結果與真實結果之間的差異。網絡對第二個維度的向量進行平均操作,然后將平均結果與真實結果計算交叉熵損失。這樣可以使網絡學習到更準確的分類結果,并不斷優化模型的性能。
3.3 實驗結果
本文針對該模型進行了消融對比實驗,以評估所提出的特征融合金字塔模塊(FFPN)對分類精度的影響。首先,本文在CUB-200-2011數據集上進行了訓練,相關結果如表1所示。在使用相同的超參數FPN_SIZE 1600進行訓練時,常規FPN模塊得到的Top-1準確率為70.262%,而本文的FFPN模塊則達到76.200%。當將FPN_SIZE擴大到4000后,FFPN的優勢更加明顯,準確率提升至83.379%。這充分驗證了FFPN模塊在提取細粒度特征上的效果。
此外,本文還在Kaggle公開的Birds-400數據集上進行了驗證,相關結果如表2所示。結果表明,本文方法相較于使用常規FPN準確率提升了1.467%。這進一步證明了本文模型具有較強的泛化能力,可以很好地遷移到其他鳥類圖像數據集。
4 總結
本文提出了一種新的特征融合金字塔模塊(FFPN),該模塊通過提取不同層的輸出并進行特征對齊和融合,可以有效利用多尺度特征。相比原始的FPN模塊,FFPN修改了上采樣過程的融合方式,可以更好地突出細粒度信息。
在CUB-200-2011和Bird-400兩個數據集上,本文進行了消融對比試驗,結果表明,FFPN 模塊可以有效提升分類準確率。與僅使用ResNet50或結合常規FPN的ResNet50相比,采用ResNet50+FFPN能夠取得更高的分類準確率,這證實了所提出的FFPN模塊在捕捉多尺度細粒度特征方面的優勢。
參考文獻(References):
[1] 申志軍,穆麗娜,高靜,等.細粒度圖像分類綜述[J].計算機
應用,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.