燕斌 周鵬 嚴(yán)利
摘要? ? 隨著機(jī)器學(xué)習(xí)加速應(yīng)用于各行各業(yè),卷積神經(jīng)元網(wǎng)絡(luò)在農(nóng)作物病害圖片識(shí)別領(lǐng)域展現(xiàn)出良好的性能。本文針對(duì)傳統(tǒng)卷積網(wǎng)絡(luò)所需樣本量大、訓(xùn)練時(shí)間長(zhǎng)、二次學(xué)習(xí)困難等問題,實(shí)現(xiàn)了一種基于特征的有監(jiān)督遷移學(xué)習(xí),在Inception-V3網(wǎng)絡(luò)的基礎(chǔ)上,使用imageNet固化特征提取層,為目標(biāo)領(lǐng)域設(shè)置特征分類器的方法,在每種病害僅使用20張圖片的小樣本基礎(chǔ)上,實(shí)現(xiàn)了對(duì)8種不同病害的正確識(shí)別,總體識(shí)別率達(dá)到90.6%,并給出了進(jìn)一步提升模型性能的方法,以期為小樣本農(nóng)作物病害圖片識(shí)別提供有益參考。
關(guān)鍵詞? ? 卷積神經(jīng)元網(wǎng)絡(luò);遷移學(xué)習(xí);農(nóng)作物;病害識(shí)別
中圖分類號(hào)? ? TP391.4? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼? ? A? ? ? ? 文章編號(hào)? ?1007-5739(2019)06-0087-03
農(nóng)作物病蟲害是指植物受到其他生物的侵染或由于不適宜的環(huán)境條件而引起的正常生理機(jī)能的破壞,是制約高產(chǎn)、優(yōu)質(zhì)、高效農(nóng)業(yè)持續(xù)發(fā)展的主要因素之一。植物病蟲害是中國(guó)三大自然災(zāi)害之一,其識(shí)別、監(jiān)測(cè)、預(yù)警是防控工作的決策信息源頭[1-4]。隨著近幾年深度學(xué)習(xí)網(wǎng)絡(luò)的方法進(jìn)步,國(guó)內(nèi)外的研究者已經(jīng)成功將以卷積神經(jīng)元網(wǎng)絡(luò)為特征提取基本手段的深度學(xué)習(xí)網(wǎng)絡(luò)應(yīng)用到各行各業(yè),并取得了較好的實(shí)用效果。如張? 帥等[5]提出的基于深度多層卷積神經(jīng)元網(wǎng)絡(luò)的植物葉片識(shí)別模型,能夠?qū)崿F(xiàn)對(duì)單一葉片90%以上的正確識(shí)別,并能夠?qū)?fù)雜背景葉片進(jìn)行有效識(shí)別;余秀麗等[6]利用支持向量機(jī)有效識(shí)別了3種小麥葉部常見病害;Sla-dojevic 等[7]、Brahimi等[8]與Amara等[9]將卷積神經(jīng)網(wǎng)絡(luò)用于植物葉片病害識(shí)別,分別在模型CaffeNet和AlexNet上使用微調(diào)方法進(jìn)行改進(jìn),取得了較好的識(shí)別效果。
眾多的國(guó)內(nèi)外研究已經(jīng)證明了深度學(xué)習(xí)網(wǎng)絡(luò)對(duì)于農(nóng)作物病害識(shí)別的有效性,但是深度學(xué)習(xí)模型參數(shù)數(shù)量十分龐大,往往達(dá)到107級(jí)[10],要取得較好的訓(xùn)練效果則必須使用龐大的訓(xùn)練樣品集,才能避免訓(xùn)練過程梯度反向傳播消失及過擬合等問題。如著名的PlantVillage工程開放數(shù)據(jù)庫(kù),僅針對(duì)14種植物26類病害葉面的特征圖像就超過20 000張。高昂的樣本獲取成本制約了深度學(xué)習(xí)網(wǎng)絡(luò)在作物病害智能識(shí)別中的應(yīng)用,特別是一些非常見病例,樣本的獲取更為困難。同時(shí),深度學(xué)習(xí)模型的擴(kuò)容學(xué)習(xí)過程開銷巨大,如在已訓(xùn)練模型中加入新的識(shí)別種類,則需要對(duì)整個(gè)網(wǎng)絡(luò)參數(shù)重新訓(xùn)練,在使用專業(yè)GPU進(jìn)行計(jì)算的條件下,仍需100 h以上,使模型的易用性和動(dòng)態(tài)性大打折扣。
針對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)在實(shí)際應(yīng)用中出現(xiàn)的問題,本文實(shí)現(xiàn)了一種基于Inception-V3模型的遷移學(xué)習(xí)方法,截取 In-ception-V3模型的卷積、池化特征提取層,添加模型尾部分類器,針對(duì)8種不同病害葉面圖片,在每種病害樣本僅20張圖片的條件下,進(jìn)行訓(xùn)練和測(cè)試,并對(duì)試驗(yàn)結(jié)果與傳統(tǒng)方法進(jìn)行分析比較,以期為作物病害小樣本識(shí)別研究提供有益參考。
1? ? 遷移學(xué)習(xí)與少樣本學(xué)習(xí)
遷移學(xué)習(xí)是指將一個(gè)模型在源領(lǐng)域進(jìn)行訓(xùn)練,將訓(xùn)練結(jié)果應(yīng)用到目標(biāo)領(lǐng)域的方法。通常情況下,源領(lǐng)域擁有較大的數(shù)據(jù)量,可以通過大量的帶標(biāo)簽數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練。在目標(biāo)領(lǐng)域和源領(lǐng)域相關(guān)或相似的情況下,可以通過模型在源領(lǐng)域?qū)W到的經(jīng)驗(yàn)知識(shí),利用少量的目標(biāo)領(lǐng)域數(shù)據(jù),即可完成相應(yīng)任務(wù)。其數(shù)學(xué)表達(dá)式如下:給定源領(lǐng)域DS={XS,fS(X)}與學(xué)習(xí)任務(wù)TS,目標(biāo)領(lǐng)域DT={XT,fT(X)}與學(xué)習(xí)任務(wù)TT,遷移學(xué)習(xí)是利用模型在DS和TS上獲取的知識(shí)來(lái)改善其在DT上的預(yù)測(cè)函數(shù)fT(·)[11]。
本文使用的方法屬于有監(jiān)督基于特征的遷移學(xué)習(xí),類似于多任務(wù)學(xué)習(xí),其基本思想為訓(xùn)練模型在相關(guān)任務(wù)上學(xué)習(xí)一組共享低維度特征,且學(xué)習(xí)到的特征可以改善所有任務(wù)上的分類或回歸任務(wù)的精度,共同特征的學(xué)習(xí)可以通過下列優(yōu)化問題的求解獲得[11]:
2? ? 數(shù)據(jù)與遷移模型
2.1? ? 數(shù)據(jù)準(zhǔn)備
本文以主要作物常見病害為研究樣本,原始圖樣見圖1。綜合考慮天氣、光照等環(huán)境因素,每種病癥取20張圖片作為訓(xùn)練集,10張作為驗(yàn)證集,通過簡(jiǎn)單的圖片預(yù)處理將每張圖片裁剪為模型輸入所需規(guī)定尺寸299×299像素,對(duì)訓(xùn)練集圖片進(jìn)行順時(shí)針旋轉(zhuǎn)及對(duì)稱翻轉(zhuǎn)等手段進(jìn)行樣本增強(qiáng),樣本標(biāo)記采用One-Hot獨(dú)熱編碼。
2.2? ? 基于Inception-V3 的遷移模型
Inception-V3模型共有13層,包括6個(gè)卷積層、2個(gè)池化層、3個(gè)Inception層、1個(gè)全連接層和1個(gè)softmax輸出層(圖2)。其中,C1、C5層卷積核大小為3×3,卷積滑動(dòng)值為2,C2、C3、C4、C6層卷積核大小為3×3,卷積滑動(dòng)值為1;P1層池化窗口大小3×3,滑動(dòng)值2;P2層在接收到Inception3層的8×8×1280的特征圖像后采用8×8的池化窗口,即將每個(gè)特征圖像取最大值點(diǎn),進(jìn)一步壓縮網(wǎng)絡(luò)參數(shù)值。Inception層的思想為將不同卷積窗口大小的卷積核堆疊在一起,一方面增加了網(wǎng)絡(luò)的寬度,另一方面增加了網(wǎng)絡(luò)對(duì)尺度的適應(yīng)性。Inc-eption V3模型最重要的改進(jìn)是分解,將7×7分解為2個(gè)一維的卷積(1×7,7×1),3×3分解為(1×3,3×1),既可以加速計(jì)算,又可以進(jìn)一步增加網(wǎng)絡(luò)深度,增強(qiáng)網(wǎng)絡(luò)的非線性。
3? ? 模型訓(xùn)練
實(shí)驗(yàn)軟件環(huán)境MacOS Sierra操作系統(tǒng),采用Tensorflow深度學(xué)習(xí)開源構(gòu)架,編程工具Python,后臺(tái)服務(wù)采用Flask構(gòu)架。實(shí)驗(yàn)平臺(tái)內(nèi)存16 GB,搭載Intel Corei7微處理器。模型訓(xùn)練與運(yùn)行的流程見圖3。
(1)采用OpenCV工具包將數(shù)據(jù)集8種病害圖片進(jìn)行無(wú)畸變裁剪,使其像素尺寸符合模型輸入要求,即229×229像素;同時(shí)劃分訓(xùn)練圖片與測(cè)試圖片,測(cè)試圖片數(shù)量為訓(xùn)練圖片數(shù)量的50%。
(2)通過ImageNet對(duì)Inception-V3模型進(jìn)行預(yù)訓(xùn)練,固化Inception-V3模型的特征提取層。使用預(yù)訓(xùn)練模型計(jì)算每張圖片的特征值,特征值截取位置Pool2層,輸出尺寸2048為一維向量。其中,預(yù)訓(xùn)練模型的權(quán)重參數(shù)取值為ImageNet上的訓(xùn)練結(jié)果,該結(jié)果在2012ImageNet上取得了3.4%的Top-5準(zhǔn)確率,能對(duì)1 000個(gè)類別的物體進(jìn)行識(shí)別,說(shuō)明預(yù)訓(xùn)練模型具備了提取圖像特征的良好特性。
(3)切割I(lǐng)nception-V3模型的特征提取部分,銜接輸入為1024一維向量的全連接層,并對(duì)輸出進(jìn)行正則化,降低少量樣本可能帶來(lái)的過擬合風(fēng)險(xiǎn)。輸出層為8位softmax分類器,標(biāo)記采用One-Hot獨(dú)熱編碼。由于本遷移學(xué)習(xí)中新添加參數(shù)僅集中在1024全連接層與8輸出層,計(jì)算量相較于Inception-V3單獨(dú)訓(xùn)練下降超過90%,用所有訓(xùn)練集圖片訓(xùn)練模型1次計(jì)為1次迭代,每50次迭代使用驗(yàn)證集驗(yàn)證當(dāng)前模型的識(shí)別率。模型超參數(shù)學(xué)習(xí)率初始值為0.01,每100次迭代減半,訓(xùn)練中權(quán)重 Dropout為0.5,每200次迭代保存1次模型檢查點(diǎn)。
(4)存儲(chǔ)已訓(xùn)練完畢的模型,并將其封裝為運(yùn)行模式。操作過程如下:在程序中首先載入Inception-V3模型的特征提取部分,將接收到的圖片輸入并進(jìn)行特征提取,然后載入訓(xùn)練完畢的遷移模型,將提取到的特征輸入到遷移模型進(jìn)行識(shí)別,然后輸出識(shí)別結(jié)果。
4? ? 結(jié)果與分析
模型訓(xùn)練結(jié)果使用Tensorboard進(jìn)行可視化顯示,模型收斂較快,在500次迭代時(shí)已經(jīng)達(dá)到90%的正確率,最終1 000次迭代后模型準(zhǔn)確度與誤差值如圖4所示,驗(yàn)證集的最終準(zhǔn)確度為93.3%,另取每種病癥20張未學(xué)習(xí)過的圖片作為測(cè)試集,測(cè)試模型的泛化能力,測(cè)試準(zhǔn)確率為90.6%,測(cè)試集識(shí)別分類結(jié)果如表1所示。
由表1可知,胡麻葉病、白粉病、條銹病和小麥麥蜘蛛由于特征紋理較為明顯,識(shí)別效果較好。而玉米大斑病與水稻稻瘟病在沒有前置知識(shí)的前提下,由于拍攝圖片特征形狀、大小、顏色等相似,容易發(fā)生混淆,模型的錯(cuò)誤率主要來(lái)自這2種病癥,見圖5。
總體識(shí)別正確率可從以下2個(gè)方面進(jìn)行提高:一是縮小遷移學(xué)習(xí)中的源領(lǐng)域與目標(biāo)領(lǐng)域的差別,本文中的圖像特征采集部分參數(shù)固化于ImageNet,而非大型植物類圖片集,導(dǎo)致特征提取偏向自然圖像中1 000種不同物體;二是優(yōu)化目標(biāo)領(lǐng)域分類器的結(jié)構(gòu),可以采用類似于RCNN的構(gòu)架,添加目標(biāo)框,通過回歸算法調(diào)整目標(biāo)框的大小,減少圖片無(wú)用特征對(duì)辨別效果的干擾。
5? ? 結(jié)論
機(jī)器學(xué)習(xí)加速應(yīng)用于各行各業(yè),傳統(tǒng)的農(nóng)作物病害診斷需要經(jīng)驗(yàn)豐富的技術(shù)人員現(xiàn)場(chǎng)辨別,而將人工智能與物聯(lián)網(wǎng)圖像遠(yuǎn)程采集相結(jié)合,讓智能算法自我判斷、自我學(xué)習(xí),反應(yīng)迅速有效,能有效降低病害帶來(lái)的損失,提高農(nóng)作物產(chǎn)量和質(zhì)量,增加農(nóng)民收入。本文實(shí)現(xiàn)了一種基于遷移學(xué)習(xí)的農(nóng)作物病害圖像識(shí)別方法,在已有Inception網(wǎng)絡(luò)的特征提取能力的基礎(chǔ)上,通過固化特征提取卷積與池化層,添加定制任務(wù)分類器,降低自由參數(shù)的數(shù)量,相較其他深度學(xué)習(xí)網(wǎng)絡(luò)如VGG16等,本文中的模型參數(shù)僅為前者的10%左右,極大地提高了網(wǎng)絡(luò)訓(xùn)練的效率,增強(qiáng)了網(wǎng)絡(luò)二次學(xué)習(xí)的能力。在使用每種病癥20張圖片的小樣本集上實(shí)現(xiàn)了超過90%的總體識(shí)別正確率,為作物病害小樣本識(shí)別研究提供了有益參考。
6? ? 參考文獻(xiàn)
[1] 劉闐宇,馮全,楊森.基于卷積神經(jīng)網(wǎng)絡(luò)的葡萄葉片病害檢測(cè)方法[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2018(3):73-78.
[2] 梁萬(wàn)杰,曹宏鑫.基于卷積神經(jīng)網(wǎng)絡(luò)的水稻蟲害識(shí)別[J].江蘇農(nóng)業(yè)科學(xué),2017,45(20):241-243.
[3] 孫俊,譚文軍,毛罕平,等.基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的多種植物葉片病害識(shí)別[J].農(nóng)業(yè)工程學(xué)報(bào),2017,33(19):209-215.
[4] 曹樂平.基于機(jī)器視覺的植物病蟲害實(shí)時(shí)識(shí)別方法[J].中國(guó)農(nóng)學(xué)通報(bào),2015,31(20):244-249.
[5] 張帥,淮永建.基于分層卷積深度學(xué)習(xí)系統(tǒng)的植物葉片識(shí)別研究[J].北京林業(yè)大學(xué)學(xué)報(bào),2016,38(9):108-115.
[6] 余秀麗,徐超,王丹丹,等.基于SVM的小麥葉部病害識(shí)別方法研究[J].農(nóng)機(jī)化研究,2014,36(11):151-155.
[7] SLADOJEVIC S,ARSENOVIC M,ANDERLA A,et al. Deep neural net-works based recognition of plant diseases by leaf image classification[J].Computational Intelligence and Neuroscience,2016(6):1-11.
[8] BRAHIMI M,BOUKHALFA K,MOUSSAOUI A.Deep learning for tomato diseases:Classification and symptoms visualization[J].Applied Artificial Intelligence,2017:1-17.
[9] AMARA J,BOUAZIZ B,ALGERGAWY A,et al.A deep learning based approach for banana leaf diseases classification[C]//Datenbanksysteme Für Business,Technologie Und Web,2017:79-88.
[10] 王獻(xiàn)鋒,張善文,王震,等.基于葉片圖像和環(huán)境信息的黃瓜病害識(shí)別方法[J].農(nóng)業(yè)工程學(xué)報(bào),2014,30(14):148-153.
[11] SINNO J P,QIANG Y.A Survey on transfer learning[J].IEEE Transacti-ons on Knowledge & Data Engineering,2010,22(10):1345-1359.