董萍,衛(wèi)夢華,時(shí)雷,郭偉
(河南農(nóng)業(yè)大學(xué)信息與管理科學(xué)學(xué)院,鄭州市,450046)
我國是以農(nóng)業(yè)生產(chǎn)為主的國家,玉米是保障人們?nèi)粘I畈豢苫蛉钡囊环N農(nóng)作物。當(dāng)玉米在生長過程中發(fā)生病害時(shí),如果種植人員沒能及時(shí)發(fā)現(xiàn)并采取有效措施,將會(huì)對(duì)玉米的產(chǎn)量造成極大的影響[1]。在實(shí)際生產(chǎn)過程中,種植人員有時(shí)為了防止作物病害的發(fā)生會(huì)提前使用農(nóng)藥,造成農(nóng)藥濫用現(xiàn)象,難以保證食品安全。此外,當(dāng)農(nóng)作物發(fā)生病害時(shí),依靠人工識(shí)別具有強(qiáng)烈的個(gè)人主觀意識(shí),具有較大風(fēng)險(xiǎn)發(fā)生誤判[2]。因此,研究玉米葉片病害的分類識(shí)別具有十分重要的現(xiàn)實(shí)意義。
圖像處理技術(shù)[3]在作物病害監(jiān)測和識(shí)別中發(fā)揮著非常重要的作用,并且已經(jīng)取得了較滿意的識(shí)別結(jié)果,但是過度依賴目標(biāo)的顏色特征,使得在實(shí)際應(yīng)用中對(duì)于復(fù)雜背景中的目標(biāo)識(shí)別正確率較低。隨著深度學(xué)習(xí)[4]的快速發(fā)展,眾多學(xué)者開始嘗試用深度學(xué)習(xí)的方法來解決作物病害識(shí)別的問題。毛罕平等[5]通過對(duì)AlexNet模型的改進(jìn),提出將卷積神經(jīng)網(wǎng)絡(luò)用于不同種類的植物葉片病害識(shí)別,最終識(shí)別準(zhǔn)確率達(dá)到99.56%;馬浚誠等[6]基于LeNet5網(wǎng)絡(luò)模型構(gòu)建了一個(gè)溫室黃瓜病害識(shí)別系統(tǒng),最終準(zhǔn)確率可達(dá)95.7%;Brahimi等使用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)對(duì)西紅柿葉部病害進(jìn)行識(shí)別,最終準(zhǔn)確率可達(dá)99.18%;秦豐等[7]基于深度學(xué)習(xí)和支持向量機(jī)方法對(duì)4種苜蓿葉部病害進(jìn)行識(shí)別,最終測試集準(zhǔn)確率可達(dá)87.48%。以上研究方法均是利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)不同作物病害進(jìn)行識(shí)別,為玉米葉片病害的識(shí)別方法提供了參考依據(jù),但以上方法均需要構(gòu)建大型的數(shù)據(jù)集來進(jìn)行訓(xùn)練,而且需要較長的模型訓(xùn)練時(shí)間。
遷移學(xué)習(xí)[8]可以解決圖片數(shù)據(jù)集數(shù)量太少或者模型訓(xùn)練時(shí)間較長等問題,把已經(jīng)在其他數(shù)據(jù)集上訓(xùn)練好的模型放到新的分類任務(wù)中再次進(jìn)行圖像分類識(shí)別,把之前學(xué)習(xí)已經(jīng)得到的特征當(dāng)作新數(shù)據(jù)的特征再次進(jìn)行分類識(shí)別,非常適合較難獲取大量數(shù)據(jù)集的應(yīng)用領(lǐng)域。
針對(duì)玉米病害葉片,基于遷移學(xué)習(xí)的原理使用InceptionV3模型和Xception模型對(duì)玉米健康葉片、尾孢葉斑病、紋枯病以及銹病[9]進(jìn)行識(shí)別與分類,并探究遷移學(xué)習(xí)凍結(jié)全部網(wǎng)絡(luò)層、凍結(jié)部分網(wǎng)絡(luò)層和不凍結(jié)網(wǎng)絡(luò)層時(shí)的識(shí)別效果,為今后利用遷移學(xué)習(xí)和深度學(xué)習(xí)進(jìn)行玉米葉片病害分類識(shí)別提供依據(jù)與借鑒。
試驗(yàn)中揚(yáng)使用的圖像數(shù)據(jù)均來自網(wǎng)上公開的PlantVillage數(shù)據(jù)集[10],試驗(yàn)選取其中四類玉米葉片病害的圖像作為數(shù)據(jù)集,如圖1揚(yáng)示。

圖1 玉米病害葉片可視化Fig.1 Visualization of maize disease leaves
此外,試驗(yàn)將獲取到的兩千多張玉米病害葉片圖像按照8∶2的比例分為訓(xùn)練集和測試集,再將訓(xùn)練集按8∶2的比例分為訓(xùn)練集和驗(yàn)證集。具體的病害類別信息如表1揚(yáng)示。

表1 玉米主要病害樣本采集表Tab.1 Sample collection table of main maize diseases
圖像預(yù)處理[10]的目的是去掉樣本圖片中的噪聲及冗余信息,提高有價(jià)值信息的識(shí)別率。由于本試驗(yàn)揚(yáng)用數(shù)據(jù)樣本較少,采用遷移學(xué)習(xí)方法重新訓(xùn)練模型網(wǎng)絡(luò)層時(shí)容易出現(xiàn)過擬合現(xiàn)象,揚(yáng)以要先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理操作。
本試驗(yàn)使用keras提供的圖像生成器Image Data Generator類來實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)[11]。主要做法是每次取一個(gè)批次即batch_size大小的樣本數(shù)據(jù)提供給模型,同時(shí)對(duì)每批樣本進(jìn)行歸一化、隨機(jī)旋轉(zhuǎn)40°、隨機(jī)水平和上下位置平移、隨機(jī)錯(cuò)切變換角度、隨機(jī)縮放比例、隨機(jī)將一半圖像水平翻轉(zhuǎn)等操作。這樣每一輪訓(xùn)練時(shí)輸入的樣本批次就不會(huì)完全相同,可以增強(qiáng)模型的泛化能力。
經(jīng)過數(shù)據(jù)增強(qiáng)后葉片圖像會(huì)隨機(jī)發(fā)生一些變化,具體的變化如圖2揚(yáng)示。

圖2 數(shù)據(jù)增強(qiáng)變化圖Fig.2 Data enhancement variation diagram
在圖像分類識(shí)別領(lǐng)域,很多卷積神經(jīng)網(wǎng)絡(luò)框架結(jié)構(gòu)在各自領(lǐng)域都具有良好的分類識(shí)別性能,比如AlexNet,VGGNet,GoogLeNet,ResNet,SENet等。考慮到模型占用內(nèi)存和模型的訓(xùn)練參數(shù)數(shù)量等因素,本試驗(yàn)選擇由GoogLeNet演變而來的InceptionV3]模型和Xception模型來進(jìn)行遷移學(xué)習(xí)。
Szegedy等在2014年提出的GoogLeNet獲得了ImageNet圖像分類挑戰(zhàn)賽的冠軍,其最大的特點(diǎn)是使用了Inception模塊,目的是設(shè)計(jì)一種具有優(yōu)良局部拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò),即利用不同尺寸大小的卷積核提取同一區(qū)域不同的抽象特征,然后對(duì)提取到的特征進(jìn)行融合。
InceptionV3是在初始Inception模塊的基礎(chǔ)上,為了降低模型的計(jì)算參數(shù)量以提升計(jì)算速度,將5×5卷積核分解為兩個(gè)3×3卷積核,將n×n的卷積核分解為1×n和n×1的兩個(gè)卷積核,并在其基礎(chǔ)上使用Batch Normalization輔助分類器以加快分類速度、標(biāo)簽平滑以防止過擬合和RMSProp優(yōu)化器等。InceptionV3模塊如圖3揚(yáng)示,其中模塊a為兩個(gè)連續(xù)3×3卷積核的Inception結(jié) 構(gòu),模塊b為用連續(xù)的1×n和n×1卷 積 核代替n×n卷積核的Inception結(jié)構(gòu),模塊c為用并列的1×3和3×1卷積核代替3×3卷積核的Inception結(jié)構(gòu)。InceptionV3的具體網(wǎng)絡(luò)結(jié)構(gòu)如表2揚(yáng)示。表中Inception模塊a、模塊b、模塊c分別對(duì)應(yīng)圖3中的三個(gè)子圖。

圖3 InceptionV3模塊Fig.3 Structure of InceptionV3 model

表2 InceptionV3網(wǎng)絡(luò)結(jié)構(gòu)Tab.2 InceptionV3 network architecture
Chollet等在2017年搭建的Xception網(wǎng)絡(luò)框架是采用深度可分離卷積來替換原來InceptionV3中的卷積操作。模型具體改進(jìn)過程如圖4揚(yáng)示,其中圖4(a)為圖3中(a)圖的簡化形式,將圖4(a)中的多個(gè)1×1卷積替換成一個(gè)1×1卷積來映射跨通道的相關(guān)性,之后分別映射每個(gè)輸出通道的空間相關(guān)性即得到圖4(b)揚(yáng)示的“極致”Inception模塊。

圖4 Xception模塊Fig.4 Structure of Xception module
Xception網(wǎng)絡(luò)結(jié)構(gòu)具有36個(gè)卷積層作為網(wǎng)絡(luò)的特征提取基礎(chǔ),這36個(gè)卷積層被構(gòu)造成14個(gè)模塊,除了第一個(gè)和最后一個(gè)模塊外,其他揚(yáng)有模塊周圍都有線性殘差連接。因此,也可以說Xception網(wǎng)絡(luò)架構(gòu)是由具有殘差連接的深度可分類卷積層線性堆疊而成的。
試驗(yàn)選取已經(jīng)在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練過的Xception模型和InceptionV3模型,直接加載其預(yù)訓(xùn)練好的權(quán)值,刪除其原有的全連接層,加上新的全連接層,輸出層先用全局平均池化函數(shù)GlobalAveragePooling2D將M×N×C的張量轉(zhuǎn)換成1×C的張量,其中C表示通道的數(shù)量,再使用Softmax分類器,根據(jù)本試驗(yàn)的分類任務(wù)加上一個(gè)4個(gè)節(jié)點(diǎn)的輸出層,最后選擇直接訓(xùn)練或凍結(jié)部分網(wǎng)絡(luò)層或凍結(jié)全部網(wǎng)絡(luò)層來構(gòu)建全新的模型。具體識(shí)別流程如圖5揚(yáng)示。

圖5 基于遷移學(xué)習(xí)的玉米病害葉片識(shí)別流程圖Fig.5 Flow chart of maize disease leaf recognition based on transfer learning
試驗(yàn)運(yùn)行環(huán)境為Windows10(64)位操作系統(tǒng),采用Tensorflow深度學(xué)習(xí)開源框架,選用Python 3.6.12作為編程語言。硬件環(huán)境中CPU采用Intel(R)Core(TM)i5-7200U,主 頻2.50 GHz;GPU采 用Nvidia GeForce 940MX,2 GB顯存。
試驗(yàn)使用Keras的應(yīng)用模塊提供的帶有預(yù)訓(xùn)練權(quán)值的InceptionV3模型和Xception模型分別進(jìn)行不同形式的遷移學(xué)習(xí)。試驗(yàn)參數(shù)設(shè)置如表3揚(yáng)示。

表3 試驗(yàn)參數(shù)設(shè)置Tab.3 Setting of experimental parameters
首先從Keras庫中導(dǎo)入模型,將include_top設(shè)置為False,weights設(shè)置為imagenet,再加上新的全連接層后直接訓(xùn)練模型。此時(shí),InceptionV3模型的訓(xùn)練參數(shù)為21 776 548,Xception模型的訓(xùn)練參數(shù)為20 815 148。
2.1.2 凍結(jié)全部網(wǎng)絡(luò)層
該試驗(yàn)將模型layer層的trainable值設(shè)為False,即凍結(jié)全部的網(wǎng)絡(luò)層。其余步驟和參數(shù)均與不凍結(jié)任何網(wǎng)絡(luò)層相同。此時(shí),網(wǎng)絡(luò)只訓(xùn)練全連接層的參數(shù)。兩個(gè)模型的訓(xùn)練參數(shù)相同均為8 196。
2.1.3 凍結(jié)部分網(wǎng)絡(luò)層
該試驗(yàn)凍結(jié)部分網(wǎng)絡(luò)層,即只訓(xùn)練其中的一部分網(wǎng)絡(luò)層。由于凍結(jié)不同層數(shù)的網(wǎng)絡(luò)層會(huì)導(dǎo)致模型的準(zhǔn)確率不同,為了尋找最適合玉米病害圖像的凍結(jié)層數(shù),試驗(yàn)分別將兩個(gè)網(wǎng)絡(luò)的凍結(jié)層數(shù)由高到低以階梯式下降的方式進(jìn)行凍結(jié)。
由于測試集中的圖像均未參與模型的訓(xùn)練,故試驗(yàn)選取模型在測試集上的平均識(shí)別準(zhǔn)確率(Accuracy)作為評(píng)估標(biāo)準(zhǔn)。以下試驗(yàn)均是在同一個(gè)測試集上的驗(yàn)證結(jié)果。
2.2.1 凍結(jié)不同網(wǎng)絡(luò)層試驗(yàn)結(jié)果分析
當(dāng)凍結(jié)部分網(wǎng)絡(luò)層時(shí),兩個(gè)模型使用不同的訓(xùn)練參數(shù)占比得到的測試集準(zhǔn)確率和訓(xùn)練時(shí)間分別如圖6和圖7揚(yáng)示。

圖6 InceptionV3模型不同訓(xùn)練參數(shù)占比試驗(yàn)結(jié)果Fig.6 Experiment results of different training parameters proportionin InceptionV3

圖7 Xception模型不同訓(xùn)練參數(shù)占比試驗(yàn)結(jié)果Fig.7 Experiment results of different training parameters proportionin Xception
可以發(fā)現(xiàn),模型訓(xùn)練參數(shù)占比不同在測試集上的準(zhǔn)確率也有揚(yáng)波動(dòng)。針對(duì)玉米病害葉片的分類識(shí)別,InceptionV3模型在可訓(xùn)練參數(shù)占比為70%左右時(shí)平均識(shí)別準(zhǔn)確率最高,達(dá)到92.04%;Xception模型在可訓(xùn)練參數(shù)占比為80%時(shí)效果最好,準(zhǔn)確率達(dá)到94.62%。兩個(gè)模型都是訓(xùn)練參數(shù)占比越大訓(xùn)練揚(yáng)用時(shí)間越長,且Xception模型的訓(xùn)練時(shí)間要大于InceptionV3模型。
2.2.2 不同遷移學(xué)習(xí)方式試驗(yàn)結(jié)果分析
使用InceptionV3模型和Xception模型分別對(duì)同一個(gè)玉米病害葉片數(shù)據(jù)集進(jìn)行分類識(shí)別任務(wù),InceptionV3模型訓(xùn)練后得到的準(zhǔn)確率圖像如圖8揚(yáng)示,Xception模型訓(xùn)練后得到的準(zhǔn)確率圖像如圖9揚(yáng)示,其中凍結(jié)部分網(wǎng)絡(luò)層時(shí),兩個(gè)模型均選取識(shí)別效果最好的訓(xùn)練參數(shù)占比。

圖8 InceptionV3模型不同學(xué)習(xí)方式的準(zhǔn)確率試驗(yàn)結(jié)果Fig.8 Accuracy of InceptionV3 model with different transfer learning ways

圖9 Xception模型不同學(xué)習(xí)方式的準(zhǔn)確率試驗(yàn)結(jié)果Fig.9 Accuracy of Xception model with different transfer learning ways
可以看出,這兩個(gè)模型在訓(xùn)練集和驗(yàn)證集上的準(zhǔn)確率都是隨著訓(xùn)練輪次的增加而增加,最后逐漸趨近于100%。
當(dāng)不凍結(jié)網(wǎng)絡(luò)層時(shí),準(zhǔn)確率最高;當(dāng)凍結(jié)全部網(wǎng)絡(luò)層時(shí),準(zhǔn)確率較低但模型擬合程度最好;當(dāng)凍結(jié)部分網(wǎng)絡(luò)層時(shí),模型擬合效果較差但準(zhǔn)確率相較于凍結(jié)全部網(wǎng)絡(luò)層要高。
從整體上來看,Xception模型針對(duì)玉米葉片病害識(shí)別的效果相較于InceptionV3模型更好。
兩種模型的三種遷移學(xué)習(xí)方式對(duì)比如表4和表5揚(yáng)示。可以看出,遷移學(xué)習(xí)不凍結(jié)網(wǎng)絡(luò)層的效果最好,因?yàn)樗?xùn)練的參數(shù)量最大,網(wǎng)絡(luò)權(quán)重會(huì)隨著新數(shù)據(jù)集的訓(xùn)練而更新,訓(xùn)練揚(yáng)用時(shí)間也最長;凍結(jié)部分網(wǎng)絡(luò)層的效果次之,但訓(xùn)練的參數(shù)量卻少了很多,訓(xùn)練一輪揚(yáng)使用的時(shí)間也相對(duì)較短;凍結(jié)全部網(wǎng)絡(luò)層的分類效果不太好,出現(xiàn)這種結(jié)果可能是因?yàn)檫@兩個(gè)模型都是在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練得到的,原本的分類任務(wù)是針對(duì)1 000種物體進(jìn)行識(shí)別分類,與本試驗(yàn)揚(yáng)使用的玉米病害葉片數(shù)據(jù)集相差較大,故直接加載模型的權(quán)重即不更新模型網(wǎng)絡(luò)層的參數(shù),得到的效果不太好。

表4 InceptionV3遷移學(xué)習(xí)方式對(duì)比Tab.4 Comparison of different transfer learning ways in InceptionV3

表5 Xception遷移學(xué)習(xí)方式對(duì)比Tab.5 Comparison of different transfer learning ways in Xception
2.2.3 不同玉米病害識(shí)別效果分析
由于不同玉米病害類別的圖像紋理特征不同,故每種病害的識(shí)別準(zhǔn)確率也不同。圖10為Xception模型對(duì)測試集玉米圖像預(yù)測的混淆矩陣,由圖中可以得出玉米紋枯病、尾孢葉斑病、健康葉片以及銹病的識(shí)別準(zhǔn)確率分別為93.33%、96.46%、100%和100%。

圖10 Xception對(duì)測試集玉米圖像預(yù)測的混淆矩陣Fig.10 Confusion matrix of test set in images of maize using Xception
由于健康玉米葉片相較于其他病害葉片特征較為明顯,試驗(yàn)揚(yáng)用玉米銹病的圖像經(jīng)過了背景處理去除了背景干擾,故玉米銹病和健康玉米的識(shí)別準(zhǔn)確率達(dá)到了100%,而玉米紋枯病與尾孢葉斑病的圖像特征相似性較大,故個(gè)別測試圖像在識(shí)別時(shí)出現(xiàn)誤判現(xiàn)象。
本文探究了遷移學(xué)習(xí)凍結(jié)全部網(wǎng)絡(luò)層、凍結(jié)部分網(wǎng)絡(luò)層和不凍結(jié)網(wǎng)絡(luò)層時(shí)的識(shí)別效果,并利用遷移學(xué)習(xí)分別使用InceptionV3模型和Xception模型對(duì)玉米健康葉片、尾孢葉斑病、紋枯病以及銹病進(jìn)行識(shí)別與分類。試驗(yàn)結(jié)果如下。
1)使用遷移學(xué)習(xí)不凍結(jié)網(wǎng)絡(luò)層時(shí)分類效果最好,訓(xùn)練時(shí)間較長;凍結(jié)部分網(wǎng)絡(luò)層時(shí)次之,訓(xùn)練時(shí)間較短;凍結(jié)全部網(wǎng)絡(luò)層時(shí)準(zhǔn)確率最低,訓(xùn)練時(shí)間最短。
2)當(dāng)凍結(jié)部分網(wǎng)絡(luò)層時(shí),InceptionV3模型在可訓(xùn)練參數(shù)量達(dá)到70%左右時(shí)識(shí)別效果較好;Xception模型在可訓(xùn)練參數(shù)量達(dá)到80%時(shí)效果最好。
3)Xception模型針對(duì)玉米葉片病害識(shí)別的準(zhǔn)確率要高于InceptionV3模型。
4)使用遷移學(xué)習(xí)可以較好的玉米病害圖片進(jìn)行分類,對(duì)玉米健康和銹病的識(shí)別率可達(dá)100%,對(duì)玉米紋枯病和尾孢葉斑病的識(shí)別率可達(dá)93.33%和96.46%,平均識(shí)別準(zhǔn)確率可達(dá)97.42%。
5)在數(shù)據(jù)集樣本較少,試驗(yàn)設(shè)備有限的情況下,使用遷移學(xué)習(xí)能達(dá)到很好的病害葉片識(shí)別效果。
中國農(nóng)機(jī)化學(xué)報(bào)2022年3期