蔡泳恒,郭建文,李宇琛,陳鳳宜
(東莞理工學院,廣東東莞 523808)
早期發現作物疾病是保護作物和控制疫情的主要手段[1]。植物疾病一般都會影響葉片,葉片對病害的鑒定起著至關重要的作用[2]。通過圖像能直觀地識別健康作物和病害作物以及病變種類[3],但需要全面的植物病原學知識[4,5],依靠人力來快速、科學解讀病害圖像信息很困難。
基于深度學習的智能診斷應用得到廣泛關注,深度學習模型可以在保證識別效果的前提下有效地減弱專家經驗的干擾[6]。現有研究多基于實驗室公開數據集,如Plantvillage,具有現場病害數據庫不足又弱化樣本攜帶的信息量,對深度學習智能診斷模型的建立提出了更高的要求。
本研究以柑橘為例,收集制作柑橘病蟲害數據集,在此基礎上,采用ResNet50、DenseNet121、MobileNetV2、Vit Transformer、ECA_ResNet 5 種模型分別進行訓練,評估深度學習算法在該數據集上的效果,為相關研究提供支持。
研究小組制作了柑橘葉片數據集(圖1)。數據集包含受感染的葉片共2 648 張,為黃龍病、缺鎂癥、正常葉片3 個總類,如表1 所示。

表1 現場數據集的制作

圖1 葉片數據集
采用ResNet50[7]、DenseNet121[8]、MobileNetV2[9]、Vit Transformer[10]、ECA_ResNet[11]5 種模型分別進行訓練,探究深度學習應用于柑橘葉片識別中的優勢。各種方法的簡介和特點如表2 所示。

表2 5 種深度學習模型的簡介及特點
使用MistGPU 云平臺進行數據訓練,采用3070顯卡,Python 環境為3.8。首先將圖片數據集進行歸一化處理,統一裁剪成224×224 相素大小的圖片,導入神經網絡,將分類層(全連接層)修改為3,設置使用Adam 優化器,使用余弦退火學習率調整策略,并設置初始學習率為0.01。在使用Vit Transformer 模型進行訓練時,Adam 優化器效果較差,使用SMG 優化器替換,將最小學習率設置為10-6,學習率在以100 個epoch 為1/4 個余弦周期下進行訓練。
訓練集試驗數據包括準確率和損失值,分別用Train_Acc 和Train_Loss 表示。驗證集試驗數據也是準確率和損失值,分別用Val_Acc 和Val_Loss 表示。損失值是用于衡量模型預測的好壞,反映訓練模型預測與實際數據的差距,一般訓練結果的損失值越小,模型的魯棒性就越好,使用交叉熵損失函數(Cross entropy loss)計算訓練結果的損失值,如算式(1)。
5 種算法經過100 次訓練得到的5 組訓練數據如表3 所示。訓練100 次,5 種模型的驗證集與訓練集的準確率和損失值如圖2 至圖5。

表3 經過100 次訓練模型的主要參數

圖2 100 次訓練中訓練集的損失值變化

圖3 100 次訓練中訓練集的準確率變化

圖4 100 次訓練中驗證集的損失值變化

圖5 100 次訓練中驗證集的準確率變化
從訓練結果來看,Vit Transformer 最終的訓練精度最高,在訓練了10 次左右就達到了98%的訓練精度。ResNet50、DenseNet121、MobileNetV2 在相同的訓練參數下,DenseNet121 的訓練精度最高,Mobile-NetV2 其次,ResNet50 最小,而且MobileNetV2 前30次訓練波動較大,訓練100 次后損失值最小,采用MobileNetV2 時,最好提高訓練輪次。
在對比ResNet50 和加入注意力機制后的ECA_ResNet,加入注意力機制后精度更高,損失值更小。在訓練時間對比上,ResNet50、DenseNet121、MobileNetV2 的訓練用時相差不大,Vit Transformer訓練用時略微增加,ECA_ResNet 訓練用時最長。Vit Transformer 模型無論是在訓練精度還是訓練輪次上都有優勢,加入注意力機制的ECA_ResNet 相比其他3 個神經網絡模型在訓練集有一定優勢,但使用的訓練時間和資源也會提高。
采用5 種深度學習模型對研究小組收集制作的柑橘葉片數據集進行訓練,驗證了數據集能支持深度學習的研究和應用。在深度模型比對的結果中,Vit Transformer 模型更加適合于解決該數據集的識別任務,接下來將進一步優化Vit Transformer 模型,提升性能。