溫釗發,蒲智,程曦,趙昀杰
(新疆農業大學計算機與信息工程學院,新疆烏魯木齊 830052)
如今,降低病害對農業生產的影響依然是全球重大挑戰[1]。 在中歐等集約化農業生產地區因病害導致的產量減少高達50%[2],全球因病蟲害造成的糧食生產損失在20%~40%之間[3]。 因此,作物病害的快速精準判別對糧食生產與農業發展具有重要意義。
傳統病害判別需要農業人員實地考察判別或使用專業設備檢測,時效性低[4]、主觀性強、投入成本高,易誤判或錯過病害早期防治[5]。 隨著圖像處理技術的發展,研究者們將其與病害識別相結合并取得了較好的成果,但該方法需要人工選定病害特征并進行提取分割,耗時耗力且造成全局信息割裂,產生語義鴻溝[6]。 而深度學習不需要前期冗雜的數據處理工作,采用端到端的方式提取病害高級特征,在保持良好性能的同時降低其他負面影響。
冀常鵬等[7]使用Ghost 模塊搭建的卷積神經網絡在PlantVillage 數據集上對番茄葉面病害的識別準確率達到98.53%,參數量為2.51 M;郭利進等[8]通過修改LeNet 參數建立的深度學習卷積神經網絡,在PlantVillage 玉米數據集上對其葉部3 種病害的識別準確率達到97.89%;孫文斌等[9]基于可見光譜在殘差網絡(ResNet)中引入注意力機制建立SMLP_ResNet18 網絡,該網絡在AI Challenger_2018 數據集上對多種農作物病害的識別準確率達到86.93%,模型權重為48.6 MB。 Ni等[10]結合密集連接思想改進ResNet50,相比原網絡對作物病害識別的準確率提高了0.8%。 以上研究都是基于簡單背景下的病害識別研究,網絡模型的魯棒性低、泛化性差,在實際復雜的農業生產環境中應用時易受外界因素干擾,準確率大幅降低。
在復雜背景病害識別研究中,孫俊等[11]在MobileNet-V2 模型中引入特征金字塔與注意力機制,使改進模型對復雜背景農作物葉片病害的識別準確率達到92.20%,參數量為3.5 M;葉中華等[12]使用目標檢測SSD 模型,對復雜背景農作物病害圖像識別的精度值達到83.90%;帖軍等[13]通過減少ResNet34 的殘差數量與網絡寬度使對自然背景下柑橘病害圖像的識別準確率達到93.6%;劉斌等[14]在Inception-ResNetV2 中引入注意力機制與Focal Loss 損失函數,并通過快照集成法集成模型,可使蘋果葉部病害的識別準確率達到90.82%。 黃林生等[15]在ResNet18 中引入Inception 模塊,并加入注意力機制,對田間8 種農作物病害的識別準確率達到95.62%,權重文件為44.2 MB。 這些研究雖然提高了復雜環境中模型的魯棒性與泛化性,但依舊存在準確率不夠理想、參數過多、權重文件過大,難以搭載至移動端進行實地應用等問題。
針對上述問題,本文以復雜背景下的玉米和蘋果病害葉片為研究對象,提出一種基于知識蒸餾與EssNet 的病害識別方法,不僅實現了復雜環境下的農作物病害高效精準識別,還滿足了模型輕量化要求,易于搭載至移動端,同時利用對比試驗與消融試驗證實了網絡有效性,為以后基于深度學習的移動端病害識別模型研究提供了思路。
1.1.1 數據采集 綜合考慮模型對病害特征的顯著性提取能力以及在復雜環境的魯棒性應用,本文使用簡單背景和復雜背景兩大類葉片圖像構成原始數據集,如圖1 所示。 數據集共包含2 種作物(玉米、蘋果)的9 種病害圖像(蘋果斑點落葉病、蘋果褐斑病、蘋果灰斑病、蘋果花葉病、蘋果銹病、蘋果黑星病、玉米灰斑病、玉米大斑病、玉米銹病)和2 種健康圖像(蘋果健康、玉米健康),共6763 張。 圖像數據從PlantVillage 數據集、New Plant Diseases Dataset 數據集、Apple Scab LDs 數據集以及實地拍攝圖像中通過人工篩選、數據清洗得到,各類病害葉片圖像數量如表1 所示。

表1 原始數據集樣本分布

圖1 作物病害圖像樣例
1.1.2 數據預處理 首先將原始數據集以8∶2 的比例劃分為訓練集與測試集,確保數據的相對獨立性[16]。 然后在訓練集上采用數據增強操作模擬多種田間復雜環境,提升數據多樣性,緩解訓練階段的過擬合現象,提高模型的抗干擾能力[17]。顏色特征是病害表現的關鍵特征之一[18],為避免降低模型對病害特征的提取能力,在數據增強階段不對顏色特征進行操作,僅采用左右翻轉、垂直翻轉、角度旋轉、亮度調整、對比度調整5 種方式,效果如圖2 所示。 為提高增強效果的隨機性,同時避免數據增強過度,通過隨機選取多種增強方法的方式進行增強操作,參數如表2 所示。

表2 圖像增強操作

圖2 圖像增強效果展示
1.2.1 知識蒸餾 增加網絡結構的深度與寬度是提高模型特征提取能力最直接的方法,但該操作會引起模型參數量變多、復雜度提高等問題。知識蒸餾(knowledge distillation,KD)[19]借助混合損失函數將學習能力強、性能優異但臃腫的教師模型先驗知識萃取出來,然后傳授給輕量級學生模型[20],在保證學生模型輕量化的同時使其概率分布趨近于教師模型,提高學生模型的收斂速度與性能表現。 KD 學習結構如圖3 所示。 首先對教師模型標簽與學生模型預測標簽引入蒸餾溫度進行處理,并使用KL 散度損失函數(Kullback-Leibler Divergence,KL)得到軟損失函數值,如式(1)所示;再對學生模型預測標簽與真實標簽使用交叉熵損失函數(Cross Entropy Loss,CE)得到硬損失函數值,如式(2)所示;最后對兩個損失函數值進行加權計算得到混合損失值,如式(3)所示。

圖3 知識蒸餾學習結構
式中:XTi代表教師模型輸出,XSi代表學生模型輸出,SL 代表軟損失函數值,HL 代表硬損失函數值,Tb 代表真實標簽值,KDLoss代表混合損失值,i代表索引序號,n 代表i 的總數,α 代表損失權重值。
1.2.2 模型選取 隨著深度學習的發展,卷積神經網絡提出了許多新的結構與思想,在各個領域都取得了較好效果。 本研究將各主流網絡在數據集上進行從頭訓練,各網絡表現如表3 所示。 可見,EfficientNetB0 在測試集上的準確率、平均精確率以及平均F1 分數均最高, ShuffleNetV2_0.5 的網絡參數量與訓練出的模型權重最小。 因此,選取ShuffleNetV2_0.5 為基礎網絡,EfficientNetB0 為教師模型。

表3 網絡在測試集的表現對比
1.2.3 ECA 通道重排模塊 ShuffleNetV2_0.5 是Ma 等[21]提出的一種輕量級網絡結構,該網絡的通道重排模塊由通道拆分、逐點卷積、深度卷積以及通道重排4 部分構成,如圖4 所示。 其中通道拆分減少了ShuffleNetV1[22]中的卷積分組數,降低了網絡碎片化程度,提高了模型運行速度;逐點卷積與深度卷積降低了卷積過程運算量,降低了模型運算復雜度;通道重排增強了拆分后各組的通道信息流動,提高了模型對全局信息的獲取交互。

圖4 ShuffleNetV2_0.5 的通道重排模塊
但針對復雜背景下的作物病害圖像識別任務,ShuffleNetV2_0.5 存在一些不足。 由于外界干擾因素過多、病斑面積大小不一,在網絡特征提取過程中會出現特征丟失或特征提取錯誤等問題,使網絡關注于葉片其他區域,基于此本文提出了ECA 通道重排模塊,如圖5(a、b)所示。 高效通道注意力(ECA)[23]綜合考慮了輸入特征各通道間的聯系性與獨立性,使用步長為1、大小為k 的一維卷積對輸入通道計算權重,在不破壞特征信息的基礎上實現了無降維的權重計算,增加了圖像病害區域權重,提高了網絡對病害區域特征的提取能力,如圖5(c)所示,一維卷積尺寸k 計算如式(4)所示。 ECA 通道重排模塊是在原深度卷積后面引入ECA 注意力機制,在不破壞病害整體特征信息的同時提高網絡對復雜背景下病斑特征的關注度,從而提高網絡收斂速度。 同時,在深度卷積后加入激活函數操作,并使用SiLU 激活函數作為全局激活函數,使網絡在深層時具有更高精度,提高模型準確率,如圖5(a、b)所示。

圖5 ECA 通道重排模塊
式中:|t |odd代表取最近整數,k 代表一維卷積大小,C 代表當前卷積核數量,γ=2,b =1。
1.2.4 余弦退火策略 在神經網絡訓練過程中,學習率是控制模型學習進度的步長,也是網絡權重更新的超參數。 學習率越高,模型收斂速度越快,但此時模型容易跳過最優解位置;學習率太低,網絡權重更新速度極慢,模型也可能會陷入局部最優解。 因此,本文選用周期性的余弦函數來調整學習率變化,即余弦退火策略(cosine annealing),如圖6 所示。 該方法使學習率在規定周期內多次由大到小重復變化,當學習率處于較大值時,可以提高模型收斂速度,擺脫陷入局部最優解的困境;當學習率較小時,模型可以平滑地尋找全局最優解,提高模型準確率。

圖6 學習率的不同調整策略
1.2.5 EssNet 網絡結構 為滿足作物病害識別的任務要求,本文設計了一種輕量化的網絡結構EssNet,如圖7 所示。 該網絡以ShuffleNetV2_0.5為基礎框架,由2 個卷積層、2 個池化層、16 個卷積模塊以及2 個全連接層構成。 為了提高模型對病斑特征的提取能力與關注度,將原網絡的通道重排模塊使用ECAStage 模塊進行替換,降低復雜背景對目標區域的影響,提高了網絡準確率。 改進的網絡得到任意像素的RGB 圖像后首先將圖像縮放為224×224 大小,然后對圖像進行歸一化處理,接著通過初始卷積層與最大池化層對特征進行提取,再將特征傳入16 個ECA 通道重排模塊提取高級特征,最后利用Softmax 得到葉片各類病害概率,選取最大概率作為模型輸出。 網絡相關參數如表4 所示。

圖7 EssNet 網絡結構
設立評價標準可以更客觀地對模型性能進行評估。 本文選用分類準確率、平均精確率、平均F1 分數、參數量、權重大小共5 個指標作為模型整體評價標準,如式(5~9)所示。
式中:Acc 代表分類準確率,Pre 代表精確率,F1_Score 代表F1 分數,Avg_Pre 代表平均精確率,Avg_F1 代表平均F1 分數,k 代表某種作物的病害種類,n 代表作物病害種類數量,TP 代表正樣本被正確劃分的個數;FP 代表負樣本被劃分為正樣本的個數;FN 代表正樣本被劃分為負樣本的個數;TN 代表負樣本被正確劃分的個數。
1.4.1 實驗環境 所有網絡模型的訓練均在本地采用相同實驗環境。 硬件方面CPU 處理器使用Intel?CoreTM i7-10875H CPU@2.30GHz,GPU圖形處理器使用NVIDIA GeForce RTX 2060,顯存6 G,運行內存16 G。 軟件配置方面Pytorch 1.10作為深度學習框架,使用Python 3.8 編程語言在Pycharm 2020.3 平臺完成網絡的結構搭建與訓練。
1.4.2 參數設置 本實驗訓練知識蒸餾溫度設置為7,使用交叉熵損失函數(CE)與KL 散度損失函數(KL),選用Adam 優化器,訓練過程中更新所有參數,初始學習率為0.01,最小學習率為0.0001,學習率變化周期為10 趟/次,訓練趟數(Epoch)為50 趟,批處理圖像數(Batch Size)為32 張/批。
為驗證本文所提基于知識蒸餾與EssNet 病害識別方法的有效性,另選取基礎網絡Shuffle-NetV2_0.5、教師網絡EfficientNetB0、輕量化網絡MobileNetV2、ConvNext 在同一數據集上進行訓練,并與本文建立方法進行對比,結果(圖8)顯示,由于余弦退火策略影響,本文建立的EssNet網絡訓練準確率出現了與學習率同周期變化的波動,但收斂速度明顯高于其他4 種網絡,更容易訓練收斂。 由表5 可知,與原始網絡相比,EssNet 準確率提高2.11 個百分點,平均精確率提高2.10 個百分點,平均F1 分數提高2.20 個百分點,模型的準確性、泛化性與魯棒性更加優異。 EssNet 與MobileNetV2 性能相近且參數量僅為其15.6%,權重大小僅為其17.01%;雖然EssNet 性能比EfficientNetB0 低1 個百分點左右,但參數量減少91.29%,權重文件降低90.45%,進一步體現了本文建立方法的輕量化與優異性。

表5 不同網絡在測試集的表現對比

圖8 不同網絡訓練準確率變化曲線
2.2.1 不同溫度值對知識蒸餾訓練的影響 在訓練過程中,蒸餾溫度值與學生模型對教師模型病害識別錯誤的樣本關注程度具有正相關性,溫度值越高,學生模型對識別錯誤的樣本關注度就越高。 本部分選用蒸餾溫度分別為3、5、7 的ShuffleNetV2_0.5 網絡進行訓練,分析溫度值對模型的影響,結果(表6)顯示,當蒸餾溫度為5 時,模型性能處于最低水平;當蒸餾溫度為3 時,模型性能處于上升階段;當蒸餾溫度為7 時,模型性能最優。 因此,選定蒸餾溫度值7 作為本文建立方法的超參數之一。

表6 不同蒸餾溫度在ShuffleNetV2_0.5 的效果
2.2.2 不同最大學習率值對余弦退火策略的影響 最大學習率的數值高低影響余弦退火策略對網絡訓練的最終效果。 數值過高會導致學習率在本周期內波動劇烈,從而出現跳過局部最優點進入下一周期的情況;數值過低會導致網絡收斂過慢,在本周期還未到達局部最優點便進入下一周期。 本部分選用最大學習率值分別為0.1、0.01、0.001 的同一網絡進行訓練,研究最大學習率對模型訓練的影響,結果(圖9)顯示,當最大學習率為0.1 或0.001 時,網絡尚未達到局部最優點便進入下一周期,導致模型準確率低,收斂速度慢;當最大學習率為0.01 時,每個周期內的網絡訓練都取得了最優準確率且收斂速度最快。 因此,選定最大學習率值0.01 作為本文建立方法的超參數之一。

圖9 最大學習率對余弦退火策略的影響
為驗證本文使用方法對模型性能提升的有效性,本部分采用消融實驗對各模塊改進網絡在同一數據集上訓練,并將結果進行對比分析。 由圖10 及表7 可知,在原始網絡上引入知識蒸餾理論,使用教師模型對學生模型進行學習指導,加快了學生模型在訓練前20 輪次中的收斂速度,在模型參數量與權重大小不變的同時,提高模型在測試集上的準確率1.16 個百分點、平均精確率1.37個百分點、平均F1 分數1.21 個百分點;在引入知識蒸餾的基礎上,進一步引入ECA 注意力機制,提高了初始改進網絡在特征提取過程中對病害區域的關注度,降低了復雜環境背景對模型的多因素干擾,進一步加快了模型的收斂速度,模型的準確率、平均精確率、平均F1 分數在初始改進網絡的基礎上分別提高了0.58、0.38、0.70 個百分點;進一步引入余弦退火策略的EssNet 網絡結構由于學習率的周期動態變化,模型在網絡訓練中不僅可以更快速地趨于收斂,還可以更平滑地找到網絡最優點,模型的收斂速度最快,性能最優,最終網絡的準確率、平均精確率、平均F1 分數分別達到95.21%、94.88%、94.64%,比二次改進網絡分別提高了0.37、0.35、0.29 個百分點,比基礎網絡分別提高了2.11、2.10、2.20 個百分點,驗證了知識蒸餾理論、ECA 注意力機制以及余弦退火策略的消融性與有效性。

表7 各類方法在測試集的表現

圖10 各類方法對網絡訓練準確率的影響
混淆矩陣可以清晰體現出模型對各類病害的識別效果,其橫軸代表圖像的真實病害標簽,縱軸代表模型識別的預測病害標簽。 本部分選取獨立測試集圖像數據對建立模型進行測試,結果(圖11)顯示,本文建立模型對2 種作物11 種病害中的大部分病害都可以達到很好的識別效果,但對蘋果灰斑病的識別準確率相對較低,容易識別為蘋果斑點落葉病。 這可能是由于兩種病害在病斑形狀、病斑顏色等特征上具有高度相似性,在病害前期或病斑不明顯時容易出現識別混淆。 總之,本文所建立方法的整體表現優于現有其他網絡識別方法,實現了對兩種作物各類葉部病害的很好識別。

圖11 EssNet 網絡模型混淆矩陣
本文針對現有農作物病害識別模型實地應用存在的多種問題,提出了一種基于知識蒸餾的EssNet 輕量級病害識別方法,實現了田間復雜背景下玉米、蘋果葉部病害的快捷精準識別。 Ess-Net 網絡以ShuffleNetV2_0.5 為基礎網絡,通過引入ECA 注意力機制降低了復雜背景與病斑面積大小不一對模型特征提取過程的干擾;利用SiLU激活函數替換ReLU 激活函數提高了在網絡深層對正負標簽的精度需求;基于知識蒸餾理論使用EfficientNetB0 對EssNet 網絡進行訓練指導,提高了模型的學習能力與收斂速度;最后通過余弦退火策略對學習率進行動態調整,使模型性能達到最優。 測試結果表明,本文建立方法在復雜背景測試集上的準確率達到95.21%,參數量僅為0.35 M,權重文件為1.49 MB,充分體現了該方法在解決復雜背景農作物病害識別問題上的優越性,可為以后的輕量級病害識別方法研究提供參考。