郭陽(yáng), 許貝貝, 陳桂鵬, 丁建, 嚴(yán)志雁, 梁華, 吳昌華*
(1.江西省農(nóng)業(yè)科學(xué)院農(nóng)業(yè)經(jīng)濟(jì)與信息研究所,江西省農(nóng)業(yè)信息化工程技術(shù)研究中心,南昌 330200;2.中國(guó)農(nóng)業(yè)科學(xué)院農(nóng)業(yè)信息研究所,北京 10086)
水稻是中國(guó)主要糧食作物之一,2020年種植面積超過(guò)3 000萬(wàn)hm2,產(chǎn)量超過(guò)21 000萬(wàn)t[1]。生物災(zāi)害影響水稻高產(chǎn)穩(wěn)產(chǎn),每年因害蟲(chóng)爆發(fā)造成我國(guó)水稻產(chǎn)業(yè)損失超過(guò)10%[2]。全國(guó)農(nóng)業(yè)技術(shù)推廣服務(wù)中心預(yù)計(jì)2021年水稻蟲(chóng)害將呈偏重發(fā)生態(tài)勢(shì),發(fā)生面積9 520萬(wàn) hm2,將對(duì)經(jīng)濟(jì)造成巨大損失[3]。高效識(shí)別水稻蟲(chóng)害是做好預(yù)測(cè)的關(guān)鍵,對(duì)有效防控水稻蟲(chóng)害意義重大。傳統(tǒng)的方法是通過(guò)人工識(shí)別方法調(diào)查、監(jiān)測(cè)水稻蟲(chóng)害,這種方式勞動(dòng)強(qiáng)度大、效率低,難以滿(mǎn)足生產(chǎn)上防控的需要。
快速準(zhǔn)確地識(shí)別水稻蟲(chóng)害對(duì)防控意義重大。但復(fù)雜真實(shí)環(huán)境下快速檢測(cè)水稻蟲(chóng)害存在諸多挑戰(zhàn):葉片對(duì)害蟲(chóng)遮擋、多害蟲(chóng)之間也會(huì)存在遮擋、水稻顏色和害蟲(chóng)類(lèi)似難以識(shí)別。隨著機(jī)器視覺(jué)技術(shù)發(fā)展,國(guó)內(nèi)外學(xué)者對(duì)蟲(chóng)害識(shí)別算法做了很多研究,利用信息化手段完善水稻蟲(chóng)害識(shí)別預(yù)測(cè),對(duì)蟲(chóng)害防控有重要實(shí)踐價(jià)值[4]。早期學(xué)者采用機(jī)器學(xué)習(xí)和經(jīng)典神經(jīng)網(wǎng)絡(luò)等方法開(kāi)始農(nóng)業(yè)蟲(chóng)害識(shí)別,主要思路為:建立基于蟲(chóng)害數(shù)據(jù)庫(kù),提取顏色、紋理和形狀三大圖像特征,采用典型的機(jī)器學(xué)習(xí)方法支持向量機(jī)和K近鄰分類(lèi)方法、典型的神經(jīng)網(wǎng)絡(luò)方法BP神經(jīng)網(wǎng)絡(luò)進(jìn)行特征分類(lèi),從而實(shí)現(xiàn)蟲(chóng)害識(shí)別。周正[5]采用BP神經(jīng)網(wǎng)絡(luò)算法結(jié)合紋理、顏色、形狀3種特征識(shí)別番茄早疫病、晚疫病和葉霉病等病蟲(chóng)害,識(shí)別速度優(yōu)于最近鄰域法。王樹(shù)文等[6]提出一種基于圖像處理技術(shù)的黃瓜葉片病害識(shí)別,利用二次分割以及形態(tài)學(xué)濾波得到病蟲(chóng)害區(qū)域,提取22個(gè)特征參數(shù),采用BP神經(jīng)網(wǎng)絡(luò)算法對(duì)黃瓜病蟲(chóng)害識(shí)別。胡越浪[7]采用神經(jīng)網(wǎng)絡(luò)BP算法對(duì)水稻紋枯病圖像檢測(cè),通過(guò)調(diào)整不同參數(shù)訓(xùn)練出最優(yōu)識(shí)別效果。傳統(tǒng)的機(jī)器學(xué)習(xí)方法適合小數(shù)據(jù)樣本訓(xùn)練,但需要人工提取特征,費(fèi)時(shí)耗力,且病蟲(chóng)害識(shí)別精度取決于特征參數(shù)提取,通過(guò)少量幾種典型特征實(shí)現(xiàn)蟲(chóng)害識(shí)別效果不佳。
近年來(lái),基于卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)的深度學(xué)習(xí)模型在目標(biāo)檢測(cè)任務(wù)中取得良好的效果。卷積神經(jīng)網(wǎng)絡(luò)模型方法可以分為兩類(lèi):一類(lèi)是基于區(qū)域建議的算法,先生成候選區(qū)域,再實(shí)現(xiàn)候選區(qū)域目標(biāo)分類(lèi),列如R-CNN[8]、Fast R-CNN[9]、Faster R-CNN[10]等模型都屬于該類(lèi)檢測(cè)方法,也稱(chēng)為二階段檢測(cè)算法。二是基于回歸算法,直接完成候選區(qū)生成和目標(biāo)識(shí)別,代表有SSD[11]和YOLO(you only look once)[12]等,也稱(chēng)為一階段檢測(cè)算法。這些深度學(xué)習(xí)模型已經(jīng)被證明優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)的方法,部分學(xué)者嘗試將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于水稻蟲(chóng)害圖片識(shí)別[13-17]。陳國(guó)特[18]對(duì)飛虱蟲(chóng)的識(shí)別做了針對(duì)性研究,構(gòu)建了基于CNN的四層檢測(cè)識(shí)別算法,測(cè)試了超過(guò)2萬(wàn)多幅樣本圖像。梁萬(wàn)杰等[19]提出一種卷積神經(jīng)網(wǎng)絡(luò)的方法識(shí)別水稻二化螟蟲(chóng),基于Torch框架加快CNN的訓(xùn)練速度。雖然CNN識(shí)別率高,但CNN的參數(shù)量多,導(dǎo)致訓(xùn)練CNN需要大量的樣本,訓(xùn)練時(shí)間太長(zhǎng)。R-CNN算法將輸入圖像劃分為多個(gè)不同種類(lèi)的候選區(qū),利用CNN提取特征向量,通過(guò)SVM實(shí)現(xiàn)特征向量分類(lèi),提高了目標(biāo)檢測(cè)效率。蘇鴻等[20]采用R-CNN模型識(shí)別廣西柑橘病蟲(chóng)害,識(shí)別效果高于傳統(tǒng)機(jī)器學(xué)習(xí)算法(SVM),R-CNN通過(guò)Selective Search算法篩選出2 000個(gè)左右的候選區(qū)域,解決了CNN無(wú)法基于卷積特征實(shí)現(xiàn)滑動(dòng)窗口,但R-CNN候選區(qū)域多且尺寸不一致,導(dǎo)致訓(xùn)練速度慢。為解決候選區(qū)域多且尺寸不一致導(dǎo)致的訓(xùn)練速度慢問(wèn)題,許多研究者提出了改進(jìn)方法以加快檢測(cè)速度。Girshick[9]通過(guò)R-CNN結(jié)合SPP-Net,提出Fast R-CNN算法,減少檢測(cè)過(guò)程時(shí)間,提升檢測(cè)速度,解決了尋找候選區(qū)域的問(wèn)題,并且通過(guò)神經(jīng)網(wǎng)絡(luò)直接獲取候選區(qū)域。魏楊等[21]使用Fast R-CNN模型對(duì)農(nóng)業(yè)害蟲(chóng)進(jìn)行識(shí)別,結(jié)合區(qū)域提取網(wǎng)絡(luò),對(duì)農(nóng)業(yè)害蟲(chóng)進(jìn)行訓(xùn)練和測(cè)試,但是識(shí)別精度和速度都有待提高。姜敏等[22]采用深度學(xué)習(xí)方法對(duì)水稻病蟲(chóng)害進(jìn)行識(shí)別,對(duì)比SSD模型,F(xiàn)aster-RCNN模型識(shí)別精度更高。李衡霞等[23]改進(jìn)一種深度學(xué)習(xí)油菜蟲(chóng)害識(shí)別方法,利用VGG-16網(wǎng)絡(luò)模型提取圖像特征,RPN算法搜索到候選區(qū)域提取蟲(chóng)害目標(biāo)的候選框,完成害蟲(chóng)目標(biāo)定位和識(shí)別。R-CNN系列算法生成候選區(qū)域和回歸分類(lèi)兩個(gè)階段,稱(chēng)為二階段檢測(cè)算法,雖然算法改進(jìn)提高了檢測(cè)的速度和精度,但無(wú)法滿(mǎn)足現(xiàn)實(shí)時(shí)、實(shí)場(chǎng)景的需求。
基于回歸的算法首先需要根據(jù)特征提取生成感興趣區(qū)域,然后對(duì)每個(gè)區(qū)域進(jìn)行分類(lèi),直接實(shí)現(xiàn)區(qū)域生成和預(yù)測(cè)目標(biāo)分類(lèi),是一個(gè)端到端的過(guò)程。SSD與YOLO算法最大的區(qū)別是SSD采用卷積核直接進(jìn)行檢測(cè)。SSD使用多個(gè)卷積層的輸出預(yù)測(cè),實(shí)現(xiàn)各個(gè)卷積層回歸和分類(lèi)。俞佩仕[24]改進(jìn)一種SSD算法,采用ResNet50替換VGG16網(wǎng)絡(luò)完成水稻紋枯病病斑識(shí)別。李善軍等[25]提出一種改進(jìn)SSD對(duì)柑橘進(jìn)行檢測(cè),以ResNet18作為特征提取網(wǎng)絡(luò)比原SSD模型精度更高,速度更快。佘顥等[26]采用FPN模型替換SSD網(wǎng)絡(luò)模型,改進(jìn)算法提高了對(duì)小目標(biāo)的識(shí)別效率,比Faster R-CNN算法、SSD算法識(shí)別效果好,且訓(xùn)練耗時(shí)也最少。SSD在識(shí)別速度和精度上取得了不錯(cuò)的效果,但是對(duì)于田間復(fù)雜情況如遮擋目標(biāo)、背景類(lèi)似等情況下識(shí)別效果并不理想。
YOLO系列屬于一階段檢測(cè)算法,YOLO由Redmon等[12]提出,直接實(shí)現(xiàn)區(qū)域生成和預(yù)測(cè)目標(biāo)分類(lèi),預(yù)測(cè)時(shí)特征圖以網(wǎng)格的方式進(jìn)行劃分,使檢測(cè)速度大大提高;針對(duì)YOLOv1算法定位不夠精確、檢測(cè)精度低等缺點(diǎn),他們又提出YOLOv2算法[27],采用Darknet-19模型,利用高分辨率訓(xùn)練分類(lèi)網(wǎng)絡(luò),提高目標(biāo)識(shí)別精度,然而每個(gè)單元格只負(fù)責(zé)預(yù)測(cè)一個(gè)目標(biāo),對(duì)于小目標(biāo)、遮擋目標(biāo)識(shí)別效果不好。YOLOv3算法[28]采用Darknet-53網(wǎng)絡(luò),引入多尺度融合,提高檢測(cè)精度高,滿(mǎn)足復(fù)雜環(huán)境下小目標(biāo)、遮擋目標(biāo)、背景類(lèi)似等情況下識(shí)別。王文周[29]提出一種改進(jìn)YOLOv3水稻蟲(chóng)害識(shí)別方法,通過(guò)增加檢測(cè)尺寸數(shù)量,優(yōu)化邊框選擇來(lái)提高對(duì)小目標(biāo)水稻病蟲(chóng)害提取速度和準(zhǔn)確率,改進(jìn)的算法在水田復(fù)雜環(huán)境下提高了識(shí)別效果。武星等[30]提出一種輕量化的YOLOv3蘋(píng)果檢測(cè)方法,采用隨機(jī)梯度下降和自適應(yīng)矩估計(jì)優(yōu)化YOLOv3模型,提高了蘋(píng)果檢測(cè)速度和準(zhǔn)確率。劉芳等[31]提出一種改進(jìn)的YOLO模型實(shí)現(xiàn)番茄圖像檢測(cè),采用darknet-20主干網(wǎng)絡(luò),融合多尺度檢測(cè)模型,提高番茄圖像的檢測(cè)精度,同時(shí)加快了檢測(cè)時(shí)間。呂石磊等[32]提出一種YOLO-LITE輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型對(duì)柑橘進(jìn)行識(shí)別,采用MobileNet-v2主干網(wǎng)絡(luò),對(duì)柑橘識(shí)別加快柑橘識(shí)別速度。劉君等[33]提出一種YOLO的番茄病蟲(chóng)害識(shí)別算法,對(duì)8種番茄病蟲(chóng)害圖片進(jìn)行識(shí)別,識(shí)別精度高,檢測(cè)速度快。
隨著農(nóng)情檢測(cè)對(duì)實(shí)時(shí)性與精確性要求的提出,R-CNN系列、SSD檢測(cè)模型難以滿(mǎn)足要求,YOLOv3滿(mǎn)足復(fù)雜環(huán)境下小目標(biāo)、遮擋目標(biāo)、背景類(lèi)似等情況下識(shí)別,廣泛應(yīng)用于農(nóng)業(yè)各個(gè)領(lǐng)域。為此,本文采用YOLOv3模型直接預(yù)測(cè)水稻蟲(chóng)害位置及類(lèi)別,提高目標(biāo)檢測(cè)速度;引入Darknet-53網(wǎng)絡(luò)和多尺度融合,對(duì)小目標(biāo)、遮擋目標(biāo)檢測(cè)效果好,實(shí)現(xiàn)水稻蟲(chóng)害實(shí)時(shí)精準(zhǔn)識(shí)別。
從1.8萬(wàn)張水稻蟲(chóng)害圖片(由安徽省農(nóng)業(yè)科學(xué)院農(nóng)業(yè)經(jīng)濟(jì)與信息研究所提供)選取蟲(chóng)害紅袖蠟蟬(DiostrombupolitusUhler)、稻綠蝽(Nezaraviridula)、稻螟蛉(NarangaaenescensMoore)、點(diǎn)蜂緣蝽(Riptortuspedestris)、大螟(Sesamiainferens)5種共2 500張圖片,按照VOC2007格式創(chuàng)建數(shù)據(jù)集,圖片格式統(tǒng)一命名,對(duì)所有圖片格式化為512像素×512像素。使用LabelImg軟件標(biāo)注目標(biāo)位置和類(lèi)別,生成XML類(lèi)型的標(biāo)注文件。按照1∶4的比例隨機(jī)選取500個(gè)樣本作為測(cè)試集,剩下2 000張圖片按照9∶1比例劃分為訓(xùn)練集和驗(yàn)證集。訓(xùn)練集完成模型參數(shù)訓(xùn)練,在驗(yàn)證集上來(lái)確定網(wǎng)絡(luò)結(jié)構(gòu)以及模型參數(shù),測(cè)試集檢驗(yàn)最終選擇最優(yōu)的模型的性能,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比。
YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,特征提取由Darknet-53網(wǎng)絡(luò)和多尺度融合來(lái)完成。Darknet-53網(wǎng)絡(luò)有53個(gè)卷積層,采用ResNet的殘差結(jié)構(gòu)(residual)[34],使得模型容易優(yōu)化且網(wǎng)絡(luò)結(jié)構(gòu)更深。YOLOv3卷積層負(fù)責(zé)輸出檢測(cè)結(jié)果,包含目標(biāo)的中心坐標(biāo)、邊界框?qū)捀?、置信度、?lèi)別。輸入一張蟲(chóng)害圖片,經(jīng)過(guò)卷積層多層運(yùn)算后輸出52×52、26×26、13×13尺度(尺度1、尺度2、尺度3)的特征圖片。為了包含更多的特征信息,26×26特征圖通過(guò)2倍上采樣,與主干網(wǎng)絡(luò)8倍下采樣得到的52×52特征圖進(jìn)行融合,13×13特征圖通過(guò)2倍上采樣,與主干網(wǎng)絡(luò)16倍下采樣得到的26×26特征圖進(jìn)行融合,實(shí)現(xiàn)深層特征和淺層特征尺度融合,提升小目標(biāo)檢測(cè)精度。針對(duì)上述過(guò)程中生成的3個(gè)尺度特征圖,通過(guò)YOLO卷積層生成含有水稻蟲(chóng)害預(yù)測(cè)框中心坐標(biāo)、邊界框?qū)捀?個(gè)位置信息,1個(gè)置信度和5個(gè)類(lèi)別的特征圖,從而得到水稻蟲(chóng)害的預(yù)測(cè)框和蟲(chóng)害類(lèi)別。采用3個(gè)尺度檢測(cè),在不同分辨率進(jìn)行預(yù)測(cè),能夠更好地提取出小目標(biāo)、遮擋目標(biāo)、相似背景等水稻蟲(chóng)害特征,從而提高了檢測(cè)精度。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
損失函數(shù)用于描述蟲(chóng)害圖像預(yù)測(cè)框與真實(shí)框的誤差,定義為邊界框中心坐標(biāo)損失Lossxy、邊界框?qū)捀邠p失Losswh、有無(wú)目標(biāo)IOU損失Lossconf和類(lèi)別損失Losscls,計(jì)算公式如下。
Loss=Lossxy+Losswh+Lossconf+Losscls
(1)
中心坐標(biāo)損失Lossxy表示邊框的中心點(diǎn)坐標(biāo)(x,y),使用均方誤差損失函數(shù)預(yù)測(cè)。
(2)
寬高損失Losswh表示對(duì)邊界框的寬w和高h(yuǎn)損失,使用均方誤差損失函數(shù)預(yù)測(cè)。
(3)
置信度損失Lossconf表示使用交叉熵?fù)p失函數(shù)對(duì)水稻蟲(chóng)害對(duì)象的邊框的置信度進(jìn)行預(yù)測(cè)。
(4)
類(lèi)別損失Losscls表示使用交叉熵?fù)p失函數(shù)對(duì)水稻蟲(chóng)害對(duì)象的類(lèi)別進(jìn)行預(yù)測(cè)。
(5)
公式(1)表示單個(gè)尺度上的損失函數(shù),本文采用的YOVOv3模型是在3個(gè)尺度上實(shí)現(xiàn)蟲(chóng)害預(yù)測(cè),最終的損失函數(shù)值為3個(gè)尺度計(jì)算的損失值之和,如公式(6)所示。
Loss=Loss13×13+Loss26×26+Loss52×52
(6)
式中,Loss13×13、Loss26×26、Loss52×52分別表示輸出13×13尺度、26×26尺度、52×52尺度計(jì)算到的損失值。
本研究硬件環(huán)境配置為Intel至強(qiáng)Xeon4114處理器,NVIDIA GeForce GTX 1080Ti顯卡的GPU圖像工作站,軟件環(huán)境為Window10系統(tǒng),搭建深度學(xué)習(xí)tensorflow1.8框架及keras2.24框架,安裝了并行計(jì)算框架Cuda 10.0、cuDNNv7.4。
處理完訓(xùn)練數(shù)據(jù)后,將訓(xùn)練數(shù)據(jù)輸入到Y(jié)OLO模型進(jìn)行微調(diào)。訓(xùn)練采用隨機(jī)梯度下降法[35],設(shè)置批大小(batch_size)為8,初始學(xué)習(xí)率(lr)設(shè)置為 0.001,學(xué)習(xí)率調(diào)度器為階層性下降,每次減少學(xué)習(xí)率的因子(factor)值為0.5,設(shè)置訓(xùn)練100個(gè)大循環(huán)(epoch),每隔1代保存一次模型權(quán)重文件,每代迭代225次,一共迭代12.6萬(wàn)次,訓(xùn)練時(shí)長(zhǎng)2 h 24 min,卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程如圖2所示。
圖2 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程
本文使用機(jī)器視覺(jué)中常用的評(píng)價(jià)指標(biāo)準(zhǔn)確率(precision,P)、召回率(recall,R)、平均準(zhǔn)確率(average precision,AP)、五類(lèi)水稻蟲(chóng)害平均準(zhǔn)確率的均值(mean average precision,mAP)來(lái)評(píng)估訓(xùn)練出來(lái)Faster-RCNN、SSD、YOLOv3模型檢測(cè)精度。
(7)
(8)
式中,TP表示成功檢測(cè)到的水稻蟲(chóng)害圖片數(shù)量,F(xiàn)P表示檢測(cè)錯(cuò)誤的蟲(chóng)害圖片數(shù)量,F(xiàn)N表示沒(méi)有檢測(cè)到的蟲(chóng)害圖片數(shù)量。
F1系數(shù)是基于準(zhǔn)確率和召回率調(diào)和平均定義的,綜合考慮準(zhǔn)確率和召回率。
(9)
以準(zhǔn)確率為縱坐標(biāo),召回率為橫坐標(biāo),繪制出準(zhǔn)確率-召回率曲線(xiàn)(RP曲線(xiàn)),AP是對(duì)該曲線(xiàn)積分所得,表示RP曲線(xiàn)面積,用來(lái)衡量在某類(lèi)水稻蟲(chóng)害性能的優(yōu)劣,AP值越高,模型性能越好。mAP表示5類(lèi)蟲(chóng)害AP的平均值,用來(lái)衡量多目標(biāo)模型在5類(lèi)水稻蟲(chóng)害上綜合性能。
(10)
(11)
式中,N為蟲(chóng)害類(lèi)別的數(shù)量,k為閾值,AP(k)為檢測(cè)到第k類(lèi)蟲(chóng)害的AP值。模型檢測(cè)一幅圖片中蟲(chóng)害所耗費(fèi)的平均時(shí)間作為速度評(píng)估指標(biāo),單位為ms。
2.1.1迭代次數(shù)分析 訓(xùn)練完成后,從log文件中讀取每次迭代對(duì)應(yīng)的損失值,并繪制損失值迭代次數(shù)曲線(xiàn),結(jié)果如圖3所示。由圖3可以看出,損失值在前20 000次迭代過(guò)程中迅速減小直到穩(wěn)定,后面迭代過(guò)程中損失值在小范圍內(nèi)震蕩。
圖3 損失與迭代次數(shù)曲線(xiàn)
2.1.2評(píng)價(jià)指標(biāo)分析 根據(jù)日志文件繪制訓(xùn)練過(guò)程中評(píng)價(jià)指標(biāo)的訓(xùn)練代數(shù)變化曲線(xiàn),如圖4所示。在0~45代訓(xùn)練過(guò)程中,F(xiàn)1系數(shù)、召回率、準(zhǔn)確率、mAP值震蕩比較大,但總體趨勢(shì)一直增長(zhǎng);由于第二階段學(xué)習(xí)率等參數(shù)設(shè)置不同,各項(xiàng)指標(biāo)在50次時(shí)變小,但在51~76代訓(xùn)練過(guò)程中總體趨勢(shì)是平穩(wěn)增長(zhǎng),且在一定范圍內(nèi)震蕩。紅袖蠟蟬、稻綠蝽、稻螟蛉、點(diǎn)蜂緣蝽、大螟的F1最大值分別是97%、90%、83%、95%、95%,對(duì)應(yīng)第61代、第68代、第76代、第70代、第63代。mAP最大值為92.06%,對(duì)應(yīng)第73代。選擇F1和mAP對(duì)訓(xùn)練結(jié)果進(jìn)行評(píng)價(jià),最終選擇第76代作為最終的訓(xùn)練網(wǎng)絡(luò)權(quán)重文件,具有較高的F1值、mAP值,以及較高的召回率和準(zhǔn)確率。
圖4 各項(xiàng)指標(biāo)訓(xùn)練變化曲線(xiàn)
用訓(xùn)練模型對(duì)測(cè)試集中的500張圖片進(jìn)行測(cè)試,結(jié)果如表1所示。與Faster R-CNN、SSD算法相比,YOLOv3模型中都表現(xiàn)出理想的檢測(cè)效果,對(duì)水稻5類(lèi)蟲(chóng)害F1系數(shù)、召回率、精準(zhǔn)率均大于83%、79.37%和87.20%。首先,五類(lèi)害蟲(chóng)準(zhǔn)確率YOLOv3模型均高于其他兩種算法,準(zhǔn)確率均值為93.87%,高于Faster R-CNN的75.74%和SSD的90.52%,且對(duì)紅袖蠟蟬類(lèi)準(zhǔn)確率最高達(dá)到99.54%,這是由于借鑒ResNet的殘差結(jié)構(gòu)(residual),采用多尺度特征實(shí)現(xiàn)5類(lèi)水稻蟲(chóng)害進(jìn)行檢測(cè),提高水稻蟲(chóng)害分類(lèi)的精度。其次,在召回率方面,雖然平均召回率低于Faster R-CNN模型2.18個(gè)百分點(diǎn),但在比較難識(shí)別的稻綠蝽、稻螟蛉等水稻蟲(chóng)害,YOLOv3分別高于SSD算法14.88%、22.8%,保持79%以上的召回率。第三,在F1系數(shù)方面,YOLOv3算法均值分別高于Faster R-CNN模型和SSD模型9個(gè)百分點(diǎn)、6個(gè)百分點(diǎn),這是由于F1系數(shù)受到水稻蟲(chóng)害訓(xùn)練數(shù)量影響,在相同訓(xùn)練集下,訓(xùn)練圖片包含水稻蟲(chóng)害數(shù)量越多,F(xiàn)1系數(shù)也越大。YOLOv3算法針對(duì)不同大小物體,輸出不同大小的3類(lèi)特征圖,對(duì)多目標(biāo)檢測(cè)效果好,提高了檢測(cè)F1系數(shù)。
表1 不同算法對(duì)水稻蟲(chóng)害識(shí)別結(jié)果
由表2可知,F(xiàn)aster R-CNN處理速度達(dá)到1.10幅·s-1,SSD達(dá)到12.77幅·s-1,本文算法達(dá)到13.26幅·s-1。所以針對(duì)數(shù)據(jù)規(guī)模不多的情況,F(xiàn)aster R-CNN能完全勝任目標(biāo)的實(shí)時(shí)檢測(cè),而本文算法不僅檢測(cè)精度高于前兩種算法,檢測(cè)速度也是最快,能大規(guī)模實(shí)時(shí)檢測(cè)水稻蟲(chóng)害數(shù)據(jù)。
表2 各算法對(duì)各類(lèi)蟲(chóng)害的檢測(cè)速度
從500張水稻蟲(chóng)害測(cè)試數(shù)據(jù)集選擇5類(lèi)具有代表性的圖片,分別為小目標(biāo)、多目標(biāo)、背景類(lèi)似目標(biāo)、遮擋目標(biāo)、幼蟲(chóng)圖像,如圖5~9所示,分別采用Faster R-CNN、SSD、YOLOv3算法進(jìn)行測(cè)試。從圖5可以看出,對(duì)于小目標(biāo)圖像,3種算法檢測(cè)精確度分別為99%、99%、100%,其中YOLOv3算法精度最高,能夠準(zhǔn)確檢測(cè)出紅袖蠟蟬,并且邊界矩形框位置非常準(zhǔn)確。對(duì)于包含不同大小的多目標(biāo)圖片(圖6),3種算法對(duì)小尺寸稻綠蝽的識(shí)別精確度分別為91%、84%、94%,YOLOv3仍具有較高的準(zhǔn)確率。從圖7可以看出,因?yàn)榈久扰c水稻葉片顏色相似,稻螟蛉容易被漏檢,3種算法對(duì)該類(lèi)蟲(chóng)害檢測(cè)精確度分別為98%、73%、100%,YOLOv3算法仍然準(zhǔn)確檢測(cè)出稻螟蛉。圖8中,F(xiàn)aster R-CNN算法雖然測(cè)出遮擋的點(diǎn)蜂緣蝽目標(biāo),但檢測(cè)精確度最低僅為86%,也存在錯(cuò)檢。SSD算法雖然成功檢測(cè)出遮擋的點(diǎn)蜂緣蝽,但是精確度為90%,低于本文采用的YOLOv3算法8個(gè)百分點(diǎn)。圖9所示,識(shí)別大螟幼蟲(chóng)時(shí),F(xiàn)aster R-CNN算法檢測(cè)精確度最高,但存在錯(cuò)檢,如誤將水稻莖稈識(shí)別成稻螟蛉。而YOLOv3算法成功檢測(cè)精確度為98%,檢測(cè)精度能滿(mǎn)足蟲(chóng)害檢測(cè)需要同時(shí)未發(fā)生錯(cuò)檢。
圖5 紅袖蠟蟬小目標(biāo)檢測(cè)結(jié)果
圖6 稻綠蝽多目標(biāo)檢測(cè)結(jié)果
圖8 點(diǎn)蜂緣蝽遮擋檢測(cè)結(jié)果
圖9 大螟幼蟲(chóng)檢測(cè)結(jié)果
綜上,基于YOLOv3的水稻蟲(chóng)害檢測(cè)模型對(duì)5類(lèi)水稻蟲(chóng)害測(cè)試圖片表現(xiàn)出較高的精確率,反映了該模型具有較強(qiáng)的泛化能力,同時(shí),對(duì)于葉片遮擋目標(biāo)和相似背景等情況,識(shí)別準(zhǔn)確率大于98%,表明YOLOv3算法有較好的魯棒性。再者,對(duì)于Faster R-CNN檢測(cè)速度慢,本文采用的YOLOv3算法平均每幅圖片平均耗時(shí)75.41 mm,能夠完成水稻蟲(chóng)害實(shí)時(shí)檢測(cè)。
本文提出了一種基于YOLOv3的水稻蟲(chóng)害圖像識(shí)別方法,選取紅袖蠟蟬、稻綠蝽、稻螟蛉、點(diǎn)蜂緣蝽、大螟圖片建立數(shù)據(jù)庫(kù),并基于卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)5種水稻蟲(chóng)害進(jìn)行分析。采用Faster-RCNN、SSD和YOLOv3算法進(jìn)行對(duì)比試驗(yàn),結(jié)果表明,在訓(xùn)練過(guò)程中,通過(guò)采用梯度下降法優(yōu)化損失函數(shù)值,提升預(yù)測(cè)框置信度以及蟲(chóng)害類(lèi)別識(shí)別精度。根據(jù)各項(xiàng)指隨訓(xùn)練次數(shù)變化曲線(xiàn),結(jié)合F1系數(shù)、召回率、準(zhǔn)確率、mAP值,選擇76次迭代綜合性能最優(yōu),作為最終的權(quán)重文件來(lái)預(yù)測(cè)水稻蟲(chóng)害數(shù)據(jù)。通過(guò)優(yōu)化訓(xùn)練結(jié)果,提高水稻蟲(chóng)害識(shí)別精度,有助于提高葉片遮擋目標(biāo)和相似背景等情況識(shí)別效果。
在Faster-RCNN、SSD和YOLOv3算法對(duì)比研究中,YOLOv3算法的平均準(zhǔn)確率最高,對(duì)紅袖蠟蟬、稻綠蝽、稻螟蛉、點(diǎn)蜂緣蝽、大螟5種水稻蟲(chóng)害的AP分別為97.40%、88.76%、85.74%、92.96%、94.78%, mAP為91.93%。與Faster-RCNN算法相比,YOLOv3算法mAP高1.43個(gè)百分點(diǎn),單張圖像檢測(cè)耗時(shí)減少833.68 ms;與SSD算法相比,YOLOv3算法mAP高5.56個(gè)百分點(diǎn),單張圖像檢測(cè)耗時(shí)減少2.90 ms。結(jié)果表明,該模型兼顧了識(shí)別精度與速度,綜合性能最優(yōu)。
在選擇五類(lèi)比較具有代表性的水稻蟲(chóng)害圖片試驗(yàn)中,對(duì)于葉片遮擋目標(biāo)和相似背景等情況,YOLOv3算法能夠正確識(shí)別,未出現(xiàn)漏檢和錯(cuò)檢,識(shí)別準(zhǔn)確率大于98%。而Faster R-CNN算法雖然能夠檢測(cè)出遮擋的點(diǎn)蜂緣蝽目標(biāo),但是存在錯(cuò)檢。SSD雖然檢測(cè)出稻螟蛉,但由于稻螟蛉與水稻葉片顏色相似,識(shí)別效果低于YOLOv3算法27個(gè)百分點(diǎn)。將YOLOv3算法引入田間復(fù)雜情況下的水稻蟲(chóng)害識(shí)別是可行的,具有較高的平均準(zhǔn)確率以及較快的檢測(cè)速度,能夠準(zhǔn)確識(shí)別水稻蟲(chóng)害,這對(duì)于水稻蟲(chóng)害防治和田間噴藥等方面具有重要意義。本文仍需要從多尺度預(yù)測(cè)和增加特征提取網(wǎng)絡(luò)方面改進(jìn)算法,進(jìn)一步提高模型預(yù)測(cè)精度,滿(mǎn)足自然條件下環(huán)境要求苛刻,如陰天或者晚上等光照強(qiáng)度弱等惡劣天氣情況。同時(shí),精簡(jiǎn)模型網(wǎng)絡(luò),減少模型網(wǎng)絡(luò)權(quán)重、計(jì)算量,滿(mǎn)足檢測(cè)精度的提高識(shí)別速度,為后期部署到嵌入式設(shè)備中奠定基礎(chǔ)。