吳建偉 , 黃杰 , 熊曉菲 , 高晗 , 秦向陽 *
(1.北京市農(nóng)林科學(xué)院,北京 100097;2.國家農(nóng)業(yè)信息化工程技術(shù)研究中心,北京 100097;3.北京派得偉業(yè)科技發(fā)展有限公司,北京 100097)
桃樹是我國主要的果樹樹種之一,2017年,我國桃樹種植面積達78.19萬hm2,桃總產(chǎn)量達1 429萬t,居世界首位[1]。近年來,桃產(chǎn)業(yè)不斷適應(yīng)市場變化,逐漸發(fā)展成為富民產(chǎn)業(yè)和生態(tài)產(chǎn)業(yè)[2]。桃樹極易遭受病害的侵擾而影響果品的品質(zhì)和產(chǎn)量,及時準確地識別病害可以控制病害蔓延、降低管理成本、減少經(jīng)濟損失,對桃產(chǎn)業(yè)的高質(zhì)量發(fā)展具有重要意義[3-4]。傳統(tǒng)果園病害識別主要依賴人工鑒定及專家系統(tǒng)查詢和遠程服務(wù)[5-6],這些方法成本較高、效率低,而且容易受到經(jīng)驗知識、信息傳遞、溝通時效、專家維護等多種因素影響,缺乏穩(wěn)定性和可靠性。物聯(lián)網(wǎng)(internet of things,IOT)、人工智能(artificial intelligence,AI)等新一代信息技術(shù)的快速發(fā)展使農(nóng)作物病蟲害智能識別成為植物保護主流趨勢[7-9],利用AI圖像識別技術(shù)自動對果樹病害進行診斷,無需聘請專業(yè)技術(shù)人員進行現(xiàn)場或遠程的咨詢鑒定,具有操作簡便、識別效率高、成本節(jié)約等優(yōu)點,利于病害的及時診出,為提高果園病害監(jiān)測預(yù)警和科學(xué)防治水平提供了有效途徑[10-11]。
基于AI的病害圖像識別方法主要利用機器學(xué)習、計算機視覺等技術(shù),通過特定的計算機算法和模型對病害的光譜和圖像信號進行挖掘和分析,實現(xiàn)對病害情況的識別和鑒定[12]。經(jīng)典的圖像處理技術(shù)(降噪、腐蝕、圖像增強、圖像分割、特征提取等)和機器學(xué)習方法(最小二乘法、K均值聚類算法、支持向量機、人工神經(jīng)網(wǎng)絡(luò)等)在不同的農(nóng)作物病蟲害識別方面已有大量研究并取得一定進展,然而受限于依賴人工設(shè)計特征提取、環(huán)境條件和發(fā)病期不同、樣本數(shù)量不足等因素,識別效果難以滿足應(yīng)用需求[13-14]。將深度學(xué)習引入病蟲害圖像識別,在解決圖像分類和可視化問題上具有顯著優(yōu)勢,通過通用的學(xué)習過程自主提取病害圖像高層次特征,數(shù)據(jù)處理效率和識別準確率更高[15-16]。目前應(yīng)用較多的深度學(xué)習網(wǎng)絡(luò)技術(shù)包括卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)、受限玻爾茲曼機(restricted boltzmann machine,RBM)、深度置信網(wǎng)絡(luò)(deep belief networks,DBN)、深度玻爾茲曼機(deep boltzmann machine,DBM)、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)、生成式對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)、膠 囊 網(wǎng) 絡(luò) (capsule network,CapsNet)等。其中,CNN被認為是進行圖像識別的較優(yōu)算法之一[17-18],基于CNN產(chǎn)生了許多性能良好的神經(jīng)網(wǎng)絡(luò)模型用于作物病害識別,如 AlexNet、LeNet-5、GoogleNet、VGGNet、ResNet、InceptionV3、MobileNet、DenseNet、R-CNN、SSD等。黃雙萍等[19]利用GoogleLeNet建模,用于水稻穗瘟與健康稻穗的分類,最高穗瘟檢測精度可達92.0%。劉闐宇等[20]基于區(qū)域Faster R-CNN建立模型定位葡萄葉片位置,不僅能成功分辨病蟲害的種類,還能輸出目標檢測的位置信息。郭小清等[21]針對番茄葉部病害,對AlexNet模型進行了改進,運行性能和不同發(fā)病時期識別準確率都優(yōu)于MobileNet、SquezeeNet、LeNet模型。近年來,利用深度CNN對柑橘、蘋果、梨、桃等果樹的病害識別進行了大量探索研究:張敏等[22]采用Alexnet網(wǎng)絡(luò)模型對柑橘潰瘍病樣本識別率高達98%,超過了支持向量機(support vector machines,SVM)、Adaboost、人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)、極限學(xué)習機(extreme learning machine,ELM)等傳統(tǒng)機器學(xué)習方法;金瑛等[23]基于ResNet-50深度卷積網(wǎng)絡(luò)模型,對梨黑斑病、梨銹病、蘋果花葉病、蘋果銹病4種果樹病害的平均識別率達到92.9%;張敏等[24]基于GoogLeNet改進模型對蘋果銹病、斑點落葉病葉片測試的平均準確率達到96%;Yao等[25]針對桃樹7種主流病害的識別,提出了改進的L2MXception網(wǎng)絡(luò),該研究還對比了AlexNet、ResNet50、Xception、SENet154、DenseNet-169、HRNet-w48、MobileNetV3模型在原始、L2和L2M條件下的驗證準確率,其中原始條件下的DenseNet-169模型的驗證準確率為89.32%,明顯高于其他模型。DenseNet屬于密集型網(wǎng)絡(luò),由Huang等[26]于2016年提出,借鑒了ResNet與GoogLeNet的優(yōu)點,通過進一步特征重用和Bypass思想大幅度減少了網(wǎng)絡(luò)參數(shù)量,并在一定程度上緩解了層數(shù)加深后梯度消失的問題。本研究從桃園的病害識別與防治需求出發(fā),突破傳統(tǒng)病害識別依賴人工、成本高、效率低、準確度低等問題,面向桃樹常見的11種病害,基于卷積神經(jīng)網(wǎng)絡(luò)DenseNet-169分類模型進行微調(diào)改進,并搭建Web端,集成開發(fā)桃樹病害智能識別軟件系統(tǒng),搭建便捷的“以圖識病”平臺,為桃樹產(chǎn)業(yè)的智慧化發(fā)展提供支持。
通過果樹病蟲害數(shù)據(jù)庫以及果園實地拍攝等不同途徑采集桃樹病害樣本圖像共計3 263張,涉及桃園主要發(fā)生的病害11種,包括桃黑斑病、桃褐腐病、桃黑星病、桃炭疽病、桃縮葉病、桃灰霉病、桃褐斑穿孔病、桃霉斑穿孔病、桃細菌性穿孔病、桃樹流膠病、桃樹木腐??;采集1 000張健康植株圖像作為對照,全圖像集共計4 263張。
1.2.1 樣本處理與數(shù)據(jù)集分割 圖像擴增是處理較少樣本數(shù)據(jù)集的有效方法,本研究采用隨機裁剪、改變尺寸、隨機水平翻轉(zhuǎn)、隨機豎直翻轉(zhuǎn)、隨機旋轉(zhuǎn)、高斯噪聲、椒鹽噪聲、對比度調(diào)整等圖像數(shù)據(jù)增強方法進行擴增(圖1),以提高所訓(xùn)練網(wǎng)絡(luò)的魯棒性。數(shù)據(jù)集切分按照7∶2∶1比例劃分為訓(xùn)練集、驗證集及測試集。
圖1 經(jīng)過不同方法處理的桃黑星病圖像Fig.1 Images of peach black spot disease processed by different methods
1.2.2 模型選用與改進 本研究基于大型公開圖像分類數(shù)據(jù)集ImageNet預(yù)訓(xùn)練的DenseNet-169對病害識別模型進行微調(diào),加入注意力機制,即在DenseBlock前、transition層后各加入SElayer層(圖2),并修改模型最后一層分類層為需要訓(xùn)練的病害類別總數(shù)量+1(other類)。
圖2 DenseNet改進模型結(jié)構(gòu)Fig2 DenseNet improved medel structure
1.2.3 模型訓(xùn)練與測試 ①數(shù)據(jù)預(yù)處理。為了改善模型特征提取性能,對圖像進行預(yù)處理,將輸入數(shù)據(jù)歸一化到[-1,1]之間,以防止數(shù)值過大造成網(wǎng)絡(luò)訓(xùn)練參數(shù)的不穩(wěn)定,并加快模型收斂速度,固定輸入圖片尺寸為224×224×3。
②模型訓(xùn)練。選用合適的梯度下降算法、學(xué)習率、batch size等超參數(shù),本研究模型的優(yōu)化算法為隨機梯度下降(stochastic gradient descent,SGD),初始學(xué)習率設(shè)為0.001,隨著epoch的增加而逐步減小。DenseNet模型雖然較小,參數(shù)量較少,但是特征重用所造成的計算量大大增加,因此在計算能力有限的情況下要選擇較小批量(batch size),本次訓(xùn)練選用大小為16。保存訓(xùn)練時訓(xùn)練集和驗證集的loss變化,通過loss曲線確定模型有無欠/過擬合現(xiàn)象,在確認不會發(fā)生上述情況時,將驗證集數(shù)據(jù)與訓(xùn)練集數(shù)據(jù)進行合并訓(xùn)練,得到最終模型。
③模型測試。使用訓(xùn)練后的模型進行測試,同樣需要對圖像進行歸一化和圖像大小的處理,在輸入圖像路徑后,選擇對應(yīng)的模型即可進行識別。識別過程中進行與訓(xùn)練相統(tǒng)一的數(shù)據(jù)增強,對增強的所有圖片進行預(yù)測,加權(quán)求均值。
1.3.1 Web端搭建 搭建Web端接口以實現(xiàn)軟件系統(tǒng)對算法模型的調(diào)用,主要步驟包括:定義web_api.py,在此腳本中定義resolveJson方法,將包含模型名稱及此模型內(nèi)類別名稱的Json文件傳入方法中進行解析,得到每個模型的名稱及其包括的類名;定義路由打開網(wǎng)頁時,跳轉(zhuǎn)到index.html頁面,頁面中定義超鏈接,跳轉(zhuǎn)到單張測試/批量測試頁面,在單張/批量測試頁面定義表單,用來傳輸圖片路徑、模型名字及類別數(shù)量;將表單中的數(shù)據(jù)接收到后臺,并判斷模型是否存在以及類別數(shù)量是否與模型數(shù)量一致。進行單張測試,調(diào)用test.init_param方法,將參數(shù)傳入進行模型的初始化及圖片測試前的預(yù)處理,最后調(diào)用eval-single方法,返回預(yù)測結(jié)果及置信度;進行批量測試,調(diào)用test.init_param方法,將參數(shù)傳入其中,進行模型的初始化及圖片測試前的預(yù)處理,最后調(diào)用eval方法,返回批量預(yù)測結(jié)果。使用matplotlib統(tǒng)計不同病蟲害的數(shù)量,并以圖表形式進行展示。
1.3.2 系統(tǒng)設(shè)計 桃樹病害智能圖像識別系統(tǒng)主要采用JAVA語言開發(fā),以Springboot+Mybatis框架,基于XML和Web Services組件化開發(fā)模式實現(xiàn)業(yè)務(wù)模塊/組件的松耦合,軟件部署上采用B/S結(jié)構(gòu),數(shù)據(jù)庫使用MySQL。
①總體架構(gòu)。該系統(tǒng)總體架構(gòu)主要包括數(shù)據(jù)層、支撐層、應(yīng)用層。數(shù)據(jù)層存儲和管理桃樹病害圖像數(shù)據(jù)、病害防治知識數(shù)據(jù)、用戶數(shù)據(jù)與系統(tǒng)使用數(shù)據(jù)等;支撐層提供AI算法模型、底層算法庫、基礎(chǔ)中間件、服務(wù)組件等應(yīng)用支撐模型和組件;應(yīng)用層實現(xiàn)桃樹病害查詢、分析、決策等數(shù)據(jù)可視化服務(wù)。
②功能設(shè)計。主要包括用戶登錄、AI識別、診斷記錄、系統(tǒng)管理4個模塊,為用戶提供完整的桃樹病害智能圖像識別應(yīng)用。用戶注冊、登錄系統(tǒng)后,選擇并上傳待測桃樹病害圖像,調(diào)用AI算法模型進行識別,返回識別結(jié)果和防治建議,并可查詢歷史診斷記錄,進行系統(tǒng)后臺管理(圖3)。
圖3 桃樹病害智能圖像識別系統(tǒng)Fig.3 Intelligent image recognition system of peach diseases
本研究用DenseNet-169網(wǎng)絡(luò)對桃樹11種主要病害樣本數(shù)據(jù)集進行訓(xùn)練,根據(jù)損失值(loss)和準確率(accuracy)曲線分析結(jié)果(圖 4),形成SEDDenseNet模型,驗證集損失值和準確率隨著迭代次數(shù)的增加逐步趨于穩(wěn)定,未出現(xiàn)大幅波動,沒有過擬合現(xiàn)象,模型效果穩(wěn)定。
圖4 模型訓(xùn)練的損失值與準確率Fig.4 Loss value and accuracy curve of training model
訓(xùn)練結(jié)果(表1)顯示,11種桃樹病害樣本準確率在85.00%~98.28%之間,平均準確率91.47%,總體識別率93.65%,訓(xùn)練模型實現(xiàn)了對桃樹主要病害的準確識別;桃黑斑病準確率樣本最多達到569個,準確率最高達到98.28%,桃褐斑穿孔病樣本最少(208個),準確率最低達(85%),樣本數(shù)量對于準確率正相關(guān)。
表1 桃病害圖像識別DenseNet-169改進模型測試結(jié)果Tab.1 Test results of DenseNet-169 improved model for peach tree diseases image recognition
與DenseNet基準模型相比,以迭代次數(shù)50遞加,改進的SEDenseNet網(wǎng)絡(luò)模型準確率提升了2.7個百分點(圖5)。
圖5 DenseNet-169模型改進前后對比曲線Fig.5 Comparison curve before and after improvement of DenseNet-169 model
本研究開發(fā)了桃樹病害智能圖像識別系統(tǒng)(圖6),注冊用戶通過輸入用戶名和密碼進入系統(tǒng),上傳待識別的桃樹病害圖片,系統(tǒng)自動對圖片進行預(yù)處理并匹配相應(yīng)算法模型,推理出相似度排名前5病害種類及其相似度,并結(jié)合相應(yīng)知識模型,提供所識別相似度最高的病害的名稱、癥狀特點、防治方法等信息。系統(tǒng)提供上傳圖片、上傳時間、識別結(jié)果與置信度等查詢功能,結(jié)合AI診斷模型管理,實現(xiàn)對訓(xùn)練的各類桃樹病害深度學(xué)習算法模型的管理和維護。結(jié)合桃園現(xiàn)場的病害識別試驗應(yīng)用,系統(tǒng)有效集成主要發(fā)生的桃樹病害圖像識別算法模型,平均識別速度達10.3 fps,實現(xiàn)了快捷、準確的“以圖識病”。
圖6 桃樹病害智能圖像識別系統(tǒng)界面Fig.6 Interface of intelligent image recognition system for peach diseases
植物病蟲害圖像識別相對于傳統(tǒng)的人工鑒定與專家遠程服務(wù),顯著改善識別效率,為廣大農(nóng)戶提供便捷、快速、準確的診斷服務(wù),從而減少病蟲害損失,提升作物產(chǎn)量與品質(zhì)。近年來,在農(nóng)林領(lǐng)域得到了快速發(fā)展與較好應(yīng)用?,F(xiàn)有研究探討了基 于 GoogLeNet、 FI-DenseNet、 ResNet50、MobileNet、one-shot、EESP、Xception-CEMs、VGG-16等深度學(xué)習模型在植物病害圖像識別方面的實踐,并取得了良好的應(yīng)用效果[27-30]。本研究采用DenseNet-169網(wǎng)絡(luò)模型,通過特征在通道上的連接來實現(xiàn)特征重用,前面所有層和后面層密集連接,每層都可以直接利用損失函數(shù)的梯度以及輸入信息[31],加強了特征的傳遞和有效利用,解決小數(shù)據(jù)集容易過擬合等問題,使得模型更容易訓(xùn)練,對于農(nóng)業(yè)病蟲害樣本不易獲得的情況尤為有利。同時,還加入了注意力機制,目的是讓模型能夠忽略無關(guān)信息,讓深度神經(jīng)網(wǎng)絡(luò)學(xué)到每張樣本圖片中需要關(guān)注的病害植株區(qū)域,形成注意力,從而提高識別效率。結(jié)果顯示,11種桃樹病害樣本準確率處于85.00%~98.28%之間,平均準確率91.47%,實現(xiàn)了智能識別。目前,本研究開發(fā)的桃樹病害智能識別與應(yīng)用系統(tǒng)已在北京市平谷區(qū)規(guī)?;覉@開展試點應(yīng)用,促進桃園植保防治工作更加及時高效;同時,隨著該方法的使用與推廣,桃園病害數(shù)據(jù)不斷積累,AI模型將得到優(yōu)化,以實現(xiàn)更精準、智能的識別診斷,為進一步監(jiān)測預(yù)警與大數(shù)據(jù)分析提供有效支撐。