摘" 要:蘋果葉片病害檢測對蘋果生產至關重要,為達到病害檢測精度,對YOLOv7算法進行改進。首先用C3網絡層替換部分ELAN層,使模型在簡化的同時具有較好的精確度。其次在YOLOv7的Head部分的MP層加入SimAM注意力機制,提高網絡的分類能力。最后,結合知識蒸餾理論,使用訓練的大模型指導改進后的模型進行學習,進一步提高模型的識別精度。使用蘋果葉片數據集測試所設計的模型,其mAP結果為92.29%。實驗顯示,該文設計的模型對YOLOv7的蘋果葉片病害識別能力有較大提升,與當前主流算法相比,具有一定的先進性。
關鍵詞:農業病害;YOLOv7;注意力機制;知識蒸餾;深度學習
中圖分類號:TP391" " " "文獻標志碼:A" " " " " 文章編號:2096-9902(2023)12-0001-04
Abstract: Apple leaf disease detection is very important to apple production. In order to achieve disease detection accuracy, the YOLOv7 algorithm is improved. First of all, the C3 network layer is used to replace part of the ELAN layer, so that the model has better accuracy while simplifying. Secondly, SimAM attention mechanism is added to the MP layer of the Head part of YOLOv7 to improve the classification ability of the network. Finally, combined with the knowledge distillation theory, the large model of training is used to guide the learning of the improved model to further improve the recognition accuracy of the model. Using the apple leaf data set to test the designed model, the mAP result is 92.29%. The experimental results show that the model designed in this paper can greatly improve the ability of YOLOv7 to identify apple leaf diseases, and it is advanced compared with the current mainstream algorithms.
Keywords: agricultural diseases; YOLOv7; attention mechanism; knowledge distillation; deep learning
隨著我國農業生產的蓬勃發展,提高農作物的質量和產量已成為當務之急。病害是影響農作物生長發育和產量的重要因素之一,因此及時準確地識別病蟲害對于保障糧食安全、促進農業可持續發展具有重要意義。本文選擇應用深度學習算法解決蘋果葉片病害檢測問題,旨在提升農作物產量和質量,促進農業可持續發展。
農作物病蟲害檢測是當前研究的重要課題之一,趙春霞[1]使用ResNet18網絡成功實現了高級抽象特征自動提取功能,測試時的損失值為0.247,在番茄數據集上準確率達到92.7%。楊英茹等[2]使用CCL-SVM方法進行葉片圖像病蟲害識別,測試識別率達到97.5%。馬超等[3]提取病害HOG特征輸入SVM模型對水稻病害進行檢測,對多種病斑檢測的綜合識別率為94%以上。針對農業病害種類繁雜、識別難度大及人工識別成本較高的問題,本文將采用改進YOLOv7算法結合知識蒸餾理論對蘋果葉片病害種類進行識別,旨在提高農作物病蟲害的檢測準確性和效率。
1" 數據集準備及數據預處理
本文中農業病害圖像數據使用西北農林科技大學制作的蘋果葉片數據集,數據集包括斑點落葉病、褐斑病、花葉病、灰斑病及銹病等,如圖1所示,常見的蘋果葉面病理圖像數據,數據集原始圖片為1 591張,每種病害約500張。
本文使用翻轉、對比度、倒置和鏡像等圖像預處理方法擴充訓練數據集,擴充后的數據集規模為斑點落葉病5 343張,褐斑病5 655張,灰斑病4 810張,花葉病4 875張,銹病5 694張,共有20 000余張圖像。
2" 模型建立
2.1" SimAM注意力機制
SimAM是由李子茂等[4]設計的一種無附加信息輸入,并且能夠為layer內特征圖進行3D衰減權重推理的一種注意力機制。該模塊設計思想源自腦部注意力機制,通過改進能量函數以尋求神經元之間的關鍵信息,以解析解的形式計算權值。能量函數定義為et(*)
SimAM注意力機制模塊如圖2所示,根據定義的能量函數設定和提升特征提取能力,Input可設定為各類特征介質,特征提取及融合可作為Output,其尺寸與Input一致。X表示Input的特征向量。
2.2" 網絡模型的建立
YOLOv7[5]是一種基于深度學習的目標檢測算法,具有高效、快速的特點,在網絡結構上引入了空間注意力機制、DenseBlock(密集連接塊)等,檢測的快速性及準確性上有較大提升。網絡結構包括Backbone(主干網絡)、Neck(頸部網絡)和Head(檢測頭) 3個部分。本文設計并優化YOLOv7網絡模型如圖3所示。首先,使用C3網絡層替代部分ELAN(高效層聚合網絡)層。其次,在模型的Neck部分MP(下采樣)層中加入SimAM注意力機制,改進網絡的同時不增加網絡的額外參數。為了進一步提高模型的性能,為了提升樣本特征豐富度,使模型兼具快速性和準確性,在訓練策略中加入數據增強方法。
2.3" 知識蒸餾
知識蒸餾[6]分為2部分,一部分是大型網絡模型,稱為教師模型,作用是輸出監督特征信息;另一部分是小型輕量化網絡模型,作用是接收教師模型特征并學習訓練特征。教師模型將訓練得到的特征轉移到學生模型上,通過此方式,學生模型能夠學習教師模型的特征并以更高的效率推理。算法框架如圖4所示。
教師模型Output的種類可以作為學生模型的softlabel,以往的訓練方法是求類別label的極大似然估計,正標簽概率接近1,其他則為0。當模型融入知識蒸餾理論后,以教師模型為指導,學生模型訓練時直接接收教師模型的輸出,這是將極大似然估計求解應用到類別概率上。在Softmax(輸出類別分類器)層上存在許多類別特征,其中正負標簽均存在,所以這種方式相較以往的訓練效果更好。通過知識蒸餾,學生模型可以超越獨自訓練時的準確率,這個特性在推理效率上體現得更為突出。若特征信息獲取位置為k,其中某類k的處理結果為" ",其標簽定義為" ",將處理結果送入包含溫度參量T的Softmax分類器,得到最終結果是" " 的分類概率
式中:N代表存在的不同類別。若將T為1代入,上式結果等價于直接使用Softmax分類器。常見的模型訓練方式是使用交叉熵損失函數求解模型輸出和真實結果間的距離,并根據損失函數的大小來更新模型參數。然而,當訓練集中包含大量的困難樣本時,直接使用交叉熵損失函數可能會影響模型的泛化能力。因此,可以采用知識蒸餾方法來提高模型的性能和泛化能力,其中“蒸餾損失”是由教師模型輸出結果與學生模型輸出結果的距離表示。這種新的損失函數能夠幫助學生模型更好地學習到教師模型的知識,從而提高模型的性能和泛化能力。蒸餾損失定義如下
3" 實驗與結果分析
3.1" 數據集劃分及評價指標
本文實驗使用西北農林科技大學制作的蘋果葉片數據集,按照8∶2的比例劃分訓練集和測試集。評價指標采用精度均值(mAP,IOU閾值取0.5)評估模型性能,模型的檢測效率由評價指標FPS表示,AP的公式為式(6),mAP公式為式(7)。
式中:TP代表正樣本True的個數;TN代表負樣本True的個數;FP代表負樣本False的個數;FN代表正樣本False的個數。
3.2" 實驗細節
本文實驗采用的軟硬件配置為InterCorei512600K處理器、RTX2070super 8 G顯卡、16 G內存和Windows10操作系統,實驗環境為pytorch2.0、cuda11.7。
在訓練階段,本文使用YOLOv7x模型作為教師模型進行訓練,改進后的模型使用YOLOv7n的權重文件進行預訓練,因為改進后的模型和原模型共享大部分結構,因此可以接收大量的權值參數,使得模型更容易被訓練,最后使用教師模型指導改進后的模型進行訓練。參數設定:Batchsize(批輸入大小)為4,Epoch(訓練輪次)為300,梯度下降算法使用Adam(自適應矩估計優化器),輸入圖片的Size為640像素×640像素,最初學習率為0.01,權重按照0.000 005的系數衰減,學習率調整策略為余弦退火算法。
3.3" 對比實驗
為驗證改進后模型的先進性和對病害圖像的泛化能力,使用自建數據進行驗證,并與當前多種主流模型做對比實驗,結果見表1。從表1中可以看出,本文算法在性能上均優于YOLOv3、YOLOv4、YOLOv5等主流模型,同時相比于YOLOv7n模型獲得了mAP3.81%的提升。綜上所述,所提及的網絡模型對農業病害目標的識別更精確,且具有良好的泛化性和穩定性。
3.4" 消融實驗
為了驗證改進部分對網絡性能有較好的效果,設計消融實驗,將原YOLOv7n作為基線模型,結果熱力圖可視化方法通過Grad-CAM算法[10]實現,實驗結果如圖5所示。對于病害樣本,使用知識蒸餾方法并加入SimAM注意力機制后,熱力圖的高亮范圍變廣,說明在SimAM注意力機制作用下,模型對目標物體輪廓的位置信息更加敏感,更容易關注到目標物體的完整區域。
4" 結束語
本文以YOLOv7n為基線模型,提出一種知識蒸餾算法結合SimAM注意力機制的算法,有助于網絡的精準定位,獲取更多全局信息。利用改進的YOLOv7n模型處理大量的病害數據,將提取的特征運用到目標檢測任務中。在改進模型基礎上,本文采用知識蒸餾算法,利用大模型擔任教師模型指導改進模型訓練、模型輸出。本文所提的方法不僅可有效提高模型的準確率,還確保了模型的運行速度。根據實驗結果,所提出的改進方法優于當前主流模型,可作為一種有效的解決方案應用于相關領域。
參考文獻:
[1] 趙春霞.基于ResNet18的圖像分類在農作物病蟲害診斷中的應用[J].農業與技術,2021,41(19):10-13.
[2] 楊英茹,吳華瑞,張燕,等.基于復雜環境的番茄葉部圖像病蟲害識別[J].中國農機化學報,2021,42(9):177-186.
[3] 馬超,袁濤,姚鑫鋒,等.基于HOG+SVM的田間水稻病害圖像識別方法研究[J].上海農業學報,2019,35(5):131-136.
[4] 李子茂,李嘉暉,尹帆,等.基于可形變卷積與SimAM注意力的密集柑橘檢測算法[J].中國農機化學報,2023,44(2):156-162.
[5] WANG C Y, BOCHKOVSKIY A, LIAO H. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[C]//arXiv,2022.
[6] 湯文亮,黃梓鋒.基于知識蒸餾的輕量級番茄葉部病害識別模型[J].江蘇農業學報,2021,37(3):570-578.
[7] REDMON J, FARHADI A.YOLOv3:An incremental improvement[C]//arXiv,2018.
[8] BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: Optimal speed and accuracy of object detection[C]// arXiv,2004.
[9] ZHU X, LYU S, WANG X, et al.TPH-YOLOv5:Improved YOLOv5 based on transformer prediction head for object detection on drone-captured scenarios[C]//2021 IEEE/CVF International Conference on Computer Vision Workshops (ICCVW),2021.
[10] SELVARAJU R R, COGSWELL M, DAS A, et al.Grad-CAM: Visual explanations from deep networks via gradient-based localization[C]//IEEE International Conference on Computer Vision.IEEE, 2017.