王 浩, 王建春, 李鳳菊, 錢春陽, 張雪飛, 徐義鑫, 呂雄杰, 杜彥芳, 宋 斌
(天津市農(nóng)業(yè)科學(xué)院 信息研究所, 天津 300192)
黃瓜是人們?nèi)粘I钪斜夭豢缮俚氖卟酥唬a(chǎn)中白粉病、褐斑病、霜霉病時(shí)常發(fā)生,經(jīng)濟(jì)損失非常大。國(guó)內(nèi)外學(xué)者依據(jù)計(jì)算機(jī)視覺算法及深度學(xué)習(xí)網(wǎng)絡(luò)對(duì)農(nóng)作物病害識(shí)別進(jìn)行了大量的研究[1-5]。OBERTI等[4]基于葡萄白粉病植株圖像的校準(zhǔn)集,建立2個(gè)光譜指數(shù)組合的識(shí)別模型,利用攝像機(jī)不同角度成像對(duì)葉片的感染程度進(jìn)行評(píng)估,從而實(shí)現(xiàn)對(duì)葡萄白粉病的早期預(yù)防。FERENTINOS等[5]使用87 848張圖片進(jìn)行訓(xùn)練,從而建立神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)對(duì)25種不同植物自由組合58種不同疾病的檢測(cè)與識(shí)別,同時(shí)為算法模型設(shè)計(jì)了可以擴(kuò)充的接口,方便應(yīng)用于實(shí)際生產(chǎn)。相比于國(guó)外研究狀況,我國(guó)計(jì)算機(jī)視覺技術(shù)應(yīng)用于農(nóng)業(yè)生產(chǎn)領(lǐng)域的研究起步較晚,但近年來其研究發(fā)展迅速[6-8]。吳娜等[6]提出一種基于混合顏色空間的雙次otsu算法,把葉片分成了正常類與病斑類,實(shí)現(xiàn)對(duì)黃瓜靶斑病的圖像分割,其算法的錯(cuò)分率均值和方差分別為2.12%和0.08%,平均處理時(shí)間小于0.2s。YUAN等[7]利用馬氏距離建立關(guān)于小麥白粉病的人工神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)基于小麥高分辨率多光譜圖像的最大似然分類器,其算法的整體準(zhǔn)確率可達(dá)89%?,F(xiàn)階段國(guó)內(nèi)的研究多通過葉片的顏色特征進(jìn)行閾值分割識(shí)別病斑,或利用葉片固有的形狀特征定位得病斑所屬類別[8]。但現(xiàn)有研究中此類方法多是簡(jiǎn)單地依賴顏色空間和葉片的區(qū)域特征,雖然在實(shí)驗(yàn)室環(huán)境中具有較好的識(shí)別性,但因算法很難覆蓋到病斑葉片的所有特征,因而復(fù)雜場(chǎng)景下的識(shí)別率不高、魯棒性不強(qiáng),很難投入到真實(shí)的農(nóng)業(yè)生產(chǎn)中[9]。因此,針對(duì)黃瓜葉片常見病斑檢測(cè)與識(shí)別時(shí)存在的環(huán)境適應(yīng)性差、識(shí)別精度低的問題[10-14],設(shè)計(jì)基于SVM和CNN組合模型的黃瓜病斑葉片檢測(cè)與識(shí)別算法,通過圖像增強(qiáng)、直方圖均衡化等圖像處理方法對(duì)圖像進(jìn)行預(yù)處理,利用SVM算法對(duì)優(yōu)化后的HOG算子進(jìn)行特征訓(xùn)練得到病斑葉片的分割圖像;最后通過稀疏濾波器及增加偏置來對(duì)CNN算法進(jìn)行改進(jìn),進(jìn)而識(shí)別出葉片的病斑類別,以期達(dá)到在強(qiáng)光弱光、陰天霧天、枝葉互相遮擋等復(fù)雜自然場(chǎng)景下對(duì)病害的識(shí)別,適合實(shí)際生產(chǎn)應(yīng)用。
黃瓜病斑葉片圖像一部分拍攝于實(shí)驗(yàn)室環(huán)境,一部分拍攝于自然環(huán)境。為更好地獲得白粉病、褐斑病、霜霉病的樣本圖像數(shù)據(jù),在自然環(huán)境下,人為使黃瓜植株感染相關(guān)病癥,并在強(qiáng)光弱光、陰天霧天、枝葉互相遮擋等情況下對(duì)病斑葉片進(jìn)行不同角度、不同距離的拍照,保證采集的病斑葉片的多樣性。試驗(yàn)共采集實(shí)驗(yàn)室環(huán)境和真實(shí)設(shè)施環(huán)境下黃瓜葉片圖像12 000張,其中,病斑圖片樣本8 890張(白粉病圖像2 900張,褐斑病圖像3 010張,霜霉病2 980張),非病斑葉片3 110張。
對(duì)以上圖像數(shù)據(jù)采用10折交叉驗(yàn)證的方式訓(xùn)練得最終的算法模型,即把黃瓜病斑葉片分成10份,每次把1份作為測(cè)試樣本,其他9份作為訓(xùn)練樣本,重復(fù)以上操作10次,從而得到最終的算法模型。試驗(yàn)中采用Linux操作系統(tǒng)進(jìn)行GPU編程,選用具備靈活性和可延展性的TensorFlow作為其開發(fā)框架實(shí)現(xiàn)最終的編碼工作。
首先設(shè)計(jì)一種圖像增強(qiáng)算法對(duì)原始圖片進(jìn)行預(yù)處理,利用灰度值展寬、直方圖均衡化進(jìn)行再處理后,把方向可控濾波器作用于HOG算子提取病斑葉片的特征信息,利用SVM算法訓(xùn)練得葉片的切割圖,最后把共享權(quán)值的稀疏濾波器應(yīng)用于傳統(tǒng)的CNN算法,對(duì)其采樣層增加合適的偏置得到優(yōu)化后的CNN算法分類器,從而識(shí)別出黃瓜葉片的病斑類別。具體算法流程如圖1。
病斑葉片識(shí)別的方式多為對(duì)采集的圖像進(jìn)行特征提取處理,利用訓(xùn)練好的分類模型得到葉片的病癥類別[15]。但圖像分析的好壞,很大程度上會(huì)受環(huán)境的影響,當(dāng)環(huán)境出現(xiàn)強(qiáng)光弱光、陰天霧天、枝葉互相遮擋的復(fù)雜條件時(shí),算法的識(shí)別率將會(huì)大幅降低。因此,采用葉片區(qū)域色彩增強(qiáng)[16]的預(yù)處理方法,首先計(jì)算RGB圖像各通道均值,當(dāng)各通道均值相加的和低于500時(shí),設(shè)定增強(qiáng)系數(shù):
α=1+100/[avg(R)+avg(G)+avg(B)]
式中,α為增強(qiáng)系數(shù),avg(R)、avg(G)、avg(R)分別為圖像的紅、綠、藍(lán)均值。
圖像經(jīng)增強(qiáng)處理后(圖2)使得暗淡的圖像變得更為明亮,但還需對(duì)葉片區(qū)域進(jìn)行再增強(qiáng)處理,為使葉片區(qū)域更為明顯,設(shè)定相關(guān)閾值:
Rd=min(G-B,G-R)/(R+B+G)
式中,Rd為增強(qiáng)閾值,假設(shè)Rd>0.3,則說明此區(qū)域有更高的概率為葉片區(qū)域,因而可在其他通道數(shù)值保持不變的情況下,將原來的G通道值改為G*(1+Rd)。
以上操作之后,需進(jìn)一步對(duì)黃瓜圖像中像素個(gè)數(shù)多的灰度值進(jìn)行展寬處理,使得像素能均勻分布占有更多的灰度級(jí)。同時(shí),通過直方圖均衡化處理進(jìn)一步提高病害圖像的對(duì)比度[17]。
通過方向可控濾波器可對(duì)傳統(tǒng)的HOG算子進(jìn)行優(yōu)化。具體為:對(duì)灰度化的原始圖像利用方向可控濾波器在水平和垂直方向上進(jìn)行處理,之后提取圖像在兩個(gè)方向上的梯度特征進(jìn)行HOG處理操作。假設(shè)方向可控濾波器在兩個(gè)垂直方向上的取值分別為?和β,圖像像素點(diǎn)在其方向上的梯度值可表示為f?(x,y)和fβ(x,y),那么邊界方向f(x,y)和幅值θ(x,y)可分別表示為:
在對(duì)HOG算子進(jìn)行優(yōu)化后,通過SVM算法訓(xùn)練HOG特征算子的方式得到病斑葉片的檢測(cè)分類器,從而進(jìn)行葉片的提取。通過網(wǎng)格搜索法(gridSearch CV)對(duì)病斑樣本圖像進(jìn)行對(duì)比分析,選取線性核函數(shù)作為SVM算法的核函數(shù)[19]進(jìn)行訓(xùn)練得到算法模型;然后應(yīng)用此模型對(duì)新樣本進(jìn)行檢測(cè),如果輸出結(jié)果為1,代表此區(qū)域?yàn)槿~片區(qū)域,把此處二值化后的圖像像素置為1;如果輸出結(jié)果為0,說明此區(qū)域?yàn)榉侨~片區(qū)域,把二值化后的此處圖像像素置為0,從而達(dá)到病斑葉片圖像分割的目的。
卷積神經(jīng)網(wǎng)絡(luò)算法原理為每一卷積層進(jìn)行特征提取,每一采樣層進(jìn)行特征分析,通過各層之間的相互連接,從而形成整個(gè)神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)的采樣層可表示為:
一般傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練步驟首先是對(duì)網(wǎng)絡(luò)進(jìn)行權(quán)值的初始化,之后樣本數(shù)據(jù)先后經(jīng)過卷積層、下采樣層、全連接層,通過向前傳播的方式得到最終輸出值。但是一個(gè)完整的圖像在應(yīng)用卷積神經(jīng)時(shí),由于其隱藏單元較多,導(dǎo)致連接權(quán)值量非常大,對(duì)如此龐大的數(shù)據(jù)進(jìn)行整合運(yùn)算復(fù)雜度較高。同時(shí),權(quán)值學(xué)習(xí)迭代次數(shù)足夠多,容易出現(xiàn)局部最優(yōu)解或訓(xùn)練過擬合的情況,導(dǎo)致整個(gè)算法的魯棒性不高。因此,采用在每個(gè)映射面上進(jìn)行共享權(quán)值的稀疏連接,并通過稀疏濾波器進(jìn)行特征提取,在保證反映圖像真實(shí)情況下,降低整個(gè)神經(jīng)網(wǎng)絡(luò)的數(shù)量級(jí)。全連接、疏連接、稀疏濾波器的對(duì)比見圖3。
應(yīng)用共享權(quán)值稀疏濾波器的CNN網(wǎng)絡(luò)架構(gòu)圖如圖4,對(duì)圖片進(jìn)行歸一化處理,把病斑圖片的像素處理為64×64后輸入到卷積神經(jīng)網(wǎng)絡(luò)中,第1個(gè)卷積層C1包含3個(gè)稀疏濾波器,當(dāng)樣本被輸入到C1層后,應(yīng)用稀疏疏濾波器對(duì)圖像特征進(jìn)行優(yōu)化,稀疏疏濾波器的目標(biāo)函數(shù)可以表示為:
把稀疏濾波器與采樣單元相連,通過稀疏濾波器進(jìn)行卷積操作得到3個(gè)Feature Map,每個(gè)Feature Map為32×32像素的特征映射圖,之后把特征映射圖輸入到下采樣層S2。S2對(duì)特征映射圖添加一個(gè)偏置,添加偏置后的函數(shù)可表示為:
hi(x)=f(wxi+b)
式中,hi(x)為偏置函數(shù),w為樣本權(quán)重,b為樣本偏置。
S2通過添加偏置改變權(quán)值矩陣值,之后經(jīng)過雙曲正切函數(shù)做平滑處理,減小梯度,雙曲正切函數(shù)可表示為:
式中,tanh(xi)為第i個(gè)樣本的雙曲正切函數(shù),exi-e-xi為第i個(gè)樣本的雙曲正弦函數(shù),exi+e-xi為第i個(gè)樣本的雙曲余弦函數(shù),
通過采樣層S2后,把病斑圖像像素縮小至14×14,卷積層C3和下采樣層S4作類似處理,得5個(gè)像素為6×6的特征映射圖,全連接層的每個(gè)節(jié)點(diǎn)通過與上一層的每個(gè)節(jié)點(diǎn)相連得到最終的網(wǎng)絡(luò)結(jié)構(gòu)。每層的具體的特征映射圖、神經(jīng)元結(jié)構(gòu)、卷積核結(jié)構(gòu)見表1。
表1 改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
葉片檢測(cè)算法通過查全率和查準(zhǔn)率指標(biāo)與Otsu、LBP+SVM算法進(jìn)行了交叉驗(yàn)證。
式中,Recall為查全率,Precision為查準(zhǔn)率,TP為被正確檢測(cè)的葉片數(shù)量,F(xiàn)P為被錯(cuò)誤檢測(cè)的葉片數(shù)量,F(xiàn)N為未能正確檢測(cè)出的葉片數(shù)量。
試驗(yàn)主要在識(shí)別率和操作時(shí)間方面與病斑葉片識(shí)別常用算法(顯著性算法[20]、BP神經(jīng)網(wǎng)絡(luò)算法[21]、傳統(tǒng)CNN算法)進(jìn)行對(duì)比評(píng)價(jià)。同時(shí)為了更好地體現(xiàn)算法的價(jià)值性,又與人眼識(shí)別的情況進(jìn)行了比較。
從表2看出,對(duì)于葉片背景單一,各方向光照均勻的實(shí)驗(yàn)室環(huán)境,各算法查準(zhǔn)率和查全率相對(duì)穩(wěn)定;但是對(duì)于存在強(qiáng)光弱光、陰天霧天、枝葉互相遮擋的自然境中的黃瓜病斑圖像,無論是查全率還是查準(zhǔn)率上均是改進(jìn)的SVM+CNN算法較優(yōu),能較精確地對(duì)病斑葉片進(jìn)行分割(圖5)。
表2 不同算法對(duì)黃瓜葉片病斑圖像的查準(zhǔn)率和查全率
從表3看出,不同算法的識(shí)別率以改進(jìn)的SVM+CNN算法最高,為91.9%,比人眼的識(shí)別率高;最低是顯著性算法,為80.7%,該算法作為圖像處理中的傳統(tǒng)算法,需要依賴圖像處理得到的相關(guān)知識(shí)來獲取圖像的特征數(shù)據(jù),之后利用所提取到的特征數(shù)據(jù)訓(xùn)練出相關(guān)的模型,當(dāng)樣本量較少,場(chǎng)景較為單一時(shí),此算法表現(xiàn)出較好的識(shí)別性,但很難適合復(fù)雜的設(shè)施環(huán)境;BP神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)的CNN算法自身仍然存在一定的局限,雖然在自然環(huán)境下,傳統(tǒng)CNN算法一定程度上略優(yōu)于人眼對(duì)病斑葉片的識(shí)別,但其缺少權(quán)值共享,前層網(wǎng)絡(luò)不能更好的服務(wù)后層網(wǎng)絡(luò)。而研究所用算法通過稀疏連接和權(quán)值共享對(duì)傳統(tǒng)CNN網(wǎng)絡(luò)進(jìn)行改進(jìn),算法的識(shí)別率高于傳統(tǒng)的CNN識(shí)別算法。
操作時(shí)間方面,顯著性算法是人為的提取圖像特征,可以在很大程度上減少尋找圖像特征而浪費(fèi)的時(shí)間,因而訓(xùn)練時(shí)間較快,但是識(shí)別時(shí)間和改進(jìn)的SVM+CNN算法差距不大。BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)CNN算法在訓(xùn)練在處理圖像數(shù)據(jù)時(shí),往往通過分層思想單獨(dú)訓(xùn)練高數(shù)量級(jí)的像素塊,因而訓(xùn)練時(shí)間較大,其識(shí)別時(shí)間也明顯高于顯著性算法。改進(jìn)的SVM+CNN算法由于應(yīng)用了稀疏連接和權(quán)值共享,與BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)的CNN算法相比,很大程度上降低了網(wǎng)絡(luò)各層間的訓(xùn)練體量,一定程度上縮短了訓(xùn)練時(shí)間。雖然改進(jìn)的SVM+CNN算法的識(shí)別時(shí)間略高于顯著性算法,但明顯優(yōu)于其他2個(gè)算法。
表3 不同算法對(duì)黃瓜葉片病斑圖像的識(shí)別率和自然場(chǎng)景識(shí)別時(shí)間
應(yīng)用改進(jìn)的SVM+CNN算法可以較準(zhǔn)確地對(duì)生產(chǎn)中黃瓜葉片主要病害的病斑進(jìn)行識(shí)別(圖6),同時(shí),針對(duì)市面上主流手機(jī)像素為800萬至2 000萬的情況,采用提出的SVM和CNN組合模型,在GeForce GTX 1080單顯卡的Ubantu16.04環(huán)境下,通過試驗(yàn)對(duì)黃瓜病斑葉片的檢測(cè)與識(shí)別的整體時(shí)間進(jìn)行了測(cè)試,結(jié)果(圖7)表明,改進(jìn)的SVM+CNN算法隨著手機(jī)攝像頭分辨率的提高,其識(shí)別時(shí)間也逐步增加,但是對(duì)于2000萬像素的攝像頭拍攝的黃瓜病斑圖片,識(shí)別算法可以在1秒左右完成相關(guān)識(shí)別,因而滿足實(shí)際生產(chǎn)需要,具有較好的推廣應(yīng)用前景。
植物病害帶來的危害不僅僅只是危害作物生長(zhǎng),為控制植物病害的蔓延需噴灑大量的農(nóng)藥,造成農(nóng)產(chǎn)品嚴(yán)重的農(nóng)藥殘留及環(huán)境污染。開展植物病害早期快速診斷可實(shí)現(xiàn)對(duì)病害的早發(fā)現(xiàn)、早防治,在將植物病害影響降到最低的同時(shí)避免農(nóng)藥的濫用,大幅降低了農(nóng)藥用量和次數(shù),減少了對(duì)大氣、水、農(nóng)產(chǎn)品等的污染,作物的產(chǎn)量和質(zhì)量得到提升,使農(nóng)業(yè)生產(chǎn)向更高效、更優(yōu)質(zhì)、更環(huán)保的方向發(fā)展。研究利用攝像機(jī)不同角度成像對(duì)葉片的感染程度進(jìn)行評(píng)估,從而實(shí)現(xiàn)對(duì)葡萄白粉病的早期預(yù)防。研究針對(duì)強(qiáng)光弱光、陰天霧天、枝葉互相遮擋等真實(shí)的黃瓜生長(zhǎng)場(chǎng)景,首先設(shè)計(jì)基于圖像增強(qiáng)的預(yù)處理算法,并把方向可控濾波器作用于HOG算子來提取病斑葉片的特征信息,使得SVM分類器能更好的對(duì)病斑葉片進(jìn)行檢測(cè)。對(duì)傳統(tǒng)的CNN算法進(jìn)行優(yōu)化,通過把稀疏連接和權(quán)值共享應(yīng)用于CNN算法,改進(jìn)了其層與層間的關(guān)聯(lián)度,降低了樣本訓(xùn)練時(shí)間,提高了對(duì)黃瓜病斑圖像的整體識(shí)別率。改進(jìn)的SVM+CNN組合模型對(duì)黃瓜生產(chǎn)所處的真實(shí)場(chǎng)景具有較高魯棒性和較好時(shí)效性,可以滿足實(shí)際生產(chǎn)需要。今后的工作需進(jìn)一步采集更多種類的病斑葉片數(shù)據(jù),完善相關(guān)算法,從而提升算法模型的實(shí)際應(yīng)用價(jià)值。