李 海,李誼駿,陳詩果,楊 謀
(電子科技大學(xué)成都學(xué)院,成都 611731)
中國是世界上最大的蘋果生產(chǎn)國,蘋果種植面積和產(chǎn)量均占世界50%以上。然而中國蘋果的品質(zhì)與發(fā)達(dá)國家相比還存在一定的差距,其中落后的病蟲害防控水平是制約中國蘋果發(fā)展的主要因素,病蟲害防控對于果農(nóng)行業(yè)是亟須解決的難點與痛點。所以有效的病蟲害有效檢測與早期防治可以提升蘋果的質(zhì)量與產(chǎn)量。
現(xiàn)階段,中國防治蘋果樹病蟲害的主要方法有兩種:“防治歷”和單一的病蟲害檢測方法。通過“防治歷”對病蟲害進行防治是依據(jù)往年的病蟲害發(fā)生情況而進行的,其往往會錯過病蟲害的關(guān)鍵時期,效果不佳。近幾年來學(xué)者們和科研工作者都進行了多方面的研究,大多都是利用神經(jīng)網(wǎng)絡(luò)和圖像識別算法來提升對果樹、蔬菜和林木等病蟲害的識別和防治。其中常見的算法有K均值聚類算法(K-means)[1]、YOLO(you only look once)和基于卷積神經(jīng)網(wǎng)絡(luò)特征的區(qū)域方法(regions with CNN features,R-CNN)等。其中高旋等[2]提出了利用R-CNN對立木圖像的檢測與識別,還有學(xué)者使用Tamura方法進行病蟲害的防治[3],有學(xué)者[4-5]提出了利用傳統(tǒng)YOLO或改進YOLO-V3網(wǎng)絡(luò)方法進行病蟲害識別與防治。
由于神經(jīng)網(wǎng)絡(luò)檢測本身就具有復(fù)雜性、不確定性、多樣性,所以以上大部分研究本身就存在一些無法解決的問題,比如它往往識別的是果樹最終的病害圖像,無法在病蟲害侵襲的初期就將其檢測出來;因為是將植物葉子上斑點的特征與病蟲害的典型特征進行對比來達(dá)到識別的目的,所以往往容易出現(xiàn)局部最優(yōu)解和梯度消失等問題,從而導(dǎo)致識別率較低;還有在復(fù)雜環(huán)境下對植物病蟲害無法準(zhǔn)確識別等一系列問題。
基于以上一系列問題,現(xiàn)提出一種采用多層神經(jīng)網(wǎng)絡(luò)和拉普拉斯高斯(Laplacian-of-Gaussian,LOG)算法的病蟲害檢測系統(tǒng)。該系統(tǒng)是將攝像頭采集到的圖像通GrabCut方法進行圖像分割,然后使用高斯拉普拉斯算子[6-8]和LOG算法將葉片中的特征點提取出來并送入神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,最后得到檢測結(jié)果。為了解決神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu)解和梯度消失的問題,大多采用的是DNN網(wǎng)絡(luò),為了進一步提高算法的準(zhǔn)確率,現(xiàn)采用DNN網(wǎng)絡(luò)為主[9-10],斑點檢測算法為輔,相對于傳統(tǒng)的DNN網(wǎng)絡(luò),該算法具有魯棒性好、準(zhǔn)確率高、檢測速度快等優(yōu)點。將本系統(tǒng)移植于嵌入式平臺,平臺體積小,屬于手持式裝備,果農(nóng)可以隨身攜帶該平臺高效地進行蘋果樹病蟲害的檢測,檢測的數(shù)據(jù)結(jié)果實時通過云平臺反饋到監(jiān)管平臺,進行數(shù)據(jù)的更新,實現(xiàn)數(shù)據(jù)的云端共享以及數(shù)據(jù)匯總,以幫助果農(nóng)實時了解蘋果樹的生長情況。
系統(tǒng)的整體算法框架如圖1所示,第一步,搭建一個基本的DNN神經(jīng)網(wǎng)絡(luò),初始化權(quán)重矩陣W和偏置參數(shù)b并輸入數(shù)據(jù)集,之后通過神經(jīng)網(wǎng)絡(luò)的前向傳播算法和反向傳播算法,更新權(quán)重矩陣W和偏置參數(shù)b,進一步提升神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率。第二步,對攝像頭采集到的圖像采用高斯金字塔算法進行縮放,之后進行圖像分割,將圖像的前景和背景分離出來,接著再進行直方圖均衡化,增強圖像中的特征點,再之后采用LOG算法[11],將圖像中的特征點提取出來,然后采用開運算處理,將噪點去除。最后將框選出來的特征點輸入到訓(xùn)練完成的DNN神經(jīng)網(wǎng)絡(luò)進行判斷,識別出蘋果葉子上是否有病蟲害。
圖1 系統(tǒng)架構(gòu)圖Fig.1 System architecture diagram
圖像分割就是首先將圖像分為若干個特定的,具有獨特性質(zhì)的區(qū)域,然后再從這些區(qū)域中將感興趣的目標(biāo)區(qū)域提取出來的過程。系統(tǒng)采用的是GrabCut算法進行前景提取[12],將蘋果樹葉子從整個圖像中提取出來。整個提取過程分為兩個步驟:顏色模型搭建和迭代能量最小化分割算法。
2.2.1 顏色模型
在紅綠藍(lán)(red-green-blue,RGB)彩色空間內(nèi),對于每個像素而言,其不是來自某個背景高斯混合模型(Gaussian mixed model,GMM)的高斯分量,就是來自某個目標(biāo)GMM[13]的高斯分量,所以可以用k個高斯分量的全協(xié)方差GMM來對目標(biāo)和背景進行建模,建模之后的Gibbs能量為
E(α,k,θ,z)=U(α,k,θ,z)+V(α,z)
(1)
式(1)中:α為不透明度;θ為圖像前景與背景的灰度直方圖;z為圖像灰度值數(shù)組;U項為區(qū)域項,表示一個像素屬于目標(biāo)或者背景的概率負(fù)對數(shù),也就是將這個像素歸為目標(biāo)或者背景的懲罰;V項為邊界項的計算方法,計算相鄰兩個像素顏色之間的歐式距離。
(2)
混合高斯密度的模型為
(3)
(4)
式中:πi為第i個高斯模型的樣本數(shù)量Ni在總的樣本數(shù)量N里面的比值;gi為第i個高斯模型的概率模型公式,其中有兩個參數(shù),均值μ和協(xié)方差矩陣∑,∑為第i個單高斯函數(shù)的協(xié)方差矩陣;d為高斯密度。
所以將混合高斯模型取負(fù)對數(shù)之后,可得
D(αn,kn,θ,zn)=-log2π(an,kn)+
∑(an,kn)-1[zn-μ(an,kn)]
(5)
式(5)中:3個GMM的參數(shù)θ中,第一個參數(shù)θ為高斯分量的權(quán)重π,第二個參數(shù)θ為高斯分量的均值向量μ,第三個參數(shù)θ為協(xié)方差矩陣∑。
θ={π(α,k),μ(α,k),∑(α,k),
α=0,1,k=1,2,…,K}
(6)
換而言之,描述目標(biāo)和背景的3個GMM參數(shù)都需要通過學(xué)習(xí)來確定,隨著這3個參數(shù)的確定,Gibbs能量的區(qū)域能量項也就能確定了。
一般來說,衡量RGB空間內(nèi)兩個像素的相似性都是通過歐式距離來計算的,而這里面最為關(guān)鍵的參數(shù)β則由圖像的對比度決定。如果圖像的對比度低,也就是本身具有差別的像素m和n,差‖zm-zn‖比較低,這時就需要乘以一個比較大的參數(shù)β來放大這種差別。而如果圖像的對比度比較高,也就是本身屬于同一目標(biāo)像素m和n的差‖zm-zn‖比較高,這是就需要乘以一個比較小的參數(shù)β來縮小這種差別。為了能夠使得V項在對比度高或者低的情況下正常工作,這里通過一個比較小的參數(shù)β來縮小差別,所以當(dāng)常數(shù)γ為50,nlink的權(quán)值為
(7)
式(7)中:m和n分別為任意RGB空間內(nèi)兩個本身具有差別的像素;‖zm-zn‖中z為圖像灰度值數(shù)組。
至此,就完成了圖像分割的第一步,成功地搭建了一個顏色模型。
2.1.2 迭代能量最小化分割算法
首先通過框選目標(biāo),獲取目標(biāo)像素和背景像素,之后就可以根據(jù)這兩個像素來估計目標(biāo)和背景的GMM。這里還需要把屬于目標(biāo)和背景的像素通過K-means算法聚類為k類,也就是GMM中的k個高斯模型[14]。其中,每個像素分配得到的高斯分量為
(8)
式(8)中的參數(shù)均值和協(xié)方差都需要通過RGB值估計得到,而該高斯分量的權(quán)值則可以通過屬于該高斯分量的像素個數(shù)和總的像素個數(shù)之比得到,即
(9)
接下來就可以根據(jù)Gibbs能量項,建立一個圖,再根據(jù)這個圖求出權(quán)值tlink和nlink,最后使用maxflow/mincut算法來進行圖像分割,即
(10)
圖像分割前后如圖2所示。
圖2 圖像分割對比圖Fig.2 Image segmentation contrast diagram
系統(tǒng)通過采用直方圖均衡化,對圖像中蘋果葉子病斑的灰度值進行展寬,而對沒有病斑的灰度值進行歸并,從而增大對比度,使圖像清晰,達(dá)到增強特征點的目的[15-16]。
圖像灰度值的本質(zhì)其實就是一個一維的離散函數(shù),表達(dá)式為
h(k)=nk,k=0,1,…,L-1
(11)
式(11)中:nk為圖像f(x,y)中灰度級為k的像素個數(shù),直方圖每一列的高度都會對應(yīng)著一個nk。這里可以將直方圖進行歸一化,并將歸一化后的直方圖中灰度級出現(xiàn)的相對頻率定義為Pr(k),即
Pr(k)=nk/N
(12)
式(12)中:N為圖像f(x,y)的像素總數(shù)。這時用r和s分別表示原圖像灰度和經(jīng)直方圖均衡化后的圖像灰度,當(dāng)r,s∈(0,1)時,像素的灰度值在黑白之間變化;當(dāng)r=s=0時,像素的灰度值為黑色;當(dāng)r=s=1時,像素的灰度值為白色。即在[0,1]內(nèi)的任何一個r,經(jīng)過變換函數(shù)T(r)都可以產(chǎn)生一個對應(yīng)的s,且
s=T(r)
(13)
式(13)中:在0≤r≤1的范圍內(nèi)時,T(r)為單調(diào)遞增函數(shù),所以當(dāng)0≤r≤1時有0≤T(r)≤ 1。通過概率論可得隨機變量r的概率密度為Pr(r),又因為隨機變量s是r的函數(shù),所以這里假設(shè)隨機變量s的分布函數(shù)為Ps(s),根據(jù)分布函數(shù)的定義可得
(14)
又因為分布函數(shù)的導(dǎo)數(shù)為概率密度函數(shù),因此對兩邊的s進行求導(dǎo)可得
(15)
(16)
對于灰度級別比較離散的數(shù)字圖像,可以用頻率代替概率,所以變換函數(shù)T(rk)的離散形式可以表示為
(17)
由式(17)可知,均衡化后的各像素灰度級sk可直接由原圖像的直方圖算出來。對蘋果樹葉子進行直方圖均衡化前后的效果如圖3所示。
圖3 直方圖均衡化前后對比 Fig.3 Comparison before and after histogram equalization
2.3.1 高斯拉普拉斯算子
二維的高斯函數(shù)的表達(dá)式為
(18)
其拉普拉斯變換為
(19)
規(guī)范化的高斯拉普變換為
(20)
2.3.2 LOG算法
首先需要對圖像f(x,y)采用方差為σ的高斯核進行高斯低通濾波,去除圖像中的噪聲點,即
L(x,y;σ)=f(x,y)*G(x,y;σ)
然后對圖像進行拉普拉斯變換,公式為
(21)
即
(22)
這里采用的是先對高斯核進行拉普拉斯算子變換,之后再對圖像進行卷積。
2.3.3 多尺度檢測
當(dāng)σ尺度一定時,只能檢測其對應(yīng)半徑的斑點。因此,可以通過對規(guī)范化的二維拉普拉斯高斯算子進行求導(dǎo),便可以進行多尺度檢測。規(guī)范化的高斯拉普拉斯函數(shù)為
(23)
(24)
之后得
(25)
r2-2σ2=0
(26)
圖4 斑點檢測前后對比 Fig.4 Comparison before and after spot detection
使用開運算對圖像進行處理時,能夠在不影響原來圖像的前提下,消除噪點,去除小的干擾塊。因此使用斑點檢測算法之后,再使用開運算,對斑點檢測得到的圖像先進行腐蝕操作,再進行膨脹操作,就可以將圖像中的黑色干擾塊去除,從而使提取出來的病斑更加鮮明。開運算前后的圖像如圖5所示。
圖5 開運算前后對比Fig.5 Comparison before and after operation
2.5.1 前向傳播算法
DNN神經(jīng)網(wǎng)絡(luò)的前向傳播算法的本質(zhì)其實就是利用若干個權(quán)重系數(shù)矩陣W,偏置向量b以及輸入向量x進行一系列線性運算和激活運算,從輸入層開始,每一層都根據(jù)前一層的輸出結(jié)果來計算下一層的輸出,一層層地向后進行運算,一直運算到輸出層,將最后的結(jié)果輸出為止。
(27)
al=σ(zl)=σ(Wlal-1+bl)
(28)
2.5.2 后向傳播算法
DNN神經(jīng)網(wǎng)絡(luò)的反向傳播算法其實就是對損失函數(shù)使用梯度下降法進行迭代優(yōu)化求解極小值[17],從而找到最優(yōu)的線性權(quán)重矩陣W和偏置向量b,讓樣本的輸出結(jié)果盡可能地等于或接近樣本標(biāo)簽。
首先使用均方差的方法來對度量的損失進行推導(dǎo),也就是對每個樣本期望最小化,表達(dá)式為
(29)
之后根據(jù)這個損失函數(shù),使用梯度下降法迭代求解每一層的權(quán)重矩陣W和偏置向量b,對于輸出層L層,W、b滿足:
aL=σ(zL)=σ(WLaL-1+bL)
(30)
所以對于輸出層參數(shù),損失函數(shù)變?yōu)?/p>
(31)
輸出層的梯度就可以求解為
根據(jù)式(32)進行一步步遞推,就可以把L-1、L-2、…層的梯度求解出來。根據(jù)依次計算出的L層的δL和前向傳播算法zl=Wlal-1+bl就可以很簡單的求解出第L層的WL和bl的梯度
δl(al-1)T
(33)
(34)
zl+1=Wl+1al+bl+1=Wl+1σ(zl)+bl+1
(35)
(36)
再將式(36)代入δl和δl+1,就可以得到
(37)
之后就可以更新權(quán)重Wl和偏置bl
(38)
(39)
2.5.3DNN神經(jīng)網(wǎng)絡(luò)的應(yīng)用
神經(jīng)網(wǎng)絡(luò)是基于感知機的擴展,而DNN可以理解為是有很多隱藏層的神經(jīng)網(wǎng)絡(luò),其本質(zhì)其實就是多層線性回歸。DNN內(nèi)部網(wǎng)絡(luò)層可以分為三類:輸入層、隱藏層和輸出層,一般來說,第一層是輸入層,最后一層是輸出層,而中間的層數(shù)都是隱藏層,層與層之間是全連接的。
系統(tǒng)采用1個輸入層、3個隱藏層和1個輸出層,結(jié)構(gòu)如圖6所示,使用的激活函數(shù)為Sigmoid函數(shù)。
首先搭建一個基本的DNN神經(jīng)網(wǎng)絡(luò),初始化權(quán)重矩陣W和偏置參數(shù)b,之后將訓(xùn)練集里面圖像進行圖像分割,直方圖均衡化,斑點檢測,開運算操作,得到每張圖片的特征點以及它們所在位置的坐標(biāo),在原圖中框選出來并將框選出來的特征圖像送入神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí),之后通過前向傳播算法辨別測試集圖像是否有病蟲害,并計算得到準(zhǔn)確率。最后通過后向傳播算法,更新權(quán)重矩陣W和偏置參數(shù)b,再進行測試,直到最后辨別結(jié)果達(dá)到最優(yōu),得到最優(yōu)模型為止,如圖7所示。
圖6 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Neural network structure diagram
圖7 神經(jīng)網(wǎng)絡(luò)框架Fig.7 Neural network framework
系統(tǒng)的主控芯片采用的是NLE-AI800物聯(lián)網(wǎng)平臺,其CPU采用的是雙核A73+雙A53+單核A53,AI計算單元采用的是雙核NNIE@840 MHz,并配有4 GB運存+32 G內(nèi)存,具有超強的運算處理與分析能力,可以滿足系統(tǒng)對運算速度和存儲空間的需求。系統(tǒng)還采用了新大陸的物聯(lián)網(wǎng)平臺,它是集設(shè)備在線采集、遠(yuǎn)程控制、無線傳輸、數(shù)據(jù)處理、預(yù)警信息發(fā)布、決策支持、一體化控制等功能于一體的物聯(lián)網(wǎng)系統(tǒng)。支持多種網(wǎng)關(guān)和物聯(lián)網(wǎng)硬件設(shè)備接入,分布式地對數(shù)據(jù)進行存儲、計算。可以使數(shù)據(jù)通過傳輸控制協(xié)議(transmission control protocol,TCP)傳輸?shù)皆贫耍阌跀?shù)據(jù)的共享與可視化分析。
3.2.1 測試方案
為了更加精準(zhǔn)地驗證蘋果樹病蟲害檢測系統(tǒng)的準(zhǔn)確性,試驗地點選擇在近年來蘋果樹種植面積和產(chǎn)量最多的陜西省。在預(yù)先選好的蘋果樹試驗田里,實驗人員手持本裝置,通過攝像頭實時采集蘋果樹葉子的圖像信息,對畫面進行逐幀分析,將每一幀畫面進行圖像處理,再送入DNN神經(jīng)網(wǎng)絡(luò),最后將識別結(jié)果顯示在屏幕上,如圖8所示。
圖8 蘋果樹葉子病蟲害檢測結(jié)果Fig.8 Detection results of diseases and insect pests on apple tree leaves
3.2.2 測試結(jié)果
選取了600棵蘋果樹作為抽樣樣本,將抽樣樣本分為6組進行試驗,并將每次測試的結(jié)果都通過TCP協(xié)議傳輸?shù)皆贫?,便于對實驗?shù)據(jù)進行分析與研究,如圖9所示。實驗結(jié)果如表1所示。
根據(jù)上述數(shù)據(jù)可知,在各試驗區(qū),病蟲害檢測的準(zhǔn)確率都在89.0%以上,如圖10所示。系統(tǒng)識別病蟲害的準(zhǔn)確率可以滿足果農(nóng)對蘋果樹病蟲害預(yù)防的需要,可以在蘋果樹園進行應(yīng)用。但是本系統(tǒng)是通過攝像頭進行圖像的數(shù)據(jù)采集,可能會由于光源、環(huán)境、硬件等一些因素的影響,采集到的圖像受到視覺干擾或圖像失真等因素的干擾,使得本系統(tǒng)對病蟲害的檢測存在一定的誤差,誤差范圍為0.2%~0.6%。
圖9 手持式云平臺檢測結(jié)果Fig.9 Handheld cloud platform detection results
表1 蘋果樹病蟲害概率統(tǒng)計表Table 1 Apple tree pest probability statistical table
圖10 準(zhǔn)確率、損失值結(jié)果Fig.10 Accuracy and loss results
以蘋果樹病蟲害的檢測為研究對象,提出了一種基于DNN神經(jīng)網(wǎng)絡(luò)和LOG算法相結(jié)合的病蟲害檢測方法,實現(xiàn)了基于機器視覺的蘋果樹病蟲害檢測系統(tǒng)。
(1)以LOG算法作為特征提取、DNN神經(jīng)網(wǎng)絡(luò)作為識別模型的檢測系統(tǒng)對蘋果樹葉子病蟲害的識別準(zhǔn)確率可達(dá)91.17%,表明本系統(tǒng)對蘋果樹葉子病蟲害檢測的效果較為清晰,病蟲害識別準(zhǔn)確率較高,優(yōu)于RCNN、YOLO等單一病蟲害檢測方法。
(2)該設(shè)備可以應(yīng)用在蘋果樹常見病蟲害識別上,減少果農(nóng)的工作量,提升識別蘋果產(chǎn)率。
綜上,通過機器視覺的圖像處理方法提取出蘋果樹葉子的病斑特征,再構(gòu)建DNN神經(jīng)網(wǎng)絡(luò)進行蘋果樹病蟲害檢測識別,能夠提高對蘋果樹病蟲害的防治能力。