邊柯橙,楊海軍,路永華
(蘭州財經(jīng)大學信息工程學院,甘肅蘭州 730030)
目前,國內(nèi)大多數(shù)農(nóng)民對農(nóng)作物病蟲害的判別方法停留在傳統(tǒng)的實地目測上,通過農(nóng)作物的外觀表面形態(tài)等進行判斷,多依賴于個人經(jīng)驗。專家對于病蟲害識別具有豐富經(jīng)驗,但往往不能及時趕往現(xiàn)場,或者因有限的人力資源不能進行大型區(qū)域識別,容易導致誤判和漏判。如何有效、快捷地防治農(nóng)作物病蟲害,成為當前智能農(nóng)業(yè)必須考慮的問題。
計算機視覺技術(shù)在農(nóng)業(yè)應用中最為廣泛,主要研究方向有作物病害檢測與診斷[1]、農(nóng)產(chǎn)品采摘預測[2]、農(nóng)產(chǎn)品品質(zhì)檢測[3]、農(nóng)產(chǎn)品分級等。使用計算機視覺技術(shù)在不影響農(nóng)作物本身生長的前提下對農(nóng)業(yè)病蟲害進行檢測識別,具有無損、快速、實時等特點。國內(nèi)外專家學者在病蟲害圖像識別領(lǐng)域的研究工作主要集中在圖像分割、圖像特征提取、圖像分類和識別等[4]。
本文研究的主要動因是:在農(nóng)作物病蟲害檢測識別領(lǐng)域進行深入研究與探索,以促進農(nóng)作物病蟲害檢測識別技術(shù)突破和廣泛應用。為了全面認識農(nóng)作物病蟲害防治問題,本文重點分析39 項有關(guān)研究工作,這些研究對于深度學習在病蟲害檢測識別等方面的應用具有重要影響。
本文數(shù)據(jù)分析包括收集相關(guān)研究成果、詳細審查與分析兩個步驟。基于關(guān)鍵字搜索論文或期刊文章,主要來源于科學數(shù)據(jù)庫CNKI 和ElsevierScienceDirect,以及Web 科學索引的科學服務網(wǎng)和谷歌學術(shù)。本文使用關(guān)鍵字“深度學習”“病蟲害識別”“農(nóng)業(yè)”進行搜索,過濾掉涉及深度學習但不適用于農(nóng)業(yè)領(lǐng)域病蟲害識別的文獻。通過有效篩選,在搜索集合里選取有意義的論文共39 篇。本文主要就以下內(nèi)容進行比較分析:①數(shù)據(jù)來源、類型及標注情況;②數(shù)據(jù)預處理或增強技術(shù)使用;③深度學習應用領(lǐng)域;④深度學習模型或其它相關(guān)模型的一般方法和類型;⑤度量標準和總體性能。
深度學習方法是一種特征表示方法,它能將原數(shù)據(jù)通過簡單的多種非線性模型組合轉(zhuǎn)變?yōu)楦邔哟蔚某橄笮问?,而其核心是各層特征而不再是人工設計,通過通用的學習過程自主獲得[5-8]。正是由于深度學習能自動提取高層次特征的特點,采用它進行圖像處理時極大減免了特征工程的復雜操作,減少了模型訓練時間[9-10],使得模型分析結(jié)果更精準[11],運行效率也相對較高[12]。并且,深度學習模型可以開發(fā)模擬數(shù)據(jù)集以解決實際問題[13]。
得益于深度學習在眾多領(lǐng)域的成功應用,現(xiàn)階段國內(nèi)外大量學者將目光投向了深度學習和農(nóng)業(yè)領(lǐng)域的結(jié)合上,而其中應用最普遍的深度學習技術(shù)是卷積神經(jīng)網(wǎng)絡(Convol-utional Neural Networks,CNN)[14-18]。卷積神經(jīng)網(wǎng)絡模型是一種前向神經(jīng)網(wǎng)絡和深度學習方法,通過共享權(quán)值、局部連接和池化達到網(wǎng)絡更優(yōu)化并降低過擬合。由于多層卷積層和池化層能提取圖像的分類特征,Softmax 分類器能實現(xiàn)圖像分類識別,因此其被廣泛應用于圖像識別相關(guān)領(lǐng)域。卷積神經(jīng)網(wǎng)絡最先由Lecun 等學者提出,用在手寫體識別上,取得了較大成功。近年來,卷積神經(jīng)網(wǎng)絡在圖像識別領(lǐng)域展現(xiàn)出強大能力。2012 年,Hinton 的研究小組提出用深度卷積神經(jīng)網(wǎng)絡識別圖片,在ImageNet 數(shù)據(jù)集上將分類錯誤率大幅降低,掀起了深度學習的熱潮。之后VGG(Visual Geometry Group)、GoogleNet 等在ImageNet 數(shù)據(jù)集上,將分類錯誤率進一步降低,它們對此前的卷積神經(jīng)網(wǎng)絡進行改進,使用更小的卷積核,以及更深的網(wǎng)絡結(jié)構(gòu)。這些網(wǎng)絡在大的數(shù)據(jù)集上才會體現(xiàn)出性能上的優(yōu)異。2012 年,AlexNet 模型被提出,將圖像識別錯誤率較之前降低50%[14],至此,CNN 在圖像識別和分類領(lǐng)域的應用被重新重視起來。
當前,深度學習模型大量涌現(xiàn)并得以推廣應用,研究人員可以借鑒相關(guān)模型開展研究,避免從頭開始模型構(gòu)建,提高了工作效率。常用CNN 模型包括AlexNet、CaffeNet、VGG、GoogleNet 和Initiation ResNet 等。這些模型通過卷積層和池化層代替全連接層(見圖1),并實現(xiàn)不同神經(jīng)元之間的權(quán)值共享,使它們更類似于生物神經(jīng)網(wǎng)絡,降低網(wǎng)絡復雜度,減少網(wǎng)絡參數(shù)。并且,這些模型都經(jīng)過一些數(shù)據(jù)集的預訓練,其帶有預訓練的權(quán)重參數(shù),會為某些特定問題提供相對有效的分類功能。
Fig.1 CNN basic model(C*;Convolution layer,S*:Pooling layer)圖1 CNN 基本模型(C*;卷積層,S*:池化層)
此外,各種深度學習框架相繼出現(xiàn),以便于研究人員進行實驗,最常見的有Goolgle 公司研發(fā)的Tensorflow、Mi?crosoft 公司研發(fā)的CNTK(ComputationalNetworkToolkit)、Fchollet 公司研發(fā)的Keras、DMLC 研發(fā)的MXNet 以及BLVC(BerkeleyVisionandLearningCenter)和社區(qū)貢獻者共同研發(fā)的Caffe 等。這些深度技術(shù)框架主要被應用于圖像識別分類、手寫字識別、語音識別、預測、自然語言處理等方面。其中一些工具(如Caffe)包含了流行的模型,如上文提到Alexnet、VGG 和Googlenet,可以作為庫或類使用。
近年來,基于深度學習的特征提取與識別方法受到了極大關(guān)注,并在自然圖像分類識別中被成功應用。大量試驗結(jié)果表明,基于深度學習得到的特征表達比手工設計的底層視覺特征,如HOG(Histogram of Oriented Gradient)、SIFT(ScaleInvariant-Feature-Transform)特征等,在圖像識別方面具有更大的優(yōu)越性。
本文對39 項農(nóng)業(yè)病蟲害相關(guān)研究工作進行分析,并介紹它們的數(shù)據(jù)來源、所使用的數(shù)據(jù)預處理技術(shù)和數(shù)據(jù)增強技術(shù)、研究對象、選擇的深度學習模型和體系結(jié)構(gòu)、采用的性能指標。
觀察所研究文章的數(shù)據(jù)集,如表1 所示,大部分研究使用的數(shù)據(jù)集規(guī)模較大,圖像數(shù)目多達千張甚至上萬張。
研究中涉及的數(shù)據(jù)集分為兩類:一類是自主獲取,包括采用高清相機或手機進行拍攝獲??;網(wǎng)上獲取并裁剪合成;使用高普光成像儀獲取圖像或使用農(nóng)業(yè)互聯(lián)網(wǎng)傳感器采集昆蟲數(shù)據(jù)信息;另一類來源于公開數(shù)據(jù)集,其中使用最為廣泛的是Imagenet 和PlantVillage 等。ImageNet 數(shù)據(jù)集是為了促進計算機圖像識別技術(shù)發(fā)展而設立的一個大型圖像數(shù)據(jù)集,其中已經(jīng)超過千萬張圖片,每一張圖片都被手工標定好類別。PlantVillage 是一個公開數(shù)據(jù)集,已經(jīng)收集成千上萬健康和患病作物圖片,并公開和免費提供這些圖片。
一般認為,使用深度學習技術(shù)進行識別的類別越復雜,種類越多,需要的數(shù)據(jù)就越多。因此,大量真實的數(shù)據(jù)集在模型訓練和測試中具有重要影響。
Table 1 Data source表1 數(shù)據(jù)源
部分研究(32 篇論文,80%)為了實現(xiàn)識別效果最優(yōu)化,在圖像或圖像的特定特征輸入到深度學習模型之前對圖像作預處理。在使用深度學習對圖像進行分類識別時,圖像的亮度、對比度等屬性對圖像識別效果影響非常大,相同物體在不同亮度和對比度下的差別非常大。在農(nóng)業(yè)病害圖像檢測識別問題中,經(jīng)常會遇到陰影、強曝光之類的圖片,這些因素都不應該影響最后的識別結(jié)果,因此要對圖像作預處理,使得到的實驗結(jié)果盡可能小地被無關(guān)因素所影響。調(diào)整圖像大小是最常見的預處理過程,深度學習模型常用尺寸有:256×256、227×227、224×224 等。圖像分割也是圖像預處理的一種較流行的做法,可以增加數(shù)據(jù)集規(guī)模,也可以通過突出感興趣的區(qū)域促進學習過程,使專家和志愿者更容易對數(shù)據(jù)進行注釋。研究表明,采用分割圖像的平均識別精度相比原始圖像取得了更好的識別效果,其余數(shù)據(jù)預處理方法如表2 所示。
Table 2 Data preprocessing表2 數(shù)據(jù)預處理
部分研究(24 篇論文,59%)采用數(shù)據(jù)增強技術(shù),人為擴大訓練圖像數(shù)量,這有助于改進整體學習過程和性能,并且可以為實現(xiàn)泛化而向模型提供不同的數(shù)據(jù)。這種增強過程對于那些只擁有小數(shù)據(jù)集訓練其深度學習模型的研究極其重要,作者使用合成圖像對模型進行訓練,并在真實圖像上進行測試。在這種情況下,擴充的合成圖像數(shù)據(jù)擴大了訓練集,使其訓練出的模型更有效,提升了泛化能力,能夠更好地適應實際問題。尤其是,在Hu 等[19]的研究中,利用改進的條件將卷積生成對抗網(wǎng)絡(C-DCGAN)生成新的訓練樣本進行數(shù)據(jù)增強,平均識別精度比旋轉(zhuǎn)和平移的識別精度高28% 左右;DeChant 等[21]運用硬負挖掘技術(shù),即采用55 步長的滑動窗口方法,將未感染植物的圖像分解成不同像素;黃雙萍等[55]通過對高光譜圖像隨機扔棄波段圖像增加數(shù)據(jù)集規(guī)模。其它常見數(shù)據(jù)擴充方法如表3所示。
Table 3 Data enhancement表3 數(shù)據(jù)增強
本文研究的39 篇論文都集中在農(nóng)業(yè)病害領(lǐng)域,其中有33 篇論文對農(nóng)作物病害葉片進行檢測識別,4 篇論文直接對病蟲圖像進行檢測識別,兩篇論文對農(nóng)作物病蟲害進行預測。
從技術(shù)角度看,本文所涉及的研究工作大都(37 篇論文,95%)采用了CNN 模型。大部分研究(28 篇,72%)基于已存在的CNN 模型進行優(yōu)化,包括AlexNet、LeNet、VGG16、ResNet 和DenseNet 等,或建立自己的卷積神經(jīng)網(wǎng)絡模型(9 篇,23%),如表4 所示。
Table 4 Deep learning network model表4 深度學習網(wǎng)絡模型
續(xù)表
此外,有些研究利用遷移學習開展工作(14 篇論文,36%),這涉及到利用一些相關(guān)任務或領(lǐng)域的現(xiàn)有知識,通過微調(diào)預先訓練的模型以提高學習效率。因真實數(shù)據(jù)集很小或具有復雜的多任務網(wǎng)絡而無法從頭開始訓練網(wǎng)絡,因此需要用另一個預訓練模型中的權(quán)重對網(wǎng)絡進行部分初始化。通過微調(diào),這些模型將適應特定的任務和數(shù)據(jù)集,適用于VGG16、DenseNet、AlexNet 和GoogleNet 等模型。一些研究將深度學習模型與弱機器學習分類器進行結(jié)合,張苗輝[52]通過CaffeNet 提取害蟲特征后,通過稀疏編碼法,即構(gòu)建稀疏字典,并通過稀疏表示算法獲得測試樣本的稀疏系數(shù)并進行分類識別;安強強等[53]利用自建的6 層CNN 網(wǎng)絡提取害蟲特征后,輸入SVM(Support Vector Machines)中進行分類識別,相對于人工提取特征,深度學習的特征自動提取取得了更好的分類效果。通過深度學習模型自動提取特征提高了特征提取速度,相比于簡單地提取顏色、形狀和紋理特征,其最終分類識別效果更好。
除采用卷積神經(jīng)網(wǎng)絡模型外,有研究使用深度置信網(wǎng)絡對農(nóng)作物病蟲害進行預測。張善文等[47]對深度置信網(wǎng)絡進行改進,使用無監(jiān)督和有監(jiān)督訓練形成特征集后輸入BPNN 中對冬棗病蟲害進行預測;王獻鋒等[51]提出一個改進型深度置信網(wǎng)絡,由RBM(Restricted Boltzmann Machine)網(wǎng)絡和一個DRBM 網(wǎng)絡(判別RBM)構(gòu)成,用于對棉花病蟲害進行預測。深度置信網(wǎng)絡的數(shù)據(jù)不同于卷積神經(jīng)網(wǎng)絡,其為數(shù)值數(shù)據(jù),多采用農(nóng)業(yè)傳感器獲取,數(shù)據(jù)獲取手段單一是限制其預測效果的關(guān)鍵原因。
這些研究工作所用模型都在一些常用的深度學習框架下進行測試,其中Caffe 使用次數(shù)最多(9 篇論文,23%),其次是MATLAB(8 篇論文,21%)和Keras(7 篇論文,18%)以及Tensorflow(4 篇論文,10%)。Caffe 和MATLAB 廣泛使用的一個可能原因是它們結(jié)合了各種CNN 模型和數(shù)據(jù)集,用戶可以輕松、自動地使用這些框架和數(shù)據(jù)集,如表5所示。
Table 5 Main deep learning framework表5 主要深度學習框架
續(xù)表
對于分類效果評價指標,表6 列出了這些度量的符號和定義。在一些論文中,作者提到精度而沒有說明其定義,假設他們?yōu)榉诸惥龋–A,表6 中列出的第一個度量)。在本文研究中,將“深度學習性能”作為表6 中所列性能指標值。
Table 6 Main performance index表6 主要性能指標
在使用同一數(shù)據(jù)集且具有相同度量的前提下,基于同類問題對深度學習方法與其它技術(shù)進行比較(17 篇論文,57%),或基于深度學習不同模型之間進行比較后發(fā)現(xiàn),幾乎在所有的研究工作中,深度學習模型都優(yōu)于其它方法,其在農(nóng)作物病蟲害檢測、識別和分類中均表現(xiàn)出很好的效果。例如,在DeChant[21]的研究中,其使用分段式CNN 對玉米病害進行識別,在運行時,為一個圖像生成一個熱圖大約需要2min,而對一組3 個熱圖分類則需要不到1s 的時間。在Cheng 等[33]的研究中,將卷積神經(jīng)網(wǎng)絡模型ResNet 與支持向量機和傳統(tǒng)BP 神經(jīng)網(wǎng)絡相比,在復雜農(nóng)田背景下的pest 圖像識別精度有明顯提高;黃雙萍等[55]在水稻穗瘟病檢測中,將優(yōu)化的GoogleNet 模型與SVM 和詞袋模型進行比較,準確率提高了14 個百分點。
分析表明,在每篇論文中,將基于深度學習的方法性能與其它技術(shù)進行比較時,最重要的是要堅持相同的實驗條件(數(shù)據(jù)集和性能度量),并將基于傳統(tǒng)機器學習的方法和其它每篇論文中所解決的特定問題而采用的先進技術(shù)進行比較。
每篇論文涉及不同的數(shù)據(jù)集、預處理技術(shù)、度量、模型和參數(shù),因此每篇論文中使用的技術(shù)受到嚴格限制?;谶@些約束條件可知,深度學習比傳統(tǒng)的SVM、Decision Tree等分類器有更好的分類表現(xiàn)。在特征提取方面,相較于尺度不變特征變換、紋理、顏色和形狀等傳統(tǒng)方法,深度學習模型的自動特征提取更有效。
本文研究表明,一些研究工作取得了較好成果,因為其數(shù)據(jù)集具有較高的真實性和較大的規(guī)模性,而對于部分真實數(shù)據(jù)集則較少研究,觀察其對模型的遷移學習預訓練并在真實數(shù)據(jù)上進行測試,其中數(shù)據(jù)集中真實數(shù)據(jù)所占比率越高,分類效果越好。因此可以得出,遷移學習是深度學習的重要內(nèi)容,它是解決各種研究問題中真實數(shù)據(jù)集不存在或不夠大的關(guān)鍵,但其中數(shù)據(jù)集中真實數(shù)據(jù)所占比率仍是影響其實驗效果的關(guān)鍵因素,真實數(shù)據(jù)比率越高,分類效果越好。
大多數(shù)論文基于已存在的深度學習模型進行優(yōu)化(28篇,72%)。優(yōu)化目的包括減少訓練參數(shù)、提高運行速度和提高分類效果等。
通過添加Dropout 層、改變池化組合、校正線性單元(Relu)函數(shù)、減少分類器數(shù)量等減少訓練參數(shù)。采用SGD優(yōu)化模型并提高分類效果,由于SGD 每次選擇樣本都具有一定的隨機性,從而在訓練過程中會產(chǎn)生些許波動,為了減少波動,可以選擇加入優(yōu)化器Momentum、RM-Sprop 和Adam,或采用批量隨機梯度下降法(MSGD-stochastic Gra?dient Method with Minibart-ches),它將訓練數(shù)據(jù)集分割成小批量,用于修正模型錯誤和更新模型參數(shù)。
有些研究采用了不同的優(yōu)化方法。Hu 等[31]將標準卷積替換為可分離卷積,用于減少模型參數(shù)個數(shù),提高模型計算速度;Albert 等[20]和劉永波等[44]通過向模型中補充額外特征以提高分類識別效果;賈少鵬等[54]為了彌補空間信息丟失,以膠囊網(wǎng)絡代替全連接層。
研究也表明,并非網(wǎng)絡深度越深,識別率越高,在不同的應用場景下,需要根據(jù)實際問題的復雜程度,選擇簡單或者復雜的網(wǎng)絡。例如,Rahman 的研究中提出,相比于追求更先進的CNN 結(jié)構(gòu),農(nóng)民更需要一個能夠離線運行基于CNN 模型的水稻病蟲害檢測移動應用,因此其提出了一個兩階段的小型CNN 結(jié)構(gòu),參數(shù)相對于AlexNet、GoogleNet和LeNet-5 等大幅度減少,學習能力下降但運行效率提升,在實際應用中更加廣泛。
(1)數(shù)據(jù)集要求較大。盡管數(shù)據(jù)增強技術(shù)可以增加一些具有標簽的數(shù)據(jù)集,但實際上根據(jù)所研究問題的復雜性(分類數(shù)、所需精度等),深度學習至少需要數(shù)千張甚至上萬張圖像。有些研究沒有考慮到研究對象的多種外界條件影響,使得數(shù)據(jù)采樣不夠充分,這一事實降低了對總體分析結(jié)果的可信度,盡管研究表明,這些模型似乎具有良好的通用性,但性能優(yōu)化或上升幅度很小。因此,為了提高模型泛化能力,需要更加多樣化的訓練數(shù)據(jù)。而當前國內(nèi)農(nóng)業(yè)病蟲害相關(guān)公共數(shù)據(jù)集較少,迫使研究人員耗費大量時間獲取數(shù)據(jù),降低工作效率。針對數(shù)據(jù)集較小的問題,除遷移學習外,部分研究采用數(shù)據(jù)增強技術(shù)對自己的數(shù)據(jù)集進行擴充。數(shù)據(jù)擴充能有效增加真實數(shù)據(jù)集規(guī)模,從而提高檢測分類效果。但同時發(fā)現(xiàn),遷移學習弱化了數(shù)據(jù)擴充的作用,即數(shù)據(jù)擴充對全新學習的影響大于遷移學習,但對于數(shù)量較小的數(shù)據(jù)集,遷移學習后進行數(shù)據(jù)擴充仍然可以有效提高模型識別性能。動態(tài)的數(shù)據(jù)擴充方式節(jié)省了存儲擴充數(shù)據(jù)所需的巨大空間,豐富了數(shù)據(jù)的多樣性,可以減輕模型過擬合現(xiàn)象,但在一定程度上破壞了原數(shù)據(jù)集的樣本分布,增加了訓練的波動性。
(2)數(shù)據(jù)預處理耗時長。數(shù)據(jù)來源冗雜混亂,需要對數(shù)據(jù)進行歸一化或離散化以適應模型需要。有些數(shù)據(jù)集中不同類別之間的區(qū)分特征差別較小,或存在低分辨率、低準確度形式的噪音、作物阻塞、植物重疊和聚集等問題,對研究的識別效果有很大影響,因此要進行數(shù)據(jù)預處理以增強實現(xiàn)效果。
(3)實驗條件不足。深度學習在訓練過程中產(chǎn)生大量參數(shù),耗時長且占用內(nèi)存較大,需要較大的計算資源。有些研究為了減少參數(shù)數(shù)量,采取了一些優(yōu)化方法,包括減少全連接層和卷積層,遷移學習或選用輕量級的CNN 模型。
在農(nóng)業(yè)計算機視覺方面,深度學習應用已十分廣泛,但多數(shù)都集中在土地覆蓋分類、作物類型估算、作物物候、雜草檢測和水果分級方面,對于種子鑒定、土壤和葉片含氮量、灌溉、植物水分脅迫檢測、水蝕評估、害蟲檢測、除草劑使用、污染物鑒定等的研究相對較少。相關(guān)研究工作中討論的一些解決方案表現(xiàn)出一定的商業(yè)用途,盡管模型培訓需要大量時間(在高性能GPU 集群計算機上需要多個小時),但分類本身非常快(在CPU 上不到1s),因此可以很容易地在智能手機上加以實現(xiàn)。這為在全球范圍內(nèi)利用智能手機輔助診斷農(nóng)作物疾病提供了一條可行路徑。
根據(jù)當前農(nóng)業(yè)病蟲害檢測識別可分為幾下幾個研究方向:
(1)建立國內(nèi)大型農(nóng)業(yè)圖像數(shù)據(jù)庫。與國外相關(guān)研究相比,我國農(nóng)業(yè)病蟲害圖像數(shù)據(jù)庫建立相對落后,一般的實驗數(shù)據(jù)集大多是研究人員自行采集,沒有建立起聯(lián)通的數(shù)據(jù)庫網(wǎng)絡,而一般的圖像采集將大大耗費研究人員的時間,降低研究效率。
(2)利用紅外熱成像和高光譜成像技術(shù)采集農(nóng)作物信息??梢姽獬上窦夹g(shù)已趨于成熟,為了彌補其只能采集農(nóng)作物表面信息,引入紅外成像和高光譜成像,這是農(nóng)作物病蟲害檢測的一個重要方向。
(3)將手工提取特征和使用各種技術(shù)自動提取特征相結(jié)合,以提高整體性能。
(4)模型輕量化。提高算法執(zhí)行速度,滿足實時性要求,以實現(xiàn)在移動設備上的應用,這是當前深度學習在農(nóng)業(yè)病蟲害識別領(lǐng)域的重要突破方向。未來研究將致力于構(gòu)建微型版本的具有較高內(nèi)存效率的非順序型CNN 架構(gòu)。