黃林生 羅耀武, 楊小冬 楊貴軍 王道勇
(1.安徽大學農業生態大數據分析與應用技術國家地方聯合工程研究中心, 合肥 230601;2.北京農業信息技術研究中心農業農村部農業遙感機理與定量遙感重點實驗室, 北京 100097;3.浙江大學華南工業技術研究院, 廣州 510535)
準確地識別農作物病害種類是農作物病害治理的基礎。傳統農作物病害識別主要依靠病害專家肉眼識別,這種方法不但耗費大量人力,而且時效性無法得到保障,很可能會導致錯過農作物病害最佳治理時間而造成損失。隨著計算機技術及其硬件的發展,越來越多的智能識別技術應用到農業病害識別領域[1]。
傳統圖像識別技術需要對病害圖像進行預處理,提取病斑中一些人工設計的特征,將這些特征傳入合適的分類器中,實現病害分類識別[2-6]。此類研究均為傳統識別技術在病害識別領域的應用,病害特征通過手工設計,需要花費許多時間和精力,通常只能用來處理簡單背景的病害數據,泛化能力較差。
隨著人工智能技術的進一步發展,深度學習被廣泛應用于各行各業,基于卷積神經網絡的識別技術相較于傳統圖像識別在模型識別精度方面得到了很大的提升。文獻[7-14]利用深度學習方法對農作物病害進行了識別,取得了較好的效果。
但是考慮到農作物病害在不同時期不同環境下具有不同的表征,病斑的尺寸與稀疏程度各不相同,并且在田間進行病害識別時,復雜的環境信息會產生許多噪聲對病害識別造成干擾。因此上述研究仍然具有提取的病害特征尺度單一、抗噪聲能力不足等問題。
針對上述問題,本文選擇ResNet18[15]作為基礎模型,將Inception模塊[16]與模型進行結合,利用其多尺度卷積核來提取病害特征,解決病害特征尺度單一、信息豐富度不足的問題。嵌入注意力機制SE-Net對特征通道進行權重分配,增強有效特征,減弱干擾特征,提高模型的抗噪聲能力。
本文所用的農作物病害數據有2個來源:①來自于農技云軟件系統平臺,包含水稻紋枯病、水稻細菌性條銹病(細條病)、玉米灰斑病、玉米葉枯病、玉米銹病等2類作物的5種病害圖像共1 342幅。此部分病害圖像為農戶在田間拍攝采集上傳到系統平臺。因其在真實環境下采集,含有不同的拍攝背景、光照條件、拍攝角度的圖像,更加符合模型的實際應用場景。②在蘋果果園中拍攝收集,對準發病的單葉或者多片葉進行多角度拍攝,收集蘋果銹病、蘋果黑星病、蘋果健康葉片共863幅。將2部分病害數據合成1個農作物病害數據集,含有3類作物8種病害圖像,共計2 205幅。8種病害圖像示例如圖1所示。
為了適應卷積神經網絡所需要的大量數據,將收集的農作物病害數據集進行數據增強,增加數據量,豐富數據的多樣性,以防止模型過擬合。主要采取多角度旋轉、錯切變換、隨機縮放、隨機翻轉、亮度調整等數據增強方式,將原始農作物病害數據擴充為原來的6倍,共13 230幅病害圖像。按照4∶1的比例分為訓練集和驗證集。表1給出了每個類別病害的圖像數量。

表1 農作物病害數據集統計Tab.1 Crop diseasedata set statistics
卷積神經網絡[17-18]已被廣泛應用于圖像分類、目標檢測等領域。卷積神經網絡發展前期,研究人員認為隨著網絡層數的增加,模型的識別效果會隨之增加,然而經過一系列實驗后表明,網絡增加到一定層數,模型的分類效果不會更好,反而會變差。一方面,網絡越深變化量越小,梯度逐漸消失,簡單的增加網絡深度會導致梯度彌散或梯度爆炸;另一方面,因為隨著層數的增加,網絡的空間變得更加復雜,使用隨機梯度下降算法通常只能獲得局部最優解而無法獲得全局最優解。為解決此問題提出了殘差網絡。殘差網絡核心在于ResNet殘差塊結構,如圖2所示。
ResNet殘差塊使用了一種稱為“shortcut connection(捷徑連接)”的連接方式,將輸入x與經過堆疊的權重層得到的F(x)進行跨層連接,得到輸出H(x)=F(x)+x。此時F(x)=H(x)-x即為殘差,公式為
F=W2σ(W1x)
(1)
式中F——殘差函數
σ——ReLU非線性激活函數
W1、W2——權重
以恒等映射[19]角度來看,若殘差連接同等維度映射,F(x)與x相加即為逐元素進行相加。如果兩者維度不同,那么需要對輸入x進行線性映射來匹配維度,公式為
(2)
式中y——殘差塊輸出結果
Wi——權重層
Ws——線性映射函數
殘差結構的設計借鑒了高速網絡Highway Network[20]的跨層連接思想,并在其基礎上進行了適當改進。Highway Network的殘差項帶有權值,而ResNet殘差塊直接用恒等映射進行替代。通過捷徑連接將前面層的輸出直接作為輸入傳入到后面層的結果中,進行了跨層連接。在經過跨層連接操作后,變為對殘差F(x)=H(x)-x進行學習與優化,這樣梯度不會隨著網絡深度的增加而消失,在反向傳播過程中始終保持一個較大的值,便于優化,從而達到更好的分類效果。而ResNet18網絡相較于ResNet50網絡擁有較少的參數,考慮模型的性能,選擇參數較少的ResNet18作為模型的基礎網絡。
Inception模塊最大的特點在于將神經網絡層與層之間的卷積運算進行了拓展。采用不同尺寸的卷積核,使得卷積網絡在進行特征提取過程中獲得不同的感受野。不同尺寸的卷積核同時提取了多種局部特征,最后拼接不同感受野下所提取到的特征,達到不同尺度特征的融合,獲得更豐富的特征信息,提高模型的識別性能。Inception模塊結構如圖3所示。特征圖由輸入層進入模塊,分別送入1×1卷積、3×3卷積與1×1卷積的串聯、5×5卷積與1×1卷積的串聯、1×1卷積與3×3最大池化層的串聯。最終通過在信道維度拼接4部分提取的特征,得到多尺度特征圖。
單一尺度的卷積核感受野是固定的,提取特征信息有限。而農作物病害在不同時期不同環境下,發病區域與病斑尺寸不同,使用Inception模塊進行特征提取豐富了模型的感受野,增強了特征通道的豐富性,有利于識別不同尺寸的病斑。可以獲得更好的識別效果,提高識別準確率。
由于本文所使用的數據為田間環境下農作物病害數據,包含了環境因素的干擾,在識別過程中會伴隨許多噪聲信息。這些噪聲信息也會在網絡模型的學習過程中傳遞,隨著網絡層數的增加,噪聲信息在特征圖的權重也在不斷增加,最終對模型產生一定的負面影響[21]。因此,為模型引入注意力機制[22]。注意力機制可以調整每個通道的權重,幫助模型捕獲到對識別任務更有幫助的語義信息,增強有用信息,抑制噪聲等干擾元素的權重,減弱其對模型識別的負面影響,增強了卷積神經網絡的表達能力,最終達到提高模型識別性能的目的[23]。
注意力機制的單元結構如圖4所示。主要包含Squeeze和Excitation 2部分。假定輸入注意力模塊的特征圖尺寸為W×H,通道數為C,在經過注意力機制后,得到的仍然是通道數為C,尺寸為W×H的特征圖,只改變了特征圖之間的權重比,使具有更多有用信息的特征圖權重變得更大。
首先進行Squeeze操作。想要調整通道之間的權重關系,需要對所有通道中的信息進行壓縮,使用全局平均池化算法,將W×H×C的輸入轉變為1×1×C的輸出,表示這一層C個特征圖的全局信息,公式為
(3)
式中zc——輸出特征圖
Fsq()——Squeeze操作函數
uc——輸入特征圖
W、H——特征圖的寬和高
(i,j)——特征圖上的坐標位置

s=Fex(zc,Wi)=δ(W2σ(W1zc))
(4)
式中s——通道間權重調整的參數
Fex()——Excitation操作函數
σ——ReLU激活函數
δ——Sigmoid函數
最后對特征圖進行重標定。在得到通道間的權重調整參數后,將其與原特征圖相乘,獲得通道權重調整后的特征圖。公式為
(5)
Fscale()——特征圖進行重標定操作
sc——第C個特征圖的權重參數
將注意力單元嵌入ResNet18網絡中的每一殘差塊中,改進后的殘差模塊結構如圖5所示。
所設計的深度學習網絡模型以ResNet18為基礎,結合多尺度結構和注意力機制構成。改進得到的多尺度注意力殘差網絡模型(Multi-Scale-SE-ResNet18)整體結構如圖6所示。
將Conv_1的7×7卷積替換為Inception模塊,在Conv2_x~Conv5_x的每個殘差模塊中都嵌入注意力機制。保留原網絡中最后的全局平均池化層和Softmax層。模型相關參數如表2所示。

表2 基于注意力機制的多尺度殘差模型參數Tab.2 Parameters of multi-scale residual model based on attention mechanism
對于分類模型,準確率(Accuracy)常被用來評估分類網絡的性能,但是當正負樣本比例不均衡時,占比大的類別會對準確率產生更大的影響。故結合精確率(Precision)、召回率(Recall)和綜合評價指標F-度量(F-measure)共同作為模型的評價指標。
模型的參數量以及模型占用內存大小也是模型性能相關的重要參數。卷積神經網絡越來越多地被用于移動端設備中,過大的模型與過多的參數量會占用大量的運行以及存儲資源。如何平衡模型的復雜度與識別準確率是一個需要解決的問題。
實驗在Windows 10系統中進行,CPU為AMD Ryzen7 4800H,配置6 GB顯存NVIDIA GeForce RTX 2060顯卡進行加速。
考慮模型訓練效果以及實驗條件,設置batch_size為16,即每次16個樣本數據進入模型訓練。epochs設置為60。選擇Adam梯度下降優化算法。在將圖像送入卷積神經網絡模型之前,將圖像進行歸一化處理。
為了驗證所提出的基于注意力機制的多尺度殘差網絡模型的有效性,將此模型與常用的圖像分類模型Xception、VGG16、ResNet50、InceptionV3以及原ResNet18模型進行對比實驗。在構建的農作物病害數據集上進行訓練,保證每個模型在相同條件下完成訓練,直至最終收斂。在訓練過程中,每訓練一個epochs,驗證集會對模型進行一次精度驗證,記錄并輸出模型在這一輪數中的分類準確率。另外,模型在引入多尺度信息融合和注意力機制后,模型的識別準確率有了較大提高,但是模型參數的增長較小,進一步體現了模型優異的性能。表3列出了不同模型的準確率、參數量以及模型占用內存容量。

表3 模型準確率、參數量和模型占用內存對比Tab.3 Comparison of model accuracy, number of
為方便觀察分析,最終生成各個模型在所構建的農作物病害數據集上的準確率變化曲線,如圖7所示。
由圖7可以直觀看出各個分類模型的準確率整體都呈現上升趨勢,模型在訓練過程中不斷提取病害特征進行學習,提升分類能力。本文構建的多尺度注意力殘差模型的準確率更高,分類效果更好。主要原因有:①將ResNet18網絡第1層的7×7大卷積替換為了Inception結構模塊,原本7×7的大尺寸卷積更偏向提取邊緣輪廓等粗粒度特征,而Inception模塊擁有的不同尺寸卷積核同時對圖像進行特征提取,改善網絡模型對不同尺度病斑特征的提取,以獲取更豐富的特征信息,提升了分類準確率。②注意力機制增強了有用特征信息的權重,減弱了與分類特征無關信息的權重,提升了網絡模型的表達能力,減小了噪聲等干擾因素對模型識別性能的影響,從而提高模型分類能力。
由表3可以看出,所構建的Multi-Scale-SE-ResNet18網絡模型在獲得準確率95.62%的同時只占用44.2 MB的內存。參數量比準確率較高的Xception模型減少了43.7%,模型占用內存容量減少了44.7%。相對于原ResNet18模型,準確率提高了10.92個百分點,而參數量僅增加了4.7%,模型占用內存容量僅增加3.2%。模型在空間上的額外開銷甚少,但換來了模型識別準確率的顯著提升,體現了改進后的Multi-Scale-SE-ResNet18模型的性能與價值。其余對比模型在準確率、參數量、模型占用內存容量指標上的表現均不及本網絡模型。
Multi-Scale-SE-ResNet18模型在獲得較高準確率的基礎上,參數量和模型占用內存容量的增長較少,在可以接受的范圍。在獲得更高準確率的同時兼顧了模型的精簡,為后期模型嵌入資源有限的移動設備提供了可能。
選取未經訓練的8類病害圖像各40幅,使用已經訓練好的Multi-Scale-SE-ResNet18模型進行識別,得到農作物病害識別的混淆矩陣如圖8所示。
由混淆矩陣可以清晰看到水稻紋枯病和玉米葉枯病之間有互相識別錯誤的情況,玉米銹病也發生了被識別為蘋果銹病的情況,因為不同病害的病斑在不同時期不同角度具有一定的相似性,因此存在識別錯誤的情況。模型對8種病害的平均識別準確率為95.31%。通過混淆矩陣計算出8種病害的精確率(Precision)、召回率(Recall)和綜合評價指標F-度量(F-measure)作為模型的性能評價指標,如表4所示。計算可以得到模型的平均精確率為95.36%,平均查全率為95.31%,平均F-度量為95.33%,表明模型具有較好的識別準確率。

表4 模型性能評價結果Tab.4 Model performance evaluation %
卷積神經網絡模型的可視化可以幫助直觀地理解分類模型。通過模型中間層輸出特征的可視化,可以知道模型的每一層學習到的特征。根據可視化特征圖,可以進一步調整模型參數,提升模型準確率。
圖9為模型訓練完成后,各層的輸出特征圖的提取效果。可以看到,卷積神經網絡的學習具有層次性,通過Conv1_x的輸出特征圖可以看到,淺層通常是邊緣過濾器的集合,呈現一些邊緣、顏色等混合信息,幾乎保留了原始圖像中的所有信息。由Conv2_x與Conv3_x的輸出特征圖可以看到,隨著卷積層深度的增加,視覺內容相關信息越來越少,更多地呈現病害圖像的紋理等特征信息。在更深層處,Conv4_x與Conv5_x卷積層輸出的特征圖越來越抽象,最終留下的特征都代表了不同病害類別相關特征信息,用來做模型最終的分類。根據中間層特征輸出可視化可以看出,所改進的多尺度注意力機制殘差模型可以很好地提取農作物病害特征,用來對不同種類的農作物病害進行分類識別。
(1)為了建立可以精準識別農作物病害的網絡模型,針對農作物病害尺寸差異以及環境因素干擾等問題,在ResNet18的殘差網絡基礎上,加入了Inception模塊,使模型可以做到多尺度特征提取,并且在每一個殘差模塊中添加了注意力單元,使模型更加關注對病害分類識別有用的信息而減弱無用信息的干擾。
(2)改進后的Multi-Scale-SE-ResNet18模型最終對8種農作物病害的識別準確率達到95.62%,并且模型占用內存容量僅44.2 MB。相對于原ResNet18模型,準確率提高了10.92個百分點,而參數量僅增加了4.7%,模型占用內存容量僅增加3.2%。該模型在田間農作物病害識別任務中具有優異的表現,并且在控制模型占用內存容量的前提下,明顯提升了模型的識別準確率,較好地平衡了模型復雜度與識別精度。充分表明了所構建的Multi-Scale-SE-ResNet18模型在解決田間農作物病害識別問題中的優越性。