王秀清,陳 琪,楊世鳳
(天津科技大學(xué)電子信息與自動化學(xué)院,天津300222)
番茄病害會導(dǎo)致產(chǎn)量與作物品質(zhì)嚴(yán)重下滑,因而在病害發(fā)生時需要快速反應(yīng)并合理施藥.由于農(nóng)產(chǎn)品生產(chǎn)者依靠經(jīng)驗判斷病害時存在一定主觀性和局限性,因此病害識別模型的研究必不可少.
近些年,對農(nóng)作物病害識別的研究引起了越來越多學(xué)者的關(guān)注,目前研究方向有:植物葉片特征描述和更優(yōu)分類算法[1]等.王雪等[2]提取植物葉片形狀和顏色特征,利用k 近鄰算法作為分類識別器,將黃瓜霜霉病從其他病害中識別出來,且識別率達(dá)到95%.王臨銘等[3]以3 種甘肅啤酒大麥病斑圖像為研究對象,提取其RGB 顏色特征及基于灰度共生矩陣的紋理特征等特征,利用反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)作為分類器訓(xùn)練,最終識別正確率達(dá)86.7%.祁釗等[4]提取3 種玉米葉片病害病斑的顏色、紋理及不變矩特征,并采用主成分分析和SVM相結(jié)合的方法進(jìn)行分類識別,最終識別精度為90.74%.夏永泉等[5]利用隨機森林方法對小麥葉片病害進(jìn)行了分類識別,整體識別準(zhǔn)確率達(dá)95%.Soni等[6]提出用PNN 分類器實現(xiàn)植物病害識別,得到了良好的識別效果.王秀清等[7]利用聲發(fā)射技術(shù)檢測植物是否發(fā)生病害,也取得了良好的效果.
布谷鳥搜索算法(cuckoo search,CS)具有優(yōu)化參數(shù)少,全局搜索能力強等特點,已被用于人體行為識別[8]、圖像分割[9]、股價預(yù)測等領(lǐng)域,但至今仍未用于病害識別領(lǐng)域.孫晨等[10]提出布谷鳥優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)(CS-BP)的方法預(yù)測股價,該算法將CS 搜索的最優(yōu)鳥巢直接作為BP 網(wǎng)絡(luò)的權(quán)值閾值構(gòu)建預(yù)測模型,但CS 算法具有后期收斂速度較慢,易陷入局部最優(yōu)等缺點.因此,本文對CS-BP 算法加以改進(jìn),利用BP 算法的反向傳播特性優(yōu)化CS 算法搜索步驟,構(gòu)造布谷鳥與BP 網(wǎng)絡(luò)協(xié)同算法(CS and BP collaborative algorithm,CS-BPCA)搜索最佳權(quán)值,并引入自適應(yīng)調(diào)節(jié)步長機制加快布谷鳥搜索算法收斂速度,構(gòu)造出自適應(yīng)步長布谷鳥與 BP 協(xié)同搜索算法(selfadaptive step cuckoo search and BP collaborative algorithm,ASCS-BPCA),并將其用于番茄病害識別模型.本文首先選用番茄病害葉片作為研究對象,基于圖像處理的高斯混合模型(Gaussian mixture model,GMM)聚類算法分離復(fù)雜背景以及RGB-HSI 坐標(biāo)變換實現(xiàn)完整病斑分割,再選擇病斑部位3 種顏色空間以及各顏色空間的灰度梯度共生矩陣作為本文特征描述,利用ASCS-BPCA 作為本文分類識別器,并將識別正確率與CS-BP 網(wǎng)絡(luò)進(jìn)行比較分析.
本文病害圖像來源于網(wǎng)絡(luò),共收集了3 種病害及正常葉片各100 張共400 張圖像,并經(jīng)專家驗證所屬病害類別無誤.選取圖像大都為自然背景,分割病害部位時復(fù)雜自然背景的剪除更容易造成誤差,但更加貼合實際應(yīng)用.
選用GMM 聚類算法去除400 張病害圖像的雜草、陰影等復(fù)雜背景.利用背景部分與番茄病害葉片部分存在的差異,利用GMM 計算數(shù)據(jù)集的概率分布,實現(xiàn)聚類分離帶病斑的番茄植株葉片與模糊背景.
(1)將病害圖像轉(zhuǎn)為像素點作為原始數(shù)據(jù),利用k-means 聚類方法對樣本聚類,得到標(biāo)記像素點矩陣作為GMM 隱含類別標(biāo)簽 z(i).
(2)已知 z(i)后,高斯混合模型簡化為式(1),式中 p (x, z) 為最大似然估計.
(3)通過不斷迭代更新均值jμ 和協(xié)方差矩陣 ∑j計算最大似然估計,直至收斂得到最佳聚類結(jié)果,從而分離病害圖像的背景部位.
分離復(fù)雜背景后,利用HSI 模型中色度信息提取病斑.HSI 模型反映人的視覺系統(tǒng)觀察彩色的方式,模型可以將彩色圖像色度(H)、飽和度(S),強度(I)分離,在圖像分割領(lǐng)域應(yīng)用優(yōu)勢很大.病害葉片RGB 坐標(biāo)到HSI 坐標(biāo)色度(H)轉(zhuǎn)換公式為式(4).
歸一化色度分量,將其作為色度調(diào)節(jié)因子h 去除綠色部分,分離出病斑.分割結(jié)果如圖1 所示.圖中第1 列為分類樣本原圖,第2—5 列為調(diào)節(jié)因子h∈[1/7,0.45]、h∈[1/6,0.5]、h∈[1/5,0.6]、h∈[1/4,0.65]時病斑分割結(jié)果.
由圖1 可知:h∈[1/6,0.5]時圖1(b)中第2 行分割效果不太理想,但其他都能分離出清晰病斑部位;h∈[1/5,0.6]時圖1(b)中第2 行分割效果好,但其他圖像都有少量綠色區(qū)域殘留,h 選取其他范圍時分割效果會變差.因此,使用算法ASCS-BPCA 進(jìn)行病斑分割時,選擇h∈[1/6,0.5]為基本值,效果較差時在[1/6,0.6]間微調(diào),可快速優(yōu)良地分割本文中3 種病害病斑.經(jīng)實驗,本算法分割100 張圖像病斑在Matlab中運行耗時2.036 s,執(zhí)行速度較快,且適應(yīng)度廣,適合快速提取大量病害葉片病斑.
圖1 葉片病斑分割Fig.1 Segmentation of disease spots
本文以分割出的400 張病斑圖像為樣本,提取病斑特征集.分別提取顏色直方圖RGB 的R、G、B 顏色成分,顏色空間HSV 的色調(diào)、飽和度、明度,顏色模型HSI 中的色度、飽和度、強度共9 種顏色特征;利用灰度-梯度共生矩陣方法[11]分別提取RGB 直方圖,HSV 顏色空間通道H、S、V,HSI 顏色模型通道H、S、I 的灰度平均、逆差距、慣性、混合熵、梯度熵、灰度熵、相關(guān)性、灰度均方差、梯度平均等共45 個紋理特征.利用Tamura 方法[12]提取病斑RGB 坐標(biāo)下的粗糙度、對比度共2 個統(tǒng)計特征,綜上本文共提取400 張病斑圖像的56 個特征向量,組成維度空間[400,56]的特征集,選取每種病害圖像各65 張共260張作為驗證集構(gòu)成番茄葉片病斑識別網(wǎng)絡(luò)模型,并將剩余圖像作為測試集.
標(biāo)準(zhǔn)布谷鳥搜索算法是通過自然界布谷鳥寄生育雛(brood parasitism)行為的啟發(fā)提出的一種群智能搜索算法,每個鳥巢代表一個候選解,通過基于萊維(Levy)飛行隨機游走方式搜索新解代替舊解,最終搜索巢群中的最優(yōu)解,即式(5).
式中:xn為舊巢n;xb為當(dāng)前最優(yōu)解;s 為Levy 飛行步長,即式(6).
其中給出變量β∈[0.3,1.99],u 和v 都服從正態(tài)分布
神經(jīng)網(wǎng)絡(luò)是由多個神經(jīng)元組成的多層感知機(multi layer perceptron,MLP),用反向傳播算法訓(xùn)練,即BP 神經(jīng)網(wǎng)絡(luò).其結(jié)構(gòu)包含輸入層、隱藏層、輸出層,本文構(gòu)造的神經(jīng)網(wǎng)絡(luò)模型如圖2 所示.
圖2 BP模型Fig.2 Model of BP
在第L 層即輸出層中,對于每一個訓(xùn)練集樣本分類數(shù) yt,有誤差 δL= aL- yt,由反向傳播算法從右到左計算得到第l 層誤差,見式(7).
此時對于每個神經(jīng)元權(quán)值更新公式見式(8).
為加快學(xué)習(xí)效率,引入矯正矩陣機制,更新矯正矩陣公式,見式(9).
由于CS 算法尋優(yōu)后期收斂較慢、易陷入局部最小化,本文結(jié)合BP 神經(jīng)網(wǎng)絡(luò)反向傳播能力,自動調(diào)整權(quán)值閾值特點,提出了布谷鳥與BP 協(xié)同算法(CSBPCA),該算法有利于讓CS 尋優(yōu)后期跳出局部最小,改善易陷入局部最小缺點.
該協(xié)同網(wǎng)絡(luò)中,本文構(gòu)建的三層BP 網(wǎng)絡(luò)(圖2)權(quán)值閾值{w1}{b2}{w2}{b3},其中{b2}{b3}分別為隱藏層輸出層閾值,由編碼公式(10)組成布谷鳥搜索算法中巢向量xbp.
與CS 算法搜索的最優(yōu)鳥巢位置xcs根據(jù)式(11)比較判別
得到更優(yōu)解向量xb,將xb由式(5)和式(8)迭代更新并不斷比較擇優(yōu),直至結(jié)束條件為止,最終搜索到CS-BPCA 網(wǎng)絡(luò)中最優(yōu)解向量.該算法中利用BP 算法反向傳播特性自動更新xbp,產(chǎn)生更優(yōu)的xbp替代xcs巢向量,將xb利用更新式(8)自動修正權(quán)值得到新巢xbp和f(xbp),利用CS 算法式(5)更新25 個巢向量并擇出最優(yōu)新巢xcs和f(xcs),再由式(10)得到更優(yōu)巢向量xb,不斷循環(huán)迭代,直到f(xb)<ε,訓(xùn)練達(dá)到設(shè)定誤差精度或迭代次數(shù)達(dá)到最大迭代次數(shù)為止.協(xié)同網(wǎng)絡(luò)最終輸出向量xb解碼得到最優(yōu)權(quán)值閾值.
CS 算法中,由于Levy 飛行產(chǎn)生步長越大,越容易搜索到全局最優(yōu),但同時降低搜索精度,甚至?xí)霈F(xiàn)震蕩現(xiàn)象,為增強其自適應(yīng)性,對本文構(gòu)造的CSBPCA 引入自適應(yīng)度步長調(diào)節(jié)機制,見式(12)[13].
式中:ni表示第i 個鳥窩位置;nbest表示最優(yōu)鳥窩位置;dmax表示最優(yōu)鳥窩與其余鳥窩間最大距離值.
由此式引入自適應(yīng)調(diào)整步長策略,見式(13).
式中:smax為Levy 飛行步長最大值,smin為最小值.
由式(12)和式(13)引入本文協(xié)同算法,構(gòu)造自適應(yīng)步長布谷鳥與BP 協(xié)同搜索算法(ASCS-BPCA).
為了分析ASCS-BPCA 的病害識別模型有效性與優(yōu)越性,用Matlab 2014 仿真軟件進(jìn)行病害識別仿真實驗.將樣本特征集[400,56]均勻抽取[260,56]作為訓(xùn)練集,其余作為測試集構(gòu)建識別模型.將協(xié)同搜索得到的最優(yōu)鳥巢xb作為網(wǎng)絡(luò)權(quán)值閾值,構(gòu)建本文的ASCS-BPCA 識別模型,并在相同條件下構(gòu)造CSBP 識別模型作為對比.其中鳥巢規(guī)模為30,迭代次數(shù)為50.
將兩種算法構(gòu)造模型分別連續(xù)進(jìn)行5 次獨立重復(fù)實驗,主要從網(wǎng)絡(luò)性能和番茄病害識別正確率分析,模型適應(yīng)度隨迭代次數(shù)的變化如圖3 所示.由圖3 可知:ASCS-BPCA 僅需26 次迭代后算法收斂,用時28.3 s,此時適應(yīng)度值降為最低;而CS-BP 算法至少需45 次迭代后才收斂,至少用時48.3 s,且最低適應(yīng)度值仍比ASCS-BPCA 高很多.由此可知ASCSBPCA 收斂速度有了較大提升,且訓(xùn)練效果更好.
圖3 識別網(wǎng)絡(luò)性能圖Fig.3 Performance of recognition network
對于兩種算法,在訓(xùn)練后保存訓(xùn)練網(wǎng)絡(luò),并將測試集[140,56]作為輸入,對改進(jìn)算法和傳統(tǒng)算法進(jìn)行了多次迭代計算,分析改進(jìn)算法和傳統(tǒng)算法的每次執(zhí)行的平均運行時間、算法收斂所需的平均時間和識別準(zhǔn)確率.分別進(jìn)行連續(xù)不斷的測試并保存連續(xù)5 次的測試結(jié)果.選擇迭代次數(shù)為35 次、50 次和65 次的識別結(jié)果進(jìn)行對比(表1),用于對比兩種算法的識別準(zhǔn)確率,并驗證ASCS-BPCA 算法收斂速度快于傳統(tǒng)算法.
由表1 可見:兩種算法迭代次數(shù)相同時,ASCSBPCA 的識別準(zhǔn)確率均高于CS-BP 的,說明ASCSBPCA 識別準(zhǔn)確率確實優(yōu)于傳統(tǒng)算法;ASCS-BPCA迭代35 次、50 次和迭代65 次時平均識別準(zhǔn)確率都在90%以上,而CS-BP 算法平均識別準(zhǔn)確率都在75%左右,且最低只有47.1%,應(yīng)是尋優(yōu)時陷入局部最小所致.由此說明傳統(tǒng)的CS-BP 算法不太穩(wěn)定.
表1 網(wǎng)絡(luò)識別結(jié)果對比Tab.1 Comparison of network recognition results
ASCS-BPCA 迭代35 次內(nèi)算法就能收斂,平均收斂時間25 s;而CS-BP 算法迭代次數(shù)至35 時未能收斂,依據(jù)圖3 也說明了CS-BP 算法至少需45 次迭代后才能收斂.增加迭代次數(shù)至65 后,ASCS-BPCA迭代平均收斂時間28.3 s,CS-BP 算法迭代平均收斂時間55.5 s,表明改進(jìn)算法收斂速度有了較大提升.
通過仿真實驗分析表明:本文構(gòu)造的 ASCSBPCA 確能使CS 算法尋優(yōu)跳出局限,實現(xiàn)更好的全局搜索能力,且能提高整體性能,使平均識別準(zhǔn)確率達(dá)到90%以上.
本文將患有白粉病、灰霉病、晚疫病的番茄病害葉片及健康葉片共400 張圖像作為識別樣本,其中260 張用于訓(xùn)練,140 張用于測試驗證.利用圖像處理方法進(jìn)行背景分離,并選擇RGB-HSI 轉(zhuǎn)換算法實現(xiàn)病斑分割,分析其最優(yōu)色度調(diào)節(jié)因子范圍,提取出優(yōu)質(zhì)完整的病斑.對病斑部位提取顏色特征、紋理特征等56 種特征參數(shù),組成特征集用于構(gòu)建病害識別模型.對CS-BP 算法進(jìn)行優(yōu)化,提出ASCS-BPCA 算法,該算法借助反向傳播算法跳出CS 尋優(yōu)局限性,實現(xiàn)更優(yōu)權(quán)值搜索,并引入自適應(yīng)步長調(diào)節(jié)機制,加快收斂速度.仿真實驗表明該改進(jìn)算法收斂速度確有提升,且識別率高,網(wǎng)絡(luò)性能優(yōu)于CS-BP 網(wǎng)絡(luò).