王 浩, 王建春, 李鳳菊, 錢春陽, 張雪飛, 徐義鑫, 呂雄杰, 杜彥芳, 宋 斌
(天津市農業科學院 信息研究所, 天津 300192)
黃瓜是人們日常生活中必不可少的蔬菜之一,生產中白粉病、褐斑病、霜霉病時常發生,經濟損失非常大。國內外學者依據計算機視覺算法及深度學習網絡對農作物病害識別進行了大量的研究[1-5]。OBERTI等[4]基于葡萄白粉病植株圖像的校準集,建立2個光譜指數組合的識別模型,利用攝像機不同角度成像對葉片的感染程度進行評估,從而實現對葡萄白粉病的早期預防。FERENTINOS等[5]使用87 848張圖片進行訓練,從而建立神經網絡模型,實現對25種不同植物自由組合58種不同疾病的檢測與識別,同時為算法模型設計了可以擴充的接口,方便應用于實際生產。相比于國外研究狀況,我國計算機視覺技術應用于農業生產領域的研究起步較晚,但近年來其研究發展迅速[6-8]。吳娜等[6]提出一種基于混合顏色空間的雙次otsu算法,把葉片分成了正常類與病斑類,實現對黃瓜靶斑病的圖像分割,其算法的錯分率均值和方差分別為2.12%和0.08%,平均處理時間小于0.2s。YUAN等[7]利用馬氏距離建立關于小麥白粉病的人工神經網絡模型,實現基于小麥高分辨率多光譜圖像的最大似然分類器,其算法的整體準確率可達89%。現階段國內的研究多通過葉片的顏色特征進行閾值分割識別病斑,或利用葉片固有的形狀特征定位得病斑所屬類別[8]。但現有研究中此類方法多是簡單地依賴顏色空間和葉片的區域特征,雖然在實驗室環境中具有較好的識別性,但因算法很難覆蓋到病斑葉片的所有特征,因而復雜場景下的識別率不高、魯棒性不強,很難投入到真實的農業生產中[9]。因此,針對黃瓜葉片常見病斑檢測與識別時存在的環境適應性差、識別精度低的問題[10-14],設計基于SVM和CNN組合模型的黃瓜病斑葉片檢測與識別算法,通過圖像增強、直方圖均衡化等圖像處理方法對圖像進行預處理,利用SVM算法對優化后的HOG算子進行特征訓練得到病斑葉片的分割圖像;最后通過稀疏濾波器及增加偏置來對CNN算法進行改進,進而識別出葉片的病斑類別,以期達到在強光弱光、陰天霧天、枝葉互相遮擋等復雜自然場景下對病害的識別,適合實際生產應用。
黃瓜病斑葉片圖像一部分拍攝于實驗室環境,一部分拍攝于自然環境。為更好地獲得白粉病、褐斑病、霜霉病的樣本圖像數據,在自然環境下,人為使黃瓜植株感染相關病癥,并在強光弱光、陰天霧天、枝葉互相遮擋等情況下對病斑葉片進行不同角度、不同距離的拍照,保證采集的病斑葉片的多樣性。試驗共采集實驗室環境和真實設施環境下黃瓜葉片圖像12 000張,其中,病斑圖片樣本8 890張(白粉病圖像2 900張,褐斑病圖像3 010張,霜霉病2 980張),非病斑葉片3 110張。
對以上圖像數據采用10折交叉驗證的方式訓練得最終的算法模型,即把黃瓜病斑葉片分成10份,每次把1份作為測試樣本,其他9份作為訓練樣本,重復以上操作10次,從而得到最終的算法模型。試驗中采用Linux操作系統進行GPU編程,選用具備靈活性和可延展性的TensorFlow作為其開發框架實現最終的編碼工作。
首先設計一種圖像增強算法對原始圖片進行預處理,利用灰度值展寬、直方圖均衡化進行再處理后,把方向可控濾波器作用于HOG算子提取病斑葉片的特征信息,利用SVM算法訓練得葉片的切割圖,最后把共享權值的稀疏濾波器應用于傳統的CNN算法,對其采樣層增加合適的偏置得到優化后的CNN算法分類器,從而識別出黃瓜葉片的病斑類別。具體算法流程如圖1。
病斑葉片識別的方式多為對采集的圖像進行特征提取處理,利用訓練好的分類模型得到葉片的病癥類別[15]。但圖像分析的好壞,很大程度上會受環境的影響,當環境出現強光弱光、陰天霧天、枝葉互相遮擋的復雜條件時,算法的識別率將會大幅降低。因此,采用葉片區域色彩增強[16]的預處理方法,首先計算RGB圖像各通道均值,當各通道均值相加的和低于500時,設定增強系數:
α=1+100/[avg(R)+avg(G)+avg(B)]
式中,α為增強系數,avg(R)、avg(G)、avg(R)分別為圖像的紅、綠、藍均值。
圖像經增強處理后(圖2)使得暗淡的圖像變得更為明亮,但還需對葉片區域進行再增強處理,為使葉片區域更為明顯,設定相關閾值:
Rd=min(G-B,G-R)/(R+B+G)
式中,Rd為增強閾值,假設Rd>0.3,則說明此區域有更高的概率為葉片區域,因而可在其他通道數值保持不變的情況下,將原來的G通道值改為G*(1+Rd)。
以上操作之后,需進一步對黃瓜圖像中像素個數多的灰度值進行展寬處理,使得像素能均勻分布占有更多的灰度級。同時,通過直方圖均衡化處理進一步提高病害圖像的對比度[17]。

通過方向可控濾波器可對傳統的HOG算子進行優化。具體為:對灰度化的原始圖像利用方向可控濾波器在水平和垂直方向上進行處理,之后提取圖像在兩個方向上的梯度特征進行HOG處理操作。假設方向可控濾波器在兩個垂直方向上的取值分別為?和β,圖像像素點在其方向上的梯度值可表示為f?(x,y)和fβ(x,y),那么邊界方向f(x,y)和幅值θ(x,y)可分別表示為:
在對HOG算子進行優化后,通過SVM算法訓練HOG特征算子的方式得到病斑葉片的檢測分類器,從而進行葉片的提取。通過網格搜索法(gridSearch CV)對病斑樣本圖像進行對比分析,選取線性核函數作為SVM算法的核函數[19]進行訓練得到算法模型;然后應用此模型對新樣本進行檢測,如果輸出結果為1,代表此區域為葉片區域,把此處二值化后的圖像像素置為1;如果輸出結果為0,說明此區域為非葉片區域,把二值化后的此處圖像像素置為0,從而達到病斑葉片圖像分割的目的。
卷積神經網絡算法原理為每一卷積層進行特征提取,每一采樣層進行特征分析,通過各層之間的相互連接,從而形成整個神經網絡。卷積神經網絡的采樣層可表示為:
一般傳統卷積神經網絡的訓練步驟首先是對網絡進行權值的初始化,之后樣本數據先后經過卷積層、下采樣層、全連接層,通過向前傳播的方式得到最終輸出值。但是一個完整的圖像在應用卷積神經時,由于其隱藏單元較多,導致連接權值量非常大,對如此龐大的數據進行整合運算復雜度較高。同時,權值學習迭代次數足夠多,容易出現局部最優解或訓練過擬合的情況,導致整個算法的魯棒性不高。因此,采用在每個映射面上進行共享權值的稀疏連接,并通過稀疏濾波器進行特征提取,在保證反映圖像真實情況下,降低整個神經網絡的數量級。全連接、疏連接、稀疏濾波器的對比見圖3。
應用共享權值稀疏濾波器的CNN網絡架構圖如圖4,對圖片進行歸一化處理,把病斑圖片的像素處理為64×64后輸入到卷積神經網絡中,第1個卷積層C1包含3個稀疏濾波器,當樣本被輸入到C1層后,應用稀疏疏濾波器對圖像特征進行優化,稀疏疏濾波器的目標函數可以表示為:

把稀疏濾波器與采樣單元相連,通過稀疏濾波器進行卷積操作得到3個Feature Map,每個Feature Map為32×32像素的特征映射圖,之后把特征映射圖輸入到下采樣層S2。S2對特征映射圖添加一個偏置,添加偏置后的函數可表示為:
hi(x)=f(wxi+b)
式中,hi(x)為偏置函數,w為樣本權重,b為樣本偏置。
S2通過添加偏置改變權值矩陣值,之后經過雙曲正切函數做平滑處理,減小梯度,雙曲正切函數可表示為:
式中,tanh(xi)為第i個樣本的雙曲正切函數,exi-e-xi為第i個樣本的雙曲正弦函數,exi+e-xi為第i個樣本的雙曲余弦函數,
通過采樣層S2后,把病斑圖像像素縮小至14×14,卷積層C3和下采樣層S4作類似處理,得5個像素為6×6的特征映射圖,全連接層的每個節點通過與上一層的每個節點相連得到最終的網絡結構。每層的具體的特征映射圖、神經元結構、卷積核結構見表1。

表1 改進的卷積神經網絡結構
葉片檢測算法通過查全率和查準率指標與Otsu、LBP+SVM算法進行了交叉驗證。
式中,Recall為查全率,Precision為查準率,TP為被正確檢測的葉片數量,FP為被錯誤檢測的葉片數量,FN為未能正確檢測出的葉片數量。
試驗主要在識別率和操作時間方面與病斑葉片識別常用算法(顯著性算法[20]、BP神經網絡算法[21]、傳統CNN算法)進行對比評價。同時為了更好地體現算法的價值性,又與人眼識別的情況進行了比較。
從表2看出,對于葉片背景單一,各方向光照均勻的實驗室環境,各算法查準率和查全率相對穩定;但是對于存在強光弱光、陰天霧天、枝葉互相遮擋的自然境中的黃瓜病斑圖像,無論是查全率還是查準率上均是改進的SVM+CNN算法較優,能較精確地對病斑葉片進行分割(圖5)。

表2 不同算法對黃瓜葉片病斑圖像的查準率和查全率
從表3看出,不同算法的識別率以改進的SVM+CNN算法最高,為91.9%,比人眼的識別率高;最低是顯著性算法,為80.7%,該算法作為圖像處理中的傳統算法,需要依賴圖像處理得到的相關知識來獲取圖像的特征數據,之后利用所提取到的特征數據訓練出相關的模型,當樣本量較少,場景較為單一時,此算法表現出較好的識別性,但很難適合復雜的設施環境;BP神經網絡與傳統的CNN算法自身仍然存在一定的局限,雖然在自然環境下,傳統CNN算法一定程度上略優于人眼對病斑葉片的識別,但其缺少權值共享,前層網絡不能更好的服務后層網絡。而研究所用算法通過稀疏連接和權值共享對傳統CNN網絡進行改進,算法的識別率高于傳統的CNN識別算法。
操作時間方面,顯著性算法是人為的提取圖像特征,可以在很大程度上減少尋找圖像特征而浪費的時間,因而訓練時間較快,但是識別時間和改進的SVM+CNN算法差距不大。BP神經網絡和傳統CNN算法在訓練在處理圖像數據時,往往通過分層思想單獨訓練高數量級的像素塊,因而訓練時間較大,其識別時間也明顯高于顯著性算法。改進的SVM+CNN算法由于應用了稀疏連接和權值共享,與BP神經網絡和傳統的CNN算法相比,很大程度上降低了網絡各層間的訓練體量,一定程度上縮短了訓練時間。雖然改進的SVM+CNN算法的識別時間略高于顯著性算法,但明顯優于其他2個算法。

表3 不同算法對黃瓜葉片病斑圖像的識別率和自然場景識別時間
應用改進的SVM+CNN算法可以較準確地對生產中黃瓜葉片主要病害的病斑進行識別(圖6),同時,針對市面上主流手機像素為800萬至2 000萬的情況,采用提出的SVM和CNN組合模型,在GeForce GTX 1080單顯卡的Ubantu16.04環境下,通過試驗對黃瓜病斑葉片的檢測與識別的整體時間進行了測試,結果(圖7)表明,改進的SVM+CNN算法隨著手機攝像頭分辨率的提高,其識別時間也逐步增加,但是對于2000萬像素的攝像頭拍攝的黃瓜病斑圖片,識別算法可以在1秒左右完成相關識別,因而滿足實際生產需要,具有較好的推廣應用前景。
植物病害帶來的危害不僅僅只是危害作物生長,為控制植物病害的蔓延需噴灑大量的農藥,造成農產品嚴重的農藥殘留及環境污染。開展植物病害早期快速診斷可實現對病害的早發現、早防治,在將植物病害影響降到最低的同時避免農藥的濫用,大幅降低了農藥用量和次數,減少了對大氣、水、農產品等的污染,作物的產量和質量得到提升,使農業生產向更高效、更優質、更環保的方向發展。研究利用攝像機不同角度成像對葉片的感染程度進行評估,從而實現對葡萄白粉病的早期預防。研究針對強光弱光、陰天霧天、枝葉互相遮擋等真實的黃瓜生長場景,首先設計基于圖像增強的預處理算法,并把方向可控濾波器作用于HOG算子來提取病斑葉片的特征信息,使得SVM分類器能更好的對病斑葉片進行檢測。對傳統的CNN算法進行優化,通過把稀疏連接和權值共享應用于CNN算法,改進了其層與層間的關聯度,降低了樣本訓練時間,提高了對黃瓜病斑圖像的整體識別率。改進的SVM+CNN組合模型對黃瓜生產所處的真實場景具有較高魯棒性和較好時效性,可以滿足實際生產需要。今后的工作需進一步采集更多種類的病斑葉片數據,完善相關算法,從而提升算法模型的實際應用價值。