苗晟,董建娥,鐘麗輝,謝裕睿
(西南林業大學大數據與智能工程學院,昆明 650224)
傳統的植物病害診斷受限于個人經驗和主觀意識,實時性差,效率低且容易誤判。隨著精準農業需求的增長和計算機視覺技術的發展,許多研究者采用圖像處理技術對植物病害圖像進行識別分類,取得了不錯的效果[1]。對植物病害圖像處理的文獻較多,但是近年來針對蟲害的識別文獻相對較少,主要體現在:首先是病蟲體型較小且形態不一,晝伏夜出,隱蔽性極強,導致單一算法識別效果不佳;其次是復雜環境下是否能夠準確地分割病蟲害區域是后續識別的關鍵因素,這也是行業內公認的難點[2]。
針對蟲害復雜區域分割和定位的困難,本文研究在傳統分水嶺和K-means聚類分割基礎上增加蟲害色彩先驗信息[3],在LAB空間中對細小蟲害區域分割,再通過SIFT特征點匹配對蚜蟲病害圖像進行檢測。
蚜蟲(俗稱膩蟲)是全世界農林業中最具破壞性的害蟲之一,其特點是繁殖快、傳播廣,對植物的危害主要是吸食植物葉汁、傳播病毒,造成花、葉、芽的畸形。蚜蟲病害的圖像識別難點在于蚜蟲體型較小,其蟲卵只有1至10毫米,且種類較多,目前已知的蚜蟲種類有十個大類,多達4700種[4]。
常見的不同植物上的蚜蟲病害如圖1所示,病蟲斑區域可能是相互不連通的獨立區域,不同蚜蟲種類有其相對獨特的色彩,和葉面背景形成一個對比。以不同蚜蟲的色彩信息作為先驗信息,設置適當閾值分離病斑和葉面背景,通常首先采用分水嶺算法分割病斑,再采用K-means算法進一步聚類。
在分水嶺算法中,首先將圖片轉換為灰度圖,在高度為h的一個極小區M(minimum)中,將二維灰度圖像定義為一連通區域,由高度值為h的點構成,從該區域任一點出發到達某一像素點(高度低于h),其路徑中至少存在一點高度大于h。

圖1 常見的蚜蟲蟲卵和幼蟲病害圖片
集水盆地C(M)與極小區M相關聯,其特點為:假設一滴水落到某點P上,由于重力作用,該水滴將沿一條最快下降路徑下滑并最終到達極小區M。通過對M的分割,達到整副圖像的分割[5]。
K-means聚類算法是最常見的無監督學習算法,在一組數據集中隨機選取k個點作為質心,將其余的點歸為離其最近的質心一簇。分別計算被劃分的k個簇的質心(均值),以新的質心為依據,重新聚類并再次計算各簇質心,直到質心不再改變,即分類完成[6]。
如果只采用常規的分水嶺分割和K-means聚類,難以達到滿意的效果,因此需要在這個基礎上在LAB色彩空間中進行進一步的精細劃分。
相對于圖像處理的RGB色彩空間,Lab色彩空間中色域更大,因此圖像處理中一般先將圖像從RGB色彩空間轉換至Lab色彩空間。
鑒于蚜蟲病斑細小且顏色與背景相近,為了區別不同種類的蚜蟲,需要結合其自身顏色,從細微的色彩空間中尋找差異[7]。例如草蚜呈黃綠色,其和綠色背景葉片上的區別主要就在于黃色特征的提取,因此對該種類病蟲的檢測需要在色彩空間中通過適當的閾值對黃色分量進行提取,而在葉面中背景一般為綠色,因此黃色和綠色色差就是辨識的關鍵,在LAB色彩空間中,綠色和黃色色彩向量過渡圖示如圖2(a)所示。

圖2 草芽色彩在Lab空間中的示意圖
在圖2(b)中,設待分析圖像中對應a分量色彩向量為,a分量里面綠色分量是負值,b分量的色彩向量為B→,亮度分量L對應的向量為L→,則黃綠色差向量為:

通過對色差向量設置適當的閾值,對葉面中黃綠色差向量D?進行分割,達到抑制綠色分量、提高黃色分量亮度的目的,這樣可以顯著提取含黃色分離成分較多的病斑區域。閾值的設置依靠經驗值,也可以看作是一個先驗信息,一般需要大量蟲害本身的色彩和葉面的圖片對比度得出。
對于較為細小區域的識別,尺度不變特征轉換(Scale-Invariant Feature Transform,SIFT)[8]是一種比較理想的選擇,一般在計算機視覺算法中用來偵測與描述影像的局部性特征,在圖像識別多個領域進取得了良好的效果。本文提取特征過程如下:
(1)圖像模糊算法
SIFT算法在不同的尺度空間中尋找關鍵點,采用高斯模糊實現尺度空間的獲取,唯一線性變換核即為高斯卷積核。高斯模糊作為一種圖像濾波器,使用正態分布(高斯函數)來計算對應的模糊模板,并用該模板與原圖像進行卷積運算,達到模糊圖像的效果[9]。N維空間正態分布方程為:

其中,σ是標準方差,該值越大,平滑度越高,導致圖像越模糊。r為模糊半徑,如果在二維空間中用橫縱坐標替代該公式,其生成的曲面等高線是從中心開始呈正態分布的同心圓:

根據σ值得到高斯模板矩陣的值,并與原圖像做卷積運算,即可實現原圖像的平滑(高斯模糊)效果。將模板矩陣歸一化處理,確保其中的元素均在[0,1]之間。例如5×5的高斯模板如下所示:

得到不同尺度下的高斯核函數,就可以計算二維圖像I(x,y)不同尺度下的表示,其中G(x,y,σ)是尺度可變高斯核函數,而σ是尺度參數。

(2)關鍵點的定位
得到不同尺度空間的圖像后,將中間層的點和周圍所有相鄰點進行比較,尋找差值較大或者較小的點,同時去除邊緣不穩定的響應點和對比度較小的特征點,提高抗噪聲能力,增強匹配穩定性。
(3)關鍵點方向分配和局部圖像描述
首先選取關鍵點周圍16×16的圖像區域,從中計算4×4的描述區域,即八個方向的描述序列,可以產生128維的特征描述向量,這個向量就是關鍵點特征。
(4)SIFT特征匹配
兩幅圖像采用上述算法分別得到SIFT特征向量后,用關鍵點的特征向量進行匹配,匹配方式一般用歐氏距離法,本文中采用歸一化交叉相關系數(Normal?ization Cross Correlation,NCC)[10]來進行相關性計算。假設有兩個矩陣,A∈Rm×n,B∈Rm×n,它們的 NCC 系數計算如下:

NCC計算得到一個相關度系數,該值越接近1則表示相關度越大,越接近0則相關度越小。
對蟲害圖片的識別難點在于定位病蟲位置。如果分割病害區域的位置過小,則容易造成匹配點過少,無法檢測到大量的病蟲區域;如果分割區域過大,背景去除不干凈而帶有大量葉面信息,導致匹配點過多,造成過檢測,因此葉面病害區域和背景的分離很重要[11]。為了測試對比本文算法具體效果,首先采用幾種傳統圖像邊緣檢測分割的算法對蚜蟲圖片進行分割和提取,分割結果如圖3所示。
在圖 3 中,圖 3(a)是原始圖片;圖 3(b)是對應的灰度圖片;圖 3(c)和(d)分別對應的 Robert算子[12]和Sobel算子[13]的分割結果,這兩種算子分割對邊緣平滑的力度較大,因此分割區域過??;圖 3(e)和(f)是 Pre?witt算子[14]和Canny算子[15]的分割結果,這兩種算子分割的區域大,尤其是葉面紋路和徑脈留存較多,使得后續識別受葉脈干擾較明顯。
本文在分水嶺分割的基礎上,加入LAB色彩空間向量信息進行病害區域的提取和分離,效果如圖4所示。

圖3 幾種常見算子對蚜蟲病斑區域分割對比圖

圖4 基于葉面信息的蚜蟲病害區域提取
圖4(a)為原始圖片,圖4(b)是基于分水嶺算法的葉面部分與背景分離后的圖片,圖4(c)是基于LAB色彩空間的蚜蟲病害區域特征提取模板,圖4(d)是基于該模板提取的蚜蟲病害區域圖片。
從圖4(d)中可以看出,經過在LAB分水嶺分割基礎上增加LAB色彩空間中的閾值分割,蚜蟲病斑區域得到了較好的分割,便于后續特征點匹配。
在草芽特征點匹配中,采用SIFT特征點對進行匹配,圖5給出了兩組匹配示意圖。

圖5 草蚜模板和待識別圖片SIFT特征匹配圖
在圖5(a)中,模板和待匹配圖片匹配了17對特征點,在圖5(b)中匹配了28對特征點。本文中不同算子提取的模板參數對比結果如表1所示。

表1 不同算子提取的模板參數對比
特征點的匹配不是越多越好,因為需要對病蟲的匹配,而不是對葉面的匹配,為了測試匹配及不同分割算子提取的模板的識別效果,采集56幅蚜蟲病害圖和124幅正常葉面圖進行匹配,如果匹配的特征點多于10對就認為是病害圖片,不同分割算子提取的模板匹配識別結果如表2所示。
本文在傳統分割算法的基礎上結合SIFT特征點匹配對蚜蟲病害圖像進行檢測,該方法能做到對旋轉、亮度變化、尺度縮放保持不變,對噪聲、視角變化、仿射變換也有一定程度的穩定性,有助于快速查找、實時匹配,具有可擴展性。
盡管本文提出的算法在蚜蟲病害識別上出現了較好的效果,但仍然有所不足,主要是蚜蟲病害圖片數據量較少,結論存在局限性,因此需要更多不同種類的蚜蟲病害圖片進行更加廣泛的測試。