付清華
(西華師范大學(xué) 教育學(xué)院,四川 南充)
花卉識別是典型的細(xì)粒度識別,需要模型具備較強(qiáng)的類間和類內(nèi)識別能力。目前深度學(xué)習(xí)在計算機(jī)視覺圖像分類[1-2]方面的應(yīng)用已經(jīng)有了巨大的進(jìn)展,使用先進(jìn)的深度學(xué)習(xí)模型可以獲得更好的效果。而對于較小的數(shù)據(jù)集,利用預(yù)先訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)模型進(jìn)行遷移學(xué)習(xí)同樣可以取得良好效果。
本文主要研究的內(nèi)容如下:(1)解釋花卉圖像分類識別的方法;(2)微調(diào)兩組預(yù)訓(xùn)練網(wǎng)絡(luò)模型進(jìn)行遷移學(xué)習(xí);(3)對比分析兩組模型的性能。
1.1.1 VGGNet
VGG[3]網(wǎng)絡(luò)用5 個組的卷積和2 層全連接層來提取特征,1 層全連接層用來輸出并分類。VGG 使用小尺寸卷積核和池化層組成基礎(chǔ)模塊,通過堆疊基礎(chǔ)模塊構(gòu)造出深度卷積神經(jīng)網(wǎng)絡(luò)。
1.1.2 ResNet
ResNet 網(wǎng)絡(luò)主要由殘差塊組成,堆疊殘差塊可以加深網(wǎng)絡(luò)的同時提高性能。只要做卷積,特征就會損失,殘差塊添加一個捷徑連接,給予特征損失一定的補(bǔ)償以增強(qiáng)特征的傳遞,使得更深的網(wǎng)絡(luò)仍能得到更好的訓(xùn)練。
1.2.1 計算機(jī)視覺中的遷移學(xué)習(xí)
計算機(jī)視覺領(lǐng)域經(jīng)常會用到遷移學(xué)習(xí),如果從頭或從隨機(jī)初始化權(quán)重開始訓(xùn)練模型,往往耗費(fèi)較長時間且需大量GPU 的支持。但是如果識別任務(wù)存在數(shù)據(jù)、任務(wù)或模型上的共性,就可以利用訓(xùn)練好的網(wǎng)絡(luò)權(quán)重作為新模型初始化權(quán)重,較快得到理想性能。
1.2.2 微調(diào)Fine-tuning
新建遷移學(xué)習(xí)模型的過程,實(shí)際上是利用預(yù)訓(xùn)練模型進(jìn)行微調(diào)的過程。設(shè)置include_top = False,得到不包括頂層用于分類的網(wǎng)絡(luò)。設(shè)置trainable = False,使部分層在訓(xùn)練中其參數(shù)不會被更改,之后再加上特定的全連接層并重新訓(xùn)練權(quán)重得到特定的輸出。
VGG16 模型用途比較廣泛,通過ImageNet 大型數(shù)據(jù)庫也做了相關(guān)訓(xùn)練,選用VGG16 作為建模基礎(chǔ),下載預(yù)先訓(xùn)練好的模型,部分層進(jìn)行復(fù)用。如圖1 所示,前面卷積池化組Conv_layers 的結(jié)構(gòu)和權(quán)重都直接進(jìn)行復(fù)用,并凍結(jié)這些層的權(quán)重,之后在網(wǎng)絡(luò)尾部新建全連接層。
圖1 基于VGG16 的模型示意
ResNet50[4]以在各種圖像分類任務(wù)中取得顯著效果而聞名。實(shí)驗(yàn)用其作為預(yù)訓(xùn)練模型,建立分類模型。同樣也凍結(jié)部分權(quán)重,新建全連接層,利用Softmax 輸出類別,訓(xùn)練部分參數(shù),模型結(jié)構(gòu)如圖2 所示。
圖2 基于ResNet50 的模型示意
數(shù)據(jù)集選用Oxford 17 Flowers,該數(shù)據(jù)集有17類花卉,每類含80 張不同圖片,一共1 360 張,是花卉領(lǐng)域最具代表性的數(shù)據(jù)集之一[5]。實(shí)驗(yàn)首先將花卉集隨機(jī)按7:1 劃分為訓(xùn)練集和驗(yàn)證集。其次,圖像分辨率不統(tǒng)一,設(shè)置shape 進(jìn)行處理。最后,由于數(shù)據(jù)集較小,使用ImageDataGenerator 對圖片進(jìn)行數(shù)據(jù)增強(qiáng)[6]。
選取VGG16 及ResNet50 作為實(shí)驗(yàn)?zāi)P椭械奶卣魈崛∑?,新建模型,修改部分主要采用批歸一化Batch Normalization、丟失Dropout 和Softmax[7]分類算法及自適應(yīng)矩估計Adam 優(yōu)化器[8]。模型需要設(shè)置輪數(shù)epoch,設(shè)置過小會導(dǎo)致訓(xùn)練未達(dá)收斂就停下來,過大則容易過擬合。因此引入EarlyStopping 類,如果訓(xùn)練中誤差不斷上升,模型會自動在相應(yīng)的迭代次數(shù)停止訓(xùn)練。
在相同環(huán)境下,進(jìn)行對比實(shí)驗(yàn)。VGG16 和ResNet50 兩組模型的準(zhǔn)確率和損失曲線如圖3 所示。
圖3 模型評估曲線
模型訓(xùn)練和測試準(zhǔn)確率如表1 所示。
表1 模型訓(xùn)練結(jié)果
結(jié)果顯示,微調(diào)后的VGG16 模型經(jīng)過大約70 次迭代后提前終止訓(xùn)練,此時模型準(zhǔn)確率和損失曲線均已變得平緩,基本達(dá)到收斂,測試準(zhǔn)確率最終達(dá)到了86.42%,損失值降到了0.84。同樣,ResNet50 模型大約45 次迭代后也提前終止訓(xùn)練,其測試準(zhǔn)確率達(dá)到了88.54%,損失值降到0.44??梢钥闯鰞山M模型均取得不錯的分類效果,對比來看的話,ResNet50 微調(diào)模型的精度要高于VGG16,其損失低于VGG16,收斂速度快于VGG16,這表明微調(diào)后的ResNet50 模型在本次實(shí)驗(yàn)中更好地擬合花卉數(shù)據(jù),其模型性能更加良好。
實(shí)驗(yàn)最后進(jìn)行可視化分析。相同輸入下微調(diào)后的VGG16 模型預(yù)測結(jié)果如圖4 所示,除第四張圖像外其他分類正確。如圖5 所示,ResNet50 模型分類全部正確,模型實(shí)現(xiàn)了非常理想的性能效果。
圖4 VGG16 模型預(yù)測示例
圖5 ResNet50 模型預(yù)測示例
本文使用卷積神經(jīng)網(wǎng)絡(luò)模型以及遷移學(xué)習(xí)進(jìn)行了花卉識別,取得了不錯的識別效果。結(jié)果顯示,ResNet50 微調(diào)模型的效果更佳,相較VGG16 微調(diào)模型來說準(zhǔn)確率提升了2%左右。實(shí)驗(yàn)驗(yàn)證了遷移學(xué)習(xí)在圖像識別特別是小數(shù)據(jù)集方面是可行的。