謝裕睿,苗晟,張鑠,董建娥
(西南林業(yè)大學(xué)大數(shù)據(jù)與智能工程學(xué)院,昆明650224)
煙草行業(yè)對(duì)國(guó)民經(jīng)濟(jì)發(fā)展具有重要作用,病蟲(chóng)害是制約煙草產(chǎn)量和品質(zhì)的重要因素,探索其綠色安全的種植方式已成為農(nóng)學(xué)界的重要課題[1]。防治煙草病害的首要任務(wù)是高效精準(zhǔn)地識(shí)別出病害的類(lèi)型,依靠傳統(tǒng)的人工識(shí)別方式容易造成誤診。因此,研究利用科學(xué)技術(shù)診斷煙草病害的方法具有重要的意義。
為提高煙草病害的診斷效率,一些學(xué)者已經(jīng)利用各種計(jì)算機(jī)技術(shù)來(lái)研發(fā)病害識(shí)別系統(tǒng)。王建璽等人[2]建立了一種基于模糊識(shí)別技術(shù)的煙葉病害識(shí)別系統(tǒng);濮永仙[3]采用病斑特征融合技術(shù),構(gòu)建了煙草病害圖像檢索系統(tǒng);郭賽等人[4]建立了基于氣象因子的非線性模型來(lái)預(yù)測(cè)煙草普通花葉病毒。以上文獻(xiàn)均取得了較好的識(shí)別效果,但都依賴(lài)于特定特征,并不能完全表征煙草病害信息。
本研究基于支持向量機(jī)(Support Vector Machine,SVM)[5]和深度殘差網(wǎng)絡(luò)(Deep Residual Network,ResNet)[6],研究對(duì)象為角斑病、花葉病、白粉病、氣候性斑點(diǎn)病和赤星病5 種常見(jiàn)煙草病害,以圖像處理技術(shù)為主要手段,建立了煙草病害識(shí)別診斷系統(tǒng)。
由于采集的圖像顏色相對(duì)較淺,煙草病害的顏色與正常煙草的顏色相近,從而降低了識(shí)別精度。調(diào)整灰度圖像的亮度或彩色圖像的顏色矩陣,自適應(yīng)地找到分割閾值向量及其適當(dāng)值,進(jìn)而改變圖像的對(duì)比度。經(jīng)過(guò)增強(qiáng)對(duì)比度處理的煙草病害圖像,輪廓細(xì)節(jié)更加明顯,易于區(qū)分病害區(qū)域和正常區(qū)域。以赤星病為例,增強(qiáng)效果如圖1 所示。
RGB 顏色空間將所有顏色都視為關(guān)聯(lián)性很強(qiáng)的三種原色的組合,直接分割基于RGB 顏色空間的圖像不利于特征提取。Lab 顏色空間可以描述自然界中的任何色彩,因此本研究將病害圖像從RGB 顏色空間轉(zhuǎn)換到Lab 顏色空間,以獲得更精確的顏色定位。
圖1 赤星病圖像的對(duì)比度增強(qiáng)效果
Lab 顏色空間中的亮度層表示為L(zhǎng)*分量,紅綠軸上顏色表示為a*分量,黃藍(lán)軸上的顏色表示為b*分量。這三個(gè)分量的顏色空間范圍比較廣泛,相互獨(dú)立性高,更適于分割圖像?;贚ab 顏色空間的圖像分割具有很高的可靠性和有效性,能較好地分割出所需的圖像區(qū)域,為特征提取階段提供了技術(shù)支持。赤星病圖像在Lab 顏色空間的三個(gè)通道圖如圖2 所示。
圖2 赤星病圖像的Lab顏色空間通道圖
本研究采用K-means 聚類(lèi)算法分割病斑,其基本思想是聚類(lèi)空間中的k 個(gè)點(diǎn)通過(guò)迭代方法不斷更新聚類(lèi)中心的值,直到獲得最佳聚類(lèi)結(jié)果為止[7]。基于Lab空間的K-means 聚類(lèi)分割可以精準(zhǔn)地對(duì)圖像中的目標(biāo)進(jìn)行標(biāo)記和定位,便于快速尋找煙草圖像的病斑區(qū)域。赤星病圖像經(jīng)過(guò)K-means 聚類(lèi)分割處理得到的結(jié)果如圖3 所示。
圖3 赤星病圖像的K-means聚類(lèi)分割結(jié)果
自然生長(zhǎng)的煙草病斑沒(méi)有明確一致的形狀,呈現(xiàn)出局部不規(guī)則但總體規(guī)律的分布,屬于準(zhǔn)規(guī)則紋理?;叶裙采仃嚕℅ray-Level Co-occurrence Matrix,GL?CM)是圖像灰度變化的統(tǒng)計(jì)度量,通過(guò)計(jì)算對(duì)稱(chēng)矩陣獲得特征值,以表示圖像的一些紋理特征[8],適合統(tǒng)計(jì)病變?nèi)~片。
由于本研究使用SVM 分類(lèi)器識(shí)別,分類(lèi)的結(jié)果以標(biāo)簽形式顯示,所以需要對(duì)每種病害分別標(biāo)注一個(gè)標(biāo)簽。對(duì)經(jīng)過(guò)K-means 聚類(lèi)分割處理的病害圖像采用GLCM 提取其十三維特征,自動(dòng)存儲(chǔ)每次提取的特征值,導(dǎo)入所提取的數(shù)據(jù)和病害種類(lèi)的標(biāo)簽,便于后期識(shí)別。部分煙草樣本的形狀特征參數(shù)如表1 所示。
SVM 算法把樣本空間非線性映射到高維甚至無(wú)窮維的特征空間中,將原始樣本空間中非線性可分的問(wèn)題轉(zhuǎn)化為在特征空間中的線性可分的問(wèn)題,即升維和線性化。SVM 算法巧妙地解決了升維導(dǎo)致計(jì)算復(fù)雜化的難題,利用核函數(shù)完成特征映射,并把內(nèi)積結(jié)果直接返回,大幅度地簡(jiǎn)化了計(jì)算工作。
以線性分類(lèi)器為例,如果樣本空間為X,則引入非線性映射N(xiāo),將樣本空間映射到新特征空間以形成可積函數(shù)N(x),將其與二元函數(shù)K(x,y)相乘,通過(guò)積分形成一個(gè)新的函數(shù)來(lái)實(shí)現(xiàn)輸出。對(duì)稱(chēng)正定的連續(xù)核被稱(chēng)為Mercer 核,K(x,y)在這個(gè)轉(zhuǎn)換過(guò)程中即積分變換的Mercer 核函數(shù),可以展開(kāi)成一致收斂的函數(shù)項(xiàng)級(jí)數(shù),如下式(1)所示:
上式中變量i 表示類(lèi)的個(gè)數(shù),核函數(shù)K(x,y)的特征值被表示為λi,特征函數(shù)被表示為φi(x)。通過(guò)構(gòu)造特征空間的非線性升維映射,尋求的最優(yōu)超平面決策函數(shù)如下式(2)所示:
式(2)表明在實(shí)際計(jì)算中,僅需求出支持向量xi、支持強(qiáng)度、閾值b*及對(duì)應(yīng)輸出值yi,便可在不知道其顯式表達(dá)式的情況下獲得樣本空間的非線性輸出值。
加載訓(xùn)練數(shù)據(jù)集并將其放入SVM 分類(lèi)器中進(jìn)行識(shí)別,分類(lèi)結(jié)果以標(biāo)簽形式顯示,然后根據(jù)不同的標(biāo)簽輸出相應(yīng)的病害名稱(chēng),識(shí)別率統(tǒng)計(jì)如表2 所示。
表1 部分煙草病斑紋理特征數(shù)據(jù)
表2 基于SVM 算法的煙草病害識(shí)別率統(tǒng)計(jì)
表2 數(shù)據(jù)中的平均識(shí)別率為50.23%,整體識(shí)別效果較差,表明了SVM 算法識(shí)別煙草病害存在明顯不足。原因主要有:①某些病害圖片清晰度不高、背景復(fù)雜;②分割出的角班病、氣候性斑點(diǎn)病病斑部分與赤星病的極其相似,導(dǎo)致這兩種病害常被錯(cuò)誤識(shí)別為赤星??;③當(dāng)病斑面積較大時(shí),不能完全分割病害區(qū)域。因此,本研究又采用ResNet 來(lái)識(shí)別煙草病害,探究其識(shí)別效果。
隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)是一種改進(jìn)算法,每次隨機(jī)選擇一個(gè)樣本迭代更新,并不針對(duì)所有的樣本集,具有易收斂、訓(xùn)練快等特性,旨在尋找最小化的目標(biāo)函數(shù)[9]。其核心思想是根據(jù)梯度的方向調(diào)整權(quán)值,不斷更新直至損失函數(shù)值達(dá)到最小,從而獲得最優(yōu)解。SGD 相關(guān)公式如下式(3)、(4)、(5)所示:目,g(φ)表示目標(biāo)函數(shù),m 表示整個(gè)迭代進(jìn)行的總次數(shù),yi表示第i 個(gè)樣本的樣本值,h(φ)表示損失函數(shù),?φ表示梯度,η表示梯度下降中的步長(zhǎng)(即學(xué)習(xí)率)。
本研究中,從總數(shù)據(jù)集中隨機(jī)抽樣一批數(shù)據(jù),運(yùn)行網(wǎng)絡(luò)并計(jì)算梯度,應(yīng)用SGD 更新參數(shù),重復(fù)上述步驟,直到出現(xiàn)收斂或者循環(huán)被其他機(jī)制暫停。
反向傳播算法(Back Propagation,BP)與SGD 相結(jié)合,可用于減小模型輸出與實(shí)際結(jié)果之間的誤差,最終通過(guò)調(diào)整參數(shù)權(quán)重來(lái)優(yōu)化模型[10]。反向傳播思想可以快速地求出損失函數(shù)對(duì)每個(gè)參數(shù)的導(dǎo)數(shù),其基本原理是求導(dǎo)數(shù)時(shí)的鏈?zhǔn)椒▌t,如下式(6)所示。
式(6)中表示第p 層第c 個(gè)節(jié)點(diǎn)的值表示第(p-1)層第d 個(gè)節(jié)點(diǎn)的激活值,w 為權(quán)重,b 為偏置。本研究定義的殘差為式(7),其中L 表示損失函數(shù)。
ResNet 中的反向傳播首先需要隨機(jī)初始化網(wǎng)絡(luò)中各層的參數(shù),然后計(jì)算從輸入層到輸出層的各節(jié)點(diǎn)的正向值和激活值。對(duì)于最后一層,可以直接計(jì)算激活值與網(wǎng)絡(luò)生成的實(shí)際值之間的差異(即“殘差”),便可快速得出損失函數(shù)的偏導(dǎo)數(shù)。逐層計(jì)算每個(gè)節(jié)點(diǎn)的殘差值,根據(jù)連接權(quán)和偏置值的梯度下降計(jì)算得到其新的迭代值。
由于SVM 算法識(shí)別煙草病害的效果不佳,本研究引入ResNet,其模型的容量和判斷特征的能力會(huì)隨著網(wǎng)絡(luò)的加深而增強(qiáng),避免因梯度彌散而出現(xiàn)欠擬合[11],不斷提高網(wǎng)絡(luò)性能。
首先構(gòu)建恒等殘差塊和卷積殘差塊,基于這兩個(gè)
其中參數(shù)φ表示網(wǎng)絡(luò)參數(shù)權(quán)重,j 表示參數(shù)的總數(shù)模塊搭建20 層的ResNet 模型。恒等殘差塊用于判斷輸入、輸出維度是否相等,其結(jié)構(gòu)如圖4 所示。當(dāng)輸入、輸出維度不同時(shí),卷積殘差塊可以進(jìn)行線性映射,變換維度后連接到下一層,其結(jié)構(gòu)如圖5 所示。
圖4 恒等殘差塊結(jié)構(gòu)
圖5 卷積殘差塊結(jié)構(gòu)
相較于常規(guī)網(wǎng)絡(luò),殘差模塊不僅可以保持精度,還可以減少網(wǎng)絡(luò)計(jì)算量[12],并在達(dá)到最優(yōu)性能時(shí)恒等映射多余的網(wǎng)絡(luò)層。本研究中的ResNet 20 主要分為五大模塊,前四個(gè)模塊主要用于自適應(yīng)提取圖像特征,最后一個(gè)模塊使用全局平均池化,將每個(gè)通道里的數(shù)值平均成一個(gè)標(biāo)量,并通過(guò)全連接層輸出。為達(dá)到穩(wěn)定訓(xùn)練的目的,用批量歸一化來(lái)固定每層輸入的均值和方差。ResNet 20 模型的結(jié)構(gòu)如圖6 所示。
圖6 ResNet 20模型結(jié)構(gòu)
實(shí)驗(yàn)圖像統(tǒng)一輸入尺寸為128×128,數(shù)據(jù)歸一化到[0,1]區(qū)間,且數(shù)據(jù)類(lèi)型為浮點(diǎn)數(shù)。在ResNet 20 構(gòu)建成功后為其配置相關(guān)參數(shù),設(shè)置初始學(xué)習(xí)率為0.001,權(quán)重衰減為0.0001、迭代次數(shù)為49 次。獲取病害標(biāo)簽,通過(guò)網(wǎng)絡(luò)模型訓(xùn)練得出預(yù)測(cè)分類(lèi)結(jié)果,最終輸出分類(lèi)結(jié)果,識(shí)別率統(tǒng)計(jì)如表3 所示。
表3 基于ResNet 20 的煙草病害識(shí)別率統(tǒng)計(jì)
表3 數(shù)據(jù)中的平均識(shí)別率為89.50%,實(shí)驗(yàn)結(jié)果表明:相較于采用SVM 算法識(shí)別,ResNet 20 模型的識(shí)別率明顯更高,可以更準(zhǔn)確地識(shí)別煙草病害,驗(yàn)證了殘差神經(jīng)網(wǎng)絡(luò)的良好性能。
本文研究了基于圖像處理技術(shù)的煙草病害識(shí)別方法,描述了顏色空間轉(zhuǎn)換、病斑分割和特征提取的過(guò)程,在SVM 算法識(shí)別的效果不佳的基礎(chǔ)上,通過(guò)構(gòu)建ResNet 20 實(shí)現(xiàn)更高效率的自動(dòng)識(shí)別,這充分證明了采用殘差神經(jīng)網(wǎng)絡(luò)識(shí)別煙草病害是可行的。實(shí)際生產(chǎn)中的煙草病害種類(lèi)多且復(fù)雜度高,在不同生長(zhǎng)階段和不同部位都可能染病,故本研究需要擴(kuò)大病害的樣本庫(kù),提高識(shí)別精度,在煙草受害周期等方面做進(jìn)一步深入研究。