南京理工大學(xué) 張羽杉 葉穎

在農(nóng)業(yè)生產(chǎn)中,害蟲防治是一項(xiàng)既基礎(chǔ)又重要的環(huán)節(jié)。防治害蟲的關(guān)鍵是對(duì)害蟲種類的識(shí)別和定位。因此,我們采用兩種目標(biāo)檢測(cè)模型結(jié)合的深度學(xué)習(xí)方法,對(duì)害蟲圖像樣本進(jìn)行識(shí)別、分類和定位。通過(guò)對(duì)現(xiàn)有目標(biāo)檢測(cè)模型的了解,選擇YOLO v5和SSD兩種模型,并且以YOLO v5模型為主、SSD 模型為輔,建立相關(guān)算法和模型。研究流程主要分為數(shù)據(jù)分析、數(shù)據(jù)格式處理、數(shù)據(jù)劃分、數(shù)據(jù)增強(qiáng)、模型訓(xùn)練5 個(gè)部分。由于各類害蟲數(shù)量相對(duì)較少且數(shù)據(jù)分布不均衡,肉眼很難識(shí)別,我們?cè)谒x擇的模型中均采取了相應(yīng)的數(shù)據(jù)增強(qiáng)的方式。豐富了檢測(cè)數(shù)據(jù)集,讓網(wǎng)絡(luò)的魯棒性更好。將待檢測(cè)的圖片分別放入訓(xùn)練完成的兩個(gè)模型中,以YOLO v5模型得出的結(jié)果為主,以SSD模型得出的結(jié)果為輔,進(jìn)行模型結(jié)合,最后得到每張圖中各害蟲的種類和位置信息。對(duì)圖像文件中不同種類的害蟲數(shù)量進(jìn)行統(tǒng)計(jì)并得出結(jié)果。
無(wú)論是在發(fā)展中國(guó)家還是發(fā)達(dá)國(guó)家,農(nóng)作物害蟲都給農(nóng)作物造成了重大損失。識(shí)別害蟲的種類和位置,從而實(shí)現(xiàn)害蟲的精細(xì)防治,可以減少損失,提高農(nóng)作物的產(chǎn)量。害蟲識(shí)別效率和準(zhǔn)確度的提高,可以促進(jìn)現(xiàn)代大規(guī)模農(nóng)業(yè)生產(chǎn)對(duì)蟲害預(yù)防和控制工作的推進(jìn)。
為了對(duì)農(nóng)田病蟲害進(jìn)行有效的預(yù)防和控制,需要收集有害生物信息,在此基礎(chǔ)上進(jìn)行蟲情分析。由于農(nóng)田害蟲的多樣性和信息類型的復(fù)雜性,傳統(tǒng)的害蟲監(jiān)測(cè)方式已經(jīng)難以滿足現(xiàn)代大規(guī)模農(nóng)業(yè)生產(chǎn)對(duì)蟲害防控工作的需要。隨著人工智能發(fā)展的熱潮,使用深度學(xué)習(xí)的方法,建立害蟲樣本自動(dòng)識(shí)別分類定位模型成為一條高效的新路徑。深度學(xué)習(xí)的方法在精度和速度方面,相較于傳統(tǒng)的害蟲監(jiān)測(cè)方式有顯著提高。
針對(duì)蟲情測(cè)報(bào)燈采集到的圖像文件,用于識(shí)別為害某農(nóng)作物的28 種害蟲,如表1所示。

表1 害蟲種類名稱及其編號(hào)
先對(duì)數(shù)據(jù)進(jìn)行劃分,通過(guò)對(duì)比現(xiàn)有的幾種較為成熟的目標(biāo)檢測(cè)模型,選擇以YOLO v5 模型為主、以SSD 模型為輔進(jìn)行害蟲種類的識(shí)別和定位,如圖1 所示。

圖1 數(shù)據(jù)的解析處理流程圖
共對(duì)2213張圖像進(jìn)行識(shí)別信息。其中,1637張為無(wú)害蟲坐標(biāo)信息圖像,576張中有所要識(shí)別的害蟲及坐標(biāo)信息。對(duì)圖片蟲子位置詳情表csv進(jìn)行分析。根據(jù)該信息,可統(tǒng)計(jì)獲得已知害蟲種類坐標(biāo)信息的圖片中各類害蟲出現(xiàn)的次數(shù),如表2所示。

表2 害蟲出現(xiàn)次數(shù)統(tǒng)計(jì)
將蟲子編號(hào)為0的數(shù)據(jù)全部刪除。由于所給的坐標(biāo)格式不符合YOLO v5需要的格式,于是通過(guò)坐標(biāo)計(jì)算將其進(jìn)行轉(zhuǎn)化,并進(jìn)行歸一化處理,使其能被YOLO代碼識(shí)別。將“00001.jpg”形式的文件名統(tǒng)一改成“A0001”的形式。按照對(duì)應(yīng)關(guān)系,將蟲子編號(hào)改成0到27 的數(shù)字。使用多種代碼將經(jīng)過(guò)上述處理后轉(zhuǎn)化成txt 文件,此文件中的坐標(biāo)符合YOLO v5 邊框表示法。
將格式處理后得到的數(shù)據(jù)按照8∶2∶1的比例劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集。注意到個(gè)別種類害蟲在已知信息的圖片中僅出現(xiàn)1次,為避免由此導(dǎo)致的訓(xùn)練所得到的模型精確度過(guò)低、訓(xùn)練時(shí)間過(guò)長(zhǎng),將這些樣本同時(shí)放入3個(gè)數(shù)據(jù)集中進(jìn)行模型訓(xùn)練。
在YOLO v5 中,輸入端采用Mosaic 方法進(jìn)行數(shù)據(jù)增強(qiáng)。大致實(shí)現(xiàn)過(guò)程如下:先從數(shù)據(jù)集中每次隨機(jī)讀取4張圖片,再分別對(duì)4張圖片進(jìn)行翻轉(zhuǎn)(對(duì)原始圖片進(jìn)行左右的翻轉(zhuǎn))、縮放(對(duì)原始圖片進(jìn)行大小的縮放)、色域變化(對(duì)原始圖片的明亮度、飽和度、色調(diào)進(jìn)行改變)等操作,最后進(jìn)行圖片的組合和框的組合。這樣一來(lái),明顯增強(qiáng)了數(shù)據(jù)多樣性。
為實(shí)現(xiàn)題中所要求的確定害蟲位置及種類的目標(biāo),我們采用基于深度學(xué)習(xí)的目標(biāo)檢測(cè)領(lǐng)域目前較為成熟的兩種模型YOLO v5和SSD。YOLO v5有非常輕量級(jí)的模型大小,速度較快,精度較高;SSD 具有更快的速度,可以作為輔助,使結(jié)果更加準(zhǔn)確。
1.YOLO v5 模型。為加快模型訓(xùn)練的速度,我們使用one-stage 算法中的YOLO v5 模型來(lái)進(jìn)行物體檢測(cè)。YOLO v5 的網(wǎng)絡(luò)結(jié)構(gòu)分為輸入端、主干網(wǎng)絡(luò)(Backbone)、Neck、Prediction 4 個(gè)部分,如圖2所示。

圖2 YOLO v5 網(wǎng)絡(luò)結(jié)構(gòu)圖
輸入端采用了Mosaic數(shù)據(jù)增強(qiáng)的方式,隨機(jī)使用4張圖片進(jìn)行隨機(jī)裁剪,再隨機(jī)拼接到一張圖上作為訓(xùn)練數(shù)據(jù)。因此,豐富了檢測(cè)數(shù)據(jù)集,特別是隨機(jī)縮放增加了很多小目標(biāo),讓網(wǎng)絡(luò)的魯棒性更好;Mosaic增強(qiáng)訓(xùn)練時(shí),可以直接計(jì)算4張圖片的數(shù)據(jù),使得Minibatch 大小并不需要很大,一個(gè)GPU 就可以達(dá)到比較好的效果。
主干網(wǎng)絡(luò)采用Focus 結(jié)構(gòu)對(duì)輸入的圖像進(jìn)行切片操作。另外,YOLO v5 算法在主干網(wǎng)絡(luò)中設(shè)計(jì)了CSP結(jié)構(gòu),將梯度的變化從頭到尾地集成到特征圖中,在減少計(jì)算量的同時(shí)保證了準(zhǔn)確率。
Neck 部分采用FPN+PAN 結(jié)構(gòu)。FPN 自頂向下,將高層的特征信息通過(guò)上采樣的方式進(jìn)行傳遞融合,得到進(jìn)行預(yù)測(cè)的特征圖,傳達(dá)強(qiáng)語(yǔ)義特征;PAN 自底向上進(jìn)行下采樣,傳達(dá)強(qiáng)定位特征,從不同的主干層對(duì)不同的檢測(cè)層進(jìn)行了特征聚合。
Prediction 部分采用CIOU_Loss 作為Bounding Box的損失函數(shù)。
具體訓(xùn)練步驟如下:將代碼訓(xùn)練集、驗(yàn)證集所在路徑進(jìn)行修改,nc種類改成所需要識(shí)別的害蟲種類數(shù)28,設(shè)置訓(xùn)練的輪數(shù)為200,將batch_size設(shè)置為4。
2.SSD模型。SSD完全去除了候選框的生成和隨后的特征再篩選的過(guò)程,把所有的計(jì)算封裝在一個(gè)網(wǎng)絡(luò)里面,使速度得到提高。SSD 的核心是,該模型在特征圖上采用了一個(gè)小卷積濾波器(small convolutional filter)來(lái)預(yù)測(cè)一系列default bounding boxes的類別分?jǐn)?shù)、邊框位置偏移量。對(duì)于不同的縱橫比(aspect ratio),SSD檢測(cè)使用不同的預(yù)測(cè)器(濾波器)來(lái)進(jìn)行處理,再將這些濾波器應(yīng)用在后面網(wǎng)絡(luò)階段的特征圖(feature maps)上,讓檢測(cè)器能夠用來(lái)檢測(cè)不同比例的圖片,如圖3所示。

圖3 SSD 網(wǎng)絡(luò)結(jié)構(gòu)圖
由于數(shù)據(jù)量較小,我們將總數(shù)據(jù)集按訓(xùn)練集∶測(cè)試集∶驗(yàn)證集=8∶2∶1 進(jìn)行隨機(jī)劃分,生成三個(gè)數(shù)據(jù)集,分別放入兩個(gè)模型進(jìn)行訓(xùn)練。
1.YOLO v5 模型訓(xùn)練。YOLO v5 模型訓(xùn)練展示如圖4所示,本模型的均值平均密度(mAP)為0.304。

圖4 YOLO v5 模型訓(xùn)練展示圖
2.SSD 模型訓(xùn)練。通過(guò)驗(yàn)證參數(shù)集進(jìn)行模型驗(yàn)證。訓(xùn)練網(wǎng)絡(luò)所用的參數(shù),如表3所示。本模型的均值平均密度(mAP)為0.1,loss指標(biāo)為30~40。

表3 SSD 模型訓(xùn)練參數(shù)
對(duì)YOLO v5和SSD所得結(jié)果進(jìn)行處理。對(duì)于每張圖片,若兩種模型檢測(cè)到的害蟲屬于同一種類且坐標(biāo)相似,保留YOLO v5的檢測(cè)結(jié)果;若SSD中的檢測(cè)到Y(jié)OLO v5 中未檢測(cè)到的害蟲,則添加至最終結(jié)果中;若YOLO v5 的檢測(cè)結(jié)果未被SSD 檢測(cè)出,則仍保留YOLO v5的該結(jié)果。
圖片中害蟲分類和定位的關(guān)鍵是使用已有數(shù)據(jù)集對(duì)目標(biāo)檢測(cè)模型進(jìn)行訓(xùn)練。由于各類害蟲數(shù)量相對(duì)較少且數(shù)據(jù)分布不均衡,肉眼很難識(shí)別,我們?cè)谒x擇的模型中均采取了相應(yīng)的數(shù)據(jù)增強(qiáng)的方式。
在目標(biāo)檢測(cè)模型的選取中,由于賽題圖像較難分辨,傳統(tǒng)的目標(biāo)檢測(cè)模型難以提取圖像特征。因此,我們選擇了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)領(lǐng)域目前較為成熟的兩種模型來(lái)進(jìn)行訓(xùn)練。以YOLO v5模型為主、以SSD 模型為輔,綜合兩種模型的結(jié)果,最終分類效果較好。
經(jīng)過(guò)分析,檢測(cè)效果欠佳可能是所給樣本數(shù)據(jù)集的標(biāo)注存在問(wèn)題導(dǎo)致,也可能是人工分揀導(dǎo)致害蟲標(biāo)注有遺漏,也可能是圖片中包含的28種害蟲以外的害蟲對(duì)模型造成了干擾。
我們所使用的目標(biāo)檢測(cè)的模型為YOLO v5 和SSD,都是比較成熟且速度較快的網(wǎng)絡(luò)架構(gòu)。
1.優(yōu)點(diǎn)。本文通過(guò)數(shù)據(jù)分析,對(duì)比各個(gè)模型選擇了流行的、高效的兩種目標(biāo)檢測(cè)模型。結(jié)合了兩個(gè)目標(biāo)檢測(cè)模型的結(jié)果,在一定程度上提高了識(shí)別結(jié)果的準(zhǔn)確率。采用了端到端的目標(biāo)檢測(cè)模型,減少了工程的復(fù)雜度。
2.缺點(diǎn)。對(duì)大量模型進(jìn)行訓(xùn)練并測(cè)試,需要耗費(fèi)大量的算力資源。其中,YOLO v5 中輪數(shù)的選取存在偶然性,可能會(huì)出現(xiàn)訓(xùn)練不夠或過(guò)擬合現(xiàn)象。SSD 則精度相對(duì)不高,作為輔助效果一般。