朱幸輝,周 勇*
(湖南農(nóng)業(yè)大學 信息科學與技術學院,湖南 長沙 410128)
植物葉子是進行光合作用和呼吸作用,制造有機養(yǎng)料的重要器官,對植物生長來說至關重要,因此必須保證其健康。一旦發(fā)生病害,必須及時進行治療[1]。病害特征主要通過葉片狀態(tài)顯現(xiàn),因此番茄病害識別主要通過番茄葉片出現(xiàn)的病斑來實現(xiàn)[2]。早先番茄葉片病斑識別主要通過人眼去判斷其類別,不僅容易出錯,還效率地下,因此當前番茄葉片病斑識別,主要目標檢測算法來實現(xiàn),如基于遺傳算法、AdaBoost算法、隨機森林算法等,其原理先將圖像轉(zhuǎn)換成不同大小,然后分別目標檢測,最后將結果綜合起來,得到識別結果[3]。由于圖像是經(jīng)過分割等多重處理的,圖像中部分信息會丟失,因此mAP(Mean Average Precision),即均值平均精度并不高。
針對上述情況,本次將卷積神經(jīng)網(wǎng)絡應用其中,提出一種新的番茄葉片病斑識別方法。方法最大特點了節(jié)省了圖像預處理環(huán)節(jié),直接輸入整體圖像即可,需要進行圖像分割、轉(zhuǎn)換,只需完成圖像質(zhì)量改善即可,且它將特征提取、特征選擇和特征分類融合為一體,直接利用卷積神經(jīng)網(wǎng)絡對每個滑動窗口產(chǎn)生的候選區(qū)進行二分類,判斷其是否為待檢測目標[4]。最后通過仿真實例驗證本文方法有效性,結果表明:與基于遺傳算法、AdaBoost算法的目標識別方法相比,本文基于卷積神經(jīng)網(wǎng)絡的識別方法mAP較高,即能更為準確、迅速的完成病害辨別,為其防止提供了重要的理論依據(jù)。
番茄是人們?nèi)粘o嬍持谐R姷囊环N蔬菜,包含了大量的纖維素、鉀元素、蘋果酸、胡蘿卜素、番茄紅素等營養(yǎng)物質(zhì),因此每年我國都會種植大量番茄。而在番茄種植中,會發(fā)生多種病害,如早疫病、晚疫病、葉霉病、灰霉病、葉斑病等,具體見表1[5]。
表1 番茄多種病害描述
本文以番茄為對象,基于卷積神經(jīng)網(wǎng)絡進行其葉片病斑識別研究,研究思路如圖1所示。
圖1 基于卷積神經(jīng)網(wǎng)絡番茄葉片病斑識別思路
通過攝像頭獲取到原始圖像,圖像預處理中,包括圖像灰度化、圖像去噪、圖像增強三項內(nèi)容[6]。
1)圖像灰度化
圖像灰度化是圖像預處理中必經(jīng)步驟,主要作用是將采集到的彩色圖像轉(zhuǎn)變?yōu)橛刹煌幕叶燃壍膱D像。
攝像頭采集下來的原始圖像多數(shù)都為彩色圖像,即包括RGB及CMYK兩種,其中前者更為常見,因此下述圖像灰度化就以RGB彩色圖像為對象進行說明。RGB彩色圖像由R(紅色)、G(綠色)、B(藍色)三種不同顏色成分組合而成圖像。而R(紅色)、G(綠色)、B(藍色)像素的不同是造成圖像彩色的原因,因此只要消除彩色圖像中三種顏色不同像素值之間的差距,即使R=G=B,即可實現(xiàn)圖像灰度化[7]。不同灰度化表達式分別如下所示:
①分量法
(1)
其中,Gk(i,j)(k=1,2,3)為轉(zhuǎn)換后的灰度圖像在(i,j)處的灰度值;R(i,j)、G(i,j)、B(i,j)分別是彩色圖像在(i,j)處的R、G、B分量
②最大值法
G(i,j)=max[R(i,j),G(i,j),B(i,j)]
(2)
③平均值法
(3)
④加權平均法
G(i,j)=0.299R(i,j)+0.578G(i,j)+0.114B(i,j)
(4)
2)圖像去噪
現(xiàn)實中的數(shù)字圖像在采集、處理和傳輸過程中常受到成像設備與外部環(huán)境噪聲干擾等影響,造成圖像質(zhì)量下降,因此需要減少圖像中噪聲影響,提高圖像質(zhì)量,這一過程就被稱為圖像去噪。目前圖像方法有多種,在本文中選擇基于小波閾值的方法進行去噪[8]。首先對二維圖像p(x1,x2)進行小波域的二維Mallat分解,如圖2所示。
圖2 Mallat算法分解重構
圖中,L代表低頻子圖、H代表水平方向的高頻子圖、V代表垂直方向的高頻子圖、D代表對角線方向的高頻子圖。利用二維小波分解與重構算法所具有可分離的特性,對二維信號依次按行、按列與一維的低通濾波器和高通濾波器進行卷積,二維基本小波ψ(x1,x2)要遵循容許性條件cψ:
(5)
上式中,ω1、ω2表示圖像的頻率信息。
圖像P在經(jīng)過Mallat算法分解后,其圖像中有用信息會基本分布在低頻部分,即L低頻子圖中,這一部分的小波系數(shù)的絕對值較大;而圖像中無用信息,即噪聲的分解系數(shù),會集中分布在高頻子圖中,這一部分的小波系數(shù)絕對值則較小。
根據(jù)上述描述,小波閾值去噪基本原理如下:當分解的小波系數(shù)小于某個臨界閾值時,則認為是噪聲造成的,過濾掉,而當分解的小波系數(shù)大于某個臨界閾值時,則認為是有用信息,保留下來。即大于該閾值的小波系數(shù)含有噪聲圖像信號的概率趨近于零,其表達式如下所示:
(6)
式中,σn表示零均值高斯白噪聲的標準方差,N表示圖像信號長度。
最后將保留下來的小波系數(shù)進行重構,即可獲得M×M帶有噪聲的圖像去噪后的圖像[9]。
(7)
3)圖像增強
圖像灰度化和去噪后,圖像會存在失真現(xiàn)象,圖像中部分信息會丟失,因此還需要進行圖像增強,選擇直方圖均衡化方法進行圖像增強,其基本原理是根據(jù)積分概率密度函數(shù),將去噪圖像直方圖轉(zhuǎn)化為概率密度為1的圖像,此時為理想情況,在一定程度上提高對比度。
卷積神經(jīng)網(wǎng)絡,從數(shù)據(jù)流角度來看,包括三個部分:輸入層、特征提取和輸出層;而從結構上看,則由一個或多個卷積層、池化層和全連通層組成[10]。
圖3 卷積神經(jīng)網(wǎng)絡
其中,卷積層主要作用是對輸入的圖像進行卷積運算,提取圖像局部特征,因此卷積層也被稱為特征提取層。池化層主要作用對卷積層提取到的圖像局部特征進行下采樣,即利用局部相關性聚合圖像局部特征,以較少的信息代表局部特征,減少特征維數(shù),因此池化層也被稱為下采樣層。全連通層是卷積神經(jīng)網(wǎng)絡的分類器,利用輸入信號的加權求和以及非線性激活函數(shù),將提取到的圖像特征映射到樣本的標記空間當中,實現(xiàn)圖像分類,即完成番茄葉片病斑識別[11-12]。
在本章節(jié)中,選擇卷積神經(jīng)網(wǎng)絡中的SSD算法來完成番茄葉片病斑識別。在CNN系列的許多模型中,Region Proposal和分類是分作兩塊[12],而SSD算法模型是將二者統(tǒng)一在一起,使得目標識別更加簡單和快速。根據(jù)SSD算法的匹配策略,定義xij=1來表示第i個默認框匹配類別p的第j個真實框,可能有多個默認框的閾值大于 0.5。目標損失函數(shù)是位置損失和置信損失的加權和,目標函數(shù)表示如下
(8)
式中,N表示默認框的個數(shù),Lloc(x,l,g)表示位置損失,即預測框與真實標簽框之間的平滑損失值,Lconf(x,c)表示置信度損失,α設置為 1。
充分利用不同尺度的特征圖來預測邊界框的類別分數(shù)和位置偏移,可大大提高檢測精度。
SSD 的檢測架構如圖4所示:
圖4 SSD 的檢測架構
在訓練期間,需要用默認框來與圖片所標記的真實框進行匹配。黑框默認匹配到病變區(qū)域,能夠正確匹配到真實框的設定為正樣本,其余的框設定為負樣本。為保證其有效性和準確性,SSD模型應用前需要進行訓練。SSD模型訓練具體流程如圖5所示。
圖5 SSD模型訓練流程
于2019年7月15日在山東省某番茄種植基地利用佳能A640數(shù)碼攝像機拍攝番茄葉片病害圖片作為本章實例分析樣本。該樣本情況如下表2所示。
表2 實驗樣本情況
為降低這些圖片對計算機系統(tǒng)的壓力,需要利用Matlab7.0軟件對每幅圖片進行分辨率壓縮,壓縮規(guī)格為256×256,最后以JPEG格式導入計算機當中,構建番茄葉片病害圖像數(shù)據(jù)庫。
表3 實驗平臺參數(shù)設置
3.3.1 病斑識別結果分析
為進一步驗證該識別方法的有效性,分析不同方法的病斑識別結果。
圖6 不同方法病斑識別結果分析
由上圖可以看出,遺傳算法與AdaBoost算法均難以從病害圖像中準確的識別病斑,對于識環(huán)境干擾無法做出準確判斷。卷積神經(jīng)網(wǎng)絡方法展示出了良好的分割效果及魯棒性。主要原因在于選擇卷積神經(jīng)網(wǎng)絡中的SSD算法來完成番茄葉片病斑識別,SSD模型應用前需要進行訓練,保證了識別的有效性和準確性。
3.3.2 溫室番茄病害識別
為驗證卷積神經(jīng)網(wǎng)絡識別番茄葉片病斑準確性,采用測試數(shù)據(jù)集對模型進行測試,測試結果顯示在測試結果面板中。如圖7所示。
圖7 識別結果顯示面板
由圖7可以看出,以霜霉病以及白粉病為例,各去數(shù)據(jù)集415個、332個。在數(shù)據(jù)處理結果顯示的混淆矩陣中,霜霉病樣本中正確識別率達到47.6%,樣本識別個數(shù)為1070個,白粉病樣本中,正確識別率達到48.1%,樣本識別個數(shù)為1027個。其中,識別錯誤率較低,不超過4%,白粉病誤識率為0.8%,霜霉病的誤識率為3.5%。整體來說,病害識別率高達95.7%,霜霉病以及白粉病的識別準確率分別為93.1%、98.4%。依據(jù)上述數(shù)據(jù)結果,可知該方法可準確識別番茄病害,為病害治療提供理論依據(jù)。
3.3.3 葉片平均檢測精度值(mAP)分析
番茄葉片病斑識別方法的評價指標為mAP值,即均值平均精度,是指每個類別AP(PR曲線圍起來的面積)的平均值,其值越高代表方法的識別性能越好。通過下式計算mAP值,結果如下表4所示。
表4 mAP值測試結果
(9)
式中,AveragePrecisionC表示驗證集中葉片圖片各類別的平均精度之和,N(Classes)表示所有類別的數(shù)目。
從表4中可以看出,利用基于卷積神經(jīng)網(wǎng)絡方法進行番茄葉片病斑識別,得到的mAP值為0.988,而利用基于遺傳算法、AdaBoost算法進行番茄葉片病斑識別,得到的mAP值分別為0.847、0.836。以上三種結果對比可知,本文基于卷積神經(jīng)網(wǎng)絡的番茄葉片病斑識別方法的性能更好,識別準確率更高。
綜上所述,農(nóng)作物在生長過程中,無法避免會產(chǎn)生病害,對其產(chǎn)量和質(zhì)量造成了嚴重影響,因此必須進行及時、有效的治療。而治療之前,確定其病因?qū)τ谥委煷胧┻x擇具有重要意義。本次以番茄病害為例,利用基于卷積神經(jīng)網(wǎng)絡的方法進行番茄葉片病斑識別,并以基于遺傳算法、AdaBoost算法目標識別方法作為對比項,進行仿真實例分析。結果表明,本文方法得到的mAP值更高,病斑識別識別性能更強,病害識別結果較為準確,這為病害治療措施的選擇提供了重要的理論依據(jù)。