李慶盛, 繆 楠, 張 鑫, 于雪瑩, 王首程, 高繼勇, 王志強
(山東理工大學計算機科學與技術學院, 淄博 255000)
玉米是中國一種重要的糧食作物,其整個生長周期會受到多種病害的侵襲,嚴重影響其產(chǎn)量。因此,快速準確地識別玉米病害種類并及時防治對于提高玉米產(chǎn)量至關重要。傳統(tǒng)基于圖像處理的植物病害識別,目前大多通過SVM[1-3]、BPNN[4]等機器學習方法來實現(xiàn),但傳統(tǒng)機器學習方法需要人工提取圖片特征,并且通常基于小樣本淺層機器學習模型,信息處理能力不足,對復雜非線性關系的表達力有限,泛化能力較差,無法滿足植物病害圖片快速、準確識別的需要。
隨著深度學習的發(fā)展,卷積神經(jīng)網(wǎng)絡(convolutional neural network, CNN) 通過引入局部連接、池化等操作,使得模型可以自動提取數(shù)據(jù)特征,實現(xiàn)端到端的圖像識別。目前,CNN已應用于玉米、黃瓜等作物的病害識別[5-8],但CNN模型隨著網(wǎng)絡深度的增加會出現(xiàn)梯度消失或梯度爆炸等現(xiàn)象從而導致網(wǎng)絡退化,模型準確率降低。因此如何在增加網(wǎng)絡深度的同時保證深度模型準確率,成為學者們研究的重點。He等[9]提出深度殘差網(wǎng)絡(deep residual network,DRN),通過shortcut(捷徑鏈接)將多個淺層網(wǎng)絡連接形成深層網(wǎng)絡,這樣可以增加網(wǎng)絡深度,避免網(wǎng)絡退化,提高模型的準確率。殘差網(wǎng)絡提出以來,由于其優(yōu)異的性能,目前已成為圖像識別領域的研究熱點。近幾年,研究者相繼提出多種方法來提高殘差網(wǎng)絡的性能。楊劍等[10]提出利用金字塔池化改進殘差網(wǎng)絡進行圖像識別,將單層池化改為多層池化,單層特征提取變?yōu)槎鄬犹卣魅诤希忍岣叩耐瑫r增加了模型參數(shù)量。陳娟等[11]通過直接增加卷積層和通道數(shù)來優(yōu)化殘差網(wǎng)絡進行蟲害圖像識別,增強了殘差網(wǎng)絡特征提取的能力,但其訓練時間有所增加。曾偉輝等[12]引入高階殘差和參數(shù)共享反饋機制來優(yōu)化殘差網(wǎng)絡,增加了模型的特征提取能力和魯棒性,但該方法內(nèi)存占用較多、計算資源消耗較大。隨著深度學習在圖像識別技術上逐漸成熟,僅提高網(wǎng)絡的精度已經(jīng)不能滿足工程實踐的需求,如何構(gòu)建一個準確且快速的病害識別網(wǎng)絡是當前研究者們面臨的問題。非對稱卷積的引入被證實可以有效降低深度網(wǎng)絡的參數(shù)量,加速模型訓練。羅朔等[13]利用非對稱卷積模塊構(gòu)建目標跟蹤算法網(wǎng)絡框架,增強了模型特征融合能力,降低了模型參數(shù)量。張志佳等[14]設計了一種基于連續(xù)非對稱卷積結(jié)構(gòu)的手寫體數(shù)字識別算法,與對稱卷積結(jié)構(gòu)相比,其對圖片的識別效率更高。另一方面,引入注意力機制可以凸顯深度模型對感興趣區(qū)域的特征表達,同時濾除無關信息的干擾、提升模型處理效率[15-17]。王培森等[18]利用注意力機制實現(xiàn)了多通道視覺的細粒度圖像分類。Wang等[19]將基于注意力的殘差學習引入圖像分類領域,解決了前向過程中無法提取注意力的問題,簡化了模型結(jié)構(gòu),加快了模型訓練速度。但目前,同時采用非對稱卷積結(jié)構(gòu)和注意力機制優(yōu)化殘差網(wǎng)絡對植物病害圖像進行識別的研究尚鮮見報道。
深度神經(jīng)網(wǎng)絡雖在植物病害的圖像識別上有一定的應用,但是目前存在的一個主要問題是缺乏足夠的病害圖像數(shù)據(jù)集來訓練網(wǎng)絡,從而導致深度模型存在表達能力有限和缺乏反饋機制等問題[20]。遷移學習可以將一個或者多個輔助領域任務中學到的有用知識應用到特定應用領域的圖像識別任務中。許景輝等[21]采用遷移學習結(jié)合卷積神經(jīng)網(wǎng)絡對玉米病害圖像進行識別。鄭一力等[22]利用遷移學習對AlexNet、Inception-V3網(wǎng)絡進行訓練,并成功應用于識別多種植物葉片。相關研究表明,遷移學習可以有效地增加深度模型的泛化能力,縮短訓練時間[21]。
針對玉米病害圖像識別問題,提出將非對稱卷積結(jié)構(gòu)和注意力機制引入殘差神經(jīng)網(wǎng)絡,建立了一種快速、高效的植物病害識別模型ACA-Resnet (asymmetric convolution attention resnet)。為解決模型訓練數(shù)據(jù)集不足的問題,在訓練過程中引入遷移學習機制,利用ImagetNet數(shù)據(jù)集對ACA-Resnet進行預訓練,然后微調(diào)全連接層以適應玉米病害數(shù)據(jù)集,從而提高了模型對病害圖片的識別能力。
1.1.1 實驗數(shù)據(jù)集
實驗數(shù)據(jù)來自Kaggle公共數(shù)據(jù)集,采用3種病害以及健康葉片圖像作為實驗數(shù)據(jù)集,病害種類包括玉米銹病、枯葉病、灰斑病,共2 900張病害圖片。實驗數(shù)據(jù)集中的圖像實例如圖1所示。

圖1 病害葉片圖像Fig.1 Image of disease leaf
1.1.2 圖像預處理
首先從實驗數(shù)據(jù)集圖像中隨機選擇80%用于訓練,20%用于測試。然后使用keras內(nèi)置的ImageDataGenerator對訓練集圖像進行橫向,縱向,隨機旋轉(zhuǎn),隨機收縮等操作,將訓練集擴充至6 000張。
1.2.1 非對稱殘差網(wǎng)絡
殘差網(wǎng)絡能夠很好地解決網(wǎng)絡退化問題,能保證在加深網(wǎng)絡的同時準確率也不會降低,在精度和收斂等方面都具有良好的特性。殘差網(wǎng)絡是通過shortcut將多個達到飽和的淺層網(wǎng)絡連接到一起,這樣既增加網(wǎng)絡深度也可以提高模型性能,使得模型可以提取更多特征。殘差網(wǎng)絡的目標函數(shù)H分為兩部分,定義為
H(x)=F(x)+x
(1)
式(1)中:x為網(wǎng)絡輸入;F為殘差網(wǎng)絡中的殘差函數(shù)。
下層誤差變大時,殘差函數(shù)中的F(x)會自動向0逼近。
殘差網(wǎng)絡中每一個殘差塊的輸出為
y=F(x,W1,W2,…,Wi,…,Wn)+x
(2)
式(2)中:Wi為殘差塊中第i個卷積層的權重。
訓練過程中會出現(xiàn)輸入輸出維度不匹配現(xiàn)象,此時要給不匹配的輸入做一個線性變換,公式為
y=F(x,W1,W2,…,Wi,…,Wn)+Wsx
(3)
式(3)中:Ws為線性變換。
雖然殘差網(wǎng)絡使網(wǎng)絡深度以及網(wǎng)絡退化問題得到解決,但是殘差網(wǎng)絡的參數(shù)量過于龐大,嚴重影響模型的運算速度,為減小參數(shù)量,利用非對稱卷積優(yōu)化殘差網(wǎng)絡。在Inception-v3[23]網(wǎng)絡中,將常規(guī)的d×d的卷積核分解為d×1和1×d的卷積核,卷積操作時參數(shù)量由d2縮小為2d,可以減少大量實驗參數(shù)且準確率也僅是輕微降低。非對稱卷積結(jié)構(gòu)如圖2所示,保留第一層3×3卷積核,將第二層3×3卷積核分解為1×3和3×1的非對稱卷積核,這種卷積核結(jié)構(gòu)在減少參數(shù)量的同時可以有效地提取數(shù)據(jù)的特征。

圖2 非對稱卷積結(jié)構(gòu)Fig.2 Asymmetric convolution structure
1.2.2 注意力機制理論
注意力機制可以使神經(jīng)網(wǎng)絡在提取特征時只關注圖片的某一部分重要特征,忽略不重要特征,減少運算過程的參數(shù)量。注意力機制殘差網(wǎng)絡[24]由多層收縮殘差單元(residual shrinkage block)堆疊而成。每個block分為兩部分:掩膜分支(mask branch)和主干分支(trunk branch)。實驗使用Resent作為主干分支進行特征處理。掩膜分支采用SENet[25],是一種較新的注意力機制下的深度學習方法。
注意力機制結(jié)構(gòu)如圖3所示,可以得到一組閾值,這組閾值可以作用在每個特征通道上。注意力機制實現(xiàn)過程如下:
(1)求出輸入的所有特征圖絕對值。
(2)經(jīng)過Global Average Pooling和平均,獲得一個特征,記為A。
(3)在另一條支路,把Global Average Pooling之后的特征圖輸入到一個小型的全連接網(wǎng)絡中,網(wǎng)絡以sigmoid作為最后一層,將輸出歸一化到0~1,獲得系數(shù)α。
(4)最終的閾值可以表示為αA。
通過這種方式,不同的樣本就有了不同的閾值。

C×W×3為特征圖的長×寬×通道數(shù)圖3 注意力機制結(jié)構(gòu)圖Fig.3 Structure of attention mechanism
1.2.3 遷移學習
遷移學習是指利用特定的數(shù)據(jù)集來預訓練網(wǎng)絡,讓網(wǎng)絡具備一定的學習能力,然后再讓預訓練的網(wǎng)絡模型重新學習目標集特征。這樣可以減少訓練步驟,縮短訓練時間,降低過擬合程度。遷移學習流程圖如圖4所示,遷移學習的過程如下。

圖4 遷移學習流程圖Fig.4 Transfer learning flow chart
(1)將玉米病害原始數(shù)據(jù)集劃分為訓練集和測試集。
(2)用ImageNet數(shù)據(jù)集對模型進行遷移學習,保留訓練后的權重。
(3)將訓練集的圖片通過平移、旋轉(zhuǎn)等操作進行數(shù)據(jù)擴充后再進行歸一化操作,測試集的圖片只進行歸一化操作。
(4)將擴充后的訓練集輸入到遷移學習過的網(wǎng)絡模型中,此時模型凍結(jié)全部的卷積層,只用擴充后的數(shù)據(jù)集訓練模型的全連接層。
(5)訓練結(jié)束后,激活模型的卷積層,將測試集數(shù)據(jù)輸入到網(wǎng)絡模型中即可進行病害分類。
1.3.1 實驗環(huán)境
在Windows10,64位操作系統(tǒng)上進行實驗,通過使用Python調(diào)用keras深度學習庫來實現(xiàn)神經(jīng)網(wǎng)絡的構(gòu)建、訓練和測試。服務器配置了16 GB ram AMD Ryzen 5 3600 6核處理器和16 GB ram Nvidia GeForce GTX 1660 Ti GPU。
1.3.2 ACA-Resnet網(wǎng)絡模型及訓練過程
首先搭建ACA-Resnet模型,初始學習率和epoch設置為0.01和10,網(wǎng)絡使用Relu函數(shù)作為激勵層以達到減少運算量和數(shù)據(jù)維度的目的。然后利用ImageNet數(shù)據(jù)集對ACA-Resnet模型進行遷移學習,保留遷移學習后的網(wǎng)絡參數(shù)。將玉米病害數(shù)據(jù)集劃分為訓練集和測試集,訓練集在輸入網(wǎng)絡之前,先通過數(shù)據(jù)增強手段進行擴充。把擴充后的數(shù)據(jù)集輸入預訓練過的模型中,此時凍結(jié)模型的卷積層只訓練全連接層。訓練結(jié)束后,將模型的卷積層激活,將測試集輸入網(wǎng)絡,由多個殘差塊處理后將提取出的特征數(shù)據(jù)輸出。最后將輸出的數(shù)據(jù)經(jīng)平均池化層和全連接層后,分類器即可輸出分類結(jié)果。實驗模型如圖5所示,模型共包含64層(圖中未全畫出),由Conv層,Batchnorm(BN)層,Relu層,非對稱收縮殘差單元(asymmetric residual shrinkage block), 卷積塊單元(convolution block),身份塊單元(identity block),全局池化層(global average pooling)以及全連接層構(gòu)成。圖5中殘差單元代表asymmetric residual shrinkage block結(jié)構(gòu),convolution block和identity block均采用ResNet50中的原始殘差塊結(jié)構(gòu)。

圖5 殘差塊及殘差網(wǎng)絡結(jié)構(gòu)圖Fig.5 Residual block and residual network structure diagram
傳統(tǒng)殘差塊結(jié)構(gòu)一般由Conv層,Batchnorm層和Relu層自由組合構(gòu)成。但是殘差單元不同的構(gòu)造方式對于精度,網(wǎng)絡收斂和訓練速度都有影響。實驗構(gòu)建了四種殘差塊結(jié)構(gòu)[26]如圖6所示。

圖6 四種殘差塊結(jié)構(gòu)Fig.6 Four residual block structures
(1)(Batchnorm+Relu+Conv)×2。
(2)Batchnorm+Covn+Batchnorm+Relu+Conv。
(3)(Batchnorm+Relu+Conv)×2 +Batchnorm。
(4)Batchnorm+Conv+Batchnorm+Relu+Conv+
Batchnorm。
實驗不使用數(shù)據(jù)增強以及遷移學習,只采用不同的殘差塊進行全新學習。每個實驗均進行5次,取5次實驗準確率的平均值作為各病害的識別準確率。不同殘差塊結(jié)構(gòu)的模型準確率如表1所示,不同殘差塊結(jié)構(gòu)對不同病害的識別能力有所差異,無法對所有病害的識別準確率均達到最優(yōu),因此只選取平均準確率最高的殘差塊結(jié)構(gòu),由表可知殘差塊1的平均準確率為82.75%高于其他殘差塊結(jié)構(gòu)。

表1 不同殘差塊結(jié)構(gòu)模型的準確率Table 1 Accuracy of different residual block structure models
在殘差網(wǎng)絡學習的過程中,超參數(shù)的選擇也可能對實驗結(jié)果造成影響。實驗采用單一因素法,對學習率、訓練周期epoch兩個超參數(shù)進行優(yōu)化,選取不同的超參數(shù)進行對比實驗,實驗結(jié)果如圖7所示,通過不同超參數(shù)所得實驗結(jié)果可知,學習率選取0.001,epoch為15時,分類效果最好。
數(shù)據(jù)增強對實驗結(jié)果的影響如表2所示,未經(jīng)過數(shù)據(jù)增強的Resnet50和ACA-Resnet平均準確率為82.75%和84.5%,優(yōu)化后的網(wǎng)絡準確率提高了1.75%。經(jīng)過數(shù)據(jù)增強的Resnet50和ACA-Resnet平均準確率為87.25%和92.5%,優(yōu)化后的模型準確率提高了5.25%。經(jīng)過數(shù)據(jù)增強的模型平均準確率均有所提高,說明數(shù)據(jù)增強可以有效提高模型性能。
遷移學習對實驗結(jié)果的影響如表3所示,Resnet50和ACA-Resnet全新學習的平均準確率為87.25%和92.5%,優(yōu)化后的網(wǎng)絡準確率提高了5.25%。Resnet50和ACA-Resnet遷移學習的平均準確率為94.25%和97.25%,優(yōu)化后的網(wǎng)絡準確率提高了3%。 經(jīng)過遷移學習的模型準確率較只進行數(shù)據(jù)增強的模型準確率有明顯提高。結(jié)果表明,遷移學習可以有效地提高模型的準確率。
為解決深度殘差網(wǎng)絡參數(shù)量過大的問題,實驗采用注意力機制以及非對稱卷積的方法來減小參數(shù)量,優(yōu)化模型性能。ACA-Resnet與Resnet50總參數(shù)量大小對比如表4所示,由表可知,ACA-Resnet總參數(shù)量相比于Resnet50減小了3 938 336并且每個epoch的訓練時間縮短了13 s。結(jié)果表明,注意力機制和非對稱卷積可有效地減小實驗參數(shù),加快訓練速度。
同時實驗將ACA-Resnet與傳統(tǒng)深度學習網(wǎng)絡模型和AC-Resnet、A-Resnet(注意力機制殘差網(wǎng)絡)進行對比實驗,不同深度學習模型采用相同的實驗超參數(shù)。為加快模型收斂速度,所有網(wǎng)絡模型均進行數(shù)據(jù)增強和遷移學習操作。
實驗結(jié)果分別建立了VGG-16、Inception-V3、Resnet50、A-Resnet、AC-Resnet、ACA-Resnet模型的分類混淆矩陣如圖8所示, ACA-Resnet對四種病害正確分類的樣本均多于其他五種模型。
進一步對4種模型的準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1-Score參數(shù)進行對比分析,其公式為
(4)
(5)
(6)
(7)
式中:ncorrect為測試集中預測正確的樣本數(shù)量;ntotal為測試集總樣本數(shù)量;TP為真實的正樣本數(shù)量;FP為真實的負樣本數(shù)量;FN為虛假的負樣本數(shù)量。
不同深度學習模型的性能對比如表5所示,ACA-Resnet的準確率、精確率、召回率、F1-Score參數(shù)分別為97.25%、98%、97.3%、0.97,整體性能優(yōu)于其他5個模型,證明ACA-Resnet與其他五個模型相比泛化能力和穩(wěn)定性均有所提高。同時AC-Resnet與Resnet50相比,準確率下降了3.13%,說明非對稱卷積優(yōu)化在減小參數(shù)量的同時會使模型性能輕微降低,A-Resnet較Resnet50整體性能有所提升,表明注意力機制可以改善模型的表達能力,提高識別準確率,彌補非對稱卷積帶來的弊端。綜上,證明了注意力機制結(jié)合非對稱卷積優(yōu)化殘差網(wǎng)絡的可行性。
表6為相關參考文獻中使用的網(wǎng)絡模型及其準確率,ACA-Resnet模型的準確率均高于文獻所用方法,進一步證明ACA-Resnet模型的性能較好。

表6 其他深度學習模型的性能Table 6 Performance of other deep learning models
針對傳統(tǒng)殘差網(wǎng)絡在玉米病害識別問題上參數(shù)量冗余,訓練速度長,準確率低等問題設計了一種新的圖像識別模型ACA-Resnet,并通過實驗分析得到如下結(jié)論。
(1)非對稱卷積的引入可有效降低參數(shù)量,加快訓練速度,與Resnet50相比參數(shù)量降低了約17%而且訓練速度也有所提升,但該優(yōu)化方法會使模型準確率小幅降低。
(2)注意力機制可以有效提高模型的準確率,因此注意力機制與非對稱卷積相結(jié)合優(yōu)化殘差網(wǎng)絡可以提高模型的整體性能。
(3)與全新學習相比,遷移學習提高了模型的整體性能,經(jīng)過遷移學習的模型對每一種病害的識別準確率均有較大提升。
本文實驗所用樣本均為背景干凈的圖片,在實際環(huán)境下,病害圖片中往往具有復雜的背景干擾,如何利用ACA-Resnet對復雜背景下的玉米病害葉片進行識別分類是接下來的研究方向。