周宏威,沈恒宇,袁新佩,李曉冬
(1.東北林業大學機電工程學院,哈爾濱市,150000;2.國家林業和草原局森林和草原病蟲害防治總站,沈陽市,110034)
中國是世界上最大的蘋果生產國和消費國,蘋果種植面積和產量均占世界總量的40%以上,在世界蘋果產業中占有重要地位[1]。蘋果樹病蟲害對蘋果的產量有重要影響,如果能快速準確地識別病蟲害就能有針對性的對病蟲害進行及時控制,將病蟲害對蘋果樹的影響降到最低[2]。目前蘋果樹病蟲害識別主要是靠專家識別和種植戶的經驗,這種方法效率低下,不適合大面積快速識別,不能夠滿足現實需求。
隨著深度學習和計算機視覺技術的不斷發展,神經網絡模型在各個領域都得到了廣泛運用,包括人臉識別、語音識別、自動駕駛等[3-5]。在農林業方面,學者也對此進行了深入的研究[6-9]。牛沖等[10]通過提取直方圖的8個特征(平均灰度、標準偏差、三階中心矩、平滑度、均勻性、平均信息量、最大概率灰度級、灰度范圍)并進行歸一化處理利用支持向量機等方法對草莓病蟲害識別,平均準確率達到90%以上。蘇鴻等[11]利用區域卷積神經網絡模型對廣西柑橘病蟲害識別進行研究,對幾種典型的柑橘病蟲害的識別準確率較高。孫鵬等[12]利用注意力神經網絡對大豆害蟲圖像進行特征提取,識別準確率達到96.85%。山東農業大學趙立新等[13]在CNN算法的基礎上,利用各種優化逐步提升6種棉花葉片病蟲害圖像的分類準確率,重點從網絡結構擇優、面對識別模型進行逐步研究分析和改進,取得不錯的效果。
早期的識別分類方法識別率很低,需要對農作物病害圖像進行分割、邊緣檢測等預處理,然后手工特征提取后分類,費時費力,得到的分類準確率卻不高[14]。與傳統圖像識別分類方法相比,使用神經網絡可以大大降低前期對于圖像處理的工作,降低工作量,提升準確度[15]。遷移學習是一種機器學習技術,將一個任務上訓練好的卷積神經網絡模型通過簡單的調整使其適用于一個新的任務[16]。神經網絡需要從數據中獲得信息來進行訓練并將數據轉換成相應的權重,這些權重能夠被提取出來遷移到其他的神經網絡中,通過遷移這些學來的特征不需要從0開始訓練一個神經網絡。本文采用遷移學習的方法,通過將已經在ImageNet上訓練好的模型權重遷移到重新設計了輸出層的新模型上,再使用蘋果樹葉片病蟲害樣本數據訓練新模型。
本研究以蘋果黑星病葉片,蘋果黑腐病葉片,蘋果銹病葉片以及健康蘋果葉片4種不同的蘋果葉片作為研究對象。因為農林業類圖片數據較少且不易獲取。因此本試驗所需要的數據均由Plant Village公開數據集上獲取,所有圖片標簽由農林類專家標注。本次試驗共有圖片860張,其中蘋果黑星病葉片180張,蘋果黑腐病葉片270張,蘋果銹病葉片130以及健康蘋果葉片280張(圖1)。將4類圖片放在4個不同的文件夾內,每個文件夾的名稱為該類別圖片的標簽。
蘋果樹葉片病蟲害數據集分為訓練集(Train Set),驗證集(Validation Set)和測試集(Test Set),比例為8∶1∶1。其中訓練集是用于訓練模型以及確定模型權重的數據集;驗證集是訓練模型過程中單獨留出的樣本集,驗證集的結果可以用于調整模型的超參數以及確定網絡的結構并對模型的效果進行初步評估;測試集用于檢驗最終模型的泛化能力,結果不能用于調參等算法相關的依據。

(a)蘋果黑星病
卷積神經網絡(Convolutional Neural Networks,CNN)是傳統神經網絡的一種改進形式,它和傳統神經網絡一樣依然是層級網絡結構,只是在層的功能和形式上有改變,常用來分析視覺圖像[17]。與傳統神經網絡相比,在CNN上新出現了卷積層和池化層。通常卷積神經網絡由輸入層(Input Layer)、卷積層(Conv Layer)、池化層(Pooling Layer)、全連接層(FC Layer)以及輸出層(Output Layer)這5部分組成。
ImageNet視覺識別比賽,這個圖片分類比賽是訓練一個能夠將輸入圖片正確分類到1 000個類別中的某個類別的模型。訓練集120萬,驗證集5萬,測試集10萬。用于訓練分類的1 000個類別都是我們日常生活中常見的包括動物、家電、車輛等等。在過去幾年的ImageNet比賽中,有幾個表現最好的卷積神經網絡模型包括VGG16、ResNet50和InceptionV3等。
深度學習的基本思路是利用已有的數據集訓練出一個神經網絡模型,且該模型能夠盡量擬合所需要的預測結果。在數據量不是很大的情況下可以通過預訓練模型進行訓練,這就是遷移學習[18]。遷移學習的特點:(1)復用現有知識域數據,已有的大量工作不至于完全丟棄;(2)不需要再去花費巨大代價去重新采集和標定龐大的新數據集,也有可能數據根本無法獲取;(3)對于出現的新領域,能夠快速遷移和應用,體現時效性優勢。
本文分別以這三種模型通過遷移學習技術(特征提取)構建蘋果樹葉片病蟲害識別模型,實現對蘋果樹病蟲害的快速識別。
1.2.1 VGG16網絡結構
VGG16模型結構如表1所示。

表1 VGG16模型結構Tab.1 Model instruction of VGG16
在2014年,VGG模型架構由Simonyan和Zisserman[19]提出,VGG模型結構簡單有效,前幾層僅使用3×3卷積核來增加網絡深度,通過Max pooling(最大池化)依次減少每層的神經元數量,最后幾層分別是兩個有4 096個神經元的全連接層,一個1 000個神經元的全連接層和一個Softmax層。VGG16共包含13個卷積層(Conv Layer),3個全連接層(FC Layer),5個池化層(Pooling layer),其中,卷積層和全連接層具有權重系數,因此也被稱為權重層,總數目為13+3=16(池化層不涉及權重,不計數)。
1.2.2 ResNet50網絡結構
在2015年He等[20]發現隨著網絡結構越來越深,導致的梯度消失問題會使模型的學習愈加艱難,提出ResNet網絡模型。ResNet網絡模型利用殘差模塊和常規SGD(隨機梯度下降)可以訓練極深的神經網絡。使用Global Average Pooling(全局平均水平池)代替全連接層。ResNet50模型結構如表2所示。

表2 ResNet50模型結構Tab.2 Model instruction of ResNet50
1.2.3 Inception V3網絡結構
“Inception”微架構由Szegedy等[21]在2014年首次提出。Inception V3架構實現基于Szegedy等[22]后來寫的論文《計算機視覺的初始架構反思》(Rethinking the Inception Architecture for Computer Vision),其中提出了對Inception模塊的更新,進一步提高了ImageNet分類效果。Inception v3模型結構如表3所示。模型中使用的3×Inception,5×Inception和2×Inception模塊如圖2~圖4所示。

圖2 3×Inception結構圖Fig.2 3×Inception

圖3 5×Inception結構圖Fig.3 5×Inception

圖4 2×Inception結構圖Fig.4 2×Inception

表3 Inception模型結構Tab.3 Model instruction of Inception
VGG16、ResNet50以及Inception V3是近年來在圖像領域取得良好成績的經典卷積網絡模型。因此本文分別以VGG 16、ResNet50和Inception V3這三種模型為基礎構建蘋果樹葉片病蟲害識別模型。
1.3.1 試驗環境
本試驗的軟件環境為Python3.6.7,通過Tensorflow-GPU調用Keras庫構建模型,使用cuda加速運算。CPU為Intel Xeon E5-2660 v2 2.2 GHz 4核,內存為32 GB,顯卡為兩張Nvidia P102-100,顯存為20 GB。
1.3.2 數據預處理
在利用不同的神經網絡進行遷移學習時,根據模型結構的不同需要對輸入數據進行預處理[23]。VGG16和ResNet50要求輸入圖片的大小為224×224×3,而Inception V3所需要的輸入圖片大小為299×299×3。因此在進行試驗前要對輸入數據進行預處理,調整圖片的尺寸。
1.3.3 模型結構的調整
改進后的模型結構如圖5所示。

圖5 重新設計后的模型結構Fig.5 Redesigned model structure
本次遷移學習所使用的3種模型結構均是為ImageNet(1 000種不同物體識別)所設計,利用上述模型進行遷移學習來訓練蘋果樹葉片病蟲害識別的網絡時勢必要對原來的模型進行調整。本次試驗一共要對4種不同的葉片進行識別分類,因此全連接層的個數應該為4。在重新設計的模型結構中對原模型的最后一層進行改進:增加一層256維的全連接層,一層ReLU激活層,一層Dropout層,一層4維的全連接層以及一層Softmax層。
1.3.4 超參數的設計
參數(parameters)是指由模型通過學習得到的變量,不需要手動設定,比如權重w和偏置b。超參數(hyperparameters)通常根據模型設計者的經驗進行設定,比如迭代次數、隱藏層的個數、每層神經元的個數、學習速率、每個batch中訓練樣本的數量等,超參數的設定將會影響到權重w和偏置b在迭代過程中的值。在1.3.3小節中已經設定了隱含層的個數和每層神經元的個數。學習率是一個很重要的參數,如果學習率設定的太大學習速度會加快,但是損失函數會在極小值點不停震蕩甚至偏離。而如果學習率設定的太小網絡收斂將會很慢。為了平衡學習速率和準確率這兩點,本試驗設置初始學習率為0.1,每隔10個epoch,學習率減小為原來的1/10,這樣可以動態調整學習率讓預測結果達到最佳。Batch size設置為10,一般來說如果運算平臺的內存越大,這個值可以設置得越高。Epoch為運行的輪次,一個epoch代表一個完整的數據集經過神經網絡并返回。Epoch值越大代表訓練次數越多,這里統一設定為30次。模型優化器選擇Adam優化器。Adam優化器是Kingma和Ba[24]兩位學者在2014年提出,結合AdaGrad和RMSProp兩種優化算法的優點。對梯度的一階矩估計(First Moment Estimation,即梯度的均值)和二階矩估計(Second Moment Estimation,即梯度的未中心化的方差)進行綜合考慮,計算出更新步長。
Adam優化器更新規則
gt=?θJ(θt-1)
(1)
式中:gt——第t步時梯度;
J(θt-1)——使用隨機目標函數對上一時刻的參數θt-1進行計算。
mt=β1mt-1+(1-β1)gt
(2)
式中:mt——一階矩估計;
β1——指數衰減率,用于控制梯度動量和當前梯度的權重分配,一般取值為0.9。
vt=β2vt-1+(1-β2)gt2
(3)
式中:vt——二階矩估計;
β2——指數衰減率,控制之前的梯度平方的影響情況,默認為0.999。
(4)

因為m0初始化為0,會導致mt偏向于0,尤其是在訓練初期,所以要對mt進行偏差糾正,降低偏差對訓練初期的影響。
(5)

與m0類似,v0初始化為0會導致訓練初期vt偏向于0,對其進行糾正。
(6)
式中:θt——更新參數;
α——學習率;
ε——10-8。
使用已有的4類蘋果樹葉片圖像,將圖像分為訓練集、驗證集和測試集后,用新設計的全連接層代替VGG16,ResNet50和Inception V3的全連接層模塊構成一個新的網絡模型。之后利用已經在ImageNet上訓練好的3個網絡的卷積層權重遷移到新構建模型的卷積層中,最后用圖像的訓練集訓練新模型并用測試集對模型的準確度進行檢驗。訓練完成后的模型就可以對蘋果樹葉片病蟲害進行識別。試驗流程如圖6所示。

圖6 遷移學習實驗流程圖Fig.6 Flow chart of the experiment on transfer learning
本次試驗選擇VGG16,ResNet50和InceptionV3這3種卷積網絡神經結構。直接搭建VGG16,ResNet50和InceptionV3模型病蟲害識別準確率曲線變化如圖7、圖9、圖11所示;使用VGG16,ResNet50和InceptionV3模型遷移學習后病蟲害識別準確率曲線變化如圖8、圖10、圖12所示。模型訓練集,驗證集和測試集準確率如表4所示。

圖7 VGG16模型運行結果Fig.7 Results of VGG16 model

圖8 VGG16模型遷移學習運行結果Fig.8 Results of VGG16 model on transfer learning

圖9 ResNet50模型運行結果Fig.9 Results of ResNet50 model

圖10 ResNet50模型遷移學習運行結果Fig.10 Results of ResNet50 model on transfer learning

圖11 Inception V3模型運行結果Fig.11 Results of Inception V3 model

圖12 Inception V3模型遷移學習運行結果Fig.12 Results of Inception V3 model on transfer learning
由表4可知,遷移學習模型具有很強的魯棒性和泛化能力,這三種模型在使用遷移學習方法的情況下對蘋果樹葉片病蟲害識別的準確率均達到了95%以上。相較于未使用遷移學習,在訓練相同輪次的情況下,準確度有較大提升,試驗效果較為理想。VGG16網絡因為網絡層數較淺,訓練時需要占用的內存空間較小,其訓練速度很快,在使用遷移學習方法后在測試集上的準確度由72.09%提升到97.67%。ResNet50網絡層數很深,訓練時需要占用大量內存,訓練速度較慢,在使用遷移學習方法后在測試集上的準確度由48.83%提升到95.34%。

表4 3種模型準確率對比Tab.4 Comparison of accuracy of three models
Inception V3結構最為復雜,運算消耗的時間最長但分類效果也最好且在測試集上準確度最高。使用遷移學習后模型相較于未使用的模型收斂速度明顯加快,三種模型均在訓練20輪左右達到穩定且分類準確度明顯提高,這表明利用經典卷積神經網絡進行遷移學習在保證準確率和快速性的情況下對病蟲害識別的可行性,在識別前期不需要對圖像進行過多的預處理,大大降低了訓練時間和操作成本。
本次試驗使用遷移學習的方法,通過改進原模型全連接層的結構,將VGG16,ResNet50和Inception V3這3種卷積神經網絡模型應用到蘋果樹葉片病蟲害識別問題上。證明遷移學習在蘋果樹病蟲害識別上的有效性。
1)使用卷積神經網絡的遷移學習對蘋果病害識別具有較好的應用效果,豐富了現有的識別手段,為蘋果樹病蟲害識別提供了全新的思路。
2)和重新訓練一個CNN網絡相比,利用遷移學習的方法能夠在訓練20輪左右時精度就達到90%以上并趨于穩定,而重新訓練相同的卷積神經網絡訓練次數在30輪的情況下驗證集結果仍在反復波動,且平均準確率只有70%左右。這說明使用遷移學習能大大縮短訓練時間,提升識別精度,在蘋果樹葉片病蟲害識別的方面效果更好。
3)通過遷移學習識別模型訓練的試驗結果,可以看出使用遷移學習能夠在訓練集樣本量偏少的情況下仍然達到較好的識別效果。說明遷移學習弱化了使用大數據集樣本的必要性,一定程度上能解決小數據集在復雜模型上產生的過擬合問題。