?

應用遷移學習的卷積神經網絡花卉圖像識別

2020-09-02 01:22曹曉杰嚴雨靈
計算機應用與軟件 2020年8期
關鍵詞:花卉卷積分類

曹曉杰 么 嬈 嚴雨靈

1(上海工程技術大學機械與汽車工程學院 上海 201620)2(上海工程技術大學航空運輸學院 上海 201620)

0 引 言

日常生活水平的提高,人們對于花卉養殖與欣賞需求也在提高[1]?;ɑ茈S處可見,具有極大的文化、經濟以及生態價值?;ɑ芊N類繁多,且各類花卉存在形態、顏色等相似。所以人們對花卉的識別存在著較大的困難。

針對該問題,研究者們一直在探索更好的算法來更加完美地識別花卉。傳統的花卉識別方法,會對花卉提取明顯的特征,然后訓練分類以達到識別的目的。Nilsback等[2]針對花卉的顏色、形狀、紋理等特征在分類中的重要程度,提出了單詞表方法。將花卉所有特征聚集到指定個數的聚類中心作為單詞表,利用單詞代表圖片,以支持向量機(SVM)作為分類器實現對花卉的識別。而后使用SIFT、HOG的復雜特征,使用多核組的SVM進行圖像識別。Zhang等[3]提取花卉圖像的空間與局部特征信息,進行非負稀疏編碼,利用K近鄰算法進行分類識別??洛械萚4]利用特征融合,使用混合色彩模型中的大津法(OTSU)對花卉圖像分割與識別。王威等[5]提出一種綜合特征的花卉識別,利用顯著性分割,實現前后背景分離,提取多種特征,最后使用SVM進行分類識別?;ɑ茏R別影響因素較多,傳統的手動特征雖然有一定的效果,但過程較為復雜,且需人為設計,人為因素影響較高,難以取得令人滿意的結果。

對比于傳統方法,隨著機器學習與人工智能發展,近年來崛起的深度卷積神經網絡在圖像學習與識別方向上取得巨大的突破。2012年以后,AlexNet[6]、Inception[7]、VGG[8]等網絡模型被提出應用,深度學習方法在圖像識別分類方向上取得優異的成績。在大型Image-Net圖像比賽上深度神經網絡分類精度已經遠超人類專家的水平,達到97%以上。Lee等[9]設計了六層卷積網絡,在輸出層采用并列的全連接層策略,取得44類葉面分類。關胤等[10]利用深度殘差網絡,通過網絡遷移在網絡花卉集上設計實現了花卉識別系統。沈萍等[11]提取部分圖像,將深度卷積網絡與支持向量機、邏輯斯蒂回歸(LR)的結果進行比較??梢钥吹?,深度神經網絡在圖像識別上有了較好的應用表現,但存在訓練工作上需要大量數據集且較消耗時間等問題。

因此,本文提出一種基于遷移學習的卷積神經網絡的花卉圖像識別方法,選擇在ImageNet比賽上訓練過的深度卷積神經網絡VGG16、Inceptionv3、ResNet50[12]模型,對網絡的參數遷移,通過設計小規?;ɑ軘祿?,微調網絡,得到較好的花卉識別結果。

1 卷積神經網絡與遷移學習

1.1 卷積神經網絡

隨著深度學習的研究推進,卷積神經網絡在圖像領域的應用產生了巨大的技術變革。從LeNet[13]、AlexNet、GoogLeNet到ResNet,網絡結構不斷加深、復雜,圖像識別分類的精度也隨之提高。

卷積神經網絡是一種特殊的多層感知器或前饋神經網絡[14],其標準結構如圖1所示。

圖1 卷積神經網絡結構

卷積過程如下式所示:

(1)

通過權值共享、局部感受手段模仿生物神經系統,卷積層用來提取圖像多層次的特征,采樣層使模型能保住全局主要特征且減少模型參數,全連接層用于接收提取到的所有特征,外接分類器。

1.2 遷移學習及微調

遷移學習即將已解決問題的方法應用到待解決問題中,將已存在的知識方法遷移解決相關領域的學習任務,屬于一種新的機器學習方法。針對圖像識別領域存在的數據集量小、訓練成本高的問題,遷移學習成為一種有效的解決方法。例如:Donahue等[15]將在ImageNet數據集上訓練的卷積神經網絡應用到新的識別任務中,達到較好的結果?;诰矸e神經網絡的遷移學習就是將已訓練好的模型及參數在新的識別任務上再次進行訓練,分類器前的網絡相當于傳統的特征提取器,以特征代表圖片,進行分類識別。

微調方法是在簡單遷移方式的基礎上,進一步將預訓練網絡的部分層參數重新訓練,使模型更適應新的樣本任務。卷積神經網絡具有多層提取特征,低層捕捉基礎通用特征,高層學習對應輸入的高級特征?;诖颂攸c,我們可以凍結低層,重新訓練高層特定層參數,來適應新任務的要求。

2 實驗設計與結果分析

2.1 實驗環境及方案

實驗是在Windows 10專業版系統安裝Anaconda 3,基于谷歌研發的第二代人工智能學習系統Tensorflow[16]及Keras深度學習框架開發環境,并使用GTX1070顯卡加速,完成實驗訓練及驗證結果。

實驗一將原始圖像歸一化處理,然后經過預訓練卷積網絡的卷積基,利用大規模數據集上預訓練模型的參數權重初始化網絡,保存輸出圖像的特征,更改最后的密集連接分類層,將保存數據輸入進行密集分類層訓練驗證,保存參數,輸出識別結果。

實驗二將原始圖像進行歸一化處理,并且進行圖像數據增強,使用預訓練模型及參數,“凍結”卷積基,更換密集連接分類層,將圖像批量輸入組合網絡模型,在輸入數據上端到端地運行整個模型訓練驗證保存參數,輸出識別結果。

實驗三在實驗二密集連接層的基礎上,加載實驗二的模型及參數,“解凍”卷積基的一部分,允許解凍層權重參數可以改變,再次進行解凍層到密集連接分類層的訓練,進行模型微調,重新訓練驗證,輸出識別結果。

具體研究流程如圖2-圖4所示。

圖2 實驗一流程

圖3 實驗二流程

圖4 實驗三流程

2.2 數據歸一化與增強

為了模擬小規模數據集,實驗采用的數據來源于Oxfordflower102[17]牛津花卉庫,從中隨機抽取五類花卉(daisy,dandelion,roses,sunflowers,tulip)圖片,2 400幅用于訓練,300幅用于驗證。

針對抽取到的圖像分辨率不統一,為了滿足不同模型輸入要求,需要將圖像進行歸一化處理,裁剪圖像為224×224及299×299像素。

在實驗二、實驗三中,因為要重新訓練神經卷積層,在樣本較小的情況下訓練很容易發生過擬合。因此,在訓練時采用隨機抽取小批量進行輸入,將小批量圖像進行數據增強,采取圖像隨機旋轉30°、圖像在水平或垂直方向上平移、隨機錯切變換、隨機縮放、一半圖像隨機翻轉及填充新創建像素等方法,生成可信圖像的隨機變換,使得每次的小批量輸入不會看到完全相同的圖像,讓模型能夠識別到更多不一樣的特征,增加模型的泛化能力。

具體花卉示例如圖5所示。

圖5 五種花卉示例

2.3 模型參數設置及優化

對網絡模型重新構造,前端卷積提取特征部分,此處采用在ImageNet 2012大規模視覺識別挑戰賽上取得較好成績的卷積神經網VGG16、Inceptionv3及ResNet50的卷積基,去掉網絡模型的頂層設計,重新設計密集連接分類層。替換部分采用了全局平均池化、丟失輸出及Softmax算法等。全局平均池化[18]對應于均值池化,均值池化是選擇提取出的特征圖像上對應濾波器的大小區域,將區域中不為零的數取均值。此種方法得到的特征信息對背景信息敏感,而所謂全局即針對整幅feature map進行取均值,保證全局信息,且減小模型的參數。

因為要對小樣本進行訓練驗證,此處添加丟失輸出(Dropout)來緩解模型訓練的過擬合,在網絡訓練過程中隨機讓連接的一些節點不工作。

最后一層為Softmax,它是Sigmoid類激活函數的擴展,判斷輸入屬于哪一類。計算概率屬于此類就接近1,屬于其他類的概率接近0。本算法主要應用于多分類,計算方式如下:

(2)

在網絡中,本文使用了Relu[19]激活函數為網絡添加非線性因素,解決線性表達能力不足的缺陷,且Relu計算簡單,有助于提升機器運行效率,公式如下:

f(x)=max(0,x)

(3)

模型優化實質是尋找最小損失函數值,本文選用隨機梯度下降法(stochastic gradient descent,SGD)來優化,設置初始學習率,為了快速達到最小函數值附近,隨著迭代次數的增大,逐步退化學習率,避免學習率較大而引起結果振蕩。學習率的衰減速度由迭代代數及衰減系數來一起決定。計算公式如下:

(4)

式中:decay_lr衰減后的學習率,lr為起步設置學習率,decay_rate為衰減系數,global_step為當前迭代步數,decay_step為學習率變化一次經過的步數。

在模型的訓練過程中,本文同時引入早停技術(Early stopping)對模型訓練后驗證集驗證模型的結果進行監控,一旦發現使用驗證集后的結果越來越差,立即停止對模型的訓練。同時在訓練過程中保存驗證結果較優的某次迭代的模型參數,后續有更優結果再進行替換。此方法限制模型取得最小損失函數值的迭代次數,迭代次數過多,算法容易過擬合,迭代次數太少,則容易欠擬合。

2.4 實驗結果與分析

2.4.1 實驗一提取特征替換分類器

首先進行簡單遷移后模型性的對比實驗,此處選取在ImageNet上訓練過的模型VGG16、Inceptionv3、ResNet50三種模型,下載模型參數,將模型的全連接層取代,構建5分類密集連接分類層,加載時卷積基的權重參數保持不變,不加載全連接層參數,將訓練樣本在卷積基上運行,保存結果,用于新建密集連接分類層的訓練。

模型參數設置初始學習率設置為10-4,迭代次數為100,輸入批量大小為30,丟失輸出為0.5。實驗一訓練后驗證結果如表1所示。

表1 實驗一的訓練驗證準確率

由表可見,數據只經過歸一化處理,再經過不同模型的卷積基進行特征提取,對新建密集連接分類層進行訓練,代碼層數的增多使得提取的圖像特征更加復雜,正確率隨之提高。但模型訓練過程從一開始就迅速出現過擬合現象,如圖6-圖8所示。

圖6 實驗一VGG16訓練驗證結果

圖7 實驗一Inceptionv3訓練驗證結果

圖8 實驗一ResNet50訓練驗證結果

2.4.2 實驗二數據增強及端到端訓練

為提高正確率,且避免模型過快地進入過擬合,改變數據輸入方式,選擇對模型進行端到端訓練。仍選用預訓練模型,卷積基進行“凍結”,保證參數在訓練過程中不變,替換密集連接分類層,將圖像批量送入模型,且進行圖像歸一化及數據增強,每次迭代結束利用驗證集進行模型性能測試,保存驗證集測試性能最好模型參數。同樣迭代100次,完成訓練,結果如表2所示。

表2 實驗二訓練驗證準確率

通過與實驗一的結果進行對比,實驗二利用凍結的卷積基端到端的訓練模型能夠有效地提升模型性能,識別正確率有所提升。模型Inceptionv3、ResNet50相較于VGG16層數多,在進行圖片特征提取時能夠抽取到更多全面細致的特征,有利于對圖片的識別,得到的識別準確率高。模型ResNet50與Inceptionv3相比,訓練正確率低,但訓練時間較短,前者每一代大約會耗費50 s,后者則接近100 s。

2.4.3 微調訓練模型

針對不同模型結構,為了進行性能再一步提升,對模型參數進行微調,選擇將網絡部分層數的參數進行凍結,重新訓練網絡驗證識別;為了選擇合適的凍結層數,將三個網絡的凍結層數分別由高到低進行凍結來進行參數訓練,具體操作如下:

(1) 對于vgg16網絡,代碼總層數在Tensorflow后端Keras框架下為23層,參數總量為21 138 757,將網絡提取特征層共19層分別階梯下降式地進行凍結,實驗結果如表3所示。

表3 VGG16不同凍結層數下實驗結果

(2) 對于Inceptionv3網絡,代碼總層數315層,參數總量為22 328 613,將網絡特征提取層共311層分別階梯下降式凍結,實驗結果如表4所示。

表4 Inceptionv3不同凍結層數下實驗結果

續表4

(3) 對于ResNet50網絡,代碼總的層數179層,參數總量為24 113 541,將網絡特征提取層共175層分別階梯下降式凍結,實驗結果如表5所示。

表5 ResNet50不同凍結層數下的實驗結果

三種模型分別在不同的凍結層數下進行實驗,對比三個表格的實驗結果,對于VGG16與Inceptionv3兩個網絡的凍結層數減少,網絡的驗證正確率提升很小,VGG16的驗證準確率在90%左右波動,而Inceptionv3在94左右跳動,上下偏差較小,兩個網絡在可訓練參數占到75%時性能相對較好;另外對于網絡ResNet50,通過減少凍結層數,可訓練網絡參數增加數據驗證準確率會慢慢增加,超過網絡可訓練參數占比94%后性能有所下降。

(4) 將微調后的網絡與現有的模型算法進行對比,數據樣本統一采用牛津大學數據集Oxflord 17 flower,本文模型選取可訓練參數占比75%的三個訓練模型網絡結構及參數,對比模型選擇文獻[2-5]的方法,結果如表6所示。

表6 不同算法的實驗結果對比

實驗證明,經過對預訓練模型的遷移,在小規模圖像集上也可以取得較好的識別效率,遷移學習確實對小樣本識別分類有一定效果。通過不同模型的對比,卷積層增多時,提取得到的圖像特征更有利于圖像分類,Inceptionv3、ResNet50與VGG系列對比,分類精度更好一點。實驗三與實驗二的對比結果表明,網絡準確率經過微調,比遷移方法更進一步提升,尤其在VGG16微調模型時的提升達到4%~9%,經過網絡微調模型提取的特征比直接使用遷移提取的分類能力更強一些,微調網絡能使網絡了解圖像深層信息特征,提取某些深度特征,更加有利于識別。三個實驗的結果都顯示網絡Inceptionv3的正確率最高,預訓練模型Inception結構的特征表達能力較為優秀,且在經過遷移基礎上再進行網絡的微調,驗證準確率得到進一步提高。與其他文獻方法進行對比,本文方法識別效果相對較好。對比于傳統方法的使用,利用預訓練網絡的遷移微調方式避免了圖像特征的人工設計及提取保存,簡化圖像識別步驟,效率提高,識別性能也有所提高。

3 結 語

針對傳統識別算法需要人工提取特征,耗時耗力,且數據集規模較小的問題,本文提出一種卷積神經網絡與遷移學習相結合應用小規?;ɑ軋D像識別方法。利用預訓練模型VGG16、Inceptionv3及ResNet50在花卉圖像上進行遷移微調實驗,構建新的密集連接分類層,進行訓練驗證,得到新的分類模型。實驗結果表明,將大型數據集上的預訓練模型遷移到小規模圖像集上,再進行微調,可以取得較好的識別效果。實驗中預訓練網絡Inceptionv3在僅有的2 400幅圖像訓練后識別準確率可達到94.67%,證明使用在大數據集上訓練的模型,再將模型遷移到小數據集上進行微調,不僅可以避免訓練模型缺少數據的不足,節省大量時間,且識別效果較好。本文在選用預訓練模型時只是選擇其中的三種,今后將在此基礎上進行其他更優網絡的嘗試,且進行網絡凍結比例的改變,嘗試認識不同比例凍結對不同模型的影響關系,分析不同模型應該凍結的層數。

猜你喜歡
花卉卷積分類
基于3D-Winograd的快速卷積算法設計及FPGA實現
一種并行不對稱空洞卷積模塊①
三招搞定花卉病蟲害
《花卉之二》
《靜物花卉》
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
按需分類
教你一招:數的分類
說說分類那些事
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合