韓濤,詹煒
(長江大學(xué),湖北 荊州 434023)
番茄作物作為我國重要的經(jīng)濟(jì)農(nóng)作物之一,隨著番茄作物在我國種植面積的不斷擴(kuò)大,番茄作物的病蟲害問題也日益突出。番茄病蟲害的暴發(fā),會導(dǎo)致番茄的產(chǎn)量和質(zhì)量的嚴(yán)重下降,從而給整個農(nóng)業(yè)經(jīng)濟(jì)帶來不小的影響。因此,番茄病蟲害的檢測和識別對于防治番茄病蟲害尤為重要。目前,人為識別番茄病蟲害存在準(zhǔn)確率低、效率低、成本高等問題,無法廣泛應(yīng)用于大面積的番茄作物區(qū)域,而且由于人為的錯誤識別可能會使用錯誤的防治策略,進(jìn)而影響番茄作物的產(chǎn)量和質(zhì)量,從而對當(dāng)?shù)氐霓r(nóng)業(yè)經(jīng)濟(jì)造成不可挽回的損失。
隨著計算機(jī)視覺和深度學(xué)習(xí)技術(shù)的快速發(fā)展和人工智能技術(shù)的不斷進(jìn)步,在農(nóng)業(yè)病蟲害防治領(lǐng)域中,為通過使用計算機(jī)視覺圖像識別技術(shù)來加強(qiáng)對農(nóng)作物病蟲害的識別和病蟲害的及時預(yù)警和預(yù)防,提供了有力的技術(shù)和理論支持[1]。基于圖像處理的病蟲害識別方法已經(jīng)被運用于其他農(nóng)業(yè)病蟲害識別領(lǐng)域當(dāng)中,例如水稻病蟲害識別[2-3]、玉米病蟲害識別[4-5]等。李子茂等人[6]提出了一種基于DenseNet的茶葉病害識別方法,該方法對5種常見的茶葉病害類別進(jìn)行了識別,最終DenseNet 模型識別準(zhǔn)確率達(dá)到了92.66%。劉君等人[7]提出了一種基于YOLO 卷積神經(jīng)網(wǎng)絡(luò)模型的番茄病蟲害識別方法,該方法對8種常見的番茄病蟲害進(jìn)行了檢測和識別,最終訓(xùn)練得到的YOLO 卷積神經(jīng)網(wǎng)絡(luò)模型對番茄病蟲害的平均檢測精度達(dá)到了85.09%。上述所提到的方法,都只對病蟲害進(jìn)行了識別和分類,但是并沒有對神經(jīng)網(wǎng)絡(luò)模型所學(xué)習(xí)到的圖像特征進(jìn)行顯示,從而缺乏不同類別病蟲害圖像特征的可視化佐證,也就無法判斷神經(jīng)網(wǎng)絡(luò)模型是否正確地學(xué)習(xí)到了各類病蟲害的圖像特征。基于此,本文提出了使用ResNet[8]卷積神經(jīng)網(wǎng)絡(luò)模型來完成對番茄病蟲害的識別和分類任務(wù),并通過加入Grad-CAM 算法[9],對訓(xùn)練完成的ResNet 卷積網(wǎng)絡(luò)模型所學(xué)習(xí)到的番茄病蟲害的圖像特征進(jìn)行了可視化的顯示。
在實驗的過程中,所使用的番茄病蟲害數(shù)據(jù)集總共包括7 073張JPG格式的圖像數(shù)據(jù)。所有圖像的分辨率為256×256(像素), 經(jīng)過農(nóng)業(yè)領(lǐng)域?qū)I(yè)研究人員的仔細(xì)辨認(rèn)和分類,整個番茄病蟲害數(shù)據(jù)集總共包括菌斑病、早疫病、晚疫病、葉霉病、白粉病、斑枯病、二斑葉螨病、斑點病、番茄病毒病、番茄黃化曲葉病毒病及健康番茄葉這11種類別。每種番茄病蟲害類別的圖像數(shù)據(jù)約為614張,數(shù)據(jù)集示例如圖1所示。
圖1 番茄病蟲害類別
非專業(yè)人員,很難從圖1 中分辨出不同類別的番茄病蟲害。例如,二斑葉螨病、斑點病、番茄病毒病這3種番茄病蟲害的區(qū)分度并不是很高,非常容易誤判。
為了使神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練的過程中具有更好的準(zhǔn)確性、魯棒性和泛化能力,以適應(yīng)于不同復(fù)雜情況,需要對番茄病蟲害的數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理操作。數(shù)據(jù)集預(yù)處理過程中,主要使用的是數(shù)據(jù)增強(qiáng)操作,具體方式包括:1) 隨機(jī)裁剪,按照原始圖像大小的90%進(jìn)行裁剪作為輸入;2) 隨機(jī)旋轉(zhuǎn):將原始圖像旋轉(zhuǎn)45°、90°和135°作為輸入;3) 高斯模糊,對數(shù)據(jù)集中的一部分圖像進(jìn)行高斯模糊,得到相對模糊的圖像作為輸入。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)模型如VGG[10],只能通過堆疊網(wǎng)絡(luò)層數(shù)來提高網(wǎng)絡(luò)模型的識別精度,然而隨著網(wǎng)絡(luò)模型層數(shù)的不斷增加,網(wǎng)絡(luò)模型會發(fā)生退化的現(xiàn)象,即淺層網(wǎng)絡(luò)模型的精度會比深層網(wǎng)絡(luò)的精度要高,而更深層的卷積網(wǎng)絡(luò)模型不僅在準(zhǔn)確率上低于淺層模型,而且模型訓(xùn)練時間更長、模型參數(shù)量更多。因此,為了解決傳統(tǒng)卷積網(wǎng)絡(luò)所帶來的上述問題,Kaiming He 團(tuán)隊于2016 年首次提出了ResNet 殘差網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)可以很好地解決網(wǎng)絡(luò)退化、難以訓(xùn)練等問題,而且可以使得整個網(wǎng)絡(luò)結(jié)構(gòu)更加輕量化。ResNet 網(wǎng)絡(luò)模型分為3種常見的結(jié)構(gòu),根據(jù)網(wǎng)絡(luò)層數(shù)的大小進(jìn)行命名,分別為ResNet34、ResNet50 和ResNet101。本文使用的是ResNet50 網(wǎng)絡(luò)模型結(jié)構(gòu),因為ResNet50在保證一定的模型深度的同時,模型大小和參數(shù)量也不會太大,具有可移植性。
整個ResNet50卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)圖如圖2所示。
圖2 ResNet網(wǎng)絡(luò)結(jié)構(gòu)
在整個ResNet卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)中有2 個重要的ResNet 殘差結(jié)構(gòu),分別為Res_1 和Res_2。Res_1 和Res_2 殘差結(jié)構(gòu)都由2個分支構(gòu)成。如圖2所示,Res_1 殘差結(jié)構(gòu)的一個分支由3 個conv卷積網(wǎng)絡(luò)構(gòu)成,另一個分支則直接是輸入的特征圖大小,最后兩個分支的輸出位置進(jìn)行一個相加的連接操作。而Res_2 殘差模塊的兩個分支都由conv 卷積網(wǎng)絡(luò)構(gòu)成,只是數(shù)量有所不同,一個分支由3個卷積層構(gòu)成,另一分支則只有一個卷積層構(gòu)成,最后2 個分支將各自提取的特征同樣進(jìn)行相加的連接操作。Res_1和Res_2 兩個殘差結(jié)構(gòu)的作用是對神經(jīng)網(wǎng)絡(luò)模型中的低尺度特征圖和高尺度特征圖進(jìn)行不同方式的融合,使得整個神經(jīng)網(wǎng)絡(luò)模型在增加層數(shù)的過程中不會丟失對低層次特征的感知能力,從而在一定程度上學(xué)習(xí)到全局性特征。
所有的ResNet卷積神經(jīng)網(wǎng)絡(luò)模型都分為4 個stage(x 表示數(shù)量),只是不同層數(shù)的ResNet 網(wǎng)絡(luò)模型的每個stage 所包含的Res_1 和Res_2殘差模型的數(shù)量有所不同。其中,每個stage都由Res_1和Res_2這兩種殘差結(jié)構(gòu)所構(gòu)成。
硬件實驗環(huán)境配置信息包括:CPU Intel Core i9-12900k;內(nèi)存32 GB;顯卡RTX 4090,顯存24 GB。軟件實驗環(huán)境配置信息如下:Ubuntu 22.04;Python 3.8;Pycharm 2022.3;Pytorch 1.13.0,CUDA 11.7。在訓(xùn)練過程中,訓(xùn)練集、驗證集和測試集按照7:2:1的比例進(jìn)行劃分,并將圖片輸入網(wǎng)絡(luò)模型的尺寸大小設(shè)置為224×224(像素),優(yōu)化器設(shè)置為SGD,動量因子設(shè)置為0.9,批次大小設(shè)置為32,迭代次數(shù)epoch設(shè)置為500。
番茄病蟲害的識別在計算機(jī)圖像處理領(lǐng)域?qū)儆谝粋€分類任務(wù),為了得到較好的分類和檢測效果,采用SiLU作為ResNet 卷積神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)。SiLU函數(shù)是一個沒有上界,有下界的一個平滑曲線函數(shù),在一定程度上可以避免網(wǎng)絡(luò)模型在訓(xùn)練過程中出現(xiàn)的過擬合問題,同時曲線的平滑更有利于訓(xùn)練過程的收斂。SiLU激活函數(shù)如公式(1)所示:
Sigmoid函數(shù)由下列公式定義:
Sigmoid具有平滑易于求導(dǎo)的優(yōu)點,適用于計算機(jī)圖像處理領(lǐng)域中的分類任務(wù)。
為了量化ResNet 卷積神經(jīng)網(wǎng)絡(luò)模型對于番茄病蟲害識別和分類的實際效果,需要選擇能夠評價訓(xùn)練完成的ResNet 模型的模型評價指標(biāo)。模型評價指標(biāo)選擇平均精度均值(mAP)、模型大小(Model size)、參數(shù)量(Parameters)和浮點運算數(shù)(FLOPs)。平均精度均值mAP 能夠描述網(wǎng)絡(luò)模型的平均檢測精度;模型大小,能夠體現(xiàn)模型所占磁盤空間大小,是評價一個網(wǎng)絡(luò)模型是否能夠移植其他平臺的重要指標(biāo);參數(shù)量是衡量網(wǎng)絡(luò)模型復(fù)雜度的一個重要指標(biāo);浮點運算數(shù)體現(xiàn)了網(wǎng)絡(luò)模型在訓(xùn)練過程中需要的具體計算量,也是衡量網(wǎng)絡(luò)模型復(fù)雜度的一個重要參數(shù)。平均精度值均值是體現(xiàn)網(wǎng)絡(luò)模型檢測效果的重要指標(biāo),見公式(3),其中c為數(shù)據(jù)集類別數(shù)量。
AP 是對P-R(Precision-Recall) 曲線的精度值求均值,見公式(4),其中Psmooth( )r代表進(jìn)行了平滑操作過后的P-R曲線。
使用ResNet50 網(wǎng)絡(luò)模型對番茄病蟲害數(shù)據(jù)集進(jìn)行訓(xùn)練和驗證,圖3展示了ResNet50網(wǎng)絡(luò)模型在訓(xùn)練500 個epoch 過程中的平均精度值mAP 曲線和loss 曲線變化的過程。從曲線圖中可以看出,ResNet50網(wǎng)絡(luò)模型在訓(xùn)練的過程中,平均精度均值mAP和loss上升和下降都很快,最后都趨于平緩。
圖3 ResNet模型的mAP 和loss曲線
在表1 展示了ResNet 網(wǎng)絡(luò)模型在訓(xùn)練過程中的一些評價指標(biāo)。從表1可以看出,ResNet 網(wǎng)絡(luò)模型對于11種不同類別的番茄病蟲害的識別準(zhǔn)確率達(dá)到了94.54%,而且模型大小和計算規(guī)模只有11.114M 和4.109G FLOPs。
表1 ResNet模型評價指標(biāo)
只通過ResNet網(wǎng)絡(luò)模型的訓(xùn)練曲線,并不能夠具象化地體現(xiàn)該網(wǎng)絡(luò)模型對于11種不同番茄病蟲害圖像特征的提取效果,因為訓(xùn)練的準(zhǔn)確率曲線并不能對ResNet 網(wǎng)絡(luò)模型所學(xué)習(xí)到的特征圖做出可解釋性的判斷。
Grad-CAM算法由RR Selvaraju等人提出,該算法可以通過熱力圖的形式,將訓(xùn)練得到的卷積神經(jīng)網(wǎng)絡(luò)模型所學(xué)習(xí)到的特征圖像進(jìn)行具象化的顯示,從而得到可解釋的卷積網(wǎng)絡(luò)模型圖像特征圖。如圖4所示,通過Grad-CAM 算法,展示了ResNet 卷積神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練的過程中,學(xué)習(xí)到的11種不同類型番茄病蟲害圖像特征的熱力圖和原圖像的結(jié)果對比圖。
從圖4 中可以看出,RseNet 卷積神經(jīng)網(wǎng)路模型在訓(xùn)練的過程中,該模型學(xué)習(xí)到的不同類型的番茄病蟲害的圖像特征有著較大的區(qū)別。從Gard-CAM 算法所得到的特征圖可以看出,對于二斑葉螨病、斑點病、番茄病毒病這3 種相似度非常高的病蟲害,ResNet50網(wǎng)絡(luò)模型確實學(xué)習(xí)到了這3 種番茄病蟲害的不同之處,并對這3種病蟲害進(jìn)行了區(qū)分。
目前對于番茄病蟲害識別的方法主要是以人工識別為主,針對人工識別番茄病蟲害所帶來的準(zhǔn)確度低、成本高、檢測慢等問題,本文使用計算機(jī)視覺和深度學(xué)習(xí)技術(shù),提出了使用ResNet卷積神經(jīng)網(wǎng)絡(luò)模型完成對常見的11種番茄病蟲害的識別和分類。在實驗的過程中,主要研究和分析了ResNet網(wǎng)絡(luò)模型對番茄病蟲害的識別和分類的精度問題,并且對ResNet網(wǎng)絡(luò)模型的平均精度均值mAP、模型大小、參數(shù)量和浮點運算數(shù)進(jìn)行了分析。實驗結(jié)果顯示了ResNet 網(wǎng)絡(luò)模型對于番茄病蟲害有著很高的識別準(zhǔn)確率,平均精度均值達(dá)到了94.54%。
本研究提出了一種使用ResNet 網(wǎng)絡(luò)模型識別番茄病蟲害的新方法,并通過實驗對該方法的可行性進(jìn)行了論證。在今后的研究中,嘗試改進(jìn)ResNet網(wǎng)絡(luò)模型結(jié)構(gòu)使其能夠涵蓋更多種類的病蟲害識別任務(wù),并將輕量化的ResNet模型移植部署到可移動設(shè)備當(dāng)中,以實現(xiàn)對番茄作物種植園病蟲害的實時檢測和預(yù)警。