馬佳佳, 陳友鵬, 王克強, 劉展眉, 溫艷蘭, 林欽永, 蔡 肯
(仲愷農業工程學院1,廣州 510225) (廣州南洋理工職業學院2,廣州 510925)
農作物病蟲害是主要農業災害之一,具有種類多、影響大、并時常暴發成災的特點,其發生范圍和嚴重程度對農業生產常造成重大損失[1-3]。蟲害的預測預報和實時監測是蟲害管理的重要組成部分,也是有效防治和控制蟲害蔓延的依據。只有對蟲害發生進行及時、準確的識別監測,正確的擬定綜合防治對策,才能經濟有效地降低蟲害威脅,確保農業糧食的安全,進而推動農業可持續發展。而傳統的蟲害識別仍然依賴于人力,存在檢測不及時、標準不規范、效率低等弊端。機器視覺技術作為人工智能領域中的重要分支之一,同時也是圖像識別領域的重要技術手段之一,研究熱度逐年攀升,在農業相關領域的主要應用方向包括農產品品質無損檢測、農作物生長情況監控及農作物產量預測等[4,5]。與此同時,國內外研究學者也在蟲害識別的應用上,分別基于傳統機器學習和深度學習兩個方向,做了不少嘗試。傳統機器學習方法依賴于作為先驗知識的特征提取算法,可以通過多源信息融合或算法優化進一步改進模型識別性能。鄒永杰等[6]提取番茄樣本圖像的HOG和LBP特征作為SVM分類器的特征向量,提出了一種番茄病蟲害檢測方法,對公開番茄病害數據集的識別率達99.49%。吳一全等[7]選用Shearlet變換和Krwtchouk矩分別提取儲糧害蟲圖像中的紋理、形狀特征向量,同時提出一種全局混沌蜂群算法優化SVM分類模型,由于提取到的特征信息較為完整,該模型對三種儲糧害蟲取得較好的識別效果。Kasinathan等[8]結合HOG和GIST特征描述子對田間蟲害圖像進行特征提取,采用多數投票的集成分類器實現較優的蟲害分類效果。基于深度學習的蟲害識別方法在近年來隨著計算機性能的不斷提升也得到廣泛關注。苗海委等[9]提出一種基于改進SSD的黏蟲板儲糧蟲害圖像檢測算法,實現了對粘蟲板誘捕到六類害蟲的識別與定位,識別率達81.36%。Shen等[10]采用Faster R-CNN模型建立了儲糧蟲害識別系統,通過優化的初始網絡對圖片樣本進行特征提取,系統對儲糧蟲害的識別精度達88%。因此,機器學習技術在蟲害識別應用上具有一定的必要性與可行性。
本研究以遷飛性害蟲草地貪夜蛾為識別對象,提出了基于粒子群優化SVM的蟲害圖像快速識別方法。目前基于粒子群優化SVM的算法模型已被嘗試應用于工業檢測中,如電路故障診斷[11]、環境數據的異常檢測[12]及工業控制中的異常檢測[13]等,其數據來源相對標準且規范,但在農業領域的識別應用中,采集到的大多數數據都是不標準且背景復雜的,這對模型的識別性能提出了更高要求。本研究首先構建草地貪夜蛾成蟲圖像數據集,并對圖像提取方向梯度直方圖特征,通過結合粒子群優化算法對SVM分類模型進行參數尋優,將優化SVM模型應用于蟲害圖像檢測中,重點解決實際應用中小訓練樣本的識別精度問題,該方法的簡單性和高效率使其適用于復雜背景下的蟲害識別。
為準確識別出目標類別,研究學者提出了許多特征提取方法,本研究選用HOG特征描述符來獲取圖像特征向量。方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征是一種通過計算和統計圖像局部區域的梯度方向直方圖來構建特征信息的一種特征描述子。HOG特征的本質可以理解為梯度的統計信息,圖像中局部目標的表象和形狀能夠充分通過梯度方向密度分布來描述[14,15]。另外,因為該特征方法的操作對象是圖像的局部方格單位,所以提取到的HOG特征對圖像的形變,包括幾何上的和光學上的都能保持良好的不變性[16]。
HOG特征提取算法的實現過程如下:首先采用Gamma校正法對灰度圖像進行顏色空間的歸一化操作,目的是調節圖像對比度[17],降低圖像局部由光照變化引起的光學影響,同時增強魯棒性。然后,計算每個局部方格單位內各像素點的梯度,從而得到圖片中對象的輪廓信息與梯度方向。圖像中像素點(x,y)的梯度計算公式如式(1)~式(4)所示。
Gx(x,y)=H(x+1,y)-H(x-1,y)
(1)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(2)
式中:Gx(x,y),Gy(x,y),H(x,y)分別為輸入圖像像素點(x,y)處的水平方向梯度、垂直方向梯度和像素值。
(3)
(4)
式中:G(x,y),a(x,y)分別為像素點處的梯度幅值和梯度方向。
將檢測窗口大小設置為與圖像分辨率一致為(150,150),把每個窗口分成10×10個方格區域,把梯度方向平均劃分為9個區間,分別計算各區域內的梯度直方圖,再把相鄰的區域組合成一個區域塊,在區域塊內對梯度強度做歸一化。最后再將各方格內提取到的特征向量串聯組合,形成圖像整體的HOG特征信息。本實驗在特征提取步驟中從每幅圖像中提取得到2 916個特征值。
針對本研究面向的小樣本數分類問題,選用傳統機器學習算法中的支持向量機(Support Vector Machine,SVM)分類模型。因該模型具有泛化能力強,對小樣本數據友好,算法靈活等諸多優點,目前已被廣泛應用于目標識別中[18]。SVM是一種基于統計學習理論的分類方法,通過監督學習的方式對數據進行二元分類,其決策邊界是對學習樣本求解的最大邊距超平面,該超平面的求解公式可以表述為:
y(ω·x+b)≥1-ξi(ξi≥0;i=1,2,…,n)
(5)
式中:ω為權重向量;b為分類閾值;ξi為松弛因子;C為懲罰因子。
引入核函數映射后,得到決策函數如式(6)所示:
(6)
式中:f(x)取值為1或-1;K(xi,x)為核函數,選用高斯核函數。
由式(6)可知,SVM對其內部參數有著極高的依賴性,懲罰因子c與核參數gamma的選擇將直接影響模型識別準確率[19]。同時,對于不同的數據集,使得識別效果最好的參數值也是不同的,因此模型內部參數的選取優化是SVM模型訓練中格外重要的一步。
粒子群優化算法(Particle Swarm Optimization,PSO)是一種基于迭代的智能群算法,是通過模擬鳥群捕食行為設計的。該算法的基本思想是通過群體中個體之間的協作和信息共享來尋找最優解[20]。從隨機解出發,通過迭代尋求最優解,并通過適應度來評價解的質量,粒子速度和位置的更新公式如式(7)和式(8)所示。

(7)
(8)

為了進一步提高SVM模型的識別性能與泛化能力,本研究提出采用粒子群優化SVM算法,解決模型中核函數與參數的尋優問題,進而建立效果更優的蟲害圖像識別模型。PSO-SVM算法模型的建立步驟如下:
初始化參數,隨機生成初始粒子群;
通過計算各粒子的個體最優解和全局最優解,更新粒子的速度和位置;
判斷是否滿足迭代終止條件,若滿足則跳出迭代,否則重復步驟2;
得到SVM模型內部參數c與gamma的最優值;
按正常步驟訓練SVM模型,使用測試集對模型識別效果進行評價。
本研究應用自行采集的草地貪夜蛾成蟲圖像進行識別實驗。準備好圖像樣本后,首先對圖像進行簡單的預處理,得到質量相對增強的圖像;然后從圖像中提取得到HOG特征信息,將圖像信息轉換為表征數據以便進行后續分類;接著將特征信息輸入PSO-SVM算法模型進行識別,最終得到蟲害識別結果。算法訓練與識別流程如圖1所示。

圖1 算法流程
選擇草地貪夜蛾成蟲作為實驗對象。草地貪夜蛾成蟲翅展寬度一般為32~40 mm。前翅灰色至深棕色,后翅灰白色,翅脈呈棕色并透明[21]。在暗箱內固定環形光源,選用德國IDS工業相機(型號:UI-3070CP-C-HQ Rev.2)作為圖像采集設備,標準化圖像采集環境如圖2所示。采集成蟲在簡單背景下和復雜背景下的正樣本(即有成蟲對象)圖像1 000張及負樣本(即無成蟲對象)圖像800張,共1 800副彩色圖像作為本實驗的數據集。

圖2 圖像采集環境示意圖
為提高檢測效率,對圖像進行預處理操作。首先將圖片分辨率降低為150×150(單位:像素),同時進行灰度化處理。接著對灰度圖像進行濾波操作,分別選用5×5的中值濾波模板和高斯濾波模板消除圖像中的隨機噪聲。經過預處理后的部分正樣本圖像如圖3所示。

圖3 預處理后的正樣本圖像示例
實驗中訓練模型的基礎環境為64位Windows10系統,并配置有Intel Core i5-6300HQ CPU和NVIDIA GeForce GTX 960M GPU。實驗在圖形處理單元(GPU)模式下進行,選用的腳本語言為Python,并安裝OpenCV圖像處理庫及Scikit-learn機器學習庫。
對PSO算法的初始參數做如下設置:慣性因子為1,學習因子為2,種群規模為20,迭代次數為100。通過迭代,PSO計算得到使得SVM分類效果最優的最佳懲罰因子c為0.025,最佳核參數gamma為1.964。PSO優化前后模型的識別實驗結果如表1、表2所示,識別正確樣本平均數指多次實驗后通過記錄每次實驗識別正確樣本數進而計算得到的平均值,平均準確率指識別正確樣本平均數除以待識別樣本數得到得到的百分比數,平均識別時間包含模型訓練所需的時間與識別測試所需的時間。

表2 模型對復雜背景下樣本的識別實驗結果
由表1、表2可知,傳統SVM模型與PSO-SVM模型在對簡單背景下蟲害圖像的識別中都能達到100%的準確率,但在對復雜背景下蟲害圖像的識別中,PSO-SVM模型的識別準確率相比于SVM模型提升了7.22%,且在識別時間上也縮短了30%。因此,經PSO算法優化后的SVM模型,既顯著降低了SVM模型性能對其內部參數懲罰因子c和核參數gamma的依賴程度,同時有效提高了其識別的精度與效率。
為進一步驗證PSO-SVM模型的識別性能,隨機選取300張圖片,分別選用裝袋最近鄰(Bagging-kNN)、自適應提升(AdaBoost)、隨機森林(Random Forest)、卷積神經網絡(Convolutional Neural Network,CNN)中的典型模型GoogLeNet inceptionV3與本文提出的PSO-SVM共5種機器學習分類模型對草地貪夜蛾蟲害圖像進行識別測試,實驗結果如表3所示。

表3 不同模型識別實驗結果
本研究提出的PSO-SVM模型在對蟲害圖像的識別實驗上,準確率均明顯優于另外幾種算法。其中,與Bagging-kNN、AdaBoost、Random Forest相比,同樣是選用HOG特征描述符從圖片樣本中提取特征向量作為模型的輸入,但從分類器效果來看,PSO-SVM模型的識別效果明顯更優,準確率差距基本保持6%以上,同時識別速度更快,能夠做到蟲害的實時檢測。對于CNN模型,在實驗中選用典型模型GoogLeNet inceptionV3進行對比實驗,該模型不依賴于先驗知識的特征提取算法,具有自主特征學習、自我完善模型等優點[22],可以自動學習并得到數據隱含在圖像內部的關系,提取出更高維、更具表達力的特征信息。但由于數據樣本數量的限制以及圖像采集背景的復雜性,在此實驗中CNN模型沒有取得很好的識別效果;且從識別時間上看,GoogLeNet inceptionV3模型在數據充足的條件下,提前訓練好學習模型后將會有不錯的識別效率,但在小樣本的應用條件下,其訓練時間成本相對較高。因此,出于識別精度與效率的綜合考慮,PSO-SVM模型在蟲害圖像識別實驗中取得了相對較好的識別效果。
機器學習技術的快速發展,大大提升了目標識別的速度與精度,為其在農業領域上的應用發展帶來了新的契機。本研究結合HOG特征描述符,提出一種基于PSO-SVM的蟲害圖像快速識別方法,對不同背景下的草地貪夜蛾蟲害圖像進行識別研究。實驗結果表明,該模型對簡單背景下樣本的識別率達100%,對復雜背景下樣本的識別率達93.89%,保證了蟲害識別的精度與效率,能夠為農作物蟲害識別與預防工作提供有益的參考。在今后的研究中,會考慮加入其他優化模型,加速優化迭代過程,達到更高效準確的效果。