呂 鵬, 鄒紅艷, 朱瑞林
(南京林業(yè)大學機械電子工程學院,江蘇 南京 210037)
蘋果是全世界種植的主要水果之一,蘋果的產(chǎn)量直接影響到當?shù)毓r(nóng)的收入和生活水平,但是由于蘋果葉片經(jīng)常會受到病蟲害侵襲,導致很多產(chǎn)地的蘋果的質(zhì)量和數(shù)量都大大降低,同時大規(guī)模使用農(nóng)藥也會對土壤造成污染,所以如果可以把深度學習和蘋果葉片的病理蟲害聯(lián)系起來,精確識別蘋果葉片蟲害的位置可以進行有效的農(nóng)業(yè)噴灑,這對蘋果產(chǎn)業(yè)的增產(chǎn)有著重要意義,同時對保護環(huán)境、保護土壤也有著重要意義[1]。
隨著神經(jīng)網(wǎng)絡和深度學習的發(fā)展,很多研究者開始搭建不同的模型、運用不同的算法來檢測蘋果葉片的病蟲害。江鵬等[2]使用SSD算法檢測對福斑病,葉病、鐵病三種常見的蘋果葉片病理蟲害進行檢測,最后結果表明檢測性能可以達到79.63%mAP, 李鑫然等[3]以eepLabV3+模型為基礎構建了蘋果葉片分割模型,以Faster R-CNN模型為基礎構建蘋果葉片病害檢測模型。對五種蘋果葉片病蟲害進行檢測,最后結果表明檢測性能可以達到84.45% mAP。
本文是在基于YOLOv7的基礎上添加卷積注意力機制模塊和輕量模型,從而優(yōu)化YOLOv7的性能,建立一個兼顧性能和速度的蘋果葉片病理檢測模型Pest-Net,選取5種蘋果葉片病害構建葉片檢測數(shù)據(jù)集,并在靜態(tài)背景和野生環(huán)境下采集圖片,以提高識別的多樣性,提出了一種新的蘋果葉片病害識別模型Pest-Net,YOLOv7相較于前代YOLOv5在網(wǎng)絡結構,數(shù)據(jù)增強以及激活函數(shù)方面都有很大的改進,但是缺乏空間上對蘋果葉片缺陷的關注,本文采用CBAM注意力機制,兼顧空間和通道,多方位提高蘋果葉片的缺陷檢測精度[4]。但與此同時會增加冗余的參數(shù),需要更多的計算資源,因而結合MobileNet輕量模型,減少計算量,提高檢測速度[5]。實驗結果表明:與其他四種常見的目標檢測模型相比,Pest-Net有著更高的性能和檢測速度。
在實驗中,我們從百度PaddlePaddle的圖片庫中選取尺寸適中、圖像清晰的蘋果葉片圖片,然后使用軟件進行標注,生成實驗所需的數(shù)據(jù)集。我們通過采用一些傳統(tǒng)的圖像處理方法,如濾波、平移和旋轉(zhuǎn)來擴展數(shù)據(jù)集。在這項工作中,我們主要檢測和識別蘋果葉片的五種常見病害,因此數(shù)據(jù)集包含以下五種蘋果葉片病害圖像:交替斑病、褐斑病、灰斑病、花葉病和銹病,蘋果葉片病害圖像如圖1所示。
圖1 數(shù)據(jù)集樣本
在這項工作中,我們的數(shù)據(jù)集包含12 500張圖像。我們?yōu)槊糠N疾病選擇了2 000張圖片作為訓練集,500張圖片作為測試集。然后我們給不同的疾病打上標簽。標簽編號0~4分別代表斑疹病、褐斑病、灰斑病、花葉病和銹病。數(shù)據(jù)集的詳細信息如表1所示。
表1 數(shù)據(jù)集數(shù)量
YOLOv7的結構分為輸入端、Backbone端、Neck端和輸出端四部分。在輸入端以及輸出端YOLOv7相較于YOLOv5并沒有太大的改進,輸入端采用的是Mosic數(shù)據(jù)增強的方法,通過隨機縮放等操作拼接圖片來豐富數(shù)據(jù)集[6];輸出端采用的是CIoU_Loss損失函數(shù)來對蘋果葉片病害訓練的性能進行度量。
本文中使用的Pest-Net網(wǎng)絡模型是基于YOLOv7模型進行改進,針對空間和通道維度對蘋果葉片病害進行檢測,在提高檢測精度的同時,減少模型參數(shù),提高效率[7]。具體改進方法是將YOLOv7的Backbone網(wǎng)絡部分替換為CBAM注意力機制和Mobilenetv3網(wǎng)絡的結合體即MobileCBL,Pest-Net網(wǎng)絡模型結構圖如圖2所示。
圖2 Pest-Net網(wǎng)絡模型
注意力機制模塊因為其可以聚焦于局部信息而被廣泛地應用在深度學習等研究中,它的添加可以有效地幫助我們找到圖像中有用的信息,摒棄無用的信息[8]。而CBAM注意力機制就是其中的典型代表,它可以在一張?zhí)卣鲌D上根據(jù)通道和空間兩個維度去找到有用的信息,最后才會將有用的信息和輸入特征圖進行乘法運算得到自適應特征優(yōu)化,這比單方面運用通道注意力機制或者單方面運用空間注意力機制的結果更加準確[9]。
通道注意力模塊是將特征圖進行最大池化層和平均池化層處理后通過全連接層連接,接著經(jīng)過一個多層感知機,再使用激活函數(shù)激活,最后產(chǎn)生通道注意力機制特征圖[10]。通道注意力模塊如圖3所示。
圖3 通道注意力模塊
空間注意力模塊是將通道注意力模塊處理后的特征圖分別使用最大池化和平均池化的處理,然后進行連接操作,接著使用卷積降維為一個通道,再通過sigmoid激活函數(shù)生成空間注意力特征圖[11]。空間注意力模塊如圖4所示。
圖4 空間注意力模塊
Mobilenetv3也叫輕量級卷積神經(jīng)網(wǎng)絡,主要是通過分離卷積從而減少神經(jīng)網(wǎng)絡運行參數(shù)的數(shù)量,同時它也可以減小模型的的大小,這樣運行時便可以充分地節(jié)省空間,加快運行速度[12]。而且在如此快速的輕量化模型里面運行時卻不會降低其性能,因此本文采用此模型來加快運行速度,減少運行時間從而彌補本文使用CBAM注意力機制時產(chǎn)生的代價,其CBAM注意力機制的缺點便是增加了模型的參數(shù),增加了訓練時間,因此結合Mobilenetv3兼顧精度和速度。MobileCBL的網(wǎng)絡結構由四個主要部分組成:輸入層、CBL層、卷積層和全局平均池化層。Mobilenetv3結構圖如圖5所示。
圖5 Mobilenetv3結構圖
該網(wǎng)絡由一個卷積層和一系列CBL層組成,其中CBL層是由一個CBAM層和一個前向傳播的多層感知機組成,相當于原MobileNetv3的深度可分離卷積層,被修改后包含CBAM注意力機制[13]。網(wǎng)絡的最后一層是分類層。使用MobileCBL來替代YOLOv7的主干網(wǎng)絡,能夠提升蘋果葉片病害檢測精度的同時,還能夠簡化模型提高訓練速度,并且MobileCBL還引入了自適應訓練方法,根據(jù)數(shù)據(jù)集的特點自動調(diào)整超參數(shù),能夠進一步提高模型性能[14]。
Pest-Net網(wǎng)絡采用的是SIOU損失函數(shù),每當訓練數(shù)據(jù)集時都會出現(xiàn)真實值與預測值不相符合的情況,引用損失函數(shù)計算出這其中的差異,然后進行反向傳播從而降低預測值的誤差,這樣結果的準確性就可以大大提高。本文所研究的是蘋果葉片病理的檢測,損失函數(shù)需要考慮到蟲葉病害區(qū)域的真實框和預測框不匹配的方向問題,所以引用SIOU損失函數(shù),根據(jù)真實框和預測框的向量角度,可以較為準確地預測到真實框的區(qū)域,從而使得檢測的精度大大提高。SIOU的損失公式如下。
(1)
(2)
(3)
(4)
其中:IOU為損失函數(shù),Λ為考慮角度,Δ為考慮角度損失下的距離損失,Ω為形狀損失,B為真是邊界框的面積,BGT為預測邊界框的面積。SIOU預測框與真實框關系如圖6所示。
圖6 SIOU預測框與真實框關系的示意圖
Pest-Net訓練了10 000張訓練圖片和2 500張測試圖片。輸入圖片的大小為 640×640,批量大小設置為 4,訓練輪數(shù)設置為 100,初始學習率設置為 0.01,模型每 10 輪更新一次。我們使用 Adam 優(yōu)化算法并將權重衰減系數(shù)設置為 0.000 5。100回合后,損失達到穩(wěn)定和最小值。圖7顯示了訓練損失的變化。從圖中我們可以看到損失函數(shù)最終趨于零,這證明了Pest-Net模型訓練結果準確。接下來,我們可以評估模型的各種性能指標。
圖7 損失函數(shù)曲線圖
圖8是Pest-Net模型訓練100輪過程的精確率,召回率以及mAP值??梢钥吹?值分別為94.5%、95.8%、97.1%,各個指標結果都比較優(yōu)秀。接著使用檢測模型進行檢測,單張?zhí)O果葉片的檢測時間為0.34 s,檢測速度也比較快。
圖8 性能指標曲線圖
本文將Pest-Net和四種先進的檢測算法進行比較,以此來評估Pest-Net模型的性能是否得到了改善。我們可以從表格顯示的這些模型中得出,YOLO系列中的算法模型在蘋果葉病檢測中具有一定的優(yōu)勢。YOLOv5和YOLOv7的mAP@0.5非常相似,這主要是因為YOLOv7基本上是沿用了YOLOv5的骨架,只是在一些方面進行改進,并且精度沒有太大提高。此外,SSD和Faster R-CNN模型的mAP@0.5曲線上升得更曲折,這可能是因為它們被用作兩階段目標檢測算法[15]。他們在特征圖中選擇了太多的候選區(qū)域,并且相鄰的窗口具有大量的重復信息和許多無效區(qū)域。因此,訓練的準確性上升得很低,而且精度不高。Pest-Net增加了CBAM注意力機制,兼顧空間和通道,可以多方位提高蘋果葉片的缺陷檢測精度。
這些模型的性能指標以及檢測模型單張?zhí)O果葉片病害檢測速度見表2。我們可以看到,與最初的YOLOv7模型相比,Pest-Net模型的準確率為94.5%,提高了2.0%;召回率為95.8%,增長4.4%;以及mAP@0.5為97.1%,提高了3.9%。與YOLOv5版本相比,精度提高了7.8%,檢測速度變?yōu)?.34 s,其他評價指標也有了很大的飛躍。與其他目標檢測算法相比,Pest-Net模型也具有出色的性能指標。
表2 性能對比表
使用檢測模型對蘋果葉片進行檢測并得到最終的檢測結果,部分檢測圖片如圖9所示。
圖9 檢測結果圖
為了檢測各種蘋果葉病害,我們從百度的圖像庫中選擇了大小適中的清晰蘋果葉圖片,并使用Make Sense軟件標簽制作了實驗所需的數(shù)據(jù)集。之后,本文提出了用Pest-Net來檢測蘋果葉的病害。我們在YOLOv7模型結構中引入了卷積注意力機制模塊(CBAM)和輕量模型(MobileNet),以提高模型訓練效果。通過實驗可知Pest-Net在mAP值(97.1%)和精確度(94.5%)上均取得了更高的準確率。作為一種小目標疾病檢測模型,Pest-Net還可以用于其他農(nóng)產(chǎn)品的疾病識別,如橙子、梨和其他水果。