







在農業生產中,害蟲防治是一項既基礎又重要的環節。防治害蟲的關鍵是對害蟲種類的識別和定位。因此,我們采用兩種目標檢測模型結合的深度學習方法,對害蟲圖像樣本進行識別、分類和定位。 通過對現有目標檢測模型的了解,選擇YOLO v5和SSD兩種模型,并且以YOLO v5模型為主、SSD模型為輔,建立相關算法和模型。研究流程主要分為數據分析、數據格式處理、數據劃分、數據增強、模型訓練5個部分。由于各類害蟲數量相對較少且數據分布不均衡,肉眼很難識別,我們在所選擇的模型中均采取了相應的數據增強的方式。豐富了檢測數據集,讓網絡的魯棒性更好。將待檢測的圖片分別放入訓練完成的兩個模型中,以YOLO v5模型得出的結果為主,以SSD模型得出的結果為輔,進行模型結合,最后得到每張圖中各害蟲的種類和位置信息。對圖像文件中不同種類的害蟲數量進行統計并得出結果。
一、引言
(一)背景
無論是在發展中國家還是發達國家,農作物害蟲都給農作物造成了重大損失。識別害蟲的種類和位置,從而實現害蟲的精細防治,可以減少損失,提高農作物的產量。害蟲識別效率和準確度的提高,可以促進現代大規模農業生產對蟲害預防和控制工作的推進。
為了對農田病蟲害進行有效的預防和控制,需要收集有害生物信息,在此基礎上進行蟲情分析。由于農田害蟲的多樣性和信息類型的復雜性,傳統的害蟲監測方式已經難以滿足現代大規模農業生產對蟲害防控工作的需要。隨著人工智能發展的熱潮,使用深度學習的方法,建立害蟲樣本自動識別分類定位模型成為一條高效的新路徑。深度學習的方法在精度和速度方面,相較于傳統的害蟲監測方式有顯著提高。
針對蟲情測報燈采集到的圖像文件,用于識別為害某農作物的 28 種害蟲,如表1所示。
(二)解析流程
先對數據進行劃分,通過對比現有的幾種較為成熟的目標檢測模型,選擇以YOLO v5模型為主、以SSD模型為輔進行害蟲種類的識別和定位,如圖1所示。
二、數據處理
(一)數據分析
共對2213張圖像進行識別信息。其中,1637張為無害蟲坐標信息圖像,576張中有所要識別的害蟲及坐標信息。對圖片蟲子位置詳情表csv進行分析。根據該信息,可統計獲得已知害蟲種類坐標信息的圖片中各類害蟲出現的次數,如表2所示。
(二)數據格式處理
將蟲子編號為0的數據全部刪除。由于所給的坐標格式不符合YOLO v5需要的格式,于是通過坐標計算將其進行轉化,并進行歸一化處理,使其能被YOLO代碼識別。將“00001.jpg”形式的文件名統一改成“A0001”的形式。按照對應關系,將蟲子編號改成0到27的數字。使用多種代碼將經過上述處理后轉化成txt文件,此文件中的坐標符合YOLO v5邊框表示法。
(三)數據劃分
將格式處理后得到的數據按照8∶2∶1的比例劃分為訓練集、測試集和驗證集。注意到個別種類害蟲在已知信息的圖片中僅出現1次,為避免由此導致的訓練所得到的模型精確度過低、訓練時間過長,將這些樣本同時放入3個數據集中進行模型訓練。
(四)數據增強
在YOLO v5中,輸入端采用Mosaic方法進行數據增強。大致實現過程如下:先從數據集中每次隨機讀取4張圖片,再分別對4張圖片進行翻轉(對原始圖片進行左右的翻轉)、縮放(對原始圖片進行大小的縮放)、色域變化(對原始圖片的明亮度、飽和度、色調進行改變)等操作,最后進行圖片的組合和框的組合。這樣一來,明顯增強了數據多樣性。
三、基于深度學習的目標檢測
(一)模型選擇
為實現題中所要求的確定害蟲位置及種類的目標,我們采用基于深度學習的目標檢測領域目前較為成熟的兩種模型YOLO v5和SSD。YOLO v5有非常輕量級的模型大小,速度較快,精度較高;SSD具有更快的速度,可以作為輔助,使結果更加準確。
(二)模型理論要點
1.YOLO v5模型。為加快模型訓練的速度,我們使用one-stage算法中的YOLO v5模型來進行物體檢測。YOLO v5的網絡結構分為輸入端、主干網絡(Backbone)、Neck、Prediction 4個部分,如圖2所示。
輸入端采用了Mosaic數據增強的方式,隨機使用4張圖片進行隨機裁剪,再隨機拼接到一張圖上作為訓練數據。因此,豐富了檢測數據集,特別是隨機縮放增加了很多小目標,讓網絡的魯棒性更好;Mosaic增強訓練時,可以直接計算4張圖片的數據,使得Mini-batch大小并不需要很大,一個GPU就可以達到比較好的效果。
主干網絡采用Focus結構對輸入的圖像進行切片操作。另外,YOLO v5算法在主干網絡中設計了CSP結構,將梯度的變化從頭到尾地集成到特征圖中,在減少計算量的同時保證了準確率。
Neck部分采用FPN+PAN結構。FPN自頂向下,將高層的特征信息通過上采樣的方式進行傳遞融合,得到進行預測的特征圖,傳達強語義特征;PAN自底向上進行下采樣,傳達強定位特征,從不同的主干層對不同的檢測層進行了特征聚合。
Prediction部分采用CIOU_Loss作為Bounding Box的損失函數。
具體訓練步驟如下:將代碼訓練集、驗證集所在路徑進行修改,nc種類改成所需要識別的害蟲種類數28,設置訓練的輪數為200,將batch_size設置為4。
2.SSD模型。SSD完全去除了候選框的生成和隨后的特征再篩選的過程,把所有的計算封裝在一個網絡里面,使速度得到提高。SSD的核心是,該模型在特征圖上采用了一個小卷積濾波器(small convolutional filter)來預測一系列default bounding boxes的類別分數、邊框位置偏移量。對于不同的縱橫比(aspect ratio) ,SSD檢測使用不同的預測器(濾波器)來進行處理,再將這些濾波器應用在后面網絡階段的特征圖(feature maps) 上,讓檢測器能夠用來檢測不同比例的圖片,如圖3所示。
(三)0模型訓練
由于數據量較小,我們將總數據集按訓練集∶測試集∶驗證集=8∶2∶1進行隨機劃分,生成三個數據集,分別放入兩個模型進行訓練。
1.YOLO v5模型訓練。YOLO v5模型訓練展示如圖4所示,本模型的均值平均密度(mAP)為0.304。
2.SSD模型訓練。通過驗證參數集進行模型驗證。訓練網絡所用的參數,如表3所示。本模型的均值平均密度(mAP)為0.1,loss指標為30~40。
(四)模型結合
對YOLO v5和SSD所得結果進行處理。對于每張圖片,若兩種模型檢測到的害蟲屬于同一種類且坐標相似,保留YOLO v5的檢測結果;若SSD中的檢測到YOLO v5中未檢測到的害蟲,則添加至最終結果中;若YOLO v5的檢測結果未被SSD檢測出,則仍保留YOLO v5的該結果。
四、總結與評價
(一)總結
圖片中害蟲分類和定位的關鍵是使用已有數據集對目標檢測模型進行訓練。由于各類害蟲數量相對較少且數據分布不均衡,肉眼很難識別,我們在所選擇的模型中均采取了相應的數據增強的方式。
在目標檢測模型的選取中,由于賽題圖像較難分辨,傳統的目標檢測模型難以提取圖像特征。因此,我們選擇了基于深度學習的目標檢測領域目前較為成熟的兩種模型來進行訓練。以YOLO v5模型為主、以SSD模型為輔,綜合兩種模型的結果,最終分類效果較好。
經過分析,檢測效果欠佳可能是所給樣本數據集的標注存在問題導致,也可能是人工分揀導致害蟲標注有遺漏,也可能是圖片中包含的28種害蟲以外的害蟲對模型造成了干擾。
我們所使用的目標檢測的模型為YOLO v5和SSD,都是比較成熟且速度較快的網絡架構。
(二)模型評價
1.優點。本文通過數據分析,對比各個模型選擇了流行的、高效的兩種目標檢測模型。結合了兩個目標檢測模型的結果,在一定程度上提高了識別結果的準確率。采用了端到端的目標檢測模型,減少了工程的復雜度。
2.缺點。對大量模型進行訓練并測試,需要耗費大量的算力資源。其中,YOLO v5中輪數的選取存在偶然性,可能會出現訓練不夠或過擬合現象。SSD則精度相對不高,作為輔助效果一般。
作者簡介:張羽杉(2003—),女,安徽黃山人,本科在讀,主要從事應用數學統計研究。