黃林生 羅耀武, 楊小冬 楊貴軍 王道勇
(1.安徽大學(xué)農(nóng)業(yè)生態(tài)大數(shù)據(jù)分析與應(yīng)用技術(shù)國家地方聯(lián)合工程研究中心, 合肥 230601;2.北京農(nóng)業(yè)信息技術(shù)研究中心農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)遙感機理與定量遙感重點實驗室, 北京 100097;3.浙江大學(xué)華南工業(yè)技術(shù)研究院, 廣州 510535)
準(zhǔn)確地識別農(nóng)作物病害種類是農(nóng)作物病害治理的基礎(chǔ)。傳統(tǒng)農(nóng)作物病害識別主要依靠病害專家肉眼識別,這種方法不但耗費大量人力,而且時效性無法得到保障,很可能會導(dǎo)致錯過農(nóng)作物病害最佳治理時間而造成損失。隨著計算機技術(shù)及其硬件的發(fā)展,越來越多的智能識別技術(shù)應(yīng)用到農(nóng)業(yè)病害識別領(lǐng)域[1]。
傳統(tǒng)圖像識別技術(shù)需要對病害圖像進行預(yù)處理,提取病斑中一些人工設(shè)計的特征,將這些特征傳入合適的分類器中,實現(xiàn)病害分類識別[2-6]。此類研究均為傳統(tǒng)識別技術(shù)在病害識別領(lǐng)域的應(yīng)用,病害特征通過手工設(shè)計,需要花費許多時間和精力,通常只能用來處理簡單背景的病害數(shù)據(jù),泛化能力較差。
隨著人工智能技術(shù)的進一步發(fā)展,深度學(xué)習(xí)被廣泛應(yīng)用于各行各業(yè),基于卷積神經(jīng)網(wǎng)絡(luò)的識別技術(shù)相較于傳統(tǒng)圖像識別在模型識別精度方面得到了很大的提升。文獻[7-14]利用深度學(xué)習(xí)方法對農(nóng)作物病害進行了識別,取得了較好的效果。
但是考慮到農(nóng)作物病害在不同時期不同環(huán)境下具有不同的表征,病斑的尺寸與稀疏程度各不相同,并且在田間進行病害識別時,復(fù)雜的環(huán)境信息會產(chǎn)生許多噪聲對病害識別造成干擾。因此上述研究仍然具有提取的病害特征尺度單一、抗噪聲能力不足等問題。
針對上述問題,本文選擇ResNet18[15]作為基礎(chǔ)模型,將Inception模塊[16]與模型進行結(jié)合,利用其多尺度卷積核來提取病害特征,解決病害特征尺度單一、信息豐富度不足的問題。嵌入注意力機制SE-Net對特征通道進行權(quán)重分配,增強有效特征,減弱干擾特征,提高模型的抗噪聲能力。
本文所用的農(nóng)作物病害數(shù)據(jù)有2個來源:①來自于農(nóng)技云軟件系統(tǒng)平臺,包含水稻紋枯病、水稻細菌性條銹病(細條病)、玉米灰斑病、玉米葉枯病、玉米銹病等2類作物的5種病害圖像共1 342幅。此部分病害圖像為農(nóng)戶在田間拍攝采集上傳到系統(tǒng)平臺。因其在真實環(huán)境下采集,含有不同的拍攝背景、光照條件、拍攝角度的圖像,更加符合模型的實際應(yīng)用場景。②在蘋果果園中拍攝收集,對準(zhǔn)發(fā)病的單葉或者多片葉進行多角度拍攝,收集蘋果銹病、蘋果黑星病、蘋果健康葉片共863幅。將2部分病害數(shù)據(jù)合成1個農(nóng)作物病害數(shù)據(jù)集,含有3類作物8種病害圖像,共計2 205幅。8種病害圖像示例如圖1所示。
為了適應(yīng)卷積神經(jīng)網(wǎng)絡(luò)所需要的大量數(shù)據(jù),將收集的農(nóng)作物病害數(shù)據(jù)集進行數(shù)據(jù)增強,增加數(shù)據(jù)量,豐富數(shù)據(jù)的多樣性,以防止模型過擬合。主要采取多角度旋轉(zhuǎn)、錯切變換、隨機縮放、隨機翻轉(zhuǎn)、亮度調(diào)整等數(shù)據(jù)增強方式,將原始農(nóng)作物病害數(shù)據(jù)擴充為原來的6倍,共13 230幅病害圖像。按照4∶1的比例分為訓(xùn)練集和驗證集。表1給出了每個類別病害的圖像數(shù)量。
表1 農(nóng)作物病害數(shù)據(jù)集統(tǒng)計Tab.1 Crop diseasedata set statistics
卷積神經(jīng)網(wǎng)絡(luò)[17-18]已被廣泛應(yīng)用于圖像分類、目標(biāo)檢測等領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)發(fā)展前期,研究人員認(rèn)為隨著網(wǎng)絡(luò)層數(shù)的增加,模型的識別效果會隨之增加,然而經(jīng)過一系列實驗后表明,網(wǎng)絡(luò)增加到一定層數(shù),模型的分類效果不會更好,反而會變差。一方面,網(wǎng)絡(luò)越深變化量越小,梯度逐漸消失,簡單的增加網(wǎng)絡(luò)深度會導(dǎo)致梯度彌散或梯度爆炸;另一方面,因為隨著層數(shù)的增加,網(wǎng)絡(luò)的空間變得更加復(fù)雜,使用隨機梯度下降算法通常只能獲得局部最優(yōu)解而無法獲得全局最優(yōu)解。為解決此問題提出了殘差網(wǎng)絡(luò)。殘差網(wǎng)絡(luò)核心在于ResNet殘差塊結(jié)構(gòu),如圖2所示。
ResNet殘差塊使用了一種稱為“shortcut connection(捷徑連接)”的連接方式,將輸入x與經(jīng)過堆疊的權(quán)重層得到的F(x)進行跨層連接,得到輸出H(x)=F(x)+x。此時F(x)=H(x)-x即為殘差,公式為
F=W2σ(W1x)
(1)
式中F——殘差函數(shù)
σ——ReLU非線性激活函數(shù)
W1、W2——權(quán)重
以恒等映射[19]角度來看,若殘差連接同等維度映射,F(xiàn)(x)與x相加即為逐元素進行相加。如果兩者維度不同,那么需要對輸入x進行線性映射來匹配維度,公式為
(2)
式中y——殘差塊輸出結(jié)果
Wi——權(quán)重層
Ws——線性映射函數(shù)
殘差結(jié)構(gòu)的設(shè)計借鑒了高速網(wǎng)絡(luò)Highway Network[20]的跨層連接思想,并在其基礎(chǔ)上進行了適當(dāng)改進。Highway Network的殘差項帶有權(quán)值,而ResNet殘差塊直接用恒等映射進行替代。通過捷徑連接將前面層的輸出直接作為輸入傳入到后面層的結(jié)果中,進行了跨層連接。在經(jīng)過跨層連接操作后,變?yōu)閷埐頕(x)=H(x)-x進行學(xué)習(xí)與優(yōu)化,這樣梯度不會隨著網(wǎng)絡(luò)深度的增加而消失,在反向傳播過程中始終保持一個較大的值,便于優(yōu)化,從而達到更好的分類效果。而ResNet18網(wǎng)絡(luò)相較于ResNet50網(wǎng)絡(luò)擁有較少的參數(shù),考慮模型的性能,選擇參數(shù)較少的ResNet18作為模型的基礎(chǔ)網(wǎng)絡(luò)。
Inception模塊最大的特點在于將神經(jīng)網(wǎng)絡(luò)層與層之間的卷積運算進行了拓展。采用不同尺寸的卷積核,使得卷積網(wǎng)絡(luò)在進行特征提取過程中獲得不同的感受野。不同尺寸的卷積核同時提取了多種局部特征,最后拼接不同感受野下所提取到的特征,達到不同尺度特征的融合,獲得更豐富的特征信息,提高模型的識別性能。Inception模塊結(jié)構(gòu)如圖3所示。特征圖由輸入層進入模塊,分別送入1×1卷積、3×3卷積與1×1卷積的串聯(lián)、5×5卷積與1×1卷積的串聯(lián)、1×1卷積與3×3最大池化層的串聯(lián)。最終通過在信道維度拼接4部分提取的特征,得到多尺度特征圖。
單一尺度的卷積核感受野是固定的,提取特征信息有限。而農(nóng)作物病害在不同時期不同環(huán)境下,發(fā)病區(qū)域與病斑尺寸不同,使用Inception模塊進行特征提取豐富了模型的感受野,增強了特征通道的豐富性,有利于識別不同尺寸的病斑。可以獲得更好的識別效果,提高識別準(zhǔn)確率。
由于本文所使用的數(shù)據(jù)為田間環(huán)境下農(nóng)作物病害數(shù)據(jù),包含了環(huán)境因素的干擾,在識別過程中會伴隨許多噪聲信息。這些噪聲信息也會在網(wǎng)絡(luò)模型的學(xué)習(xí)過程中傳遞,隨著網(wǎng)絡(luò)層數(shù)的增加,噪聲信息在特征圖的權(quán)重也在不斷增加,最終對模型產(chǎn)生一定的負(fù)面影響[21]。因此,為模型引入注意力機制[22]。注意力機制可以調(diào)整每個通道的權(quán)重,幫助模型捕獲到對識別任務(wù)更有幫助的語義信息,增強有用信息,抑制噪聲等干擾元素的權(quán)重,減弱其對模型識別的負(fù)面影響,增強了卷積神經(jīng)網(wǎng)絡(luò)的表達能力,最終達到提高模型識別性能的目的[23]。
注意力機制的單元結(jié)構(gòu)如圖4所示。主要包含Squeeze和Excitation 2部分。假定輸入注意力模塊的特征圖尺寸為W×H,通道數(shù)為C,在經(jīng)過注意力機制后,得到的仍然是通道數(shù)為C,尺寸為W×H的特征圖,只改變了特征圖之間的權(quán)重比,使具有更多有用信息的特征圖權(quán)重變得更大。
首先進行Squeeze操作。想要調(diào)整通道之間的權(quán)重關(guān)系,需要對所有通道中的信息進行壓縮,使用全局平均池化算法,將W×H×C的輸入轉(zhuǎn)變?yōu)?×1×C的輸出,表示這一層C個特征圖的全局信息,公式為
(3)
式中zc——輸出特征圖
Fsq()——Squeeze操作函數(shù)
uc——輸入特征圖
W、H——特征圖的寬和高
(i,j)——特征圖上的坐標(biāo)位置
s=Fex(zc,Wi)=δ(W2σ(W1zc))
(4)
式中s——通道間權(quán)重調(diào)整的參數(shù)
Fex()——Excitation操作函數(shù)
σ——ReLU激活函數(shù)
δ——Sigmoid函數(shù)
最后對特征圖進行重標(biāo)定。在得到通道間的權(quán)重調(diào)整參數(shù)后,將其與原特征圖相乘,獲得通道權(quán)重調(diào)整后的特征圖。公式為
(5)
Fscale()——特征圖進行重標(biāo)定操作
sc——第C個特征圖的權(quán)重參數(shù)
將注意力單元嵌入ResNet18網(wǎng)絡(luò)中的每一殘差塊中,改進后的殘差模塊結(jié)構(gòu)如圖5所示。
所設(shè)計的深度學(xué)習(xí)網(wǎng)絡(luò)模型以ResNet18為基礎(chǔ),結(jié)合多尺度結(jié)構(gòu)和注意力機制構(gòu)成。改進得到的多尺度注意力殘差網(wǎng)絡(luò)模型(Multi-Scale-SE-ResNet18)整體結(jié)構(gòu)如圖6所示。
將Conv_1的7×7卷積替換為Inception模塊,在Conv2_x~Conv5_x的每個殘差模塊中都嵌入注意力機制。保留原網(wǎng)絡(luò)中最后的全局平均池化層和Softmax層。模型相關(guān)參數(shù)如表2所示。
表2 基于注意力機制的多尺度殘差模型參數(shù)Tab.2 Parameters of multi-scale residual model based on attention mechanism
對于分類模型,準(zhǔn)確率(Accuracy)常被用來評估分類網(wǎng)絡(luò)的性能,但是當(dāng)正負(fù)樣本比例不均衡時,占比大的類別會對準(zhǔn)確率產(chǎn)生更大的影響。故結(jié)合精確率(Precision)、召回率(Recall)和綜合評價指標(biāo)F-度量(F-measure)共同作為模型的評價指標(biāo)。
模型的參數(shù)量以及模型占用內(nèi)存大小也是模型性能相關(guān)的重要參數(shù)。卷積神經(jīng)網(wǎng)絡(luò)越來越多地被用于移動端設(shè)備中,過大的模型與過多的參數(shù)量會占用大量的運行以及存儲資源。如何平衡模型的復(fù)雜度與識別準(zhǔn)確率是一個需要解決的問題。
實驗在Windows 10系統(tǒng)中進行,CPU為AMD Ryzen7 4800H,配置6 GB顯存NVIDIA GeForce RTX 2060顯卡進行加速。
考慮模型訓(xùn)練效果以及實驗條件,設(shè)置batch_size為16,即每次16個樣本數(shù)據(jù)進入模型訓(xùn)練。epochs設(shè)置為60。選擇Adam梯度下降優(yōu)化算法。在將圖像送入卷積神經(jīng)網(wǎng)絡(luò)模型之前,將圖像進行歸一化處理。
為了驗證所提出的基于注意力機制的多尺度殘差網(wǎng)絡(luò)模型的有效性,將此模型與常用的圖像分類模型Xception、VGG16、ResNet50、InceptionV3以及原ResNet18模型進行對比實驗。在構(gòu)建的農(nóng)作物病害數(shù)據(jù)集上進行訓(xùn)練,保證每個模型在相同條件下完成訓(xùn)練,直至最終收斂。在訓(xùn)練過程中,每訓(xùn)練一個epochs,驗證集會對模型進行一次精度驗證,記錄并輸出模型在這一輪數(shù)中的分類準(zhǔn)確率。另外,模型在引入多尺度信息融合和注意力機制后,模型的識別準(zhǔn)確率有了較大提高,但是模型參數(shù)的增長較小,進一步體現(xiàn)了模型優(yōu)異的性能。表3列出了不同模型的準(zhǔn)確率、參數(shù)量以及模型占用內(nèi)存容量。
表3 模型準(zhǔn)確率、參數(shù)量和模型占用內(nèi)存對比Tab.3 Comparison of model accuracy, number of
為方便觀察分析,最終生成各個模型在所構(gòu)建的農(nóng)作物病害數(shù)據(jù)集上的準(zhǔn)確率變化曲線,如圖7所示。
由圖7可以直觀看出各個分類模型的準(zhǔn)確率整體都呈現(xiàn)上升趨勢,模型在訓(xùn)練過程中不斷提取病害特征進行學(xué)習(xí),提升分類能力。本文構(gòu)建的多尺度注意力殘差模型的準(zhǔn)確率更高,分類效果更好。主要原因有:①將ResNet18網(wǎng)絡(luò)第1層的7×7大卷積替換為了Inception結(jié)構(gòu)模塊,原本7×7的大尺寸卷積更偏向提取邊緣輪廓等粗粒度特征,而Inception模塊擁有的不同尺寸卷積核同時對圖像進行特征提取,改善網(wǎng)絡(luò)模型對不同尺度病斑特征的提取,以獲取更豐富的特征信息,提升了分類準(zhǔn)確率。②注意力機制增強了有用特征信息的權(quán)重,減弱了與分類特征無關(guān)信息的權(quán)重,提升了網(wǎng)絡(luò)模型的表達能力,減小了噪聲等干擾因素對模型識別性能的影響,從而提高模型分類能力。
由表3可以看出,所構(gòu)建的Multi-Scale-SE-ResNet18網(wǎng)絡(luò)模型在獲得準(zhǔn)確率95.62%的同時只占用44.2 MB的內(nèi)存。參數(shù)量比準(zhǔn)確率較高的Xception模型減少了43.7%,模型占用內(nèi)存容量減少了44.7%。相對于原ResNet18模型,準(zhǔn)確率提高了10.92個百分點,而參數(shù)量僅增加了4.7%,模型占用內(nèi)存容量僅增加3.2%。模型在空間上的額外開銷甚少,但換來了模型識別準(zhǔn)確率的顯著提升,體現(xiàn)了改進后的Multi-Scale-SE-ResNet18模型的性能與價值。其余對比模型在準(zhǔn)確率、參數(shù)量、模型占用內(nèi)存容量指標(biāo)上的表現(xiàn)均不及本網(wǎng)絡(luò)模型。
Multi-Scale-SE-ResNet18模型在獲得較高準(zhǔn)確率的基礎(chǔ)上,參數(shù)量和模型占用內(nèi)存容量的增長較少,在可以接受的范圍。在獲得更高準(zhǔn)確率的同時兼顧了模型的精簡,為后期模型嵌入資源有限的移動設(shè)備提供了可能。
選取未經(jīng)訓(xùn)練的8類病害圖像各40幅,使用已經(jīng)訓(xùn)練好的Multi-Scale-SE-ResNet18模型進行識別,得到農(nóng)作物病害識別的混淆矩陣如圖8所示。
由混淆矩陣可以清晰看到水稻紋枯病和玉米葉枯病之間有互相識別錯誤的情況,玉米銹病也發(fā)生了被識別為蘋果銹病的情況,因為不同病害的病斑在不同時期不同角度具有一定的相似性,因此存在識別錯誤的情況。模型對8種病害的平均識別準(zhǔn)確率為95.31%。通過混淆矩陣計算出8種病害的精確率(Precision)、召回率(Recall)和綜合評價指標(biāo)F-度量(F-measure)作為模型的性能評價指標(biāo),如表4所示。計算可以得到模型的平均精確率為95.36%,平均查全率為95.31%,平均F-度量為95.33%,表明模型具有較好的識別準(zhǔn)確率。
表4 模型性能評價結(jié)果Tab.4 Model performance evaluation %
卷積神經(jīng)網(wǎng)絡(luò)模型的可視化可以幫助直觀地理解分類模型。通過模型中間層輸出特征的可視化,可以知道模型的每一層學(xué)習(xí)到的特征。根據(jù)可視化特征圖,可以進一步調(diào)整模型參數(shù),提升模型準(zhǔn)確率。
圖9為模型訓(xùn)練完成后,各層的輸出特征圖的提取效果??梢钥吹剑矸e神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)具有層次性,通過Conv1_x的輸出特征圖可以看到,淺層通常是邊緣過濾器的集合,呈現(xiàn)一些邊緣、顏色等混合信息,幾乎保留了原始圖像中的所有信息。由Conv2_x與Conv3_x的輸出特征圖可以看到,隨著卷積層深度的增加,視覺內(nèi)容相關(guān)信息越來越少,更多地呈現(xiàn)病害圖像的紋理等特征信息。在更深層處,Conv4_x與Conv5_x卷積層輸出的特征圖越來越抽象,最終留下的特征都代表了不同病害類別相關(guān)特征信息,用來做模型最終的分類。根據(jù)中間層特征輸出可視化可以看出,所改進的多尺度注意力機制殘差模型可以很好地提取農(nóng)作物病害特征,用來對不同種類的農(nóng)作物病害進行分類識別。
(1)為了建立可以精準(zhǔn)識別農(nóng)作物病害的網(wǎng)絡(luò)模型,針對農(nóng)作物病害尺寸差異以及環(huán)境因素干擾等問題,在ResNet18的殘差網(wǎng)絡(luò)基礎(chǔ)上,加入了Inception模塊,使模型可以做到多尺度特征提取,并且在每一個殘差模塊中添加了注意力單元,使模型更加關(guān)注對病害分類識別有用的信息而減弱無用信息的干擾。
(2)改進后的Multi-Scale-SE-ResNet18模型最終對8種農(nóng)作物病害的識別準(zhǔn)確率達到95.62%,并且模型占用內(nèi)存容量僅44.2 MB。相對于原ResNet18模型,準(zhǔn)確率提高了10.92個百分點,而參數(shù)量僅增加了4.7%,模型占用內(nèi)存容量僅增加3.2%。該模型在田間農(nóng)作物病害識別任務(wù)中具有優(yōu)異的表現(xiàn),并且在控制模型占用內(nèi)存容量的前提下,明顯提升了模型的識別準(zhǔn)確率,較好地平衡了模型復(fù)雜度與識別精度。充分表明了所構(gòu)建的Multi-Scale-SE-ResNet18模型在解決田間農(nóng)作物病害識別問題中的優(yōu)越性。