姚建斌, 張英娜, 劉建華
(華北水利水電大學(xué) 信息工程學(xué)院, 河南 鄭州 450046)
病蟲害是影響農(nóng)業(yè)生產(chǎn)的重要自然災(zāi)害,據(jù)統(tǒng)計,中國每年因病蟲害導(dǎo)致糧食損失1 400萬t,影響著我國糧食的產(chǎn)量和質(zhì)量[1]。因此,減少糧食病蟲害損失,對我國糧食止損具有重要意義。小麥?zhǔn)俏覈蠹Z食作物之一,其播種面積和產(chǎn)量均位于我國糧食作物的前列。據(jù)國家統(tǒng)計局資料,2020年我國小麥播種面積和產(chǎn)量分別占全國農(nóng)作物種植總面積和農(nóng)作物總產(chǎn)量的19.4%和19.7%[2]。小麥病蟲害具有種類多、易發(fā)、蔓延快的特點,早期快速識別病蟲害的種類和范圍,對精準(zhǔn)控制病蟲害傳播、及時止損具有重要意義。針對小麥病蟲害識別,傳統(tǒng)的方法是通過日常巡查和經(jīng)驗來判斷病蟲害發(fā)生與否以及病蟲害的種類和程度,存在不能及時發(fā)現(xiàn)問題延誤病蟲害最佳防治時機、病蟲害范圍識別不準(zhǔn)導(dǎo)致過度噴灑農(nóng)藥等問題[3]。隨著現(xiàn)代農(nóng)業(yè)對生產(chǎn)技術(shù)需求的提高,傳統(tǒng)的方式已無法大規(guī)模且快速準(zhǔn)確地判斷病蟲害的程度及范圍,新的智慧化病蟲害識別技術(shù)應(yīng)運而生。
近年來,無人機航拍、圖像處理、模式識別技術(shù)日趨成熟,并不斷被應(yīng)用到農(nóng)作物病蟲害防治領(lǐng)域,使得傳統(tǒng)機器視覺檢測技術(shù)在病蟲害識別上取得了長足的發(fā)展[4-10]。然而,傳統(tǒng)機器視覺檢測技術(shù)仍存在魯棒性和硬件消耗性大等缺點,使得“噪聲”只能通過人為修正,運算速度慢,從而導(dǎo)致識別準(zhǔn)確率和快速檢測兩個方面受到限制。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種新的深度學(xué)習(xí)算法,一經(jīng)問世,在圖像處理與信號識別領(lǐng)域發(fā)展迅速[11-19]。成熟的CNN技術(shù)為農(nóng)作物病蟲害快速準(zhǔn)確識別提供了新的手段,但其采用的多為背景簡單的實驗室場景的樣本,在實際應(yīng)用中存在無法適應(yīng)大田復(fù)雜場景的情況。
本文分別以AlexNet,VGGNet16和Inception-V3網(wǎng)絡(luò)為基礎(chǔ),使用平均識別準(zhǔn)確率、處理速度兩個模型評價指標(biāo)進(jìn)行綜合評價,選取最佳網(wǎng)絡(luò)模型;在數(shù)據(jù)擴充集下,使用漸變學(xué)習(xí)率和訓(xùn)練所有層的遷移學(xué)習(xí)方法,構(gòu)建小麥病蟲害精準(zhǔn)識別網(wǎng)絡(luò)模型,實現(xiàn)小麥病蟲害的精準(zhǔn)識別。
卷積神經(jīng)網(wǎng)絡(luò)的本質(zhì)是一個多層感知機,由輸入層、卷積層、池化層、全連接層、輸出層共5部分組成。隨著網(wǎng)絡(luò)的不斷優(yōu)化,加入激活函數(shù)層來加強非線性關(guān)系,加入Dropout層來提高模型的泛化能力。局部連接、參數(shù)共享是卷積神經(jīng)網(wǎng)絡(luò)的兩大特點。AlexNet、VGGNet16和Inception-V3是近幾年具有代表意義的3種卷積神經(jīng)網(wǎng)絡(luò)模型,其在圖像分類領(lǐng)域均有突出的表現(xiàn)。
1.1.1 AlexNet網(wǎng)絡(luò)模型
AlexNet網(wǎng)絡(luò)模型由Alex、Hinton在圖像識別大賽中提出。它是一個基于LeNet模型改造的且較LeNet模型更深更寬的升級版本,在2012年圖像識別大賽中表現(xiàn)優(yōu)異,獲得了冠軍,奠定了CNN在圖像分類算法中的核心地位[20]。
AlexNet網(wǎng)絡(luò)模型總共8層,包括5個卷積層和3個全連接層。該網(wǎng)絡(luò)模型創(chuàng)新性地采用Dropout算法,使一些神經(jīng)元在訓(xùn)練過程中隨機失效,有效防止了過擬合現(xiàn)象的發(fā)生,并在很大程度上提高了模型的泛化能力;在激活函數(shù)的選取上,采用ReLU激活函數(shù)替代了Sigmoid激活函數(shù),有效解決了梯度彌散問題,取得了良好效果。
1.1.2 VGGNet16的網(wǎng)絡(luò)模型
VGGNet16的網(wǎng)絡(luò)模型是2014年圖像識別競賽的第二名。該網(wǎng)絡(luò)模型共有19層,其中卷積層16層。VGGNet16的特點是全部應(yīng)用了較小的卷積核(3×3)和較小的池化核(2×2)。研究[21]表明,相對于單一大卷積核的卷積操作,較小的卷積核可以在很大程度上減少卷積操作產(chǎn)生的計算量,不僅如此,多個小卷積核的堆疊也提升了網(wǎng)絡(luò)模型精度,優(yōu)化了后續(xù)網(wǎng)絡(luò)模型的性能。
1.1.3 Inception-V3網(wǎng)絡(luò)模型
與之前的卷積神經(jīng)網(wǎng)絡(luò)通過堆疊卷積層來提高網(wǎng)絡(luò)性能相比,Google團(tuán)隊對網(wǎng)絡(luò)中的傳統(tǒng)卷積層進(jìn)行了修改,提出了Inception結(jié)構(gòu),用于增加網(wǎng)絡(luò)深度和寬度,提高深度神經(jīng)網(wǎng)絡(luò)性能。該團(tuán)隊在2014年提出了Inception-V1算法,對不同尺度的卷積核和池化層進(jìn)行了整合,將最終的結(jié)果拼接形成了Inception模塊,模塊利用1×1的卷積核進(jìn)行降維,降低了參數(shù)量[22]。Inception-V3在Inception-V1的基礎(chǔ)上,將原始的7×7的卷積核用一維的1×7和7×1的兩個卷積核進(jìn)行替換,這種對卷積核進(jìn)行的非對稱分解不僅減少了參數(shù)規(guī)模,并且由于1個卷積核拆分成2個卷積核,還進(jìn)一步解決了過深的網(wǎng)絡(luò)模型造成的過擬合以及計算量巨大問題,提升了網(wǎng)絡(luò)性能。典型的Inception-V3網(wǎng)絡(luò)模型的Inception模塊結(jié)構(gòu)圖如圖1所示。
圖1 Inception-V3的Inception模塊結(jié)構(gòu)圖
1.2.1 數(shù)據(jù)擴充
本文中的小麥病蟲害數(shù)據(jù)集均在試驗田現(xiàn)場采集而來,數(shù)據(jù)類型包含健康小麥、條銹病、葉銹病、白粉病和蚜蟲共5種類型。整體的數(shù)據(jù)集分為測試集和訓(xùn)練集,部分?jǐn)?shù)據(jù)集見表1。
表1 小麥病蟲害數(shù)據(jù)集
續(xù)表
針對實際應(yīng)用中數(shù)據(jù)集樣本類型少、數(shù)量分布不均等情況,對訓(xùn)練集進(jìn)行了隨機效果擴充,擴充方法主要有以下幾種:
1)添加隨機噪聲和隨機濾波。由于小麥數(shù)據(jù)集樣本圖片背景比較復(fù)雜,會受到很多噪聲和光波的干擾,為避免復(fù)雜背景對識別結(jié)果產(chǎn)生較大的干擾,采用添加隨機噪聲和添加隨機濾波的方法提高模型對復(fù)雜背景的泛化能力。其中,隨機濾波包括中值濾波、雙邊濾波、高斯模糊和均值濾波。
2)隨機旋轉(zhuǎn)和偏移。由于本文中的數(shù)據(jù)集均通過現(xiàn)場采樣獲取,在采樣過程中并非所有目標(biāo)均規(guī)規(guī)整整且在圖像的中間位置,因此對數(shù)據(jù)集進(jìn)行隨機旋轉(zhuǎn)和偏移,提高模型對目標(biāo)位置變化的泛化能力。
3)隨機色彩抖動。由于樣本的采集未考慮時間和天氣因素,因此,在光照充足的中午和光照較弱的下午采集的樣本,在色彩方面會有較大的差異。為提高模型對光照因素的泛化能力,加入隨機色彩抖動。
1.2.2 遷移學(xué)習(xí)
由于在利用數(shù)據(jù)集對上述3種網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練的過程中,使用全新學(xué)習(xí)的方式出現(xiàn)了準(zhǔn)確率較低且震蕩無法收斂的情況。因此,基于ImageNet數(shù)據(jù)集對3種網(wǎng)絡(luò)模型進(jìn)行預(yù)訓(xùn)練,然后再將預(yù)訓(xùn)練好的模型遷移到本文數(shù)據(jù)集上,進(jìn)行進(jìn)一步的訓(xùn)練。Inception-V3網(wǎng)絡(luò)模型直接使用TensorFlow框架封裝好的ImageNet數(shù)據(jù)集上的遷移學(xué)習(xí)模型,而對于AlexNet和VGGNet16網(wǎng)絡(luò)模型則手動構(gòu)建對應(yīng)的模型,再進(jìn)行參數(shù)加載。這種加載參數(shù)的遷移學(xué)習(xí)方式可以選擇性固定后幾層的參數(shù),而對于Inception-V3模型,因無法修改瓶頸層之前的參數(shù),因此只能調(diào)整最后一個全連接層的參數(shù)。本文中的基本遷移學(xué)習(xí)方式就是固定其他層參數(shù),僅修改最后全連接層的輸出個數(shù)。3種網(wǎng)絡(luò)模型遷移學(xué)習(xí)方式的具體學(xué)習(xí)流程如圖2所示。
圖2 3種網(wǎng)絡(luò)模型的訓(xùn)練流程
模型訓(xùn)練過程中,迭代次數(shù)和學(xué)習(xí)率等超參數(shù)是通過不斷的試驗確定的。本文選取準(zhǔn)確率最高的一組超參數(shù)對應(yīng)的模型,作為該網(wǎng)絡(luò)模型的最終選擇模型,然后進(jìn)行比較。對于最高測試集平均識別準(zhǔn)確率不唯一的情況,本文選取迭代次數(shù)最小的模型為最終的網(wǎng)絡(luò)模型,并通過平均識別準(zhǔn)確率和運行速度兩個指標(biāo)來對網(wǎng)絡(luò)模型進(jìn)行評價。
1)平均識別準(zhǔn)確率。其表示測試集中分類正確的樣本數(shù)與測試集總樣本數(shù)之比,計算公式為:
(1)
式中:Ns為數(shù)據(jù)集樣本的類別數(shù)量,文中Ns=5;Ni為第i類樣本的數(shù)量;Nii為預(yù)測正確的第i類樣本數(shù)量。
2)運行速度。計算模型處理一個樣本的時間,作為網(wǎng)絡(luò)模型的一個指標(biāo)。
1.4.1 試驗環(huán)境
試驗在Python3.7.9、TensorFlow-CPU軟件下完成,使用的機器為MacbookAir,處理器為Intel Core i5,主頻為1.6 GHz。
1.4.2 試驗方案
試驗分為兩個步驟。步驟一是基礎(chǔ)模型的選擇:使用未擴充數(shù)據(jù)集和只訓(xùn)練最后一個全連接層的遷移方法,對3種卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并通過對比模型的平均識別準(zhǔn)確率和運行速度,選出最佳的基礎(chǔ)網(wǎng)絡(luò)模型,本步驟涉及3組對比試驗。步驟二是數(shù)據(jù)擴充及遷移學(xué)習(xí)訓(xùn)練:分別在未擴充數(shù)據(jù)集和擴充數(shù)據(jù)集上,使用不變學(xué)習(xí)率和漸變學(xué)習(xí)率,對模型分別進(jìn)行僅訓(xùn)練全連接層和訓(xùn)練所有層兩種遷移學(xué)習(xí)方式的訓(xùn)練,共進(jìn)行30個迭代。本環(huán)節(jié)涉及8組對比試驗,其中不變學(xué)習(xí)率為0.000 5,漸變學(xué)習(xí)率的初始值為0.001,在訓(xùn)練過程中,每5個迭代學(xué)習(xí)率減小為原來的一半,以5個迭代為一組,學(xué)習(xí)率分別為0.001、0.000 5、0.000 25等。
為更好地利用計算機資源,分批次利用訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集進(jìn)行模型訓(xùn)練。其中每個批次包含32個樣本。在測試集每個批次驗證結(jié)束后,使用TensorBoard記錄本批次的平均識別準(zhǔn)確率,一個迭代中有206條測試數(shù)據(jù),共記錄206/32約6個批次的平均識別準(zhǔn)確率,30個迭代共記錄180個批次的平均識別準(zhǔn)確率。
使用只訓(xùn)練最后的全連接層的遷移學(xué)習(xí)方法,對3種CNN網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,篩選出對本數(shù)據(jù)集泛化能力最強的模型,作為本文的基礎(chǔ)模型。3種網(wǎng)絡(luò)模型的基礎(chǔ)試驗結(jié)果見表2。
表2 3種網(wǎng)絡(luò)模型的基礎(chǔ)試驗結(jié)果
由表2可知:①相對于其他兩個網(wǎng)絡(luò)模型的遷移學(xué)習(xí)方式,Inception-V3網(wǎng)絡(luò)模型的具有局限性,除迭代次數(shù)外其他超參數(shù)無法修改,且出現(xiàn)了過擬合現(xiàn)象,訓(xùn)練集表現(xiàn)良好但測試集表現(xiàn)不佳,同時單張圖片的處理速度也慢于其他網(wǎng)絡(luò)模型的,說明其不適合本文數(shù)據(jù)集。②VGGNet16網(wǎng)絡(luò)模型的運行速度雖然遜于Alexnet的,但在準(zhǔn)確率上優(yōu)于Alexnet的,且經(jīng)過10個迭代即可達(dá)到較好的效果,相比于Alexnet的50個迭代,VGGNet16網(wǎng)絡(luò)模型的收斂速度更快。綜上,選擇VGGNet16網(wǎng)絡(luò)模型作為本文的基礎(chǔ)網(wǎng)絡(luò)模型進(jìn)行下一步的優(yōu)化。
基于未擴充數(shù)據(jù)集和擴充后數(shù)據(jù)集兩種數(shù)據(jù)集、非訓(xùn)練所有層和訓(xùn)練所有層兩種遷移學(xué)習(xí)方式、不變學(xué)習(xí)率和漸變學(xué)習(xí)率兩種學(xué)習(xí)方法共進(jìn)行8種組合試驗,對不同組合試驗的收斂迭代次數(shù)和識別準(zhǔn)確率進(jìn)行統(tǒng)計,結(jié)果見表3。
表3 VGGNet16試驗結(jié)果
2.2.1 數(shù)據(jù)擴充對模型的影響
在相同學(xué)習(xí)率和遷移學(xué)習(xí)方式下,試驗1、2、5、6分別與試驗3、4、7、8互為對比試驗,限于篇幅,僅列出試驗5、7與試驗6、8的對比結(jié)果,如圖3所示。
由圖3可知:在漸變學(xué)習(xí)率下,使用擴充數(shù)據(jù)集訓(xùn)練的模型的平均識別準(zhǔn)確率均高于未擴充數(shù)據(jù)集的。結(jié)合表3分析可知,試驗1、2、5、6的訓(xùn)練集平均識別準(zhǔn)確率均遠(yuǎn)大于測試集的平均識別準(zhǔn)確率,出現(xiàn)了過擬合現(xiàn)象,而試驗3、4、7、8的訓(xùn)練集與測試集平均識別準(zhǔn)確率相差不大,未出現(xiàn)過擬合現(xiàn)象。綜上可知,對數(shù)據(jù)集進(jìn)行擴充不僅能有效提高模型的平均識別準(zhǔn)確率,還能很好地解決過擬合問題。
2.2.2 遷移學(xué)習(xí)方法對模型的影響
在相同數(shù)據(jù)集和學(xué)習(xí)率的條件下,試驗1、3、5、7分別與試驗2、4、6、8互為對比試驗,限于篇幅,僅列出試驗5、6和試驗7、8的對比結(jié)果,如圖4所示。由圖4可知:對于訓(xùn)練集,訓(xùn)練所有層的遷移學(xué)習(xí)方法下的模型平均識別準(zhǔn)確率相較于非訓(xùn)練所有層方法的有明顯提高,說明本文的樣本特征與ImageNet數(shù)據(jù)集的樣本特征差別較大;對于測試集,訓(xùn)練所有層的遷移學(xué)習(xí)方法下的模型平均識別準(zhǔn)確率相較于非訓(xùn)練所有層方法的也有明顯提高。說明訓(xùn)練所有層的遷移學(xué)習(xí)方法能夠更好地捕捉樣本特征。
圖4 漸變學(xué)習(xí)率下兩種遷移學(xué)習(xí)結(jié)果
2.2.3 漸變學(xué)習(xí)率對模型的影響
在相同的數(shù)據(jù)集和遷移學(xué)習(xí)方式下,試驗1、2、3、4分別與試驗5、6、7、8互為對比試驗,限于篇幅,僅列出試驗1、5和試驗2、6的對比結(jié)果,如圖5所示。
圖5 非擴充數(shù)據(jù)集下兩種學(xué)習(xí)率結(jié)果
由圖5可知:對于測試集,漸變學(xué)習(xí)率下的模型平均識別準(zhǔn)確率略高于不變學(xué)習(xí)率的,且平均識別準(zhǔn)確率的提高范圍為5%~7%;同時,漸變學(xué)習(xí)率下的模型收斂速度相較于不變學(xué)習(xí)率的有顯著提高,而不變學(xué)習(xí)率條件下,訓(xùn)練30批次及以上才能收斂,漸變學(xué)習(xí)率條件下,10個批次即可收斂。說明學(xué)習(xí)率初始值為0.001,在訓(xùn)練過程中逐漸減小的漸變學(xué)習(xí)率學(xué)習(xí)方法更適合本文。
綜上,對數(shù)據(jù)集進(jìn)行擴充、使用漸變的學(xué)習(xí)率、基于訓(xùn)練所有層的遷移學(xué)習(xí)方式對模型進(jìn)行訓(xùn)練,能很好地解決模型的過擬合問題、加快模型的收斂速度、提高模型的平均識別準(zhǔn)確率(試驗8的測試集平均識別準(zhǔn)確率高達(dá)95%),在小麥病蟲害精準(zhǔn)識別上具有良好的應(yīng)用前景。
本文基于4種小麥葉部病蟲害以及健康小麥的單標(biāo)簽數(shù)據(jù)集,對構(gòu)建的網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,獲得了較好的效果。然而,實際生產(chǎn)中的小麥病蟲害遠(yuǎn)不止本文涉及的幾種,同時還存在多種病蟲害并存的現(xiàn)象。受當(dāng)前數(shù)據(jù)集的限制,暫未統(tǒng)籌考慮這些情況,后期有待將多標(biāo)簽的樣本擴充到數(shù)據(jù)集中,進(jìn)一步修改模型訓(xùn)練過程中的損失函數(shù),以及最后全連接層的激活函數(shù),調(diào)整模型的輸出為樣本存在各種病蟲害的概率,從而實現(xiàn)多標(biāo)簽的病蟲害樣本分類識別,進(jìn)一步提高模型的實用價值。
本文基于試驗田現(xiàn)場采集的樣本,通過對比Alexnet、VGGNet16和Inception-V3網(wǎng)絡(luò)模型的測試集平均準(zhǔn)確率和運行速度,選擇VGGNet16網(wǎng)絡(luò)模型作為本文的基礎(chǔ)網(wǎng)絡(luò)。然后,根據(jù)不同的數(shù)據(jù)集、遷移學(xué)習(xí)方式和學(xué)習(xí)率設(shè)計了8組對比試驗,得出如下結(jié)論:
1)在小規(guī)模數(shù)據(jù)集條件下,使用數(shù)據(jù)擴充技術(shù)對數(shù)據(jù)集進(jìn)行擴充,能夠有效提高模型的平均識別準(zhǔn)確率,解決了小規(guī)模數(shù)據(jù)集容易出現(xiàn)的過擬合問題。
2)使用遷移學(xué)習(xí)方法,能夠解決直接訓(xùn)練時對機器硬件要求過高,且難以收斂的問題;同時,使用訓(xùn)練所有層的遷移學(xué)習(xí)方法的模型平均識別準(zhǔn)確率較只訓(xùn)練最后全連接層的遷移學(xué)習(xí)方法的高。
3)使用漸變學(xué)習(xí)率先以較大的學(xué)習(xí)率學(xué)習(xí)樣本的基本特征,然后再使用較小的學(xué)習(xí)率進(jìn)一步學(xué)習(xí)樣本更高級的特征,相較于使用不變學(xué)習(xí)率,模型的收斂速度更快,并且能取得更好的識別效果。