郭慶陽,譚 峰
(黑龍江八一農墾大學信息與電氣工程學院,黑龍江大慶 163319)
水稻一直是我國乃至全世界人民賴以為生的重要糧食作物,穩定水稻量產對國家糧食安全有著不言而喻的意義。有關統計表明,亞洲為全世界提供了大部分的稻米[1],但很多因素會導致水稻減產,比如病蟲害的侵襲。由于氣候、耕作方式、選取的品種不適合種植環境以及不合理用藥等因素。近年來,我國多地區出現了水稻病害面積逐步增大、病害種類逐步增多等情況。稻瘟病孢子用肉眼難以觀察,會隨著空氣以及雨水傳播到水稻的各部位造成稻瘟病,水稻病稻瘟病會直接導致水稻減產,帶來慘重的經濟損失[2]。因此,及時判斷出水稻各部位上是否有稻瘟病孢子尤為重要。
在植物病害識別領域,目前都采用圖像處理與機器學習或深度學習相結合的方法進行病害識別。馬超等[3]使用水稻病害圖像的HOG 特征結合支持向量機對水稻5 種病害進行識別,并對水稻葉片上病斑位置進行定位;張乃夫等[4]使用卷積神經網絡對玉米以及馬鈴薯等5 種病害進行識別,并研究采用兩種池化方式對準確率的影響;陳悅寧等[5]使用NAGSA-BP 算法對水稻3 種病害進行分類研究,提取病害圖像的顏色特征、形狀特征、紋理特征,識別準確率高達90%以上。
上述研究針對的都是植物葉片上的病害,此時植物已經發病并且極有可能造成減產,目前對于水稻稻瘟病孢子圖像的分類研究還較少。因此,在發病前及時預防稻瘟病具有重要研究意義。
實驗用的稻瘟病孢子玻片(見圖1)在2020 年12 月5日獲取,來源于黑龍江八一農墾大學農學院,玻片數量為5片,使用美佳朗光學顯微鏡進行觀察,使用mipro 顯微圖像采集軟件進行圖像采集。

Fig.1 Glass slide of rice blast spores圖1 稻瘟病孢子玻片
在采集圖片的實驗中,首先調節光圈,能看到白亮的視野后調節粗準焦螺旋,直至看到模糊的稻瘟病孢子后調節細準焦螺旋,調節到能看到清晰的稻瘟病孢子圖像后就可以采集圖像,然后移動玻片就可以看到不同的稻瘟病孢子。本研究采用40 倍物鏡及500 萬像素的電子目鏡進行觀察,使用mipro 圖像采集軟件進行圖像單幀拍攝,每張圖像大小為2 592×1 944。本實驗使用Python 的Opencv 模塊以及skimage 模塊進行圖像預處理及特征提取,使用Python的NumPy模塊進行數據處理。
對采集的稻瘟病孢子進行剪裁,剪裁的正樣本圖片為336 張,負樣本圖片為294 張,每個圖像大小剪裁成240×280,因為孢子大小不同,該圖像尺寸可以保證能將稻瘟病孢子都完整地覆蓋。稻瘟病分生孢子呈鴨梨形,成熟的稻瘟病孢子基部是鈍的圓形并且有一個小突起,頂端是尖的,有兩個橫膈膜,如圖2 所示。負樣本采集的是氣泡等一些雜質,如圖3所示。

Fig.2 Image of rice blast spores圖2 稻瘟病孢子圖像

Fig.3 Negative sample image圖3 負樣本圖像
在稻瘟病孢子圖像采集過程中,由于玻片及采集設備的影響,采集到的圖片會有一些噪聲及干擾,將影響之后的特征提取,因此需要對圖像進行去噪,為提高識別率,需要用到灰度化、二值圖像等其他預處理方法。
2.2.1 圖像灰度化
圖像灰度化指將彩色圖像3 個通道變為一個通道,這樣像素點顏色就變為灰色[6]。本文采用加權平均法進行圖像灰度化(見圖4),采用加權平均能夠在最大程度上保留圖像原有信息,將r、g、b 根據不同的權重進行加權平均,如式(1)所示。

其中,b、g、r 為每個通道的像素值,Gray 為灰度化之后的像素值。

Fig.4 Grayscale image圖4 灰度化圖像
2.2.2 中值濾波
中值濾波的原理是:規定大小為A×A 的窗口在圖像上進行滑動,然后將這些像素點按值大小排序,之后用第(1+A2)/2 的像素值代替中心的像素值,A 為正整數,一般取值為3、5、7、9[7]。本實驗采用3×3 的窗口,采用峰值信噪比(PSNR)衡量濾波效果[8],如圖5 所示。峰值信噪比定義為:

其中,MSE 代表稻瘟病孢子原圖像與中值濾波后圖像之間的均方誤差。MAXI代表稻瘟病顯微圖像中像素點顏色的最大數值為255。通過公式計算出的峰值信噪比為40.16,說明有較好的濾波效果且未失真,保留了圖像原有信息。因此,中值濾波適用于對稻瘟病孢子顯微圖像進行去噪。

Fig.5 Median filtered image圖5 中值濾波后的圖像
2.2.3 圖像分割
圖像分割的主要思想是根據前景和背景像素點的差異將前景提取出來,大津算法由于其操作簡單而被廣泛應用于圖像分割。本研究采用大津算法進行圖像二值化,大津算法會根據稻瘟病孢子與背景像素點的差異進行自動閾值選取,主要思想是使得圖像前景像素和背景像素類方差最大,這樣避免了傳統二值化方法需要手動設置閾值的問題。可以看出,使用大津算法二值化后的圖像可以有效地保留稻瘟病孢子的完整輪廓,如圖6 所示。灰度圖像中前景和背景像素點的灰度值之間會有一定差異,因而可以用類方差的大小描述前景和背景之間的不同,一旦錯分,類間方差就會變小。當前景和背景之間誤分的像素點最少時,類間方差最大[9]。假設圖像的分辨率是a×b,根據像素點可以分為兩類,第一類為前景,第二類為背景,w0 表示第一部分的像素與a×b 個像素的比值,u0 表示第一部分像素值的總和與第一部分像素點總數的比值,w1 表示第二部分的像素與a×b 個像素的比值,u1 表示第二部分像素值的總和與第二部分像素點總數的比值,u 表示a×b 個像素值的和與a×b 的比值,g 代表類間方差。再將圖像中所有的像素點與閾值T 進行逐一比較,結果分為3 種:第1 種是閾值比像素點的值大,總數記為n0;第2 種是閾值比像素點的值小,總數記為n1;第3 種情況是相等,則可以加到n0或n1里。用公式表示為:

將T 的值從0~255 范圍內依次代入,可以算出使g 最大時的分割閾值T。

Fig.6 Image segmented by OTSU圖6 大津算法分割后的圖像
2.3.1 形狀特征提取
對二值化圖像使用Canny邊緣檢測能夠更好地實現對稻瘟病孢子輪廓的邊緣提取,Canny 相比于其他邊緣檢測算法具有更好的去噪能力及更高的精度[10]。通過輪廓檢測進行形狀特征提取,可提取橢圓度、最小外接矩形長寬比、周長、面積作為稻瘟病孢子輪廓的形狀特征,如圖7、圖8 所示。面積為稻瘟病孢子最外層輪廓所包含像素點的個數,周長為稻瘟病孢子最外層輪廓像素點的個數。本文采用Opencv 中的minAreaRec 函數求解最小外接矩形,其主要原理是先求輪廓點集的凸包,然后求凸包的最小外接矩形,稻瘟病孢子最小外接橢圓是根據頂點坐標繪制,本研究使用fitEllipse 函數求取頂點坐標[11]:

式(10)中,B[0]、B[1]、B[2]、B[3]代表4 個頂點坐標,A(B[m],B[n])表示B[m]和B[n]之間的距離,S 表示稻瘟病孢子最小外接橢圓的面積。
橢圓度計算公式為:

式(11)中,N 為橢圓度,Z 為稻瘟病孢子的面積,A、B分別表示稻瘟病孢子最小外接橢圓的長軸及短軸。

Fig.8 Minimum circumscribed ellipse and minimum circumscribed rectangle圖8 最小外接橢圓與最小外接矩形
2.3.2 紋理特征提取
紋理特征也可以作為圖像分類的主要依據,紋理特征的數據代表前景像素的分布情況以及前景與背景的關系等一系列重要信息。目前,圖像處理中大多數使用兩種方法提取紋理特征:第1 種是灰度共生矩陣,也叫作GLCM;第2 種是局部二值模式,也稱為LBP。本研究采用這兩種方法提取稻瘟病孢子圖像的紋理特征。
灰度共生矩陣能夠準確地反映出灰度圖像中各像素點之間的相關性,灰度共生矩陣P(i,j|d,θ)(i,j=0,1,2,…L-1) 表示灰度級別為L 的灰度圖像中,角度為θ,間距為d的灰度值為i、j的兩個像素出現的次數[12],可以用如下6個參數描述灰度共生矩陣:
(1)角二階矩(ASM)。角二階矩可以用來表示稻瘟病孢子紋理粗細水平以及衡量圖像灰度分布均勻水平,可用公式表示為:

(2)對比度(Contrast)。對比度可以用來反映圖像清晰水平及紋理深淺水平,可以用公式表示為:

(3)相關性(Correlation)。相關性可以用來表示圖像局部的相關水平,可用公式表示為:

式中,μx、uy表示行方向與列方向上的均值,σx、σy表示行方向與列方向上的方差。
(4)相異性(Dissimilarity)。相異性可以由權重隨矩陣元素和對角線距離的線性增長方式得到,可用公式表示為:

(5)同質性(Homogeneity)。同質性原理與相異性相反,其以指數形式減小。可用公式表示為:

(6)能量(Energy)。能量表示圖像紋理的灰度變化穩定程度,當圖像中的紋理比較穩定并且有規則地變化,則代表能量值大。可用公式表示為:

本研究設置θ為4 個角度,分別為0。、45。、90。、135。,距離d=1,取4 個方向參數的平均值,這樣就形成了6 個灰度共生矩陣的特征值。
LBP 作為一種較好的圖像局部紋理特征提取算法,主要原理是通過設置半徑及采樣點得到一個鄰域,再根據像素值的大小對中心點和鄰域點做減法,加入結果大于0,則該鄰域點的像素值置為0,如果差值小于0,則該鄰域點的像素值置為1,這樣就可以用二進制數代表圖像的紋理特征[13],經過不斷改進,Ojala 等[14]于2002 年提出旋轉不變的統一模式,解決了之前LBP 容易缺少方向信息和維數過高由此引發的計算量過大等問題。本研究采用LBP 的旋轉不變的統一模式獲取紋理特征[15]。

式(18)中,U(LBPP,R)代表0變為1的次數,若U(LBPP,R)≤2為統一模式局部二值模式,則:

式(19)中,gi、gp表示鄰域內第i個和第p個像素點的灰度值,gc表示所設置的鄰域中心像素點的灰度值,P 為采樣點數,R 為半徑。
本研究所采用的模式具有穩定的旋轉不變性及灰度不變性,設定R=3、P=8,總共輸出10 個特征值,維數低,可以降低模型訓練時間。
部分稻瘟病孢子顯微圖像特征如表1 所示。由于各特征值之間的量綱不同,本研究對稻瘟病孢子圖像特征值進行數據預處理所采用的方法是Z-Score 標準化。該方法能夠使數據縮放到同樣的范圍,可以減少不同量綱的數據對訓練模型的影響[16]。

Table 1 Microscopic image characteristics of some rice blast spores表1 部分稻瘟病孢子顯微圖像特征
支持向量機是機器學習領域的一個經典算法[17-18],對于小樣本分類問題依然有著很高的準確率[19],支持向量機的主要思想為找到最合適的超平面,在符合分類精度的情況下,讓該超平面和樣本之間的間距最大。假設有一組樣本集為(xi,yi)的樣本數據,分類函數可以表示為:

其中,b*表示分類閾值,表示拉格朗日乘子,sgn()表示符號函數。
如果不存在將正負樣本嚴格劃分開的超平面,可以增加松弛項ξ(ξ≥0)及懲罰系數C,還可以使用核函數將數據映射在高維空間,然后在高維空間找到一個超平面分割正負樣本,這樣就使低維線性不可分問題變成了高維線性可分問題[20]。在SVM 中經常使用以下核函數:
線性核函數(Linear):

徑向基核函數(RBF):

多項式核函數(POLY):

多層感知機核函數(Sigmoid):

本研究設定的訓練集與測試集比例為3∶1,每個樣本具有20個特征值,通過多次對比驗證,結果如表2所示。
可以看出,在稻瘟病孢子顯微圖像訓練樣本不多的情況下,使用SVM 進行分類具有較高的識別準確率。同時,也可以看出使用徑向基核函數的識別準確率最高為98.7%,因此可以選擇徑向基核函數用于稻瘟病孢子顯微圖像分類。

Table 2 Comparison of recognition accuracy of different kernel functions表2 不同核函數識別準確率對比
本文使用數字圖像處理技術及SVM 實現了對稻瘟病孢子顯微圖像的分類研究,結果表明,使用大津算法的圖像二值化可以有效分割出稻瘟病孢子,中值濾波可以減小周圍噪點對之后特征提取所帶來的影響。稻瘟病孢子輪廓的形狀特征及紋理特征可以較好地表現出稻瘟病孢子顯微圖像的本質特征,SVM 對于小樣本分類問題有著較好的穩定性及較高的準確率。但是,本文只對北方寒地水稻稻瘟病孢子顯微圖像進行了研究,由于不同地區的水稻稻瘟病孢子在形態上有些差異,后續可對其他地區水稻稻瘟病孢子圖像作分類研究。