葉 進(jìn), 邱文杰, 楊 娟, 易萬茂, 馬仲輝
(廣西大學(xué)a.計算機(jī)與電子信息學(xué)院;b.農(nóng)學(xué)院,植物科學(xué)國家級實驗教學(xué)示范中心,南寧530000)
荔枝是廣西的主要經(jīng)濟(jì)作物之一,目前廣西荔枝栽培面積240多萬畝,產(chǎn)量60多萬t,廣西荔枝生產(chǎn)規(guī)模僅次于廣東,位居全國第二。荔枝蟲害種類繁多,主要包括荔枝蝽、龍眼雞、蛀蒂蟲等。因此對荔枝蟲害的識別與防治工作至關(guān)重要。目前國內(nèi)學(xué)者針對病蟲害圖像識別這一領(lǐng)域已經(jīng)做了不少研究,例如,Cheng等[1]設(shè)計了一種利用深度殘差學(xué)習(xí)的害蟲識別方法,該方法在復(fù)雜農(nóng)田背景下對于10類農(nóng)作物害蟲圖像識別準(zhǔn)確度達(dá)到98.67%。Rani等[2]使用基于聚類的圖像分割算法和SVM分類器,對蚜蟲等3種害蟲的識別準(zhǔn)確度達(dá)到98.38%。Mishratffu[3]在大米的幾種常見害蟲上對幾種常見分類器做了對比,其中CNN的準(zhǔn)確率最高,達(dá)到94.44%。Liu等[4]構(gòu)建了一個基于BP神經(jīng)網(wǎng)絡(luò)和K近鄰算法的多分類器,并用加權(quán)平均的方式融合成員分類器的輸出,達(dá)到了不錯的分類性能。現(xiàn)有的對蟲害識別的研究雖然已經(jīng)達(dá)到了不錯的效果,但目前國內(nèi)對與荔枝蟲害識別的研究還不夠深入,基于特征融合的荔枝蟲害識別技術(shù)還不成熟,針對復(fù)雜背景下的荔枝蟲害識別還存在特征選擇的隨機(jī)性和識別結(jié)果的不穩(wěn)定性等問題。本文采用中值濾波對原圖像進(jìn)行降噪處理,采用自適應(yīng)閾值分割算法[5]進(jìn)行病斑圖像的提取與分離,使樣本質(zhì)量明顯提升。使用OpenCV提取病斑圖像的15個顏色特征值,2個輪廓特征值,使用灰度共生矩陣[6]提取經(jīng)過數(shù)據(jù)清洗后的病斑圖像的15個紋理特征值。根據(jù)皮爾遜相關(guān)系數(shù)[7]挑選與識別結(jié)果線性關(guān)聯(lián)程度大的特征向量,剔除冗余特征,實現(xiàn)特征參數(shù)的優(yōu)化組合。將重組后的特征向量輸入預(yù)先訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,經(jīng)過多次迭代,實現(xiàn)了對荔枝蝽、卷葉蛾、龍眼雞3種荔枝主要蟲害的識別,并通過不斷模型超參數(shù),進(jìn)一步將識別精度提高到95%以上。
使用Canon單鏡頭高分辨率數(shù)碼相機(jī)(有效像素約2 230萬,使用佳能EF系列鏡頭)和網(wǎng)絡(luò)爬蟲進(jìn)行圖片采集,拍攝圖片時間均勻覆蓋各個時段,同時保證在害蟲生長的不同時期連續(xù)拍攝。拍照時,蟲體體積在整張照片中所占體積比盡量不低于50%,拍攝角度采用俯拍,拍攝時間選擇在光線充足的白天。拍攝照片時,相機(jī)模式設(shè)置為手動對焦,并關(guān)閉閃光燈和白平衡。圖1展示了荔枝蝽不同生長發(fā)育期的形態(tài)。
圖1 荔枝蝽的各個生長發(fā)育期形態(tài)
在拍攝照片過程中由于相機(jī)自身或與外部噪聲干擾,往往會產(chǎn)生噪聲。為了將噪聲消除的同時保留蟲害圖像的細(xì)節(jié)、邊緣等特征,本文對比了4種常見濾波器,發(fā)現(xiàn)中值濾波器[8]對脈沖干擾的抑制效果最好,在抑制隨機(jī)噪聲的同時能有效保護(hù)邊緣少受模糊,同時過濾了蟲害圖像的大部分高斯噪聲、脈沖噪聲。4種濾波器的對比如圖2所示。
背景分割的目的是前景和背景互相分離[9]。目前圖像分割方法大體可分為4類,其中以基于聚類的方法最為常見。由于本試驗中的圖片大多拍攝自野外,背景具有相對復(fù)雜性,因此選用對微弱邊緣有良好反應(yīng)的分水嶺算法[10]進(jìn)行背景分割。圖3給出了圖像分割前后的對比圖。
圖3 圖像分割結(jié)果
圖24 種濾波器處理圖像的對比
特征選擇對模型性能的提升具有重要的作用,如何在提取到的32個顏色、紋理、輪廓特征值中選擇對分類結(jié)果影響最大的前n個特征值將直接影響到模型的預(yù)測性能。特征降維[11]不僅可以大幅降低神經(jīng)網(wǎng)絡(luò)訓(xùn)練所需時間,更能提高模型的泛化能力。在特征選擇之前,首先要對圖像進(jìn)行特征提取。本文使用OpenCV提取了病害圖片的32個特征屬性,包括形態(tài)學(xué)特征、顏色特征和紋理特征[12],其中形態(tài)學(xué)特征包括面積、周長2個特征;顏色特征包括RGB平均值、峰值、標(biāo)準(zhǔn)差、方差和偏度等15個特征;紋理特征使用灰度共生矩陣提取,包括能量等15個特征。
采用Pearson積矩相關(guān)系數(shù)來衡量每一特征值對分類結(jié)果的影響程度大?。?3]。系數(shù)越大代表對分類結(jié)果的影響程度越大;反之亦然,系數(shù)為0代表該特征值對于分類結(jié)果沒有影響。通過計算各個特征值的Pearson系數(shù),按照相關(guān)性從高到低進(jìn)行特征屬性的排序。公式(1)給出了任意2個特征值之間的積矩相關(guān)系數(shù)的計算方法:
實驗過程中,首先留出20%的樣本作為神經(jīng)網(wǎng)絡(luò)的驗證集,作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中沒有遇到過的新樣本,測試模型的泛化能力[14]。另外,分別隨機(jī)抽取剩余數(shù)據(jù)集中80%的樣本作為訓(xùn)練集和20%樣本作為測試集,測試集和訓(xùn)練集用于模型的訓(xùn)練過程。初次進(jìn)行訓(xùn)練時,根據(jù)輸入特征向量維度確定構(gòu)建輸入層節(jié)點個數(shù)為26,隱藏層節(jié)點個數(shù)為10,輸出層節(jié)點個數(shù)為3的誤差反向傳播神經(jīng)網(wǎng)絡(luò)。輸入層的26個神經(jīng)元分別代表一種特征屬性。輸出層的3個神經(jīng)元分別表示荔枝蝽、卷葉蛾、龍眼雞3種害蟲,選取輸出概率最高的神經(jīng)元作為識別結(jié)果,并將輸出值作為判斷置信度。初始學(xué)習(xí)率設(shè)置為0.01,設(shè)置批處理大小為256,迭代次數(shù)500次。圖4給出了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖4 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖中:Xi(i=1,2,…,i,i=26)代表26個顏色、紋理、顏色特征值中的某個特征屬性代表輸入層第i個節(jié)點和隱藏層第j個節(jié)點之間的權(quán)重,初始權(quán)重為(-1,1)區(qū)間上的隨機(jī)值表示隱藏層第j個節(jié)點和輸出層第k個節(jié)點之間的權(quán)重,初始權(quán)重同為(-1,1)區(qū)間上的隨機(jī)值;Oj,m(m=1,2,…,10)代表隱藏層第m個節(jié)點的輸出;Ok,n(n=1,2,3)代表輸出層第n個節(jié)點的輸出;f(Σ)表示將該節(jié)點的輸入求和后經(jīng)過激活函數(shù)輸出。本文采用在(0,1)區(qū)間內(nèi)平滑取值的非線性函數(shù)Sigmoid[15]作為激活函數(shù),
表2 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率對比
輸出層使用Softmax[16]作為激活函數(shù),
通過復(fù)合函數(shù)求導(dǎo)的鏈?zhǔn)椒▌t[17],利用梯度下降原理得出輸出層和隱藏層誤差反向傳播算法的誤差梯度,根據(jù)誤差梯度即可找出誤差下降最快的方向。通過這種方式,使得不同神經(jīng)元之間的權(quán)重快速、正確地更新。同理可以得出隱藏層和輸入層之間的誤差梯度,給出了如何根據(jù)誤差梯度進(jìn)行下一步權(quán)值更新的計算:
為了探究全連接神經(jīng)網(wǎng)絡(luò)層數(shù)和學(xué)習(xí)率對模型性能的影響,在其他超參數(shù)不變的情況下,依次調(diào)整神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和學(xué)習(xí)率的大小,提升模型預(yù)測性能。
用來評估模型泛化能力的性能指標(biāo)有很多種[18],由于本文為三分類問題,所以選擇查準(zhǔn)率、查全率、準(zhǔn)確率、錯誤率作為模型的性能度量。設(shè)神經(jīng)網(wǎng)絡(luò)的分類結(jié)果中,真正例(true positive)的個數(shù)為TP,真反例(true negative)的個數(shù)為TN,假正例(false positive)的個數(shù)為FP,假反例(false negative)的個數(shù)為FN。
查準(zhǔn)率(Precision):反映模型輸出結(jié)果中真實正例占全部正例的比例
查全率(Recall):反映模型輸出結(jié)果中有多少正樣本被準(zhǔn)確預(yù)測
精確度(Accuracy):設(shè)樣本預(yù)測結(jié)果為yi,正確結(jié)果為y^,樣本數(shù)量為n
錯誤率(Error):分類錯誤的樣本占樣本總數(shù)的比例
表1 列出了BP神經(jīng)網(wǎng)絡(luò)在測試集中的不同測試指標(biāo),并將不同網(wǎng)絡(luò)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)進(jìn)行橫向?qū)Ρ取=Y(jié)果表明,擁有2個隱藏層,每個隱藏層20個節(jié)點的神經(jīng)網(wǎng)絡(luò)準(zhǔn)確度最高,達(dá)到92.74%。在確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)后,本文通過調(diào)整學(xué)習(xí)率的大小進(jìn)一步優(yōu)化神經(jīng)網(wǎng)絡(luò)。
表1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對比
實驗結(jié)果表明,神經(jīng)網(wǎng)絡(luò)在不同學(xué)習(xí)率下的表現(xiàn)略有不同。由于本試驗在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中采用500次迭代,導(dǎo)致低學(xué)習(xí)率下的模型難以收斂。綜上所述,輸入神經(jīng)元個數(shù)為26,隱藏層節(jié)點個數(shù)為10,層數(shù)為2,輸出層節(jié)點個數(shù)為3的神經(jīng)網(wǎng)絡(luò),在學(xué)習(xí)率為0.5下的表現(xiàn)最優(yōu),識別準(zhǔn)確率達(dá)到95.35%。
本文針對自然條件下的荔枝蟲害識別問題,提出了一種多模態(tài)特征的識別方法。通過提取蟲害的形態(tài)學(xué)、紋理、顏色等32種特征信息,通過特征降維的方法,進(jìn)一步提高分類的準(zhǔn)確度。本方法的各項指標(biāo)相較于傳統(tǒng)分類器均有了明顯提升,對荔枝蝽、卷葉蛾、龍眼雞3種常見蟲害的總體識別率為95.35%,基本達(dá)到了實用化水平。
同時,本方法具有拓展性,僅需稍作調(diào)整,即可推廣到其他作物的病害識別任務(wù)中。本方法填補(bǔ)了目前蟲害識別領(lǐng)域尚未形成一種統(tǒng)一的特征提取方法的空白,為荔枝的蟲害識別提供了新的思路。