孫麗萍,譚少亨,周宏威*,鄒青池
(1.東北林業大學 機電工程學院,哈爾濱 150040;2.遼寧省天然林保護中心,沈陽 110036)
國內外學者對于深度學習方法在農業和林業害蟲檢測與識別方面均有大量研究。孫鵬等[11]提出了一種基于注意力的卷積神經網絡用于大豆害蟲識別,將注意力機制與卷積神經網絡相結合,極大地增強了模型的特征提取能力。佘顥等[12]對SSD模型進行了改進,將SSD原來的多尺度特征映射替換為特征金字塔,豐富了模型特征,提高了小目標檢測性能與歸一化程度。張博等[13]將空間金字塔池化與改進的YOLOv3網絡相結合,提出一種農作物害蟲種類識別算法,改進的YOLOv3利用采樣和卷積操作相結合實現反卷積,有效地提高了模型的檢測和泛化能力。楊國國等[14]結合圖像的顯著性分析,通過對整幅圖像進行顏色衰減加速計算,得出每個超區域的顯著性值,結合超像素區域之間的空間影響,進而給出害蟲目標的潛在區域利用優化后的卷積神經網絡進行檢測。陳娟等[15]在實際環境中構建了園林害蟲的數據集,通過富邊緣檢測算法獲得了更精細的害蟲圖像,以殘差網絡為主體,通過改進殘差塊和共軛算法對網絡進行優化。Jiao等[16]提出了一種用于檢測24種害蟲的無錨區域卷積神經網絡(AF-RCNN):首先,設計特征融合模塊,從害蟲信息中提取有效特征,然后確定一種基于融合特征圖的無錨區域建議網絡(AFRPN),來獲取可能的蟲害位置,最后,將無錨區域卷積神經網絡(AF-RCNN)和Faster R-CNN合并為一個網絡,以解決小目標害蟲的識別問題。Liu等[17]構建了一個新的害蟲數據集,收集了80 000多幅圖像,并提出了一種基于區域的端到端PestNet網絡,用于對多種類型的害蟲進行大規模檢測和分類,主要分為3部分:①卷積神經網絡,用于結合通道空間注意的特征提取與增強;②區域建議網絡,用于從特征圖中獲取模型的潛在輸出; ③位置敏感計分圖替換模型的全連接層。Li等[18]提出了一種基于深度卷積神經網絡的害蟲檢測和識別方法;通過粗網和細網設計,對不同種群分布下的小目標害蟲進行識別和計數。梁萬杰等[19]提出了一種基于卷積神經網絡的研究方法,設計了一個10層的卷積神經網絡模型,用來提取圖像的特征,對水稻二化螟蟲進行識別。Liu等[20]構建了一個真實環境下的番茄病蟲害數據集,提出了一種改進的YOLOv3算法來檢測番茄病蟲害,改進后的YOLOv3網絡利用特征金字塔提高了小目標的檢測精度,對番茄蟲害數據上包圍框的維度進行聚類,為模型提供全局先驗位置信息,提高了模型的訓練速度;然后通過多尺度訓練,證明模型可以適應不同分辨率的圖像,提高了模型的泛化能力。Sun等[21]提出了一種深度學習檢測方法,利用先進的RetinaNet檢測模型,在信息素誘捕器中直接識別和計數成年紅松樹脂甲蟲(RTB),采用k-means錨點優化和殘差分類子網,縮小了探測器的尺寸。
計算機視覺技術在林業有害生物的檢測與識別方面應用廣泛,對不同的害蟲進行檢測與識別。有害生物檢測與識別存在3個難點:①不同種類的害蟲有相似之處,如圖1所示;②同種害蟲具有不同的姿態,如圖2所示;③在多只害蟲的情況下,圖像中通常會出現重疊害蟲,如圖3所示。深度學習方法在實現林業有害生物的檢測與識別方面有著極大的優勢。

圖1 不同種類的相似害蟲

圖2 同種害蟲的不同姿態

圖3 重疊的害蟲
YOLO算法是深度學習中的一種新興的目標檢測算法,該算法由Redmon等[22]提出,通過一個網絡同時實現了目標檢測的分類和定位,YOLO算法在目標檢測中得到了廣泛的應用。目前,YOLO算法經歷了從YOLOv1到YOLOv5的發展,其中YOLOv5效果最優[22-24]。YOLOv5于2020年推出,具有體積小、速度快和精度高的優點,在生態成熟的PyTorch中實現。R-CNN目標檢測算法可以有效地改善圖像中待檢測目標的問題,但是R-CNN的算法模型比YOLOv5更復雜,計算量更大。因此,選取最新的YOLOv5目標檢測算法對林業有害生物數據集進行檢測與識別。
YOLOv5是YOLO算法中最新的目標檢測算法,分為4種權重,分別為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,其中YOLOv5s的體積最小。本文選擇YOLOv5s權重,由輸入、骨干網絡、頸部網絡和預測4個部分組成。網絡結構如圖4所示。

圖4 YOLOv5網絡結構
在輸入端,YOLOv5借鑒了CutMix方法,利用馬賽克數據增強,有效地提高了對小目標的檢測與識別。添加自適應縮放處理,將圖像縮放到統一大小,然后發送到網絡中學習,增強網絡數據處理能力。
骨干網絡包括CSP網絡和Focus結構等。Focus結構包含4個切片操作和一個32個卷積核的卷積,將原來的608×608×3圖像轉化為304×304×12的特征圖。CSP網絡進行局部跨層融合,利用不同層的特征信息獲得更豐富的特征圖。
頸部網絡部分同時包含PANet和SPP。PANet充分整合不同層的圖像特征,將不同CSP網絡的頂部特征信息和輸出特征按照自上而下的順序進行聚合,然后將淺層特征從底向上進行聚合。SPP使用4個不同大小的核進行最大池化,然后進行張量拼接。
在手表式血壓計的基礎上提供一種通過手機攝像頭以及閃光燈測量心率的方式。該模塊使用基于小波變換的帶通濾波器及快速傅里葉變換(FFT)技術,通過手機自帶攝像頭以及閃光燈實現,在食指指腹輕貼攝像頭時,通過捕捉毛細血管的搏動,對血液流變以及毛細血管蠕動的影像分析,獲得其心率值(如圖5所示)。
預測部分包含GIOU_Loss損失函數和非最大值抑制。YOLOv5s的損失函數使用GIOU_Loss,解決了IOU_Loss無法處理2個包圍框的情況。幾何關系如圖5所示。假設預測框(Pred)與真實框(Re)的最小矩形包圍框是C, 預測框和真實框的并集為N, 預測盒框與真實框的交集為M,交集與并集之比為IOU,如公式(1)所示。

圖5 幾何關系
(1)
D是C和N的差集,如公式(2)所示。
D=|C-N|。
(2)
GIOU是IOU減去D與C的比值,如公式(3)所示。
(3)
GIOU_LOSS的計算如公式(4)所示,其中GIOU_LOSS為交并比的損失函數。
(4)
由于滑動窗口,同一目標可能有不止一個檢測框。YOLOv5使用非最大值抑制(Non-Maximum Suppression,NMS)選擇檢測框,使用DIOU_NMS,刪除多余的檢測框,保留最佳檢測框。DIOU_NMS可以提高重疊目標和遮擋目標的檢測精度。
該模型的框架如圖6所示,分為2部分:訓練階段和測試階段。在訓練階段,將訓練集輸入模型進行訓練。在測試階段,模型完成對輸入圖像的害蟲檢測和分類。該模型對美國白蛾、松墨天牛、星天牛、麻皮蝽、霜天蛾、人紋污燈蛾、柳藍葉甲、草履蚧和桑天牛這9個類別的預測得分進行處理,然后將預測的害蟲種類和得分繪制在輸出圖像上。

圖6 病蟲害識別框架
構建了一個林業有害生物數據集。在Google、Naver 和 FreshEye 等搜索引擎收集了約2 668張害蟲照片,包括美國白蛾、松墨天牛、星天牛、麻皮蝽、霜天蛾、人紋污燈蛾、柳藍葉甲、草履蚧和桑天牛9種林業害蟲,9種林業害蟲圖像如圖7所示。隨后建立樣本庫,為獲取的害蟲圖像篩選和標記類別,以避免數據的重復和錯誤,原始數據集涵蓋害蟲目標的不同拍攝視角。通過翻轉、旋轉、裁剪、變形、縮放、調整亮度和添加噪聲等圖像增強過程,最終制成包含8 389張圖片的數據集。在此數據集中,利用標記工具labelimg對圖片中的林業害蟲進行了標記:首先從數據集圖片中利用矩形框框選出相應的害蟲目標;然后將框選出的害蟲標記類別;再將標記后的標簽存為txt格式的標簽文件;最后將標簽完成的數據集按照8∶2的比例劃分為訓練集和測試集。

圖7 9種害蟲圖像
本實驗使用精確度(Precision)、召回率(Recall)和均值平均精度(mean Average Precision,mAP)作為評價指標。檢測結果為真正例(TP)、假正例(FP)、真負例(TN)和假負例(FN)4種。定義見表1。

表1 不同樣本的定義
精確度(Precision,公式中用P表示)是指預測正確的正樣本數量與所有預測為正樣本的樣本數量之比,如公式(5)所示。
(5)
召回率(Recall,公式中用R表示)是指預測正確的正樣本數量與檢測正確的樣本數量之比,計算如公式(6)所示。
(6)
平均精度(Average Precision, AP,公式中用AP表示)為P和R圍合的曲線面積,均值平均精度(Mean Average Precision, mAP,公式中用mAP表示)為各類別AP的平均值,計算如公式(7)所示。
(7)
式中:G為蟲害類別的數量。
對本文YOLOv5s算法模型進行訓練,訓練后的Precision、Recall和mAP如圖8所示。

圖8 訓練結果
由圖8可以看出,前100 epochs,模型的Precision、Recall和mAP上升較快,在訓練200 epochs后已經達到相當高的精度,訓練300 epochs后接近最優值,可達到準確識別林業有害生物的效果。
實驗結果如圖9所示。
由圖9可以看出,該模型能夠從檢測結果中正確地檢測和識別帶有物體遮擋、重疊和模糊的害蟲圖像。其中正常害蟲圖像的預測得分達到了0.9以上,被物體遮擋、互相遮擋、模糊的害蟲圖像也能達到很高的識別精度。

圖9 測試結果
本實驗采用Pytorch框架,模型在GeForce GTX 1080ti(顯存12G)顯卡, CUDA 10.2實驗環境下進行訓練。3種算法的訓練參數設置見表2。

表2 各算法參數設置
對本文提出的YOLOv5s算法和YOLOv3、Faster-RCNN算法進行測試集的檢測和識別,得到不同模型的指標,如圖10所示。

圖10 不同算法的準確率、召回率和均值平均精度
從圖10可以看出,本文YOLOv5s算法的Precision達到了0.973,Recall達到了0.929,mAP達到了0.942。與YOLOv3和Faster-RCNN相比,具有更高的Precision、Recall和mAP,該模型相比其他算法的識別精度更高,實時性好,魯棒性好,性能也優于其他算法,適合作為實現林業有害生物檢測與識別的算法。
本研究提出了一種林業有害生物檢測與識別方法,基于YOLOv5算法在目標檢測方面的強大功能,選擇YOLOv5算法中4種模型中體積最小的YOLOv5s模型, 實現了林業有害生物圖像檢測與識別。
試驗結果表明,該模型能夠準確地檢測和識別被物體遮擋的、重疊和模糊的害蟲圖像。與YOLOv3和Faster-RCNN算法相比,本文提出的林業有害生物識別模型具有良好的檢測識別效果和明顯的性能優勢。
為了達到推廣應用的效果,今后還需要開展以下方面的研究: ①增加林業害蟲分類的研究;②進一步擴充數據,增加病蟲害的種類和數量;③進一步優化模型,提高模型訓練效果和識別水平; ④研究模型對害蟲不同生育階段的識別能力,從而提高模型的泛化能力和水平。