何 前,郭峰林,方皓正,李雅琴
(武漢輕工大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湖北武漢 430000)
隨著我國(guó)農(nóng)業(yè)生產(chǎn)水平的不斷進(jìn)步,人們的需求不斷增多,玉米已經(jīng)成為我國(guó)第二大糧食作物,為我國(guó)的糧食增產(chǎn)作出了巨大貢獻(xiàn)[1]。然而雖然玉米產(chǎn)量逐年增大,但是玉米病害也同樣在逐年加重,已經(jīng)嚴(yán)重影響到玉米的產(chǎn)量和質(zhì)量[2-3]。傳統(tǒng)的植物病害識(shí)別方法是依靠種植人員的經(jīng)驗(yàn)和查閱相關(guān)病害圖譜,甚至依靠一些專(zhuān)家現(xiàn)場(chǎng)勘查,不僅效率低,而且費(fèi)時(shí)費(fèi)力,尤其是在大田環(huán)境下的病害檢測(cè),需要投入更大、更多的精力和時(shí)間。近年來(lái),計(jì)算機(jī)逐漸深入人們的日常生活中,計(jì)算機(jī)技術(shù)也在不停地飛速發(fā)展,在農(nóng)作物的病害識(shí)別研究中,機(jī)器學(xué)習(xí)已經(jīng)成為一個(gè)重要的學(xué)習(xí)領(lǐng)域。隨著圖像識(shí)別診斷技術(shù)的逐漸成熟,機(jī)器學(xué)習(xí)技術(shù)和圖像識(shí)別技術(shù)相結(jié)合的研究也越來(lái)越廣泛[4]。因此,越來(lái)越多的人開(kāi)始研究如何利用計(jì)算機(jī)技術(shù)來(lái)識(shí)別、分類(lèi)農(nóng)作物的病害,對(duì)于常見(jiàn)的玉米葉部病害,劉永波等通過(guò)與物聯(lián)網(wǎng)設(shè)備相結(jié)合,提出了基于U-Net算法模型的玉米病程分級(jí)方法,利用計(jì)算機(jī)技術(shù)和相關(guān)設(shè)備,對(duì)玉米的4種病害實(shí)現(xiàn)了快速、準(zhǔn)確、客觀的分級(jí)[5]。顧博等選取玉米小斑病、大斑病和灰斑病3種病害圖像作為數(shù)據(jù)樣本,通過(guò)GrabCut算法、One-Cut算法和SLIC算法進(jìn)行圖像分割、識(shí)別試驗(yàn),準(zhǔn)確率達(dá)到了80%以上[6]。楊明欣等提出了遷移的MobileNetV2模型,將神經(jīng)網(wǎng)絡(luò)的損失函數(shù)改為Focal Loss函數(shù),然后通過(guò)試驗(yàn)對(duì)玉米的葉部病害進(jìn)行識(shí)別,最終準(zhǔn)確率在90%以上[7]。樊湘鵬等在對(duì)田間真實(shí)環(huán)境復(fù)雜背景下的玉米葉部病害進(jìn)行診斷時(shí),利用區(qū)域卷積神經(jīng)網(wǎng)絡(luò)的Faster R-CNN算法,獲得了較高的準(zhǔn)確率[8]。王美娟等在卷積神經(jīng)網(wǎng)絡(luò)VGG-16模型的基礎(chǔ)上進(jìn)行改進(jìn),提出了多尺度卷積神經(jīng)網(wǎng)絡(luò)模型用來(lái)識(shí)別大田試驗(yàn)的玉米病害,將全局池化層替換全連接層,減少了模型參數(shù)總量,提高了識(shí)別速度和準(zhǔn)確率[9]。Chen等對(duì)Inception模塊進(jìn)行預(yù)先訓(xùn)練,然后遷移到自己的玉米病害數(shù)據(jù)集、水稻病害圖像數(shù)據(jù)集進(jìn)行訓(xùn)練任務(wù),算法在公共數(shù)據(jù)集上的最終驗(yàn)證精確度在91.83%以上,高于其他對(duì)比模型[10]。Darwish等首先對(duì)健康、不健康的葉片進(jìn)行圖像分類(lèi),然后建立了卷積神經(jīng)網(wǎng)絡(luò)VGG-16、VGG-19的2種訓(xùn)練模型,利用正交學(xué)習(xí)粒子群優(yōu)化(OLPSO)算法,通過(guò)不斷試驗(yàn),最終找出了最優(yōu)的超參數(shù)值,實(shí)現(xiàn)了對(duì)健康、不健康葉片進(jìn)行分類(lèi)的任務(wù)[11]。Wang等將圖像分類(lèi)領(lǐng)域加入到注意力的殘差學(xué)習(xí)中,加快了模型的訓(xùn)練速度,簡(jiǎn)化了模型結(jié)構(gòu)[12]。
因此,為了更好地識(shí)別玉米病害類(lèi)別、及時(shí)防治處理、提高我國(guó)玉米的產(chǎn)量和質(zhì)量,本研究根據(jù)玉米本身的形狀、顏色、質(zhì)地等特征,結(jié)合深度學(xué)習(xí)中的經(jīng)典CNN模型-LeNet-5,對(duì)模型進(jìn)行改進(jìn)和完善,以期實(shí)現(xiàn)對(duì)玉米病害快速準(zhǔn)確的識(shí)別,為我國(guó)農(nóng)作物的發(fā)展提供技術(shù)支持。
LeCun首次提出了LeNet-5模型的卷積神經(jīng)網(wǎng)絡(luò)。早期的模型被廣泛運(yùn)用于手寫(xiě)字識(shí)別等領(lǐng)域,其模型一共7層,主要包括2層卷積層、2層池化層、2層全連接層、1層輸出層[13],每層都包含可訓(xùn)練參數(shù),輸入數(shù)據(jù)為32×32像素的灰度圖。第1層卷積包含6個(gè)卷積核,采用5×5窗口對(duì)輸入圖像進(jìn)行卷積操作,得到6個(gè)特征圖的大小均為28×28;降采樣層對(duì)28×28的數(shù)據(jù)進(jìn)行采樣操作,得到14×14個(gè)特征圖,第2層卷積的卷積核大小同樣設(shè)置為5×5像素,對(duì)上一層卷積后得到16個(gè)10×10像素的特征圖,采用最大池化,輸出16個(gè)5×5像素的圖像特征圖,最后連接2層全連接層,神經(jīng)元數(shù)量分別為120、84個(gè),輸出層使用softmax函數(shù),得到 0~1之間的概率,最大值為識(shí)別結(jié)果[14-15]。傳統(tǒng)LeNet-5模型的主要網(wǎng)絡(luò)結(jié)構(gòu)見(jiàn)圖1,可以看出,傳統(tǒng)的LeNet-5模型結(jié)構(gòu)比較簡(jiǎn)單,輸入的圖片像素也比較小,而農(nóng)作物的葉部病害多比較復(fù)雜,病害的紋理特征和面積等信息繁瑣,傳統(tǒng)的LeNet-5模型多用于手寫(xiě)字識(shí)別等領(lǐng)域,因此,對(duì)于玉米的葉部病害識(shí)別而言,使用傳統(tǒng)的LeNet-5模型不能夠準(zhǔn)確識(shí)別出玉米病害,不足以為我國(guó)農(nóng)作物的病害識(shí)別提供有效的技術(shù)支持,因此,本研究以傳統(tǒng)LeNet-5模型為基礎(chǔ)并加以改進(jìn),用來(lái)提高對(duì)玉米病害的識(shí)別準(zhǔn)確率。
在傳統(tǒng)的LeNet-5模型上進(jìn)行了如下改進(jìn):(1)病害圖像預(yù)處理。將輸入的3種玉米葉部病害圖像和正常玉米圖像進(jìn)行隨機(jī)旋轉(zhuǎn)、圖像增強(qiáng)和尺寸修改等預(yù)處理,處理后的玉米病害圖像見(jiàn)圖2。由圖2可以看出,對(duì)圖像進(jìn)行預(yù)處理后,通過(guò)圖像增強(qiáng)使圖像局部病害位置的特征增強(qiáng),有助于提高模型對(duì)玉米葉部的識(shí)別效果。然后對(duì)圖像進(jìn)行隨機(jī)旋轉(zhuǎn),擴(kuò)充數(shù)據(jù)集,將擴(kuò)充后的數(shù)據(jù)集統(tǒng)一歸一化為256×256像素。增大圖像尺寸能夠增大對(duì)病害特征的識(shí)別準(zhǔn)確度。
(2)修改激活函數(shù)。本研究選用ReLU函數(shù)替換傳統(tǒng)的Sigmoid函數(shù),傳統(tǒng)的Sigmoid函數(shù)計(jì)算量大,并且在反向傳播求解誤差梯度時(shí),求導(dǎo)會(huì)涉及除法,使得計(jì)算量相對(duì)ReLU函數(shù)而言較大,對(duì)于深層的網(wǎng)絡(luò)結(jié)構(gòu),Sigmoid函數(shù)反向傳播時(shí),很容易出現(xiàn)梯度消失的情況。Sigmoid函數(shù)見(jiàn)式(1),圖像見(jiàn)圖3。
(1)
由圖3可以看出,傳統(tǒng)的Sigmoid函數(shù)在接近保護(hù)區(qū)時(shí),變換非常緩慢,并且導(dǎo)數(shù)趨近0,這樣就會(huì)使信息丟失,從而在深層的網(wǎng)絡(luò)結(jié)構(gòu)中無(wú)法完成訓(xùn)練。而ReLU函數(shù)的主要特點(diǎn)是計(jì)算量小,并且沒(méi)有飽和區(qū),沒(méi)有梯度消失,其表達(dá)式見(jiàn)式(2),其函數(shù)圖像見(jiàn)圖4。
(2)
由圖4可以看出,使用ReLU函數(shù)估計(jì)非線性函數(shù)時(shí)收斂的速度更快,ReLU函數(shù)會(huì)讓一部分神經(jīng)元輸出的結(jié)果為0,這樣就使網(wǎng)絡(luò)變得很稀疏,從而減少參數(shù)之間的相互依存關(guān)系,因此能夠緩解過(guò)擬合問(wèn)題的發(fā)生,有利于緩和模型的梯度消失現(xiàn)象。
(3)增加網(wǎng)絡(luò)層數(shù),同時(shí)在網(wǎng)絡(luò)層數(shù)中添加Dropout層,設(shè)置丟棄概率,減少參數(shù)數(shù)量,從而有效防止模型過(guò)擬合。卷積層數(shù)對(duì)模型性能的影響見(jiàn)表1。
表1 卷積層數(shù)對(duì)模型性能的影響
由表1可以看出,當(dāng)卷積層的層數(shù)為5層時(shí),模型對(duì)玉米病害的識(shí)別準(zhǔn)確率達(dá)到最高。因此,本研究結(jié)合已搜集到的試驗(yàn)數(shù)據(jù)等實(shí)際情況,選取5層卷積層組建LeNet-5模型,以提高模型對(duì)玉米病害的識(shí)別準(zhǔn)確率。卷積層的計(jì)算公式見(jiàn)式(3):
(3)
表2 改進(jìn)與傳統(tǒng)LeNet模型參數(shù)
由表1、表2可以看出,本試驗(yàn)?zāi)P褪窃趥鹘y(tǒng)的LeNet-5模型基礎(chǔ)上增加網(wǎng)絡(luò)層的層數(shù),同時(shí)添加Dropout策略層。在傳統(tǒng)模型的基礎(chǔ)上將網(wǎng)絡(luò)層數(shù)增加為14層,包含輸入層、5個(gè)卷積層、5個(gè)池化層、2個(gè)全連接層和輸出層。輸入層輸入的樣本圖片大小為256×256×3像素,每個(gè)卷積都包含1個(gè)ReLU單元,并且卷積核大小都為5×5像素,步長(zhǎng)為1。最大池化層使用2×2像素的核,步長(zhǎng)為1,將上一層的輸出作為下一層的輸入。本試驗(yàn)選取的是3種玉米葉部病害圖像、正常玉米葉部圖像,一共有4種類(lèi)別,通過(guò)Softmax層輸出,數(shù)量為4個(gè),對(duì)應(yīng)選擇的4種不同的玉米病害。改進(jìn)后的模型流程見(jiàn)圖5。
在本試驗(yàn)?zāi)P椭?,用到的池化方式為最大池化?max pooling),相對(duì)于其他池化方式而言,最大池化法能夠很好地保留紋理特征,在正向傳播中,取領(lǐng)域內(nèi)最大特征點(diǎn),并且能夠記住最大值的索引位置,從而便于進(jìn)行反向傳播[16-17]。選擇的激活函數(shù)為修正線性單元(ReLU),選擇的損失函數(shù)為categorical_crossentropy分類(lèi)交叉熵函數(shù),詳見(jiàn)式(4)、式(5)。全連接層的最后1層選用Softmax函數(shù)用于分類(lèi),輸出類(lèi)別設(shè)置為4,分別對(duì)應(yīng)玉米病害數(shù)據(jù)集的4種類(lèi)別。
(4)
式中:n為樣本數(shù);m為分類(lèi)數(shù)。由于公式(4)是一個(gè)多輸出的loss函數(shù),因此其loss計(jì)算也是多個(gè)的,詳見(jiàn)式(5):
(5)
在改進(jìn)后的模型中添加Dropout算法,下一個(gè)網(wǎng)絡(luò)層的輸出公式見(jiàn)式(6)[18]:
(6)
式中:Bernoullin函數(shù)是為了隨機(jī)生成1個(gè)0、1的向量;p表示當(dāng)Dropout向前傳播時(shí),某個(gè)神經(jīng)元的激活值會(huì)以提前設(shè)置好的概率(p值)停止通過(guò),因此模型不會(huì)對(duì)某些局部特征產(chǎn)生過(guò)多依賴(lài)。
本試驗(yàn)是在武漢輕工大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院實(shí)驗(yàn)室2021年11月完成的,使用PC機(jī)安裝的Windows 10,64位系統(tǒng),搭載 Intel?CoreTMi5-5200U CPU@2.20 GHz 4核處理器,內(nèi)存為 12 GB。采用Python 3.7和Keras框架進(jìn)行訓(xùn)練。參數(shù)設(shè)置:迭代次數(shù)為15次,選取11個(gè)樣本作為1個(gè)batch進(jìn)行訓(xùn)練。
本試驗(yàn)所用數(shù)據(jù)集來(lái)源是AI Challenger 2018數(shù)據(jù)集,由4種不同玉米圖像組成,分別是玉米大斑病、銹病、葉斑病3種葉部病害圖像以及玉米葉部健康圖像。通過(guò)圖像隨機(jī)旋轉(zhuǎn)增強(qiáng)等操作對(duì)4類(lèi)玉米試驗(yàn)樣本進(jìn)行擴(kuò)充數(shù)據(jù)集,擴(kuò)充后的數(shù)據(jù)集共有 2 180 張,其中大斑病657張,銹病555張,葉斑病572張,健康玉米396張。本試驗(yàn)將玉米圖像按照 5 ∶1 的比例分為2組,其中訓(xùn)練數(shù)據(jù)1 815張,測(cè)試數(shù)據(jù)365張。將樣本集進(jìn)行編號(hào)分類(lèi)并制作標(biāo)簽,分別用0、1、2、3表示對(duì)應(yīng)的類(lèi)別標(biāo)簽,玉米大斑病為標(biāo)簽0,銹病為標(biāo)簽1,葉斑病為標(biāo)簽2,健康玉米為標(biāo)簽3。3種玉米葉部病害圖像及健康玉米圖像見(jiàn)圖6。
ReLU函數(shù)作為激活函數(shù)的收斂效果比Sigmoid函數(shù)好,并且計(jì)算量小,沒(méi)有梯度消失。由表3可以看出,選擇ReLU函數(shù)作為激活函數(shù),識(shí)別準(zhǔn)確率比傳統(tǒng)的Sigmoid函數(shù)高,因此,模型選擇ReLU函數(shù)來(lái)優(yōu)化,可以提高模型的識(shí)別率。
在訓(xùn)練模型的過(guò)程中,往往會(huì)出現(xiàn)過(guò)擬合的現(xiàn)象。過(guò)擬合現(xiàn)象指的是模型在訓(xùn)練集上表現(xiàn)得非常好,具有很高的識(shí)別準(zhǔn)確率,但是在測(cè)試集上卻表現(xiàn)一般,這就意味著模型的泛化能力不是很好,會(huì)影響對(duì)農(nóng)作物病害的識(shí)別準(zhǔn)確率。因此,本研究除了利用擴(kuò)充數(shù)據(jù)集,將激活函數(shù)換為ReLU函數(shù)外,增加了Dropout策略層,以進(jìn)一步減少神經(jīng)網(wǎng)絡(luò)的過(guò)擬合現(xiàn)象。
表3 ReLU函數(shù)和Sigmoid函數(shù)對(duì)識(shí)別準(zhǔn)確率的影響
表4列出了Dropout添加在卷積層上設(shè)置不同的丟棄概率對(duì)模型性能的影響,可以看出,卷積層上的丟棄概率設(shè)為0.1,模型對(duì)玉米病害識(shí)別準(zhǔn)確率最高,基于此探究全連接層上丟棄概率設(shè)置的值對(duì)模型性能的影響。
表4 卷積層上不同丟棄概率對(duì)模型性能的影響
由表5可以看出,當(dāng)全連接層的丟棄概率設(shè)為0.3時(shí),對(duì)玉米葉部病害的識(shí)別率最高。因此,本模型的丟棄概率在卷積層設(shè)置為0.1,在全連接層設(shè)置為0.3,以達(dá)到優(yōu)化模型的目的,使得本模型對(duì)玉米病害的識(shí)別準(zhǔn)確率最高。
表5 全連接層上不同丟棄概率對(duì)模型性能的影響
由表6可以看出,在加入Dropout層的情況下,對(duì)玉米病害識(shí)別準(zhǔn)確率比不加入Dropout層的高,因此,加入Dropout層有利于優(yōu)化模型,從而提高玉米病害的識(shí)別率。
表6 Dropout層對(duì)模型性能的影響
圖7是在該模型下識(shí)別的玉米葉部病害圖像,可以看出圖像效果不錯(cuò)。
由圖8可以看出,隨著迭代次數(shù)的增加,該模型在測(cè)試集的識(shí)別準(zhǔn)確率達(dá)到了97.3%,損失率在14.1%左右,比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的Lenet-5模型識(shí)別率高很多,基本上可以滿足和幫助種植者對(duì)玉米農(nóng)作物的葉部病害進(jìn)行識(shí)別和及時(shí)進(jìn)行對(duì)癥處理,以此提高我國(guó)玉米的產(chǎn)量和質(zhì)量,同時(shí)對(duì)于我國(guó)其他農(nóng)作物病害識(shí)別問(wèn)題也有借鑒作用。
目前,玉米已經(jīng)逐漸成為了我國(guó)最大的糧食產(chǎn)物之一,深受人們的喜愛(ài),因此玉米產(chǎn)量、質(zhì)量一直受到人們的關(guān)注。及時(shí)發(fā)現(xiàn)玉米葉部病害并進(jìn)行及時(shí)處理至關(guān)重要,也是現(xiàn)如今廣大研究者關(guān)注的重要方向。本研究以CNN的LeNet-5模型為基礎(chǔ),在傳統(tǒng)模型上加以改進(jìn),構(gòu)建了1個(gè)14層的玉米病害識(shí)別模型,完成了對(duì)玉米葉部大斑病、銹病、葉斑病和正常玉米葉部圖像的識(shí)別分類(lèi),可以得到以下結(jié)論:
(1)傳統(tǒng)識(shí)別玉米病害的方法具有一定的局限性,利用機(jī)器學(xué)習(xí)、圖像識(shí)別等研究出新的、快速識(shí)別玉米病害的方法至關(guān)重要。卷積神經(jīng)網(wǎng)絡(luò)可以主動(dòng)提取玉米葉部病害的特征,十分方便且?guī)椭藗兛焖僮R(shí)別病害問(wèn)題,從而及時(shí)治理,可以有效提高玉米的質(zhì)量、產(chǎn)量。在本研究中,玉米識(shí)別率達(dá)到了97.3%,基本可以滿足識(shí)別需求,具有很好的應(yīng)用價(jià)值。
(2)在模型優(yōu)化方面,為了提高模型對(duì)玉米病害的識(shí)別率,首先對(duì)玉米病害圖像進(jìn)行隨機(jī)旋轉(zhuǎn)、圖像增強(qiáng)及尺寸修改等預(yù)處理操作,然后激活函數(shù)改用ReLU函數(shù),并且引入Dropout策略層。
(3)本研究模型可以同時(shí)識(shí)別3種玉米病害、1種正常玉米,具有很高的識(shí)別性能和應(yīng)用價(jià)值。由于本研究中搜集的玉米病害數(shù)據(jù)集有限,因而只選取4種類(lèi)別進(jìn)行試驗(yàn),所以該模型還是存在一定局限性。為了更好地幫助種植者及時(shí)地識(shí)別農(nóng)作物的病害問(wèn)題,下一步可以根據(jù)實(shí)際情況選取更多的農(nóng)作物病害類(lèi)別進(jìn)行識(shí)別預(yù)測(cè),達(dá)到更高的識(shí)別率和應(yīng)用價(jià)值,為種植者提供有效的技術(shù)支持,減少病害帶來(lái)的損失。