尚皓璽,郭小燕,朱恒宇
(1.甘肅農業大學信息科學技術學院,甘肅蘭州 730070;2.濟南大學數學科學學院,山東濟南 250000)
蟲害問題是影響農業生產產量和質量的關鍵因素之一[1-2],農業蟲害防治對智能化害蟲檢測與識別提出了新要求,若能快速、準確地發現與識別害蟲并及時采取防御措施,可有效降低蟲害帶來的損失。傳統的作物害蟲識別依賴于經驗豐富的專家,存在主觀性強、準確率低、成本高等問題。隨著人工智能技術的發展,以及VGG[3]、ResNet[4]等經典卷積神經網絡模型的提出,基于深度學習的農業害蟲識別技術已成為一個研究熱點[5]。張善文等[6]在VGG-16 模型基礎上引入可形變卷積,構建一種能夠適應不同形狀、狀態和尺寸等幾何形變害蟲特征的VGG-16 模型,并應用于田間作物害蟲檢測,在實際田間害蟲圖像數據庫上的檢測準確率為91.14%;Wu 等[7]構建一個用于農作物害蟲識別的數據集IP02,使用ResNet 網絡對數據集中的害蟲圖片進行分類,但由于未對數據集圖像進行篩選處理,分類準確率僅為49.4%;趙立新等[8]以棉花葉部病蟲害圖像為研究對象,利用PlantVillage 大數據集訓練AlexNet 模型取得預訓練模型,準確率為93.50%,之后使用數據增強方法擴充數據集,準確率為97.16%。
采用上述傳統卷積神經網絡對作物害蟲進行識別,模型體積較大,訓練耗費資源多,且需要大量樣本數據作為模型訓練的基礎,因此近年來也不斷有學者探索小樣本條件下的輕量級農業害蟲識別模型。如楊明欣等[9]提出一種改進遷移學習神經網絡的玉米病害識別方法,采用基于遷移的MobileNetV2 模型與Focal Loss 函數對網絡進行訓練,識別準確率為97.23%,網絡參數權重為8.69 MB;李靜等[10]為了解決玉米螟蟲害圖像識別準確率和效率低的問題,通過數據增強擴充樣本,之后使用遷移學習將Inception-v4 網絡結構知識轉移到玉米螟Pyrausta nubilalis 蟲害識別任務中,識別準確率達到96.44%;楊紅云等[11]為了實現水稻害蟲的快速、準確識別,提出基于遷移學習和卷積神經網絡的水稻害蟲識別方法,將VGG16 模型在圖像數據集ImageNet 上訓練得到的權重參數遷移到水稻害蟲識別中,該模型的平均測試準確率為99.05%,模型文件大小為74.2M;鮑文霞等[12]設計一個由特征提取、全局優化及局部優化模塊構成的輕量型殘差網絡用于水稻害蟲識別,實現了模型的輕量化,網絡在13 類水稻害蟲圖像測試數據集上的識別準確率達到92.5%,并且網絡參數量僅為1.62×106。
以上研究在農業害蟲識別模型的輕量化方面已取得了一定進展,準確率也較高,但大部分研究只針對某一類農作物害蟲進行識別,將GhostNet 網絡應用于農作物害蟲識別領域的案例還很少[13]。為此,本文從農作物害蟲防治入手,構建一個包含10 類農業害蟲圖像的數據集Cron Pest,嘗試將遷移學習技術與輕量級卷積神經網絡Ghost-Net 相結合以構建一個農業害蟲檢測網絡。針對農業害蟲樣本數量較少的問題,使用數據增強技術增加樣本數量,應用遷移學習方法訓練模型,防止模型在訓練中無法收斂,從而提高模型識別準確率。最終得到Migrated Ghost-Net 模型,識別準確率與召回率分別為93.64%與93.89%。與上文提到的模型相比,本文模型在低資源占用情況下實現了較高的害蟲識別率,在農業害蟲識別方面作出了新的探索與嘗試,可進一步應用于實際的農業害蟲防治中。
實驗使用的硬件配置為:華擎B450 主板、Inter(R)Core i7-8700K CPU、16G DDR4 2666MHz 內存、NVIDIA Geforce GTX1080 Ti 顯卡,軟件配置為:CUDA11.1、Cudnn8.0.4、Python3.7.0,并采用Pytorch1.8.0 深度學習框架,以及Ubuntu18.04操作系統。
1.2.1 數據來源
使用IP102 論文提供的開源農業害蟲數據集構建本文的害蟲數據集,該數據集共有害蟲類別102 類,共計超過75 000 張害蟲圖片[7]。本文從中選擇10 類害蟲圖像,去除每類圖像中分辨率較低、有嚴重干擾信息的圖片后,篩選出1 137 幅害蟲圖片,用于構建本文自用的害蟲分類數據集Cron Insect。其中,螻蛄(Grub)129 幅,紅蜘蛛(Red spider)124 幅,白星花金龜(Potosiabre vitarsis)123 幅,跳甲(Flea beetle)95 幅,甜菜象甲(Meadow moth)99 幅,蝗蟲(Locustoidea)104 幅,芫菁(Blister beetle)120 幅,盲蝽(Miridae)117 幅,青蛾蠟蟬(Salurnis marginella Guerr)97 幅,葉蟬(Cicadellidae)129 幅。這10 類圖像被放在10 個不同的文件夾中,每個文件夾代表一個類別標簽。標簽0 為螻蛄,標簽1 為紅蜘蛛,標簽2 為白星花金龜,標簽3 為跳甲,標簽4 為甜菜象甲,標簽5 為蝗蟲,標簽6 為芫菁,標簽7 為盲蝽,標簽8為青蛾蠟蟬,標簽9為葉蟬。
圖1 為Cron Pest 數據集害蟲示例圖像(彩圖掃OSID碼可見,下同)。
1.2.2 數據增強
為了增強卷積神經網絡的魯棒性,使訓練出來的網絡更加穩定,本文對Cron Insect 數據進行如圖2 所示的隨機數據增強,以豐富數據的多樣性,防止模型過擬合。主要采取多角度旋轉、錯變換、隨機縮放、隨機翻轉、亮度調整等方式,將害蟲圖像數據擴充為原來的3 倍,并將圖片尺寸統一處理為224×224。數據集共有3 413 幅害蟲圖像,按照8:1:1 的比例劃分為訓練集、驗證集和測試集。圖2 為數據增強方式,表1 給出了Cron Pest 數據集中每類害蟲圖像數量。
1.3.1 GhostNet卷積神經網絡
GhostNet 是一種輕量級深度學習網絡,其對傳統卷積網絡計算過程中特征圖冗余的問題進行改進,采用與深度可分離卷積類似的計算過程對圖像特征進行提取[14]。先用標準卷積(即Conv+BN+Activation)生成部分原始特征圖,再用深度卷積生成原始特征圖的“幻影”特征圖(Ghost feature maps),接下來利用線性變換生成恒等映射特征圖(Intrinsic feature maps),最后將原始特征圖與恒等映射特征圖疊加得到輸出特征圖。

Table 1 Number of pest images in Cron Pest dataset表1 Cron Pest數據集中害蟲圖像數量

Fig.1 Cron Pest dataset pest images圖1 Cron Pest數據集害蟲圖像

Fig.2 Pest image data enhancement example圖2 害蟲圖像數據增強示例
假定輸入數據X∈Rh×w×c,其中c 是輸入通道數,h、w是高度與寬度,Y為經過卷積運算的輸出特征圖,則輸出特征圖計算公式為:

其中,*為卷積運算,b為偏差項為具有n個通道的輸出特征圖,f∈Rn×k×k×c為卷積核,h'、w'與n'為輸出數據維度,k×k為卷積核f的大小。卷積過程的運算量為n· h' ·w' ·c·k·k。
由于卷積層的輸出特征圖通常包含很多冗余,并且其中一些可能彼此相似,故不需要逐一生成冗余特征圖,而是先使用一次卷積生成m個原始特征圖

其中,f' ∈Rm×k×k×c為卷積核,m≤n,之后對Y'中的每個原始特征進行一系列廉價的線性運算,以生成s個幻影特征圖(Ghost feature maps):

GhostNet 借鑒了ResNet 的殘差瓶頸結構[4],設計了Ghost bottleneck(G-bneck)。Ghost bottleneck 主要由兩個堆疊的Ghost 模塊組成,第一個Ghost 模塊用作擴展層,增加了通道數,第二個Ghost 模塊可減少通道數,以與shortcut 路徑匹配。然后,使用shortcut 連接這兩個Ghost 模塊的輸入和輸出。Ghost 模塊中的初始卷積是點卷積(Pointwise Convolution)。GhostNet網絡基礎模塊如圖4所示。

Fig.3 GhostNet convolution process圖3 GhostNet卷積過程

Fig.4 GhostNet network basic module圖4 GhostNet網絡基礎模塊
GhostNet 網絡結構以Ghost bottleneck 為基礎,遵循MobileNetV3 基本體系結構的優勢[15-17],使用Ghost bottleneck 替換MobileNetV3 中的bottleneck,構建如表2 所示的網絡結構。主要將Ghost 模塊作為構造塊,第一層為具有16 個卷積核的標準卷積層,通過一系列G-bneck 操作,通道數逐漸增加。這些Ghost bottleneck 根據其輸入特征圖的大小分為不同階段,除每個階段最后一個Ghost bottleneck 步長為2 外,其他所有Ghost bottleneck 的步長均為1。表2 中,SE 表示擠壓與激發塊(Squeeze-and-Excitation)[18],Conv2d 表示卷積層,AvgPool 表示均值池化層,FC表示全連接層。
1.3.2 基于遷移學習的GhostNet模型
農業病蟲害領域缺少高質量、大規模的公開數據集,導致使用卷積神經網絡進行作物病蟲害識別成為一項挑戰。本文使用遷移學習以減少深度學習模型構建所需的訓練數據與計算量,并且能較好地解決小數據集在復雜網絡結構上容易出現的過擬合問題[19-20]。遷移學習利用數據、任務與模型之間的相似性,將在舊領域模型學習到的知識應用于新領域的學習過程中,從而降低模型訓練難度,減少學習所需的硬件資源。遷移學習可定義為:

式中,D(s)為源領域,D(t)為目標領域,χ 為領域數據的特征空間,P(χ)為領域數據特征空間對應的邊緣概率分布。
本文首先使用ImageNet 大數據集對GhostNet 網絡進行訓練,代替原先的網絡權重隨機初始化操作,從而獲得預訓練模型,然后用農作物害蟲數據集Cron Insect 基于預訓練模型進行遷移學習,使用訓練完成的模型進行測試集害蟲識別任務。基于遷移學習的GhostNet 網絡訓練流程如圖5所示。

Table 2 GhostNet network structure表2 GhostNet網絡結構
基于遷移學習的算法流程如下:①圖像預處理。對農業害蟲圖像數據集Cron Pest 進行數據增強預處理,實現害蟲數據集的擴增;②模型預訓練。對GhostNet 模型使用ImageNet 數據集進行預訓練;③模型微調數據構建。從Cron Pest 害蟲圖像樣本中隨機抽取80%作為訓練集數據進行輸入;④預訓練GhostNet 模型參數遷移與微調。通過參數遷移方式初始化預訓練GhostNet 模型參數,之后凍結模型池化層參數并對模型進行訓練,優化模型卷積層和FC 全連階層參數;⑤模型測試。從Cron Pest 害蟲數據集中抽取余下10%的農業害蟲圖片,作為測試樣本對模型進行測試,以驗證模型的精確度。

Fig.5 Training process of GhostNet network based on transfer learning圖5 基于遷移學習的GhostNet網絡訓練流程
本文將數據集分為訓練集、驗證集和測試集3 部分,采取批訓練方式,設置Batchsize 為128;梯度更新策略使用Adam 優化器,動量大小為0.9,初始學習率為0.1;使用動態學習率策略,網絡預熱參數設置為5輪,最大訓練輪次(Epoch)設置為60,每輪迭代次數(Iterator)等于11,模型圖像輸入分辨率為224×224;采用數據增強技術,隨機選取80%的數據用于訓練,10%的數據用于驗證;選擇準確率(Accuracy)與召回率(Recall)作為模型評價指標,用于評估算法表現。準確率是預測正確的數量與樣本總數量的百分比,召回率是真實為正例的樣本中預測結果為正例的比例。
使用訓練好的模型對測試集數據進行預測,正確預測的樣本數為329 張,總體準確率為93.64%,召回率為93.89%,該模型可有效識別出圖像中的害蟲信息。Migrated GhostNet模型對10種害蟲的識別結果如表3所示。

Table 3 Recognition results of 10 pests with Migrated GhostNet model表3 Migrated GhostNet模型對10種害蟲識別結果
圖6-圖9 分別表示模型訓練過程中的top1 精確度、top5 精確度、學習率和損失值隨訓練迭代次數的變化。由圖可以看出,隨著訓練迭代次數接近200 次,損失值與精確度收斂趨于穩定,表明模型訓練成功。

Fig.6 Model training top1 accuracy change圖6 模型訓練top1精度變化

Fig.7 Model training learning rate changes圖7 模型訓練學習率變化

Fig.8 Model training top5 accuracy changes圖8 模型訓練top5精度變化

Fig.9 Model training loss value change圖9 模型訓練損失值變化
為驗證本文提出的基于遷移學習的Migrated GhostNet模型的有效性,將Migrated-GhostNet 與GhonstNet 模型訓練結果進行對比。圖10 為兩種模型訓練過程中驗證集的精確度變化,圖11 為兩種模型訓練過程中驗證集的損失值變化。從圖中可以看出,運用遷移學習技術的Migrated GhostNet 驗證集最高準確率為95.84%,相比普通GhostNet驗證集93.17%的最高準確率提高了2.67%,且使用遷移學習訓練的Migrated GhostNet 模型,損失值收斂更加穩定,當訓練到20 輪時基本收斂,而GhostNet 模型直到40 輪才收斂,證明了使用遷移學習的Migrated-Ghost 模型訓練過程更加穩定,權重學習速率更快。

Fig.10 Comparison of model training accuracy圖10 模型訓練準確率對比

Fig.11 Model training loss value comparison圖11 模型訓練損失值對比
通過遷移的GhostNet 對害蟲Corn Insect 數據集中的測試集進行預測,對測試集的預測結果制作混淆矩陣,標簽0 為螻蛄,標簽1 為紅蜘蛛,標簽2 為白星花金龜,標簽3 為跳甲,標簽4 為甜菜象甲,標簽5 為蝗蟲,標簽6 為芫菁,標簽7 為盲蝽,標簽8 為青蛾蠟蟬,標簽9 為葉蟬。Migrated GhostNet與GhostNet混淆矩陣如圖12所示。

Fig.12 Confusion matrix of Migrated GhostNet and GhostNet圖12 Migrated GhostNet與GhostNet混淆矩陣
從圖中可以看出,GhostNet 對標簽7 的盲蝽和標簽9的葉蟬識別出錯的圖片數量最多,而應用遷移學習的Migrated GhostNet 減少了對標簽7 和標簽9 的錯誤識別,但對甜菜象甲的預測錯誤率較高,將4 張圖片誤判為盲蝽,可看出甜菜象甲、盲蝽與跳甲的圖像特征有相似之處,容易引起模型誤判。綜合來看,Migrated GhostNet 正確識別的圖片數量為329 張,高于GhostNet 正確識別的324 張。Migrated GhostNet 測試集識別的準確率與召回率分別為93.64%與93.89%,GhostNet 測試集識別的準確率與召回率為92.33%與92.23%,前者比后者分別高出了1.31%與1.66%,表明Migrated GhostNet 有效降低了錯誤識別的圖片數量,提高了對農作物害蟲訓練集的識別準確率。
本文針對傳統農業害蟲識別方法在害蟲圖像樣本量較少情況下存在識別效果差、效率低等問題,提出基于卷積神經網絡的農業害蟲識別模型。相比傳統神經網絡算法,本文利用GhostNet 網絡結構的高效特征提取能力對農業害蟲圖像進行識別,同時對訓練模型所用的害蟲數據進行增強處理,一定程度上提高了模型識別效率。在模型訓練方面使用遷移學習技術,提升模型的泛化能力與訓練穩定性,并提高了模型識別精度。本文模型的優勢在于:①通過混淆矩陣對比Migrated GhostNet 與GhostNet 對每種害蟲的分類情況,發現使用遷移學習訓練方法的Migrated GhostNet 相比正常方式訓練的GhostNet,每類害蟲的識別率均有不同程度提升,識別準確率提高了1.31%,召回率提高了1.66%,模型識別效率較高;②使用自建數據集并對圖片進行過濾篩選與數據增強,通過數據擴充方式避免了因數據量不足導致模型訓練精度不佳的問題,豐富了數據的多樣性,減少了模型的過擬合現象。
實驗結果表明,本文提出的Migrated Ghostnet 模型能較好地進行農業害蟲檢測,其檢測結果準確,模型占用資源小,可應用于嵌入式設備與移動設備的蟲害防治中。但同時也存在以下不足之處:①實際農業生產活動中的害蟲圖像背景復雜,需要過濾的干擾因素更多,而本文進行的害蟲圖像識別檢測是在較為理想的樣本條件下進行的,在識別前過濾了質量較低的害蟲圖像;②本文采用的Migrated GhostNet 模型的參數量與計算量較小,但檢測精度與傳統網絡相比略有不足,對特征較為相似的害蟲識別準確率較低,還需要加強。
因此,未來工作可從以下幾方面進行改進:
(1)采集更多農業害蟲樣本圖片并進行標注。針對目標分布不均衡問題,采用數據增強技術對數據集進行擴充,提升網絡的泛化能力。
(2)優化GhostNet 網絡模型,在保持參數量與計算量的同時,提高模型的特征獲取能力,進一步提升檢測性能。
(3)未來可結合卷積神經網絡壓縮方法,進一步降低模型的參數量與運算量,并將算法移植到嵌入式設備或移動端設備等硬件設備上使用。同時,可將本文模型應用于其他農業害蟲識別中。