李潤(rùn)平 蘇成悅 馮祖勇
關(guān)鍵詞:蟲(chóng)害檢測(cè);圖像處理;深度學(xué)習(xí);YOLO
0 引言
我國(guó)森林和農(nóng)作物的病害蟲(chóng)種類較多,如果不積極應(yīng)對(duì)蟲(chóng)害問(wèn)題,不采取遏制隱含蟲(chóng)害的措施,可能導(dǎo)致大面積的蟲(chóng)害暴發(fā),從而成為制約林業(yè)可持續(xù)發(fā)展和農(nóng)作物大量減產(chǎn)的重要因素之一。監(jiān)測(cè)蟲(chóng)害的規(guī)模和數(shù)量,及時(shí)發(fā)現(xiàn)隱含的大面積蟲(chóng)害并采取及時(shí)的抑制手段,避免因大面積蟲(chóng)害導(dǎo)致的重大經(jīng)濟(jì)損失,具有非常重要的經(jīng)濟(jì)價(jià)值和現(xiàn)實(shí)意義[1]。
監(jiān)測(cè)蟲(chóng)害規(guī)模的基礎(chǔ)是檢測(cè)蟲(chóng)害和統(tǒng)計(jì)蟲(chóng)害的數(shù)量,最早的方法是憑借治理蟲(chóng)害的專家的經(jīng)驗(yàn),傳統(tǒng)檢測(cè)法,如直觀檢查法、取樣篩選法和探管誘捕法[2]等,這種方法不僅時(shí)效低,同時(shí)會(huì)消耗大量人力物力,導(dǎo)致出現(xiàn)治理蟲(chóng)害不及時(shí)的情況,該方法難以推廣。近幾十年來(lái),隨著計(jì)算機(jī)技術(shù)的發(fā)展,圖像識(shí)別技術(shù)逐漸在各個(gè)鄰域代替人工識(shí)別和統(tǒng)計(jì)的工作,深度學(xué)習(xí)目標(biāo)檢測(cè)在農(nóng)林作物的蟲(chóng)害檢測(cè)已經(jīng)有了一定的應(yīng)用,這些應(yīng)用大都是特定的農(nóng)作物的幾類蟲(chóng)害檢測(cè),如桃樹(shù)蟲(chóng)害[3]、田間黃板蟲(chóng)害[4]等蟲(chóng)害檢測(cè),但對(duì)多類常見(jiàn)害蟲(chóng)的幼蟲(chóng)和成蟲(chóng)同時(shí)作為目標(biāo)檢測(cè)的較少。本研究收集了常見(jiàn)的多類害蟲(chóng)的成蟲(chóng)和幼蟲(chóng)兩類數(shù)據(jù)集作為深度學(xué)習(xí)模型試驗(yàn)的數(shù)據(jù)集。
1 YOLO 網(wǎng)絡(luò)模型
1.1 YOLO 神經(jīng)網(wǎng)絡(luò)
YOLO神經(jīng)網(wǎng)絡(luò)模型在2016年由Joseph Redmon 等人在論文中正式被提出[5],是一個(gè)端到端的one- stage模型,該模型將對(duì)象的目標(biāo)檢測(cè)作為一個(gè)回歸問(wèn)題,直接從圖像的像素到邊界框坐標(biāo)和類概率。YOLO網(wǎng)絡(luò)模型具有檢測(cè)速度快、開(kāi)源性、模型小等優(yōu)點(diǎn)。YOLO系列的開(kāi)源代碼現(xiàn)在更新到了YOLOv5版本,YOLOv5模型根據(jù)模型的深度和寬度遞減依次分為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四種參數(shù)量不同的模型,基于應(yīng)用的場(chǎng)景和目的,綜合對(duì)比實(shí)時(shí)性和精確度,本文選擇YOLOv5s網(wǎng)絡(luò)模型作為多類蟲(chóng)害檢測(cè)的模型。
1.2 YOLOv5s 算法
Y個(gè)OL部Ov分5s組網(wǎng)成絡(luò)。由其i網(wǎng)np絡(luò)ut、結(jié)b構(gòu)ack[6-b8]o如ne示、n意ec圖k和1所p示red。i
1.2.1 Input
Input(輸入端)由Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算和自適應(yīng)圖片縮放三部分組成。
Mosaic數(shù)據(jù)增強(qiáng)對(duì)數(shù)據(jù)集進(jìn)行隨機(jī)縮放、裁剪、排布與組合的處理,該處理方法可以使數(shù)據(jù)集變得復(fù)雜和多樣,訓(xùn)練得到的模型,比直接使用數(shù)據(jù)集訓(xùn)練有更強(qiáng)的魯棒性。
自適應(yīng)錨框計(jì)算是在數(shù)據(jù)集中,每個(gè)網(wǎng)格單元初始化設(shè)定錨定框基礎(chǔ)上,輸出預(yù)測(cè)框、計(jì)算預(yù)測(cè)框和已標(biāo)注真實(shí)框的差距,不斷進(jìn)行反向更新與重復(fù)計(jì)算,迭代網(wǎng)絡(luò)模型中的參數(shù)。
自適應(yīng)圖片縮放是將數(shù)據(jù)集中不同尺寸大小的原始圖片,經(jīng)過(guò)縮放、自適應(yīng)填充黑邊等處理統(tǒng)一成標(biāo)準(zhǔn)尺寸,在預(yù)測(cè)階段可以減少計(jì)算量,提高網(wǎng)絡(luò)的檢測(cè)速度。
1.2.2 Backbone
Backbone(骨干網(wǎng)絡(luò))由Focus 結(jié)構(gòu)和CSP 結(jié)構(gòu)組成。
Focus結(jié)構(gòu)是對(duì)輸入圖片進(jìn)行切片操作,采集不相鄰的切片,進(jìn)行重新組合,減小圖像尺寸,增加圖像的通道數(shù),再與32個(gè)卷積核進(jìn)行卷積操作。以YO? cLuOsv結(jié)5s構(gòu)為處例理,輸后入,得圖到像尺尺寸寸為為614008×06×4100×8102×的3,特經(jīng)征過(guò)圖Fo,?卷積之后得到640×640×32的特征圖。Focus結(jié)構(gòu)如圖2所示。
FPN是自頂向下的金字塔結(jié)構(gòu),通過(guò)上采樣得到深層的語(yǔ)義特征,并將其與淺層的特征融合,得到輸出預(yù)測(cè)的特征圖,可以增強(qiáng)在多尺度的語(yǔ)義表達(dá)。
PAN 是自底向上的金字塔結(jié)構(gòu),是對(duì)FPN 的補(bǔ)充,通過(guò)下采樣得到淺層的定位信息,并將其傳導(dǎo)到深層,更加精確在多個(gè)尺度上的定位能力。
1.2.4 Head
Head(輸出端)包含了損失函數(shù)和非極大值抑制(NMS) 。
損失函數(shù)包含定位、目標(biāo)置信度和分類損失函數(shù),YOLOv5s與之前YOLO系列的不同在于GIoU定位損失函數(shù),如公式(1)
其中s1 為真實(shí)框與預(yù)測(cè)框的交集面積值,s 為真實(shí)框和預(yù)測(cè)框的并集面積值,這可以限制GIoU的取值范圍在-1~1之間,當(dāng)真實(shí)框和預(yù)測(cè)框沒(méi)有交集時(shí),GIoU取值為負(fù),同時(shí)解決了IOU為0的情況。
非極大值抑制作用在YOLOv5網(wǎng)絡(luò)模型的預(yù)測(cè)階段,非極大值抑制可以理解為局部最大搜索,局部代表一個(gè)領(lǐng)域,鄰域有維數(shù)和大小。在目標(biāo)檢測(cè)任務(wù)中,圖像經(jīng)滑動(dòng)窗口提取特征,分類器識(shí)別,每個(gè)窗口會(huì)得到一個(gè)分?jǐn)?shù),但很多窗口存在交叉或者包含關(guān)系,這時(shí)就需要用到NMS來(lái)選取鄰域中分?jǐn)?shù)最高的窗口,從而抑制分?jǐn)?shù)低的窗口。其原理是在Bounding Box的B列表和對(duì)應(yīng)的置信度S中,選擇有最大score 的預(yù)測(cè)框M,將M從B列表移除,并將B中剩余檢測(cè)框中與M的IoU大于閾值Nt的預(yù)測(cè)框從B中移除,重復(fù)這個(gè)過(guò)程,直到B為空,從而去除多余的預(yù)測(cè)框。
2 實(shí)驗(yàn)
2.1 實(shí)驗(yàn)環(huán)境的搭建
在MobaXterm 軟件中,通過(guò)SSH連接Linux服務(wù)器,在命令行窗口,通過(guò)命令“conda create -n yolo py? thon==3.8”創(chuàng)建一個(gè)基于Python=3.8 的環(huán)境名為YOLO的虛擬環(huán)境;通過(guò)命令“conda activate yolo”進(jìn)入YOLO虛擬環(huán)境;通過(guò)命令“cd YOLOv5-master”進(jìn)入YmOenLtOs.vtx5t”網(wǎng)安絡(luò)裝模YO型LO;v通5模過(guò)型命運(yùn)令“行p的ip依in賴sta庫(kù)ll文-r件re,q其uir運(yùn)e?行環(huán)境配置流程如圖5所示。
2.2 建立數(shù)據(jù)集
本實(shí)驗(yàn)使用YOLOv5s網(wǎng)絡(luò)模型,由于是對(duì)多類蟲(chóng)害的檢測(cè),包含各類害蟲(chóng)的成蟲(chóng)和幼蟲(chóng)的檢測(cè),所以使用Butterfly和Caterpillar數(shù)據(jù)集分別作為蟲(chóng)害的成蟲(chóng)和幼蟲(chóng)標(biāo)簽名,可以從兩類檢測(cè)目標(biāo)初步判斷大范圍的林業(yè)和農(nóng)業(yè)的蟲(chóng)害情況。筆者使用爬蟲(chóng)技術(shù)從網(wǎng)上提取了710張Butterfly圖片和690張Caterpillar圖片。
在Linux服務(wù)器的命令行輸入命令“pip install labe? limg”,安裝labelimg標(biāo)注工具,再輸入命令“l(fā)abelimg”,即可使用該標(biāo)注工具。使用labelimg打開(kāi)標(biāo)注數(shù)據(jù)集所在的文件夾,用矩形框框住Butterfly和Caterpillar目標(biāo),分別選擇對(duì)應(yīng)的標(biāo)簽類別信息,保存對(duì)應(yīng)圖像的標(biāo)簽格式為VOC數(shù)據(jù)集格式,數(shù)據(jù)集在YOLOv5網(wǎng)絡(luò)中訓(xùn)練時(shí),使用腳本將VOC格式標(biāo)簽數(shù)據(jù)集轉(zhuǎn)換為YOLO格式標(biāo)簽數(shù)據(jù)集,再通過(guò)腳本自動(dòng)劃分訓(xùn)練集和測(cè)試集。其中,YOLO格式存儲(chǔ)了標(biāo)注框的標(biāo)簽、中心點(diǎn)和長(zhǎng)寬信息,標(biāo)注數(shù)據(jù)集示例如圖6所示。
2.3 實(shí)驗(yàn)結(jié)果及分析
本實(shí)驗(yàn)使用YOLOv5s模型對(duì)自制蟲(chóng)害數(shù)據(jù)集進(jìn)行訓(xùn)練,數(shù)據(jù)集總體訓(xùn)練迭代300 輪、批量樣本數(shù)batch_size=32、學(xué)習(xí)率設(shè)置為0.003。網(wǎng)絡(luò)模型訓(xùn)練過(guò)程的參數(shù)變化如圖7所示,一開(kāi)始訓(xùn)練時(shí),損失函數(shù)的收斂速度較快,損失函數(shù)的總體趨勢(shì)收斂速度趨于平緩,隨著迭代次數(shù)的增加,模型的損失函數(shù)、精確度和召回率變化總體趨勢(shì)是一致收斂的,最終模型收斂會(huì)保存最后一個(gè)權(quán)重文件和一個(gè)最優(yōu)權(quán)重文件。
圖7中的box_loss的數(shù)值越接近0,目標(biāo)框與真實(shí)框越接近,目標(biāo)框越準(zhǔn)確;obj_loss的數(shù)值越接近0,目標(biāo)檢測(cè)框的概率值越大;cls_loss的數(shù)值越接近0,目標(biāo)檢測(cè)的分類信息越準(zhǔn)確;平均準(zhǔn)確度和召回率的標(biāo)價(jià)指標(biāo)如公式(2) 、公式(3) 所示。
上述公式中的TP 表示正樣本預(yù)測(cè)為正樣本的個(gè)數(shù),F(xiàn)P 表示負(fù)樣本預(yù)測(cè)為正樣本的個(gè)數(shù),F(xiàn)N 表示正樣本預(yù)測(cè)為負(fù)樣本的個(gè)數(shù)。mAP_0.5和mAP_0.5:0.9中的m 表示平均,AP 使用precision和recall數(shù)值作為兩軸作圖后圍成的面積,該數(shù)值越接近1,目標(biāo)檢測(cè)準(zhǔn)確度越高。從圖7中數(shù)據(jù)可知平均的precision和recall 達(dá)到了80%,多類害蟲(chóng)的成蟲(chóng)與幼蟲(chóng)的特征有較多的差異性,在驗(yàn)證模型階段的損失函數(shù)相比于訓(xùn)練階段的損失函數(shù),模型趨于收斂的部分,前者的收斂震蕩范圍會(huì)大于后者。
將訓(xùn)練好的最優(yōu)權(quán)重文件導(dǎo)入模型中,輸入測(cè)試圖片進(jìn)行查看,平均每張圖像預(yù)測(cè)的速度為0.014s,這種特征明顯的類別目標(biāo)檢測(cè)效果置信度能達(dá)到80%,識(shí)別效果如圖8所示,訓(xùn)練的模型速度和準(zhǔn)確性都很不錯(cuò)。
3 結(jié)論
本次實(shí)驗(yàn),對(duì)農(nóng)林業(yè)中多類蟲(chóng)害有較好的檢測(cè)效果,在固定的無(wú)人監(jiān)測(cè)站檢測(cè)蟲(chóng)害規(guī)模中,可以替代大部分人工工作,能夠節(jié)省人力物力;同時(shí),可以從根源上限制蟲(chóng)害的規(guī)模,減少農(nóng)藥的使用。但是對(duì)于固定無(wú)人監(jiān)測(cè)站會(huì)有較大的基礎(chǔ)成本和地域范圍限制,導(dǎo)致監(jiān)測(cè)面積縮小,如果使用無(wú)人機(jī)對(duì)農(nóng)林業(yè)區(qū)域的蟲(chóng)害數(shù)量進(jìn)行監(jiān)測(cè),不但節(jié)省成本,更能方便靈活且真實(shí)地反映區(qū)域蟲(chóng)害情況。未來(lái)的研究方向需要解決復(fù)雜背景下小個(gè)體害蟲(chóng)的檢測(cè),同時(shí)保證檢測(cè)的準(zhǔn)確性,將此應(yīng)用于無(wú)人機(jī)檢測(cè)蟲(chóng)害中,可以降低更多人工成本。