付清華
(西華師范大學 教育學院,四川 南充)
花卉識別是典型的細粒度識別,需要模型具備較強的類間和類內識別能力。目前深度學習在計算機視覺圖像分類[1-2]方面的應用已經有了巨大的進展,使用先進的深度學習模型可以獲得更好的效果。而對于較小的數據集,利用預先訓練好的深度神經網絡作為基礎模型進行遷移學習同樣可以取得良好效果。
本文主要研究的內容如下:(1)解釋花卉圖像分類識別的方法;(2)微調兩組預訓練網絡模型進行遷移學習;(3)對比分析兩組模型的性能。
1.1.1 VGGNet
VGG[3]網絡用5 個組的卷積和2 層全連接層來提取特征,1 層全連接層用來輸出并分類。VGG 使用小尺寸卷積核和池化層組成基礎模塊,通過堆疊基礎模塊構造出深度卷積神經網絡。
1.1.2 ResNet
ResNet 網絡主要由殘差塊組成,堆疊殘差塊可以加深網絡的同時提高性能。只要做卷積,特征就會損失,殘差塊添加一個捷徑連接,給予特征損失一定的補償以增強特征的傳遞,使得更深的網絡仍能得到更好的訓練。
1.2.1 計算機視覺中的遷移學習
計算機視覺領域經常會用到遷移學習,如果從頭或從隨機初始化權重開始訓練模型,往往耗費較長時間且需大量GPU 的支持。但是如果識別任務存在數據、任務或模型上的共性,就可以利用訓練好的網絡權重作為新模型初始化權重,較快得到理想性能。
1.2.2 微調Fine-tuning
新建遷移學習模型的過程,實際上是利用預訓練模型進行微調的過程。設置include_top = False,得到不包括頂層用于分類的網絡。設置trainable = False,使部分層在訓練中其參數不會被更改,之后再加上特定的全連接層并重新訓練權重得到特定的輸出。
VGG16 模型用途比較廣泛,通過ImageNet 大型數據庫也做了相關訓練,選用VGG16 作為建模基礎,下載預先訓練好的模型,部分層進行復用。如圖1 所示,前面卷積池化組Conv_layers 的結構和權重都直接進行復用,并凍結這些層的權重,之后在網絡尾部新建全連接層。

圖1 基于VGG16 的模型示意
ResNet50[4]以在各種圖像分類任務中取得顯著效果而聞名。實驗用其作為預訓練模型,建立分類模型。同樣也凍結部分權重,新建全連接層,利用Softmax 輸出類別,訓練部分參數,模型結構如圖2 所示。

圖2 基于ResNet50 的模型示意
數據集選用Oxford 17 Flowers,該數據集有17類花卉,每類含80 張不同圖片,一共1 360 張,是花卉領域最具代表性的數據集之一[5]。實驗首先將花卉集隨機按7:1 劃分為訓練集和驗證集。其次,圖像分辨率不統一,設置shape 進行處理。最后,由于數據集較小,使用ImageDataGenerator 對圖片進行數據增強[6]。
選取VGG16 及ResNet50 作為實驗模型中的特征提取器,新建模型,修改部分主要采用批歸一化Batch Normalization、丟失Dropout 和Softmax[7]分類算法及自適應矩估計Adam 優化器[8]。模型需要設置輪數epoch,設置過小會導致訓練未達收斂就停下來,過大則容易過擬合。因此引入EarlyStopping 類,如果訓練中誤差不斷上升,模型會自動在相應的迭代次數停止訓練。
在相同環境下,進行對比實驗。VGG16 和ResNet50 兩組模型的準確率和損失曲線如圖3 所示。

圖3 模型評估曲線
模型訓練和測試準確率如表1 所示。

表1 模型訓練結果
結果顯示,微調后的VGG16 模型經過大約70 次迭代后提前終止訓練,此時模型準確率和損失曲線均已變得平緩,基本達到收斂,測試準確率最終達到了86.42%,損失值降到了0.84。同樣,ResNet50 模型大約45 次迭代后也提前終止訓練,其測試準確率達到了88.54%,損失值降到0.44。可以看出兩組模型均取得不錯的分類效果,對比來看的話,ResNet50 微調模型的精度要高于VGG16,其損失低于VGG16,收斂速度快于VGG16,這表明微調后的ResNet50 模型在本次實驗中更好地擬合花卉數據,其模型性能更加良好。
實驗最后進行可視化分析。相同輸入下微調后的VGG16 模型預測結果如圖4 所示,除第四張圖像外其他分類正確。如圖5 所示,ResNet50 模型分類全部正確,模型實現了非常理想的性能效果。

圖4 VGG16 模型預測示例

圖5 ResNet50 模型預測示例
本文使用卷積神經網絡模型以及遷移學習進行了花卉識別,取得了不錯的識別效果。結果顯示,ResNet50 微調模型的效果更佳,相較VGG16 微調模型來說準確率提升了2%左右。實驗驗證了遷移學習在圖像識別特別是小數據集方面是可行的。