黃奇瑞, 閆朝華
(南陽理工學(xué)院 河南 南陽 473004)
溫室農(nóng)作物由于生長環(huán)境的局限性,存在換季連作、重茬、施肥施藥不規(guī)范等問題,造成溫室作物更容易發(fā)生病害,且病害種類繁多、不易識別,對溫室作物的生長和產(chǎn)量造成了很大的損害。傳統(tǒng)的農(nóng)作物病害識別通常需要經(jīng)驗豐富的專業(yè)人員進行人工目視檢測,耗力費時且易出現(xiàn)誤判,因此對農(nóng)作物病害識別工作進行科學(xué)的探索和研究勢在必行。
近年來,隨著深度神經(jīng)網(wǎng)絡(luò)在圖像處理領(lǐng)域的廣泛應(yīng)用,國內(nèi)外學(xué)者對深度學(xué)習(xí)算法在農(nóng)作物病害檢測中的應(yīng)用展開了研究[1-2]。Mohanty[3]等使用AlexNet和GoogLeNet兩種不同的深度卷積神經(jīng)網(wǎng)絡(luò)來識別14種作物物種和26種疾病,通過設(shè)置不同的參數(shù)訓(xùn)練模型,取得了較高的識別準(zhǔn)確率。Sun[4]等通過對深度神經(jīng)網(wǎng)絡(luò)卷積層的輸入數(shù)據(jù)進行批歸一化處理,從而加速網(wǎng)絡(luò)收斂、提高識別精度。Ferentions 等[5]利用深度神經(jīng)網(wǎng)絡(luò)的多層級網(wǎng)絡(luò)結(jié)構(gòu)來檢測25種不同作物的患病及健康概率,取得了較好的效果。趙春霞[6]使用Pytorch框架搭建Res Net18網(wǎng)絡(luò)模型成功實現(xiàn)了海量圖像的高級抽象特征自動提取功能,在番茄數(shù)據(jù)集上準(zhǔn)確率達到92.7%。楊英茹等[7]提出一種結(jié)合顏色紋理特征的CCL-SVM方法對復(fù)雜環(huán)境下的番茄葉片圖像進行病害識別,測試識別率達到97.5%。溫釗發(fā)等[8]針對現(xiàn)有病害識別模型參數(shù)量大、魯棒性低、泛化性弱等問題,在MobileNetV2網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,提出了輕量級MIE_Net網(wǎng)絡(luò),以復(fù)雜環(huán)境中兩種作物11種病害類別為實驗對象,總體識別率達到95.79%。
以上文獻利用不同的神經(jīng)網(wǎng)絡(luò)來實現(xiàn)對植物病害的檢測并取得了較好的效果,但實際上由于溫室作物病害種類繁多、識別困難,針對溫室作物病害檢測的研究甚少。因此,本文設(shè)計了一種融合卷積塊注意力機制(CBAM)的YOLOv5s植物病害檢測模型,以常見的溫室作物馬鈴薯為實驗對象,通過圖像增強和標(biāo)注技術(shù)構(gòu)建葉片病害數(shù)據(jù)集,利用K-means算法調(diào)整初始錨框,在此基礎(chǔ)上通過引入CBAM機制來增強YOLOv5s模型對病害目標(biāo)的特征表達能力,進而提高對溫室馬鈴薯葉片病害的檢測精度。
YOLOv5(You Only Look Once version 5)是一種基于深度學(xué)習(xí)的端到端的目標(biāo)檢測模型,可以直接從原始視頻或者圖像中檢測和定位目標(biāo)[9]。它使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來學(xué)習(xí)圖像中物體的特征,并使用多尺度預(yù)測和網(wǎng)格分割來檢測和定位目標(biāo)。YOLOv5的優(yōu)勢在于其高效的檢測速度和較低的計算資源消耗,并且在不同分辨率的圖像上均能較好地工作。通過結(jié)合深度卷積神經(jīng)網(wǎng)絡(luò)和目標(biāo)檢測技術(shù),YOLOv5能夠在單個前向傳遞中實現(xiàn)實時的葉片病害檢測,并能夠在各種復(fù)雜的農(nóng)田環(huán)境中進行準(zhǔn)確的識別和分類,為農(nóng)作物葉片病害檢測提供了一種快速準(zhǔn)確的解決方案。
本文采用的YOLOv5s模型由4部分組成,分別為Input、Backbone、Neck和Prediction,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)圖
Input使用的數(shù)據(jù)增強方式是Mosaic方式,對輸入的數(shù)據(jù)集進行隨機縮放、隨機剪裁和隨機拼接,可以極大地豐富輸入的數(shù)據(jù)集,從而提高訓(xùn)練模型的魯棒性。
Backbone作為主干網(wǎng)絡(luò)其主要功能是提取特征,也就是提取視頻或者圖片中的信息,供后面的網(wǎng)絡(luò)使用。特征提取的能力會直接影響整個網(wǎng)絡(luò)的性能,YOLOv5s的Backbone相比于之前的版本提出了新的Focus結(jié)構(gòu),Focus結(jié)構(gòu)通過切片操作將4×4×3的特征圖進行切片處理,變成2×2×12的特征圖,輸入通道擴充了4倍,最后將得到的新圖片再進行卷積操作。
Neck一般采用FPN+PAN結(jié)構(gòu),其作用是更好地融合或提取Backbone給出的特征,從而提高網(wǎng)絡(luò)的性能。FPN是自頂向下將強語義特征傳遞下來,而PAN則是將淺層的定位信息傳遞給深層,增強多尺度定位能力。
Prediction是網(wǎng)絡(luò)輸出端,其作用是利用前面網(wǎng)絡(luò)提取的特征,做出預(yù)測。
YOLOv5s模型在引入CBAM注意力機制模塊[10]后其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 CBAM-YOLOv5s模型網(wǎng)絡(luò)結(jié)構(gòu)圖
錨框(anchor boxes)是一組寬高比固定的初始候選框,其大小設(shè)定直接影響YOLOv5s模型的檢測效果。YOLOv5s模型的初始錨框是根據(jù)COCO數(shù)據(jù)集中物體真實框的大小進行聚類后得到的,由于本文實驗所用葉片數(shù)據(jù)集目標(biāo)尺寸較小,初始錨框大小并不適合,為了提高錨框與對象框的匹配概率,本文利用K均值聚類算法(K-means)重新生成錨框。首先隨機設(shè)置9個初始聚類中心,通過K-means算法對數(shù)據(jù)集進行聚類,重新生成小、中、大3個尺度的預(yù)設(shè)錨框。初始錨框和重設(shè)錨框的大小對比如表1所示。
表1 實驗數(shù)據(jù)集錨框大小對比
在溫室采集圖像數(shù)據(jù)時由于背景的復(fù)雜性,葉片圖像中的病害目標(biāo)往往不太顯著,為此,本文通過在YOLOv5s模型中融入CBAM注意力機制模塊來提升模型的特征提取能力。CBAM模塊包含通道注意力模塊(CAM)和空間注意力模塊(SAM)兩個子模塊,可以在通道和空間兩個維度上進行注意力運算,增強這兩個維度上的關(guān)鍵特征,其結(jié)構(gòu)如圖3所示。其中,F和FS分別表示原始特征圖和經(jīng)過CBAM模塊增強后的特征圖。
圖3 CBAM模塊結(jié)構(gòu)圖
首先將輸入特征圖F分別送入平均池化層(Average Pooling)和最大池化層(Max Pooling)來聚合F的空間信息,得到F的平均池化特征和最大池化特征,然后送入一個多層感知機網(wǎng)絡(luò)(MLP),將輸出的特征做逐元素求和并通過sigmoid函數(shù)激活,生成特征圖F的通道注意力一維卷積Mc(F),最后將其和特征圖F做逐元素相乘,得到經(jīng)CAM模塊增強的特征圖Fc。
接下來再將特征圖Fc分別送入平均池化層和最大池化層來聚合Fc的通道信息,得到Fc的平均池化特征和最大池化特征,然后再通過7×7的卷積和sigmoid函數(shù)激活,生成特征圖Fc的空間注意力二維卷積Ms(Fc),最后將其和Fc做逐元素相乘,得到經(jīng)CBAM模塊增強的最終特征圖Fs。
CBAM注意力機制的整體過程可用式(1)表示為
(1)
本實驗所有網(wǎng)絡(luò)模型均采用相同的實驗環(huán)境在本地進行訓(xùn)練。在硬件配置方面:CPU處理器采用Intel(R) Core(TM) i7-9700K @3.60 GHz,GPU圖形處理器使用NVIDIA GeForce RTX 3070 Ti,顯存為8 G,RAM為16 G;在軟件配置方面:系統(tǒng)采用Microsoft Windows 10 專業(yè)版 (64位),使用深度學(xué)習(xí)框架pytorch 1.7,CUDA v10.1,CUDNN v7.6,Numpy==1.19.5,Pandas==1.1.5完成實驗。
本實驗數(shù)據(jù)集來源于相機采集的溫室大棚下的馬鈴薯病害葉片圖像。其中包含早疫病、晚疫病以及健康葉片,共計5736張圖像。采用Labeling工具對葉片圖像進行標(biāo)注,標(biāo)注后的圖像如圖4所示。然后通過亮度調(diào)整、高斯濾波、旋轉(zhuǎn)、縮放和平移等數(shù)據(jù)增強方式,進一步提高實驗數(shù)據(jù)集的多樣性,進而獲得更好的訓(xùn)練效果。再按照8:1:1的比例劃分為訓(xùn)練集、驗證集和測試集。
圖4 標(biāo)注后的數(shù)據(jù)集圖像
為了評價改進后的CBAM-YOLOv5s模型的有效性,采用P(Precision)、R(Recall)、mAP(mean of Average Precision)指標(biāo)來進行綜合評價。P是預(yù)測為正的樣本中,實際為正的樣本占比,即查準(zhǔn)率;R是實際為正的樣本中,預(yù)測為正的樣本占比,即查全率;mAP是所有類別的平均準(zhǔn)確率。其表達式分別為
(2)
(3)
(4)
式中:TP是預(yù)測為正的正樣本;FP是預(yù)測為負的負樣本;FN是預(yù)測為正的負樣本。
為了驗證本文設(shè)計模型對馬鈴薯葉片病害檢測的有效性,選擇原始YOLOv5、SSD以及FasterRcnn共3個模型進行實驗對比。在制作好的數(shù)據(jù)集上對上述4個模型分別進行訓(xùn)練,然后對其中的每一種病害類型分別進行測試,結(jié)果如表2所示。由表2可以明顯看出,改進后的CBAM-YOLOv5s模型在檢測馬鈴薯葉片單一類型病害時,P、R、AP評價指標(biāo)均高于原始YOLOv5、SSD和FasterRcnn模型,說明改進后模型可以用于馬鈴薯病害葉片的檢測。
表2 不同類型病害識精度對比
為了進一步驗證改進后的CBAM-YOLOv5s模型的檢測性能,利用訓(xùn)練好的4個模型對實驗數(shù)據(jù)集中所有病害類別同時進行檢測,4種模型的識別精度分別如表3所示。
表3 不同模型的識別精度
由表3可知,改進后的CBAM-YOLOv5s模型和原始YOLOv5模型相比,P、R以及mAP指標(biāo)分別提高了3.25%、2.42%以及2.3%,說明YOLOv5s模型利用CBAM模塊的通道注意力使網(wǎng)絡(luò)自動計算出每個通道的重要程度,然后與權(quán)重共享的多層感知機(MLP)進行疊加,使每個通道獲得不同的權(quán)重進而強化了目標(biāo)特征,即讓檢測網(wǎng)絡(luò)的注意力偏向葉片圖像病害區(qū)域,在增強葉片圖像病害區(qū)域的同時弱化無關(guān)的背景區(qū)域,進而能夠更準(zhǔn)確地檢測出病害目標(biāo),較好地解決了漏檢問題。相比SSD模型和FasterRcnn模型,評價指標(biāo)也有較大程度的提高,充分說明了改進后CBAM-YOLOv5s模型在馬鈴薯葉片病害檢測方面的優(yōu)越性。
本文利用改進的CBAM-YOLOv5s網(wǎng)絡(luò)模型,對溫室馬鈴薯常見的葉片病害進行檢測和識別。通過數(shù)據(jù)增強和圖像標(biāo)注技術(shù)構(gòu)建實驗數(shù)據(jù)集,利用K-means算法對初始錨框進行調(diào)整,在此基礎(chǔ)上引入CBAM注意力機制來提高模型對葉片病害區(qū)域的識別精度。實驗表明,相較于YOLOv5、SSD和FasterRcnn模型,改進后的CBAM-YOLOv5s模型檢測精度均得到了一定程度的提高,充分驗證了改進后模型對馬鈴薯葉片病害檢測的有效性,為其他農(nóng)作物的病害檢測也提供了有益的借鑒。在接下來的研究中,考慮溫室作物種類的多樣性和溫室環(huán)境的復(fù)雜性,可以采集不同溫室作物葉片擴充實驗數(shù)據(jù)集,同時采用更加高效的網(wǎng)絡(luò)結(jié)構(gòu),進一步提高檢測模型的魯棒性和泛化能力。