胡偉健,樊杰,杜永興,李寶山,李靈芳,楊顏博
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
農(nóng)作物疾病是影響農(nóng)業(yè)生產(chǎn)產(chǎn)量與質(zhì)量的主要因素之一.農(nóng)作物感染疾病后一般會(huì)有變色、壞死、畸形、腐爛以及萎蔫等表現(xiàn),大部分疾病現(xiàn)象都會(huì)體現(xiàn)在農(nóng)作物的葉片上,通過農(nóng)作物葉片來判斷疾病已經(jīng)成為農(nóng)業(yè)領(lǐng)域的常用手段之一[1].傳統(tǒng)的農(nóng)作物疾病識(shí)別由農(nóng)民在田間完成,疾病診斷和農(nóng)藥使用不正確的現(xiàn)象屢見不鮮[2].不僅如此,傳統(tǒng)的人工判斷方法具有耗時(shí)耗力、工作量大、效率低,人為主觀因素起主要作用等不足之處[3].
隨著人工智能技術(shù)的不斷發(fā)展,越來越多的學(xué)者將深度學(xué)習(xí)引入到農(nóng)作物病癥識(shí)別中,并取得了不錯(cuò)的效果.2018年廖經(jīng)緯等[4]采用AlexNet模型,對(duì)38種不同分類的植物病害進(jìn)行識(shí)別,識(shí)別率達(dá)到98.43%.2018年鄭一力等[5]基于遷移學(xué)習(xí),采用AlexNet,InceptionV3模型對(duì)植物病癥葉片進(jìn)行識(shí)別,在測試集上達(dá)到95.31%和95.40%的準(zhǔn)確率.2018年張立超等[6]采用LeNet-5模型,將全連接層的激活函數(shù)由ReLu改為LeakyReLu,對(duì)紅富士和紅元帥2種類型的蘋果病癥進(jìn)行識(shí)別,達(dá)到理想的效果.2018年李凱雨等[7]采用AlexNet,VGG-16和GoogleNet 3種深度卷積神經(jīng)網(wǎng)絡(luò)模型,并將其與遷移學(xué)習(xí)和微調(diào)相結(jié)合用于3類農(nóng)作物7種病害的圖像識(shí)別,結(jié)果表明使用VGG-16模型效果較好,病害的平均識(shí)別率達(dá)到98.92%.2018年MA J等[2]通過構(gòu)建DCNN模型并采用數(shù)據(jù)增強(qiáng)方法來擴(kuò)充數(shù)據(jù)集,對(duì)黃瓜炭疽病,霜霉病,白粉病和目標(biāo)葉斑病4種病蟲害進(jìn)行識(shí)別,準(zhǔn)確率達(dá)到了93.4%.2018年RANGARAJAN A K等[8]采用AlexNet和VGG16模型,通過分析圖像數(shù)量和超參數(shù)對(duì)模型的影響,進(jìn)而對(duì)番茄葉片病癥圖片進(jìn)行識(shí)別.2018年ZHU H Y等[9]采用深度卷積神經(jīng)網(wǎng)絡(luò)VGG19,對(duì)植物的不同器官進(jìn)行特征提取進(jìn)而對(duì)植物種類進(jìn)行識(shí)別,并與SVM進(jìn)行對(duì)比.2018年IQBAL Z等[10]利用圖像處理技術(shù),對(duì)柑橘類農(nóng)作物的病蟲害進(jìn)行了自動(dòng)檢測和識(shí)別.相比于傳統(tǒng)的方法,不僅提高了農(nóng)作物疾病的識(shí)別效率,同時(shí)識(shí)別準(zhǔn)確率也得到了提升.
綜上所述,利用深度學(xué)習(xí)的方式對(duì)農(nóng)作物病癥進(jìn)行識(shí)別已經(jīng)取得了不錯(cuò)的效果.但是,在實(shí)際診斷和治療的過程中,疾病的不同嚴(yán)重程度往往直接決定了治療方案.一般嚴(yán)重程度的疾病與特別嚴(yán)重程度的疾病在用藥類型和劑量上都會(huì)存在差異,錯(cuò)誤的用藥不僅會(huì)導(dǎo)致疾病不能及時(shí)正確治療,而且會(huì)導(dǎo)致環(huán)境污染.因此,如何在正確診斷農(nóng)作物疾病的前提下,進(jìn)一步識(shí)別出疾病的嚴(yán)重程度,成為了農(nóng)作物病癥識(shí)別中新的挑戰(zhàn).本文著眼于番茄病癥的細(xì)粒度識(shí)別,將每種病癥分為一般、嚴(yán)重2種程度,使用深度神經(jīng)網(wǎng)絡(luò)中具有更深層次的深度殘差神經(jīng)網(wǎng)絡(luò)作為模型,在正確識(shí)別番茄病癥的基礎(chǔ)上,能夠準(zhǔn)確識(shí)別出每種病癥的嚴(yán)重程度.實(shí)驗(yàn)中,對(duì)番茄的7種粗粒度疾病,14種細(xì)粒度病癥進(jìn)行了識(shí)別,并取得了不錯(cuò)的識(shí)別效果.
在一般的深度學(xué)習(xí)網(wǎng)絡(luò)中,隨著網(wǎng)絡(luò)層數(shù)的加深也帶來了難以訓(xùn)練、梯度消失、梯度爆炸和網(wǎng)絡(luò)退化等問題,使得網(wǎng)絡(luò)的加深對(duì)性能提高并沒有顯著效果[11].2016年,何凱明等[12]人在VGG網(wǎng)絡(luò)的基礎(chǔ)上提出了殘差網(wǎng)絡(luò),引入了殘差塊解決了這些問題.殘差塊的思想就是在標(biāo)準(zhǔn)的前饋卷積網(wǎng)絡(luò)上,加上一個(gè)跳躍繞過一些層的連接.每繞過一層就產(chǎn)生一個(gè)殘差塊,卷積層預(yù)測加輸入張量的殘差.圖1所示為殘差塊示意圖,其中x表示殘差塊的輸入,F(xiàn)(x)+x表示殘差塊的輸出,而F(x)代表殘差.本文采用的殘差塊有2種:恒等殘差塊和卷積殘差塊.這2種殘差塊的主要差別是跳躍連接上是否進(jìn)行了卷積操作.
本文采用的殘差網(wǎng)絡(luò)主要包含5部分:第一部分包括3層:卷積層、BatchNorm層和ReLu激活層;第二部分包括4層:MaxPooling層、1個(gè)恒等殘差塊和2個(gè)卷積殘差塊;第三部分包括4層:1個(gè)恒等殘差塊和3個(gè)卷積殘差塊;第四部分包括6層:1個(gè)恒等殘差塊和5個(gè)卷積殘差塊;第五部分包括3層:1個(gè)恒等殘差塊和2個(gè)卷積殘差塊.為了更好地訓(xùn)練模型,使用自適應(yīng)優(yōu)化器Adam取代傳統(tǒng)網(wǎng)絡(luò)中的SGD優(yōu)化器.
本文采用的數(shù)據(jù)集來自2018 年AI挑戰(zhàn)大賽(https://challenger.ai/),其中包含番茄白粉病(一般、嚴(yán)重)、番茄早疫病(一般、嚴(yán)重)、番茄晚疫病(一般、嚴(yán)重)、番茄葉霉病(一般、嚴(yán)重)、番茄斑枯病(一般、嚴(yán)重)、番茄紅蜘蛛損傷(一般、嚴(yán)重)以及番茄黃化曲葉病毒病(一般、嚴(yán)重)7種番茄疾病,共14個(gè)細(xì)粒度種類.一共包含了11 359張圖片.
由于原始數(shù)據(jù)集中圖片的來源不同,在拍攝過程中所使用的設(shè)備、拍攝環(huán)境等因素的不同,造成了每一類圖片數(shù)量參差不齊、圖片大小不一致等問題.為了能夠更好地進(jìn)行模型訓(xùn)練,在數(shù)據(jù)預(yù)處理中,使用可數(shù)據(jù)增強(qiáng)和數(shù)據(jù)歸一化來處理圖片.
數(shù)據(jù)集中,圖片數(shù)量最少一類只有251張圖片,最多一類有2 473張圖片.本文采用水平翻轉(zhuǎn)與旋轉(zhuǎn)的數(shù)據(jù)增強(qiáng)方式,將類別少于1 000張圖片數(shù)量的補(bǔ)齊1 000張,圖片數(shù)量多于1 000張的舍去,這樣保證每一類的圖片數(shù)量都為1 000張.數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集一共包含了15 419張圖片,其中11 200張圖片作為訓(xùn)練集,2 800張作為驗(yàn)證集、1 419張圖片作為測試集.實(shí)驗(yàn)時(shí)為了區(qū)分二者,將數(shù)據(jù)增強(qiáng)前所使用的數(shù)據(jù)集稱為不平衡數(shù)據(jù)集,使用不平衡數(shù)據(jù)集的模型稱為UNB-ResNet50,數(shù)據(jù)增強(qiáng)后所使用的數(shù)據(jù)集稱為平衡數(shù)據(jù)集,使用平衡數(shù)據(jù)集的模型稱為B-ResNet50.
最后,為了圖片數(shù)據(jù)更好地適應(yīng)模型,解決圖片大小不一致問題,提高模型訓(xùn)練效率,在實(shí)驗(yàn)前利用數(shù)據(jù)歸一化處理將數(shù)據(jù)集的圖片統(tǒng)一歸一化為224像素×224像素.
本次實(shí)驗(yàn)在GPU環(huán)境下進(jìn)行,使用了基于Tensorflow的Keras框架,其中CUDA與Tensorflow都是9.0版本,運(yùn)行環(huán)境為Anaconda,處理器為Intel(R) Core(TM) i7-7800X,操作系統(tǒng)為Windows10,系統(tǒng)內(nèi)存8G.
實(shí)驗(yàn)一的目的是驗(yàn)證UNB-ResNet50和B-ResNet50隨著訓(xùn)練的不斷深入,訓(xùn)練集準(zhǔn)確度、損失值與驗(yàn)證集準(zhǔn)確度、損失值的變化.在實(shí)驗(yàn)一中,訓(xùn)練輪數(shù)(Epoch)選取為0~40.圖2(a)為各個(gè)損失值隨Epoch的變化曲線,可以看出:
隨著Epoch的不斷增加,各個(gè)損失值均不斷下降,當(dāng)Epoch為0~20時(shí),損失值下降明顯;當(dāng)Epoch為20~40基本趨于平穩(wěn),說明Epoch在20以后,模型逐步趨近于收斂;Epoch在40時(shí),損失值幾乎不變,說明模型訓(xùn)練已完成;
B-ResNet50的訓(xùn)練集損失和驗(yàn)證集損失在各個(gè)Epoch下均明顯高于UNB-ResNet50的訓(xùn)練損失和驗(yàn)證損失,說明B-ResNet50模型的訓(xùn)練效果優(yōu)于UNB-ResNet50.
圖2(b)為各個(gè)精確度隨Epoch的變化曲線,可以看出:
(1)隨著Epoch的不斷增加,各個(gè)精確度均不斷上升,當(dāng)Epoch為0~15時(shí),精確度提升明顯;當(dāng)Epoch為15~40逐漸趨于平穩(wěn);當(dāng)Epoch為40時(shí),精確度幾乎不再變化,說明模型逐步達(dá)到最佳識(shí)別效果;
(2)B-ResNet50的訓(xùn)練集精確度和驗(yàn)證集精確度在各個(gè)Epoch下均明顯高于UNB-ResNet50的訓(xùn)練精確度和驗(yàn)證精確度,說明B-ResNet50具有更好的識(shí)別效果.
綜上,由實(shí)驗(yàn)一可以看出,B-ResNet50與UNB-ResNet50隨著訓(xùn)練輪數(shù)的不斷增加,其識(shí)別效果也在不斷提升,在本實(shí)驗(yàn)中,當(dāng)Epoch趨近于40時(shí),模型訓(xùn)練完成,識(shí)別效果達(dá)到最優(yōu);B-ResNet50對(duì)于模型的訓(xùn)練效果優(yōu)于UNB-ResNet50的訓(xùn)練效果,說明平衡數(shù)據(jù)集更加有力于模型的訓(xùn)練,提升模型識(shí)別準(zhǔn)確率.
實(shí)驗(yàn)二的目的是驗(yàn)證UNB-ResNet50和B-ResNet50對(duì)14個(gè)種類的細(xì)粒度識(shí)別效果,使用實(shí)驗(yàn)一中訓(xùn)練好的模型,利用測試數(shù)據(jù),分別從準(zhǔn)確率、召回率與F1值3個(gè)方面進(jìn)行對(duì)比,對(duì)比結(jié)果如表1所示,由表1可以看出:
(1)在準(zhǔn)確率方面:B-ResNet50在10個(gè)種類的準(zhǔn)確率上優(yōu)于UNB-ResNet50,平均提升5.49%,最高提升21.05%,說明B-ResNet50的識(shí)別準(zhǔn)確率明顯優(yōu)于UNB-ResNet50;
(2)在召回率方面:B-ResNet50在8個(gè)種類的召回率上優(yōu)于UNB-ResNet50,平均提升1.17%,最高提升12.56%,說明B-ResNet50的識(shí)別召回率明顯優(yōu)于UNB-ResNet50;
(3)在F1值方面:B-ResNet50在12個(gè)種類的F1值上優(yōu)于UNB-ResNet50,平均提升3.33%,最高提升8.21%,說明B-ResNet50的識(shí)別F1值明顯優(yōu)于UNB-ResNet50;
(4)在整體識(shí)別準(zhǔn)確率方面,B-ResNet50較UNB-ResNet50有0.78%的提升.
表1 番茄細(xì)粒度病害識(shí)別的實(shí)驗(yàn)結(jié)果
綜上所述,由實(shí)驗(yàn)二可以看出,測試數(shù)據(jù)中,B-ResNet50的表現(xiàn)仍優(yōu)于UNB-ResNet50,說明B-ResNet50對(duì)于細(xì)粒度番茄病癥識(shí)別具有更好的效果;B-ResNet50在細(xì)粒度番茄疾病的識(shí)別中達(dá)到了整體81.68%的識(shí)別準(zhǔn)確率,在分類識(shí)別中,取得了最高88.33%的識(shí)別準(zhǔn)確率、最高98.44%的召回率以及最高92.01的F1值.
實(shí)驗(yàn)三用于驗(yàn)證深度殘差神經(jīng)網(wǎng)絡(luò)在細(xì)粒度番茄病癥識(shí)別中的效果,實(shí)驗(yàn)中選取了目前廣泛用于農(nóng)作物病癥識(shí)別的VGG-19[14],AlexNet[15]模型,與UNB-ResNet50,B-ResNet50模型進(jìn)行對(duì)比.分別對(duì)比了在粗粒度番茄病癥識(shí)別與細(xì)粒度番茄病癥識(shí)別的識(shí)別準(zhǔn)確度和訓(xùn)練時(shí)間,其結(jié)果如表2所示.
(1)在準(zhǔn)確率方面:提出的B-ResNet50模型準(zhǔn)確率最高,在細(xì)粒度上準(zhǔn)確率達(dá)到了81.68%,比UNB-ResNet50,AlexNet與VGG-19分別高出了0.78%,0.51%和3.31%.在粗粒度上達(dá)到了97.18%,比UNB-ResNet50,AlexNet與VGG-19分別高出了1.27%,0.56%和2.24%.說明B-ResNet50在細(xì)粒度病癥和粗粒度病癥上的識(shí)別效果上優(yōu)于UNB-ResNet50,AlexNet與VGG-19.
(2)在訓(xùn)練時(shí)間方面:因AlexNet模型的網(wǎng)絡(luò)層數(shù)相比于其他2個(gè)模型要少,所以在細(xì)粒度與粗粒度上所花費(fèi)的訓(xùn)練時(shí)間都是最少的.
表2 各個(gè)模型的結(jié)果對(duì)比
實(shí)驗(yàn)中,雖然B-ResNet50相較于其他模型,有更好地識(shí)別效果,但是其在細(xì)粒度疾病識(shí)別的準(zhǔn)確率方面并不十分理想.為了具體分析其中原因,將識(shí)別錯(cuò)誤的樣本情況進(jìn)行匯總分析,分析結(jié)果如表3.由表3可以看出,每一類的識(shí)別錯(cuò)誤情況主要出現(xiàn)在將某一種病的一般程度與嚴(yán)重程度的識(shí)別中,例如類別0中共有8張圖片識(shí)別錯(cuò)誤,而這8張圖片被識(shí)別類別1;類別12中有25張識(shí)別錯(cuò)誤,而這25張中有22張被識(shí)別為類別13.圖3為番茄葉霉病的一般與嚴(yán)重2種程度圖片對(duì)比,可以看出2種程度圖片較為相似,區(qū)分具有十分大的難度.
表3 錯(cuò)誤識(shí)別樣本的分析
通過對(duì)錯(cuò)誤樣本的分析不難發(fā)現(xiàn),雖然B-ResNet50已經(jīng)取得了不錯(cuò)的識(shí)別效果,但是其在疾病圖片細(xì)節(jié)特征的提取與相似度較高的圖片分辨上,仍然有很大進(jìn)步空間.實(shí)驗(yàn)三中將病癥的一般和嚴(yán)重2種等級(jí)進(jìn)行合并,對(duì)7類粗粒度疾病進(jìn)行識(shí)別,整體準(zhǔn)確率達(dá)到97.18%,相較于細(xì)粒度準(zhǔn)確率有15.5%的提升,也驗(yàn)證了這個(gè)問題.
針對(duì)于農(nóng)作物疾病的識(shí)別工作,將深度殘差神經(jīng)網(wǎng)絡(luò)應(yīng)用到了番茄疾病的細(xì)粒度識(shí)別任務(wù)中,提出了一種基于深度殘差神經(jīng)網(wǎng)絡(luò)的細(xì)粒度番茄疾病識(shí)別方法.通過對(duì)比實(shí)驗(yàn),觀察了深度殘差神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,驗(yàn)證了平衡數(shù)據(jù)集與不平衡數(shù)據(jù)集對(duì)模型訓(xùn)練以及模型效果的影響,同時(shí)與當(dāng)下使用較多的AlexNet,VGG-19模型進(jìn)行了對(duì)比.最后,對(duì)識(shí)別錯(cuò)誤的樣本進(jìn)行原因分析,找到錯(cuò)誤原因,為模型的改進(jìn)與后續(xù)工作提供了支持.
雖然所使用的B-ResNet在粗粒度和細(xì)粒度番茄病癥識(shí)別任務(wù)中都取得了良好的識(shí)別效果,但是細(xì)粒度番茄病癥識(shí)別效果相較于粗粒度的識(shí)別效果仍有很大進(jìn)步空間,主要問題集中于對(duì)同一種疾病的不同程度的區(qū)分.在接下來的工作中,將從圖片特征提取與模型改進(jìn)的角度出發(fā),提高模型在細(xì)粒度病害識(shí)別上的準(zhǔn)確率.