孫 瑜,張永梅,武玉軍
(1山西農業(yè)大學信息科學與工程學院,山西 太谷 030801;2大同大學,山西 大同 037000)
大同黃花是山西省地方名優(yōu)蔬菜品種,已成功申報國家級特色農產(chǎn)品,同時入選全國第二批產(chǎn)業(yè)扶貧典型范例[1]。大同民間黃花菜主要通過分株繁殖的方式獲取種苗,易產(chǎn)生病害,同時大同黃花菜種植不斷擴張,從全國的黃花主產(chǎn)區(qū)調運黃花種苗也引入了病害[2]。黃花菜病害導致減產(chǎn)可達10% ~20%[3],及早精確識別發(fā)現(xiàn)并防控病害,能夠有效減少病害對黃花菜產(chǎn)量和質量的影響。計算機圖像識別技術已廣泛應用于農作物病害識別,利用數(shù)字圖像技術可實時監(jiān)測作物生長狀況。李旺[4]以黃瓜葉部病害為研究對象,提取黃瓜葉部顏色、形狀和紋理特征,基于支持向量機(SVM)訓練分類模型,實現(xiàn)了對黃瓜葉片常見3種病害的識別。楊英茹[5]針對小樣本及復雜環(huán)境,使用滑動窗口將番茄葉部病害切割成小區(qū)域圖像實現(xiàn)病害區(qū)域分割,提取顏色紋理特征(CCL),基于CCL-SVM對番茄早疫病、白粉病、斑潛蠅和健康葉片實現(xiàn)分類識別。郭小清等[6]以番茄晚疫病、花葉病、早疫病葉片圖像為研究對象,提取四維H分量等量分割波段的顏色特征和三維均值、對比度和熵的紋理特征作為輸入,用粒子群算法(PSO)優(yōu)化SVM模型參數(shù),特征融合模型識別準確率高達90%。劉翠翠等[7]以川麥冬葉部3種病害圖像為對象,采用K-means聚類算法分割病斑,通過特征融合構成特征向量進行主成分分析,基于支持向量機設計多級分類器實現(xiàn)病害識別。董斌等[8]提出了帶有粒子權重和粒子之間相關度函數(shù)的PSO參數(shù)尋優(yōu)算法,基于改進的PSO優(yōu)化SVM的分類算法分類,提高病理圖像分類的準確率。顧興建等[9]實現(xiàn)了番茄葉部病斑分割與識別,針對番茄葉部病斑大小不一、形狀不規(guī)則、病斑分割需要大量像素級標記等問題,提出一種多尺度U網(wǎng)絡,以同時實現(xiàn)番茄葉部病斑分割與病害識別。當前針對黃花菜葉部的病害識別研究還較少,多基于單一特征參數(shù)進行模式識別,準確度不高,且大棚種植圖像識別容易受到環(huán)境光線影響,進而影響葉片病害的識別。本研究以高寒地區(qū)大棚采集的黃花菜葉部病害圖像為研究對象,利用數(shù)字圖像處理技提取目標顏色特征、HOG特征和形狀特征,建立多特征融合模型,利用PSO優(yōu)化SVM參數(shù)建立分類模型,以期實現(xiàn)黃花菜葉部病害的無損、高效、快速識別,為實現(xiàn)智慧農業(yè)提供理論參考和技術參考。
本數(shù)據(jù)圖像采集時間為2021年4月15—20日,采集地點位于山西省大同市云州區(qū)的農戶種植大棚(113°20′-113°55′E,39°43′-40°16′N),拍攝相機為3D-1MP02-V92,CMOS型感光元件,采集圖像初始分辨率為3024像素×4032像素,拍攝輸出圖像格式為JPG。在圖像采集過程中使用白色背景板,減少由于土壤及環(huán)境光線產(chǎn)生的噪聲。采集不同程度病害葉片圖像120張和健康葉片200張,共計320張。CPU型號為Intel Core i7,內存16G,硬盤容量1T,處理軟件MatlabR2021a。為了提高識別模型的訓練速度和訓練精度,圖片尺寸統(tǒng)一裁剪為480像素×640像素。
對圖片依次進行去霧處理、中值處理和均衡處理。受光線影響大棚內采集的圖片偏暗且有光影,采用基于暗通道先驗的圖像去霧算法減少環(huán)境光照造成的圖像局部陰影的影響[10]。中值濾波算法可以消除圖像中脈沖噪聲、椒鹽噪聲等[11]。采用對比度受限的自適應直方圖均衡算法(CLAHE)能夠突出感興趣區(qū)域特征,降低邊界偽影[12]。圖1為病害葉片及預處理的結果圖,圖2為健康葉片及預處理結果圖。
圖1 病害葉片處理圖
圖2 健康葉片處理圖
葉片病害識別的感興趣區(qū)域是目標區(qū)域即病害區(qū)域,圖像分割就是將病害區(qū)域和其他區(qū)域分割開來,圖像特征的提取要基于圖像預處理和圖像分割[13]。病斑區(qū)域葉片顏色發(fā)生了變化,故基于K-means聚類算法對均勻色彩空間CIEL*a*b*做圖像分割[14]。首先圖像從RGB空間轉換為Lab空間,然后設置聚類數(shù)為2,對Lab空間的顏色分量(a*、b*)進行K-means聚類,提取出單個病斑后,對病斑圖像做形態(tài)學處理,平滑病斑邊緣,填充病斑孔洞,得到完整病斑圖像[15]。
病害分割效果圖如圖3a所示,K-means聚類的方法從病害圖像中分割病斑區(qū)域,分割效果較好,提取出的圖像較好地體現(xiàn)了病斑的外在特征。圖3c為健康葉片的圖像分割結果,葉片可從背景中分割出來。用加權平均法將彩色圖像轉化為灰度圖像,降低圖片維度,減少圖像數(shù)據(jù)量,增加數(shù)據(jù)之間的可對比性,消除特征值范圍之間的差異,灰度化結果如圖3b、d所示。
圖3 圖像分割及灰度化結果圖
1.3.1 顏色特征提取 顏色特征是最容易區(qū)分的特征信息,Stricker和Orengo提出一種簡單有效的顏色特征表示方法,通過計算矩來描述顏色分布,顏色信息主要分布在低階矩中,用一階矩(平均值)、二階矩(方差)和三階矩(標準差)表達圖像的顏色分布,矩以數(shù)學方法為基礎[16]。
1.3.2 HOG特征提取 方向梯度直方圖(histogram of oriented gradient,HOG)是一種特性描述子,通過計算與統(tǒng)計圖像局部區(qū)域的梯度方向直方圖來構成特征[17]。在一幅圖像中,梯度方向密度可以描述局部目標的表象與形狀,實現(xiàn)方法如圖4所示。
圖4 HOG特征提取步驟圖
1.3.3 形狀特征的參數(shù)提取 形狀特征是圖像中感興趣區(qū)域所體現(xiàn)的幾何細節(jié)特征,是形狀表達和匹配的區(qū)域特征描述方法,形狀特征穩(wěn)定且不受光線等影響[18]。形狀特征在圖像處理及圖像分割的基礎上實現(xiàn)的,圖像中的矩可用來抽取圖像的形狀特征,低階矩反映主要低頻信息,高階矩反映高頻細節(jié)信息。采用有關形狀定量測度的幾何參數(shù)法得到目標區(qū)域的面積和周長。計算過程:(1)首先檢測像素邊緣;(2)檢測并記錄垂直方向、水平方向連讀的周長像素點;(3)得到計算目標的高度a和寬度b;(4)計算出周長像素點的總數(shù),得到目標區(qū)域周長L、面積S。
根據(jù)面積、周長參數(shù)不能完全識別病斑,由面積、周長參數(shù)計算出能夠代表區(qū)域圖像形狀特點的參數(shù),包括矩形度和伸長度。矩形度R是檢測到目標形狀的面積與其外接矩形面積的比值,計算如式(1)。R越接近1則越接近矩形。
伸長度E是所檢測出目標外接矩形寬與長的比值,計算如式(2)。檢測圖像形狀的細長程度與伸長度成反比。
1.4.1 支持向量機基本算法 支持向量機(support vector machine,SVM)是基于統(tǒng)計學習理論中VC維理論以及結構風險最小原理,在一定數(shù)量的樣本之間根據(jù)信息模型復雜度和學習能力解析出最優(yōu)折衷,主要用于分類與回歸分析[19]。SVM具有可靠的理論基礎,利用支持向量機確定分類邊界,其原理不包含一些統(tǒng)計方法,減少了歸納到演繹的冗雜過程,很大效率地簡化了分類,改變非支持向量樣本不會改變訓練模型,可靠性高。SVM的學習過程是在高維空間中尋找一個分類超平面,將不同類別的樣本點分開,使不同類別樣本點之間的間隔最大,該分類超平面即為最大間隔超平面對應的分類器,稱為最大間隔分類器[20]。原理如圖5所示,特征向量(以二維為例)映射為空間中的點,圓圈和方塊表示不同的2類,實心圓圈和方塊表示距離平面最近的點。
圖5 SVM分類原理圖
支持向量機用核函數(shù)代替最優(yōu)分類面的內積,不同的內積核函數(shù)表現(xiàn)為不同的SVM算法,其中徑向基核函數(shù)RBF(radio basic function)是最常用的非線性核函數(shù)[21],適用于小樣本、高維數(shù)據(jù)的識別,SVM引入徑向基核函數(shù)RBF需要確定參數(shù)懲罰因子c和核參數(shù)g[22-25]。
1.4.2 粒子群算法優(yōu)化支持向量機 分類器的優(yōu)化算法最常用的是群智能算法,主要是模仿自然界中的生物種群行為[26]。粒子群(particle swarm optimization,PSO)算法的原理是通過計算每個粒子位置的目標函數(shù)值找到個體最優(yōu)位置和整個粒子群的最優(yōu)位置,每個粒子受一定隨機擾動后決定下一步運動,粒子群作為整體向著目標函數(shù)的最佳點移動完成算法優(yōu)化,最后找到最優(yōu)參數(shù)懲罰因子c和最優(yōu)徑向核參數(shù)g[27]。粒子群優(yōu)化算法的原理如圖6所示。
圖6 PSO算法原理圖
由經(jīng)驗值得到粒子群算法設置初始參數(shù),種群最大數(shù)量N為20,最大進化數(shù)量為200,參數(shù)局部搜索能力參數(shù)c1為1.5,參數(shù)全局搜索能力參數(shù)c2為1.7。
1.4.3 Kennard-Stone算法 Kennard-Stone將所有葉片樣本從中選擇預定數(shù)目的訓練樣本和驗證樣本,同時輸出訓練集和驗證集在原樣本集的編號信息,方便樣本查找。具體過程是:(1)選擇訓練樣本,計算兩兩樣本之間歐式距離,選擇距離最大的2個樣本。(2)分別計算剩余的樣本與已選擇的2個樣本之間的距離。(3)對于每個剩余樣本,記錄其與已選樣品之間的最短距離,然后選擇這些最短距離中的最長距離對應的樣本,作為第3個樣本。(4)重復步驟(3),直至所選的樣品的個數(shù)等于事先確定的訓練樣本數(shù)目為止,剩余的樣本,作為驗證樣本。
1.4.4 基于PSO-SVM識別模型步驟(1)圖像預處理,包括去霧、濾波、圖像分割以及灰度化;(2)分別提取圖像顏色特征、HOG特征和形狀特征,并對特征數(shù)據(jù)歸一化處理;(3)調用Kennard-Stone算法分類數(shù)據(jù)集,將數(shù)據(jù)劃分為訓練集、驗證集,訓練集:驗證集=9:1;(4)基于單一特征及多特征融合訓練SVM模型及PSOSVM的模型并做分類識別。
基于單一顏色特征、HOG特征和形狀特征,通過SVM交叉驗證,SVM模型選擇徑向基核函數(shù)RBF,得到SVM訓練模型的最優(yōu)參數(shù)懲罰因子c(8.1)和最優(yōu)核參數(shù)g(13.2),基于不同特征參數(shù)SVM模型葉片病害識別結果如表1所示,基于顏色特征的SVM模型識別率為71.67%,識別率最低,基于HOG特征的SVM模型識別率最高,識別率為78.33%,因為葉片中病害區(qū)域相對于健康區(qū)域發(fā)生較明顯變化?;谛螤钐卣鞯腟VM模型識別率76.67%?;趩我惶卣鞯腟VM分類模型識別率都不理想,融合顏色特征、HOG紋理特征和形狀特征參數(shù),基于特征融合的SVM模型識別率提高至81.67%,說明基于多特征融合的SVM模型有利于更好地識別葉片病害區(qū)域。
表1 基于不同特征參數(shù)的識別結果
基于PSO通過交叉驗證優(yōu)化SVM算法,選擇RBF核函數(shù)(t=2),經(jīng)過多次訓練后,得到SVM訓練模型的最優(yōu)參數(shù)懲罰因子c(2.3073)和最優(yōu)核參數(shù)g(12.2195),基于多特征融合的SVM模型及PSO-SVM模型葉片病害識別結果如表2所示,基于PSO-SVM模型識別率從81.67%提高到92.39%。
表2 不同SVM模型識別結果
本研究以黃花菜葉片病害為研究對象,提出了基于粒子群算法-支持向量機(PSO-SVM)的特征融合的葉片病害識別算法,該模型識別率準確率較高,滿足在農田大棚的光照環(huán)境下應用。
(1)基于PSO-SVM特征融合的葉片病害模型識別率高,識別率可達92.39%,PSO粒子群算法優(yōu)化了SVM訓練懲罰因子和徑向基核參數(shù),提高了分類模型識別率。
(2)基于單一特征的SVM模型中,基于HOG特征識別率最高,識別率為78.33%?;趫D像顏色特征、HOG特征和形狀特征融合的SVM模型的識別率要高于基于單一特征的SVM模型的識別率,基于特征融合的SVM模型識別率提高至81.67%。
(3)圖像預處理算法對于圖像特征提取以及模型建立很重要,圖像去霧算法改善了采集圖像時光線對圖像的影響,去除圖像陰影,突出顏色、紋理、形狀特征;對比度受限的自適應直方圖均衡算法(CLAHE)加強了葉片的感興趣區(qū)域的特征,提高了圖像分割提取目標區(qū)域的識別效率。
數(shù)字圖像技術與機器學習可應用于黃瓜、番茄、黃花菜等作物病害葉片的識別。筆者基于數(shù)字圖像處理技術提取出黃花菜葉片圖像的3種單一特征,建立的SVM模型識別率分別為71.67%、78.33%、76.67%。陳榮[28]基于單一紋理特征灰度共生矩陣和支持向量機識別茶葉病害識別率為86.67%。說明單一特征不能完全反映葉片病害特征。筆者基于顏色特征、HOG特征和形狀特征建立的SVM模型病害識別率為81.67%,高于單一特征的識別率。李旺[4]通過增加特征參數(shù),基于黃瓜葉片顏色特征、紋理特征、形狀特征3類特征的14個參數(shù)的SVM模型病害平均識別率為96%,說明參數(shù)融合有效地增加了識別準確度。當葉片發(fā)病較輕病灶區(qū)域顏色特征或形狀特征體現(xiàn)不明顯時,或多種病害在顏色特征較為接近,基于多個特征參數(shù)有助于提高模型識別準確度,但同時也增加了計算數(shù)據(jù)量和時間,可以從多個參數(shù)中提取貢獻度較高參數(shù)用于建立模型。筆者建立基于多特征融合的PSO-SVM模型識別率為92.39%。郭小清等[6]以番茄病害葉片圖像顏色特征和紋理特征基于PSO-SVM模型識別準確率達90%。說明粒子群算法PSO有助于優(yōu)化SVM的參數(shù),提高模型的識別精度。