孫文斌, 王 榮, 高榮華, 李奇峰, 吳華瑞, 馮 璐
1. 北京農(nóng)業(yè)信息技術(shù)研究中心, 北京 100097
2. 廣東工業(yè)大學(xué)信息工程學(xué)院, 廣東 廣州 510006
3. 國(guó)家農(nóng)業(yè)信息化工程技術(shù)研究中心, 北京 100097
4. 西北農(nóng)林科技大學(xué)信息工程學(xué)院, 陜西 楊凌 712100
農(nóng)作物病害不僅對(duì)全球范圍內(nèi)糧食安全構(gòu)成威脅, 還對(duì)依靠健康作物為生的小農(nóng)經(jīng)濟(jì)造成災(zāi)難性后果。 因此, 農(nóng)作物病害診斷對(duì)保證農(nóng)作物高產(chǎn)、 優(yōu)質(zhì)、 高效具有十分重要的意義。 傳統(tǒng)作物病害診斷需要大量專家經(jīng)驗(yàn)知識(shí), 人工診斷時(shí)效性差、 成本高且正確率較低。
目前已有的基于計(jì)算機(jī)視覺的病害識(shí)別研究中, 主要分為高光譜和可見光圖像兩大類, 基于高光譜圖像的病害識(shí)別算法成本較高且速度較慢, 無法實(shí)時(shí)識(shí)別; 因此基于可見光譜和卷積神經(jīng)網(wǎng)絡(luò)的農(nóng)作物病害識(shí)別成為近幾年的主流研究方向。 Johannes[1]提出一種利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)識(shí)別移動(dòng)設(shè)備拍攝的多種植物圖像的病害類別, 證明了CNN在多種植物病害識(shí)別方面具有巨大潛力。 通過加深卷積層和池化層數(shù)量的方式可提高模型識(shí)別的準(zhǔn)確率, 但增加了模型參數(shù)。 在病害識(shí)別方面, 改進(jìn)Alexnet網(wǎng)絡(luò)和LeNet網(wǎng)絡(luò)模型被應(yīng)用于蘋果病害圖像[2]、 香蕉病害圖像[3]以及西紅柿病害圖像[4]識(shí)別, 均取得了較好的識(shí)別效果, 但其識(shí)別模型僅針對(duì)于單一植物病害識(shí)別, 數(shù)據(jù)集數(shù)量較小, 對(duì)多種植物病害混雜及發(fā)病早期的圖像識(shí)別率較低。 在多種作物病害混合的數(shù)據(jù)集Plant Village數(shù)據(jù)集中, Sladojevic等[5]應(yīng)用AlexNet架構(gòu)實(shí)現(xiàn)了多植物病害圖像識(shí)別。 孫俊[6]等利用歸一化和全局池化Alexnet網(wǎng)絡(luò)對(duì)Plant Village 數(shù)據(jù)集中部分植物疾病和健康葉片的數(shù)據(jù)進(jìn)行識(shí)別。 目前主流病害識(shí)別算法均基于Alexnet實(shí)現(xiàn), 然而Alexnet網(wǎng)絡(luò)參數(shù)量較大, 模型易出現(xiàn)過擬合現(xiàn)象, 在其他數(shù)據(jù)集中的泛化能力較弱, 因此提高弱參數(shù)網(wǎng)絡(luò)識(shí)別率, 優(yōu)化模型識(shí)別速度, 仍是病害識(shí)別的難點(diǎn)之一。
注意力機(jī)制可為通道特征增加約束, 實(shí)現(xiàn)對(duì)特征的重校準(zhǔn)。 SENet[7]提出了一種壓縮激勵(lì)的注意力機(jī)制, 通過僅關(guān)注利于任務(wù)實(shí)現(xiàn)的區(qū)域信息, 抑制非必要性信息, 提高分類準(zhǔn)確率, 但其激勵(lì)部分的特征提取能力不足, 對(duì)早期病害細(xì)節(jié)部位的特征提取不足。
基于上述問題, 本工作在農(nóng)作物病害識(shí)別領(lǐng)域中引入注意力機(jī)制, 設(shè)計(jì)了新的注意力模塊SMLP (squeeze-multi-layer perceptron), 在提高病害識(shí)別率的基礎(chǔ)上, 提出基于可見光譜和改進(jìn)注意力機(jī)制的弱參數(shù)農(nóng)作物病害識(shí)別模型SMLP_ResNet。 將所提出的方法分別在兩種公開的農(nóng)作物病害數(shù)據(jù)集中重新訓(xùn)練和測(cè)試, 對(duì)不同超參數(shù)進(jìn)行調(diào)優(yōu), 對(duì)比分析其他農(nóng)作物病害識(shí)別模型。 實(shí)現(xiàn)了對(duì)同種農(nóng)作物的多種病害、 同種病害的早期和晚期, 以及多種農(nóng)作物健康葉片的識(shí)別。
農(nóng)作物病害識(shí)別領(lǐng)域中存在不同識(shí)別難度的公開數(shù)據(jù)集, 病害類別越多、 類與類之間的樣本差異越小以及每類病害中的圖像數(shù)量越少, 則數(shù)據(jù)集病害識(shí)別的難度越大。 大多數(shù)病害研究者只針對(duì)單一植物病害進(jìn)行識(shí)別, 本工作同時(shí)選用包含多種農(nóng)作物和多種病害的公開數(shù)據(jù)集Plant Village和AI Challenger 2018, 這兩個(gè)數(shù)據(jù)集代表了不同的識(shí)別難度, 數(shù)據(jù)集參數(shù)如表1所示。
表1 農(nóng)作物病害數(shù)據(jù)集對(duì)比
Plant Village數(shù)據(jù)集包含14種作物的健康葉片和24種病害葉片, 將54 306張病害的可見光圖像劃分為38類。 AI Challenger 2018農(nóng)作物病害數(shù)據(jù)集包含10種作物, 27種病害, 將每種病害按照不同發(fā)病程度劃分為發(fā)病早期和晚期不同等級(jí)的病害類別, 將35 861張圖像劃分為59類。 其部分葉片樣本示例如圖1所示, 對(duì)于同種作物的相同病害, Plant Village中病害葉片的發(fā)病程度近似于AI Challenger 2018中病害晚期的圖像, 而AI Challenger 2018中增加的早期病害圖像與健康葉片極相似, 增大了數(shù)據(jù)集的識(shí)別難度。 因此選擇這兩種不同難度的數(shù)據(jù)集驗(yàn)證本研究中病害識(shí)別模型的性能。
圖1 數(shù)據(jù)集中部分樣本示例
卷積核可從輸入的特征圖中學(xué)習(xí)新特征圖, 卷積神經(jīng)網(wǎng)絡(luò)常用于處理計(jì)算機(jī)視覺中分類和檢測(cè)任務(wù)。 卷積核提取特征圖時(shí)對(duì)局部區(qū)域進(jìn)行特征融合, 捕捉局部空間關(guān)系, 而通道中的特征未被區(qū)分便被輸入下一層, 使得網(wǎng)絡(luò)無法關(guān)注目標(biāo)的顯著信息, 抑制無用的噪聲信息。 因此在卷積神經(jīng)網(wǎng)絡(luò)中引入注意力機(jī)制, 可從特征中學(xué)習(xí)分布規(guī)律, 對(duì)其重校準(zhǔn), 增強(qiáng)模型對(duì)顯著特征的提取能力并抑制通道噪聲。
SE(squeeze-and-excitation)注意力模塊的核心思想在于提出壓縮(Squeeze)和激勵(lì)(Excitation)兩個(gè)操作整合通道特征, 并根據(jù)特征顯著程度抑制與分類任務(wù)無關(guān)的冗余特征。
SE模塊的原理結(jié)構(gòu)圖如圖2所示, 特征圖X通過卷積變換F(tr)之后得到特征映射U,U∈RH×W×C, 然后利用SE模塊對(duì)特征重校準(zhǔn)。SE模塊首先利用壓縮操作Fsq(·)將特征圖U壓縮成1×1×C格式, 該操作通過跨空間維度聚合特征圖(H×W)生成通道描述符。 其功能為產(chǎn)生一個(gè)嵌入的全局分布的通道特征響應(yīng), 將全局接受域信息整合供其他層使用。Fex(·)為激勵(lì)操作, 作用于篩選聚合后的全局特征。 然后利用自選門函數(shù)(Sigmoid)產(chǎn)生每個(gè)通道調(diào)制權(quán)值集合, 并將這些權(quán)值集合作用于特征圖U中, 得到SE模塊輸出, 得到新的特征圖H×W×C。
圖2 SE模塊結(jié)構(gòu)圖
由于農(nóng)作物病害識(shí)別對(duì)細(xì)節(jié)特征提取要求較高, 為進(jìn)一步提高SE模塊對(duì)通道中重要特征分辨能力, 利用多層感知機(jī)(multilayer perceptron, MLP)可學(xué)習(xí)任意函數(shù)映射的數(shù)學(xué)特性代替SE中的Excitation模塊分離混合特征, 并定義為SMLP_Res模塊。
圖3 SMLP-Res模塊結(jié)構(gòu)圖
為實(shí)現(xiàn)特征的壓縮, 利用全局平均池化將大小H×W×C的特征圖在通道維度上壓縮為1×1×C的特征, 對(duì)于第k個(gè)通道的壓縮操作為
(1)
式(1)中,uk(i,j)為特征圖U中第k個(gè)通道上位于(i,j)處的值;Fsq(U)=Fsq(u1,u2, …,uc)為MLP的輸入特征。 為捕獲通道上的依賴關(guān)系, 激勵(lì)模塊利用含有多隱藏層的多層感知機(jī)學(xué)習(xí)全局特征中各通道之間的非線性關(guān)系。 將提取的重要特征映射到高維空間中可減少特征損失, 再對(duì)特征進(jìn)行兩次降維, 分離顯式特征, 生成調(diào)制權(quán)值。 MLP模型輸入輸出變量之間的函數(shù)關(guān)系表示為
f(u)=b(3)+W(3)(G(b(2)+W(2)(G(b(1)+W(1)Fsq(U))))
(2)
式(2)中,b(1),b(2),b(3)為偏置向量;W(1),W(2),W(3)為權(quán)重矩陣;G為ReLU激活函數(shù)。 由于激勵(lì)模塊需要學(xué)習(xí)通道之間的非線性相互作用關(guān)系, 保持特征的多樣性, 需要多種重要特征同時(shí)增強(qiáng)。 為滿足這些要求, 將MLP最后一層輸出不經(jīng)過ReLU激活函數(shù), 選擇Sigmoid門函數(shù)對(duì)MLP輸出結(jié)果進(jìn)行處理, 作為注意力機(jī)制最后一層的激活函數(shù)
(3)
Sigmoid函數(shù)實(shí)現(xiàn)對(duì)SE模塊分離出的重要特征進(jìn)行篩選, 利用乘法運(yùn)算將輸出的特征權(quán)值S對(duì)U加權(quán), 校準(zhǔn)特征權(quán)重, 對(duì)于每個(gè)通道的權(quán)值校準(zhǔn)計(jì)算方法見式(4)。
(4)
隨著CNN層數(shù)逐漸加深, 所能提取到圖像特征越來越豐富, 然而深度增加的同時(shí)會(huì)帶來梯度彌散或梯度爆炸問題。 2015年有研究學(xué)者提出了在跳躍連接和恒等映射基礎(chǔ)上的殘差網(wǎng)絡(luò)(residual network, ResNet)結(jié)構(gòu), 解決了CNN 隨著深度增加帶來的網(wǎng)絡(luò)退化問題。 基于ResNet和MLP改進(jìn)的SMLP_Res模塊和SMLP_ResNet網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。 在網(wǎng)絡(luò)中加入不同數(shù)量的批量歸一化模塊(batch normalization BN), 使用卷積操作代替FC, 使得SMLP_ResNet只在輸出時(shí)使用一層FC, 降低模型參數(shù)量。
圖4 改進(jìn)通道注意力機(jī)制的農(nóng)作物病害識(shí)別模型
模型使用的Softmax函數(shù)進(jìn)行分類, 如式(5)。
(5)
式(5)中,xi為前級(jí)分類器第i類的輸出。 在標(biāo)簽輸入之前對(duì)標(biāo)簽進(jìn)行正則化(label smoothing), 使得在計(jì)算損失值時(shí)能夠有效抑制過擬合現(xiàn)象, 如式(6)
(6)
式(6)中,yi為真實(shí)預(yù)測(cè)值, 利用得到的分類結(jié)果和正則化后的標(biāo)簽計(jì)算交叉熵?fù)p失函數(shù), 如式(7)。 根據(jù)求得的損失函數(shù)值, 利用動(dòng)態(tài)學(xué)習(xí)率調(diào)整所有權(quán)重參數(shù)。
(7)
SMLP_Res模塊分為兩種結(jié)構(gòu), SMLP_Res2在SMLP_Res1中殘差模塊的跳躍連接中加入1×1卷積層和BN層, 用于調(diào)整原輸入特征圖的維度, 以便與原始特征重校準(zhǔn)后進(jìn)行特征融合。 根據(jù)病害特征圖的大小, 修改SMLP_Res2模塊中參數(shù)值, 不斷對(duì)病害圖像提取特征, 輸出病害id作為預(yù)測(cè)結(jié)果。 模型使用卷積層代替FC層, 僅保留最后一層全連接, 從而降低模型的參數(shù)量。 其中變量n,m,l,w分別為對(duì)應(yīng)模塊的數(shù)量, 通過改變參數(shù)值, 構(gòu)建不同層數(shù)的病害模型如表2所示, 可構(gòu)建18, 50和101層三種不同深度的SMLP_ResNet模型。
表2 SMLP_ResNet病害模型參數(shù)表
采用1塊NVIDIA Tesla P100型號(hào)GPU訓(xùn)練農(nóng)作物病害識(shí)別模型, 其顯存大小為16G Bytes, 基于Ubuntu16.04 64位操作系統(tǒng)和Pytorch深度學(xué)習(xí)框架搭建了深度學(xué)習(xí)算法訓(xùn)練平臺(tái), 其中Python版本為3.7.6, Pytorch版本為1.3.0, CUDA API版本為10.0, Cudnn版本為7.5.1。
為驗(yàn)證所改進(jìn)的通道注意力機(jī)制和農(nóng)作物病害模型, 實(shí)驗(yàn)中分別對(duì)ResNet、 SENet和SMLP_ResNet模型進(jìn)行對(duì)比訓(xùn)練, 每種網(wǎng)絡(luò)分別設(shè)計(jì)了18, 50和101層三種結(jié)構(gòu), 探索不同深度對(duì)模型影響。 訓(xùn)練過程中采用梯度下降法(stochastic gradient descent, SGD)優(yōu)化網(wǎng)絡(luò)權(quán)重, 設(shè)置初始學(xué)習(xí)率為0.05, 動(dòng)量因子為0.9, 并且當(dāng)損失值變得穩(wěn)定時(shí)(在第11, 30, 48和70個(gè)迭代周期), 訓(xùn)練過程中自適應(yīng)地降低學(xué)習(xí)率4次。 Batch_size設(shè)置為64, 所有訓(xùn)練樣本全部迭代一次為一輪, 設(shè)置迭代輪數(shù)為300。 將所有網(wǎng)絡(luò)分別在不同數(shù)據(jù)集中訓(xùn)練, 分析訓(xùn)練結(jié)果。
2.2.1 不同層數(shù)SMLP_ResNet對(duì)比結(jié)果
本文使用新的數(shù)據(jù)集重新訓(xùn)練網(wǎng)絡(luò), 訓(xùn)練完成一輪后在測(cè)試集中測(cè)試模型準(zhǔn)確率, 隨著迭代次數(shù)增加, 分析訓(xùn)練過程中訓(xùn)練精度、 損失函數(shù)以及測(cè)試集中錯(cuò)誤率變化, 以驗(yàn)證模型準(zhǔn)確性。 圖5為迭代前101輪過程中, SMLP_ResNet18, 50和101三種不同層數(shù)模型在測(cè)試集中錯(cuò)誤率變化曲線。
圖5 模型測(cè)試集錯(cuò)誤率和迭代輪數(shù)關(guān)系
隨著迭代輪數(shù)增加, 三種不同層數(shù)SMLP_ResNet模型錯(cuò)誤率整體呈下降趨勢(shì), 迭代到26輪時(shí)模型錯(cuò)誤率趨于穩(wěn)定, 迭代到80~95輪時(shí)三個(gè)模型效果最好, 錯(cuò)誤率皆小于0.012 4。 其中SMLP_ResNet18的錯(cuò)誤率最低, 對(duì)應(yīng)的農(nóng)作物病害識(shí)別準(zhǔn)確率最高為99.32%, 其次SMLP_ResNet101識(shí)別效果較好, 測(cè)試集識(shí)別準(zhǔn)確率最高為99.11%, SMLP_ResNet50準(zhǔn)確率最高為99.07%。
隨著網(wǎng)絡(luò)層數(shù)的加深, 模型出現(xiàn)參數(shù)量激增的現(xiàn)象, 但當(dāng)網(wǎng)絡(luò)層數(shù)增加到一個(gè)臨界值之后, 特征過度抽象化使得網(wǎng)絡(luò)出現(xiàn)信息丟失、 過擬合等現(xiàn)象, 導(dǎo)致準(zhǔn)確率下降。 將SMLP注意力模塊加入到ResNet時(shí), SMLP_ResNet在每個(gè)殘差模塊中都對(duì)通道中的信息進(jìn)行一次篩選, 顯著區(qū)域的特征可在少量網(wǎng)絡(luò)層中被提取出來, 50層和101層SMLP_ResNet卻使得顯著區(qū)域的特征被反復(fù)提取, 變得更加抽象化, 導(dǎo)致識(shí)別率下降。 綜上實(shí)驗(yàn)結(jié)果, SMLP_ResNet模型在18層時(shí)的識(shí)別率高于更深層數(shù)的網(wǎng)絡(luò), 由此驗(yàn)證了所提出的淺層網(wǎng)絡(luò)病害識(shí)別的可行性。
2.2.2 不同方法的識(shí)別結(jié)果對(duì)比
表3對(duì)比了不同方法在Plant Village數(shù)據(jù)集中識(shí)別效果, 每種方法中選取測(cè)試集最高的準(zhǔn)確率作為該網(wǎng)絡(luò)最佳識(shí)別率。 通過表3可知, 使用注意力模塊的SENet18和SMLP_ResNet18網(wǎng)絡(luò)的準(zhǔn)確率均高于沒有注意力模塊的AlexNet, GoogleNet22和ResNet18網(wǎng)絡(luò)的準(zhǔn)確率。 所提出的SMLP_ResNet18的準(zhǔn)確率比SENet18的識(shí)別率高0.13%。 文獻(xiàn)[5]中的AlexNet在Plant Village只挑選了一半的數(shù)據(jù)集進(jìn)行學(xué)習(xí), 相比本數(shù)據(jù)集減少了32 383張病害圖像, 其病害識(shí)別準(zhǔn)確率最高為99.08%。 當(dāng)數(shù)據(jù)集增加到與本工作相同數(shù)量時(shí), AlexNet[8]和22層的GoogleNet網(wǎng)絡(luò)非遷移學(xué)習(xí)的識(shí)別率分別為97.82%和98.36%, 識(shí)別率相比本工作網(wǎng)絡(luò)低1.5%和0.96%, 且SMLP_ResNet模型權(quán)重大小遠(yuǎn)低于AlexNet。 SMLP注意力機(jī)制改變了各通道間依賴關(guān)系, 實(shí)現(xiàn)對(duì)通道特征的篩選以及對(duì)全局特征的重校準(zhǔn)。 因此將注意力機(jī)制引入病害識(shí)別, 并提出SMLP_ResNet18模型, 增強(qiáng)了每層卷積對(duì)上下文信息使用率, 抑制了通道間噪聲干擾, 強(qiáng)化了網(wǎng)絡(luò)對(duì)圖像中特定顯著區(qū)域特征表達(dá)能力。
表3 不同病害模型的識(shí)別結(jié)果
表4對(duì)比了相關(guān)研究模型與本模型的農(nóng)作物病害識(shí)別的準(zhǔn)確率。 本模型的準(zhǔn)確率相比于其他模型下的識(shí)別率最高, 且模型的參數(shù)量遠(yuǎn)小于VGG16和Inception-V3等網(wǎng)絡(luò), 證明了本模型使用了較淺的網(wǎng)絡(luò)模型和參數(shù), 提高了深度學(xué)習(xí)模型在農(nóng)作物病害的識(shí)別率, 證明了其可行性。
表4 與前人研究中模型的精度比較
續(xù)表4
為進(jìn)一步驗(yàn)證模型對(duì)病害發(fā)病早期的識(shí)別效果, 選擇識(shí)別難度較大的AI Challenger 2018農(nóng)作物病害數(shù)據(jù)集進(jìn)行試驗(yàn), 將每種病害的早期和晚期劃分為不同的分類等級(jí)進(jìn)行訓(xùn)練。 訓(xùn)練過程中不同模型在測(cè)試集中的錯(cuò)誤率變化如圖6所示。
圖6 模型測(cè)試集的錯(cuò)誤率和迭代輪數(shù)關(guān)系
隨著訓(xùn)練輪數(shù)增加, SMLP_ResNet18, SENet18, ResNet18和AlexNet在測(cè)試集中錯(cuò)誤率整體呈下降趨勢(shì)。 但AlexNet在測(cè)試集錯(cuò)誤率震蕩范圍較大, 識(shí)別率較低且不穩(wěn)定。 相對(duì)而言, SMLP_ResNet18收斂情況較好, 網(wǎng)絡(luò)在測(cè)試集中的錯(cuò)誤率也較為穩(wěn)定, 保持在0.130 7~0.15的區(qū)間內(nèi)。
不同病害識(shí)別方法實(shí)驗(yàn)對(duì)比結(jié)果如表5和圖7所示。 首次將注意力機(jī)制引入農(nóng)作物病害識(shí)別, 并設(shè)計(jì)新的適用于多種農(nóng)作物病害識(shí)別的注意力機(jī)制, 在不造成參數(shù)激增的前提下, 提高農(nóng)作物病害識(shí)別的準(zhǔn)確率。 所提出的SMLP_ResNet18在測(cè)試集中準(zhǔn)確率為86.93%, 高出同層數(shù)ResNet18模型3.1%。 AlexNet模型不僅識(shí)別率比SMLP_ResNet18低3.43%, 其模型權(quán)重大小是SMLP_ResNet18的4.48倍。 實(shí)驗(yàn)結(jié)果表明, 所提出的SMLP_ResNet18不僅提高了農(nóng)作物病害識(shí)別的準(zhǔn)確率, 相比于8層的AlexNet模型, 還保持了較低的參數(shù)量。 SMLP_ResNet18的參數(shù)量約為AlexNet模型參數(shù)量的五分之一, 修改后的模型并未引起參數(shù)量的激增, 同時(shí)提高了多種植物和病害數(shù)據(jù)集的識(shí)別率。
表5 不同病害識(shí)別方法對(duì)比
圖7 不同病害識(shí)別方法的訓(xùn)練結(jié)果對(duì)比
為了更好地理解網(wǎng)絡(luò)的識(shí)別過程, 利用Grad-CAM(gradient-weighted class activation mapping)技術(shù)[13]對(duì)測(cè)試集中部分病害樣本生成如圖8所示的熱力圖。 紅色越深表示模型對(duì)此部分圖像的關(guān)注度越高, 黃色部分次之, 熱力圖越偏藍(lán), 則代表模型認(rèn)為此部分為冗余信息, 藍(lán)色部分特征對(duì)病害識(shí)別的影響程度較小。 從圖8可看出, AlexNet的關(guān)注集中在了背景區(qū)域, 其他三種模型的關(guān)注區(qū)域都來自葉片本身。 當(dāng)數(shù)據(jù)量增大、 分類任務(wù)增多以及識(shí)別難度增大時(shí), AlexNet會(huì)出現(xiàn)識(shí)別率降低的問題。 SMLP_ResNet18的關(guān)注區(qū)域集中在葉片的病害部位, 相對(duì)于其他網(wǎng)絡(luò)的整體效果較好, 對(duì)辣椒瘡痂晚期(pepper late bacterial spot)病識(shí)別時(shí)受圖像中陰影部分的影響較少, 而SENet18將陰影誤認(rèn)為是重點(diǎn)關(guān)注區(qū)域。 ResNet18和SENet18對(duì)葉片背景區(qū)域的關(guān)注高于SMLP_ResNet18, 因此本文提出的SMLP_ResNet18識(shí)別病害時(shí)更依賴于病害區(qū)域的特征, 減少了背景對(duì)識(shí)別結(jié)果的影響, 具有更高的魯棒性。
圖8 部分病害葉片識(shí)別熱力圖
以番茄病害為例, 不同病害早期和晚期的熱力圖分析結(jié)果如圖9所示。 經(jīng)眾多熱力圖分析可知, SENet18和ResNet18對(duì)陰影區(qū)域的關(guān)注普遍較高, 抗陰影噪聲的能力較差, 并且對(duì)于晚期病害圖像的關(guān)注區(qū)域有所偏差, 對(duì)早期病害葉片的關(guān)注更集中于背景區(qū)域。 SMLP_ResNet18對(duì)晚期病害的關(guān)注區(qū)域相對(duì)理想, 重點(diǎn)關(guān)注區(qū)域基本集中在葉片的發(fā)病區(qū)域, 在早期病害的識(shí)別中, 對(duì)背景的關(guān)注遠(yuǎn)少于SENet18。
圖9 不同番茄病害早期和晚期樣本熱力圖分析
由此可知, SMLP_ResNet18對(duì)晚期病害的識(shí)別強(qiáng)于對(duì)早期病害的識(shí)別, 因此在數(shù)據(jù)集Plant Village中的識(shí)別率高于AI Challenger 2018。
融合計(jì)算機(jī)視覺算法和深度卷積神經(jīng)網(wǎng)絡(luò), 首次將注意力機(jī)制應(yīng)用于作物病害識(shí)別領(lǐng)域, 并基于可見光譜圖像提出了一種新的注意力機(jī)制, 設(shè)計(jì)了一種可同時(shí)識(shí)別多種作物中不同疾病的SMLP_ResNet18淺層網(wǎng)絡(luò)識(shí)別模型, 利用多層感知機(jī)改進(jìn)通道注意力機(jī)制, 改善通道間的依賴關(guān)系, 篩選通道中顯著特征并過濾冗余噪聲, 將重新加權(quán)后通道特征重新作用于卷積模塊, 實(shí)現(xiàn)通道特征的重校準(zhǔn), 使模型更加關(guān)注葉片的病害區(qū)域。
利用不同識(shí)別難度的Plant Village和AI Challenger 2018兩個(gè)公開數(shù)據(jù)集重新訓(xùn)練SMLP_ResNet18及其他對(duì)比識(shí)別模型。 實(shí)驗(yàn)結(jié)果表明, SMLP_ResNet18在Plant Village數(shù)據(jù)集中準(zhǔn)確率達(dá)到99.32%, 在包含早期病害圖像的識(shí)別難度較高的數(shù)據(jù)集AI Challenger 2018中準(zhǔn)確率最高達(dá)到86.93%, 均高于改進(jìn)前的SENet18和ResNet18。 相比于文獻(xiàn)[8]對(duì)AlexNet、 GoogleNet22在Plant Village中重新訓(xùn)練的準(zhǔn)確率高1.5%和0.96%, 且模型參數(shù)量只約為AlexNet的五分之一。 利用Grad-CAM生成的熱力圖中可看出SMLP_ResNet18相比于其他模型更關(guān)注于葉片病害部位的特征。
提出的SMLP_ResNet18模型實(shí)現(xiàn)了淺層網(wǎng)絡(luò)下高精度的病害識(shí)別, 且能夠提高病害區(qū)域的辨識(shí)度, 適用于多種農(nóng)作物不同病害場(chǎng)景下的高精度識(shí)別。
考慮到早期病害圖像易與健康葉片發(fā)生混淆, 下一步研究可利用級(jí)聯(lián)網(wǎng)絡(luò), 將農(nóng)作物病害分類, 針對(duì)每種病害不同發(fā)病程度建立二級(jí)網(wǎng)絡(luò), 解決類間差異性較小問題, 提高早期農(nóng)作物病害識(shí)別的準(zhǔn)確率。