張葉娥 侯怡婧 楊航
(山西大同大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院 山西省大同市 037009)
山西省大同市云州區(qū)黃花種植具有600多年的歷史,享有“黃花之鄉(xiāng)”美譽(yù)。大同黃花作為大同市重要的特色農(nóng)產(chǎn)品,曾多次榮獲全國(guó)農(nóng)博會(huì)金獎(jiǎng),黃花產(chǎn)業(yè)已成為大同市力推的主導(dǎo)產(chǎn)業(yè)。據(jù)2021年經(jīng)濟(jì)日?qǐng)?bào)相關(guān)報(bào)道,大同黃花的當(dāng)?shù)胤N植面積達(dá)到了26.1萬(wàn)畝,與2018年的14.5萬(wàn)畝同期相比下有了極大的進(jìn)步與發(fā)展。習(xí)近平總書記走訪山西時(shí)提到:黃花作為大同當(dāng)?shù)氐摹爸赂换ā?,是大同脫貧致富的關(guān)鍵產(chǎn)業(yè)。
隨著全國(guó)黃花的種植量和需求量的與日俱增,黃花的品質(zhì)與產(chǎn)量受到業(yè)界的密切關(guān)注。然而黃花在生長(zhǎng)過(guò)程中易出現(xiàn)根腐病、銹病、葉枯病、褐斑病等疾病,其生長(zhǎng)過(guò)程中也常受紅蜘蛛、蚜蟲等蟲害威脅,這些病蟲害需要及時(shí)防治,否則嚴(yán)重影響當(dāng)?shù)攸S花的產(chǎn)量與品質(zhì)。目前黃花種植基地的監(jiān)測(cè)及預(yù)警系統(tǒng)并不完善,而黃花菜的各種生長(zhǎng)因素要求較為苛刻,農(nóng)耕者們需要投入大量的人力資源和精力,去及時(shí)防治因各種環(huán)境因素所產(chǎn)生的黃花病蟲害。而且人工監(jiān)測(cè)識(shí)別費(fèi)時(shí)費(fèi)力,不能及時(shí)對(duì)大面積黃花植株進(jìn)行實(shí)時(shí)監(jiān)測(cè)與反饋,因此,開發(fā)黃花病株智能識(shí)別系統(tǒng),輔助或代替人工監(jiān)測(cè)識(shí)別黃花病株,及時(shí)防治,提高黃花的品質(zhì)與產(chǎn)量,進(jìn)而推動(dòng)大同黃花產(chǎn)業(yè)的健康發(fā)展。
黃花病株智能識(shí)別系統(tǒng)由智能識(shí)別模塊和網(wǎng)頁(yè)模塊兩部分組成,如圖1所示。在智能識(shí)別模塊中實(shí)現(xiàn)圖片的載入,載入圖片輸入到識(shí)別系統(tǒng)中進(jìn)行智能識(shí)別。通過(guò)調(diào)用訓(xùn)練好的網(wǎng)絡(luò)模型參數(shù)處理、運(yùn)算、識(shí)別圖片,并反饋分類結(jié)果和分類準(zhǔn)確率。在網(wǎng)頁(yè)模塊中,搭建四個(gè)網(wǎng)頁(yè),并在系統(tǒng)中設(shè)置跳轉(zhuǎn)鏈接實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),實(shí)現(xiàn)對(duì)大同市云州區(qū)黃花種植情況的宣傳、黃花植株病害知識(shí)普及,提供防治舉措。
圖1:黃花病株智能識(shí)別系統(tǒng)框架
本文采用SqueezeNet框架來(lái)構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)黃花病株識(shí)別模型,為處理計(jì)算機(jī)搭載Intel(R) Core(TM) i7-8550U處理器,內(nèi)存8GB。實(shí)驗(yàn)環(huán)境為windows10 64位系統(tǒng),使用MATLAB R2021a軟件(MATLAB、MATLAB runtime、MATLAB App Designer)實(shí)現(xiàn)。
通過(guò)黃花植株的相關(guān)病癥的研究分析,為保證訓(xùn)練模型能夠較為精準(zhǔn)地識(shí)別載入黃花植株圖片所患病癥類型,并使之具有較高的泛化能力,選擇其中蚜蟲病、葉枯病和鐵銹病三種特征較為突出且對(duì)黃花產(chǎn)量影響較大的病癥進(jìn)行識(shí)別。通過(guò)對(duì)大同云州區(qū)農(nóng)業(yè)合作社黃花試驗(yàn)田的監(jiān)測(cè),收集大量黃花蚜蟲病、葉枯病、鐵銹病以及正常植株的樣本圖片,選取其中一部分特征清晰的圖片分類歸入“healthy-葉”、“healthy-花”、“unhealthy-蚜蟲病”、“unhealthy-葉枯病”和“unhealthy-鐵銹病”共五個(gè)文件夾,作為深度學(xué)習(xí)的訓(xùn)練數(shù)據(jù)集。訓(xùn)練模型的原始數(shù)據(jù)集包括50個(gè)正常植株花樣本、58個(gè)正常植株葉樣本、50個(gè)蚜蟲病植株樣本、35個(gè)葉枯病植株樣本以及22個(gè)鐵銹病植株樣本。本文將原始數(shù)據(jù)的60%作為訓(xùn)練數(shù)據(jù)集,40%作為驗(yàn)證數(shù)據(jù)集,并通過(guò)配置圖像數(shù)據(jù)增強(qiáng)選項(xiàng)對(duì)原始數(shù)據(jù)集進(jìn)行有效擴(kuò)充。
為了在保證訓(xùn)練模型精度的同時(shí)盡可能減少訓(xùn)練時(shí)長(zhǎng),在設(shè)計(jì)網(wǎng)絡(luò)時(shí)遷移學(xué)習(xí)了SqueezeNet神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)共設(shè)計(jì)了68層,其中有26次卷積以及4次池化。通過(guò)卷積,對(duì)卷積核和圖像的重疊部分進(jìn)行積分運(yùn)算來(lái)代替二維圖像向一維空間的壓縮,達(dá)到對(duì)圖像進(jìn)行局部選擇、特征增強(qiáng)的效果。關(guān)于池化,在設(shè)計(jì)中使用了3次最大池化以及1次全局平均池化。池化的主要作用是降低維度以減少運(yùn)算數(shù)據(jù)量。最大池化是輸出圖像每個(gè)子區(qū)域的最大值來(lái)代替該子區(qū)域,以實(shí)現(xiàn)維度的降低。平均池化減少了來(lái)自上層隱藏層的復(fù)雜計(jì)算,可以不受目標(biāo)的傾斜或者旋轉(zhuǎn)的影響,有效降低數(shù)據(jù)維度。而全局平均池化則是在平均池化的基礎(chǔ)上進(jìn)一步對(duì)子區(qū)域像素求平均值,以替代全連接層。由于全局平均池化比全連接層所含未知參數(shù)的數(shù)量要少,從而有效地防止了過(guò)擬合、減少了計(jì)算量。
MATLAB是一種高級(jí)矩陣語(yǔ)言,它集成了大量的算法、公式和模塊工具,在圖形化顯示等方面也具有獨(dú)特優(yōu)勢(shì)。為此,系統(tǒng)選擇MATLAB作為網(wǎng)絡(luò)模型搭建和訓(xùn)練的主要平臺(tái),極大地縮短了系統(tǒng)開發(fā)的時(shí)間成本。模型的具體訓(xùn)練流程如圖2所示。
圖2:基于MATLAB的模型訓(xùn)練流程
3.4.1 參數(shù)設(shè)置
將前期準(zhǔn)備的數(shù)據(jù)集導(dǎo)入并分為訓(xùn)練數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集,對(duì)所有數(shù)據(jù)集進(jìn)行圖像增強(qiáng)。創(chuàng)建一個(gè)圖像數(shù)據(jù)增強(qiáng)器,在訓(xùn)練前對(duì)圖像進(jìn)行預(yù)處理。該增強(qiáng)器以[-90,90]度范圍內(nèi)的隨機(jī)角度旋轉(zhuǎn)圖像,并以[1,2]范圍內(nèi)的隨機(jī)比例因子調(diào)整圖像大小。將左右方向的隨機(jī)反射指定為邏輯標(biāo)量,當(dāng)RandXReflection為true時(shí),每個(gè)圖像以50%的概率水平反射,當(dāng)RandXReflection為false時(shí),不會(huì)反射任何圖像。最后將圖像大小統(tǒng)一調(diào)整為[227,227,3],以匹配網(wǎng)絡(luò)輸入層。
完成數(shù)據(jù)集的相關(guān)參數(shù)設(shè)置后,進(jìn)行具體訓(xùn)練的參數(shù)設(shè)置。使用引入動(dòng)量的隨機(jī)梯度下降(SGDM)優(yōu)化器,避免參數(shù)更新卡在梯度較小的點(diǎn)。由于SGDM不能對(duì)學(xué)習(xí)率進(jìn)行自適應(yīng)更新,為此進(jìn)行了大量的實(shí)驗(yàn),在保證訓(xùn)練效果的同時(shí)盡可能減少訓(xùn)練時(shí)長(zhǎng),最終設(shè)置學(xué)習(xí)率為0.001。設(shè)置訓(xùn)練最大周期數(shù)為100,每次訓(xùn)練從數(shù)據(jù)集中選擇20張圖片。導(dǎo)入分好的驗(yàn)證數(shù)據(jù)集,設(shè)置驗(yàn)證頻率為8。設(shè)置訓(xùn)練網(wǎng)絡(luò)的硬件資源,使用GPU加速模型訓(xùn)練。
3.4.2 模型構(gòu)建
使用MATLAB提供的deepNetworkDesigner模塊工具搭建前期設(shè)計(jì)的網(wǎng)絡(luò)。搭建完成后,將預(yù)訓(xùn)練網(wǎng)絡(luò)參數(shù)導(dǎo)入在編譯器中。創(chuàng)建層次圖變量以包含網(wǎng)絡(luò)層,然后添加網(wǎng)絡(luò)分支到層次圖中。每個(gè)分支均為一個(gè)線性層組,將網(wǎng)絡(luò)中所有的層分支連接起來(lái),最終創(chuàng)建網(wǎng)絡(luò)圖。
3.4.3 網(wǎng)絡(luò)訓(xùn)練
使用指定選項(xiàng)和訓(xùn)練數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。為方便下一次調(diào)用與后期模型的加載更新,將訓(xùn)練好的模型參數(shù)保存為“.net”后綴的獨(dú)立文件。在整個(gè)訓(xùn)練過(guò)程中結(jié)果具有較好的收斂性。通過(guò)不斷調(diào)整預(yù)訓(xùn)練參數(shù)和數(shù)據(jù)集結(jié)構(gòu),最終使驗(yàn)證準(zhǔn)確率達(dá)到92.11%。由于SqueezeNet本身的優(yōu)勢(shì)以及采用GPU加速等輔助配置,平均訓(xùn)練時(shí)間約為15分鐘,訓(xùn)練時(shí)間較短。網(wǎng)絡(luò)訓(xùn)練代碼如下:
% 網(wǎng)絡(luò)訓(xùn)練
[net, traininfo]= trainNetwork(augimdsTrain,lgraph,traini ng_options);
% 保存網(wǎng)絡(luò)參數(shù)
save('daylily','net')
具體訓(xùn)練過(guò)程和結(jié)果如圖3所示。
圖3:網(wǎng)絡(luò)訓(xùn)練相關(guān)信息
3.4.4 模型評(píng)估
使用指定的驗(yàn)證數(shù)據(jù)驗(yàn)證模型參數(shù)的準(zhǔn)確性,按照指定規(guī)則在驗(yàn)證數(shù)據(jù)中挑選圖片做出預(yù)測(cè)并顯示分類的結(jié)果。
代碼:
為了方便分析和改進(jìn)模型,針對(duì)訓(xùn)練模型繪制如圖4所示的混淆矩陣。觀察分析矩陣,整體上數(shù)據(jù)集中于對(duì)角線上,模型靈敏度和特異度較高,誤報(bào)和漏報(bào)的現(xiàn)象較少,模型較優(yōu)。其中鐵銹病分類預(yù)測(cè)的準(zhǔn)確率相對(duì)較差,是由于前期關(guān)于該病癥的數(shù)據(jù)收集不足。
圖4:驗(yàn)證集數(shù)據(jù)混淆矩陣
為了更好的展現(xiàn)大同黃花相關(guān)信息,提高系統(tǒng)的實(shí)時(shí)性與實(shí)用性,設(shè)計(jì)了網(wǎng)頁(yè)模塊。在本模塊共設(shè)計(jì)了“首頁(yè)”、“黃花植株病害”、“黃花產(chǎn)品推薦”和“大同黃花介紹”四個(gè)頁(yè)面。
首頁(yè)界面展示了大同黃花試驗(yàn)田的地域風(fēng)景。其中使用jQuery Easing Plugin提供的"easeOutExpo"動(dòng)畫效果實(shí)現(xiàn)字體切換;使用transform功能對(duì)文字或圖像進(jìn)行旋轉(zhuǎn)、縮放等調(diào)整;使用jquery.prettyPhoto.js插件實(shí)現(xiàn)圖片展示特效;使用jquery.themepunch.revolution.min.js插件實(shí)現(xiàn)響應(yīng)動(dòng)畫滑動(dòng)圖片切換效果。
黃花植株病害界面詳細(xì)介紹蚜蟲病、鐵銹病、根腐病、紅蜘蛛、褐斑病、葉枯病等黃花植株常見病害的相關(guān)信息以及防治措施,為黃花病株識(shí)別系統(tǒng)識(shí)別的病害知識(shí)提供信息,更好地服務(wù)于黃花種植的病害防范與治理。黃花植株病害頁(yè)面引入 jQuery 庫(kù),通過(guò)過(guò)渡平滑、元素位移等實(shí)現(xiàn)圖片漸隱和文字彈出效果;在setInterva方法中使用innerText輸入數(shù)值實(shí)現(xiàn)數(shù)值動(dòng)態(tài)變化的效果。
黃花產(chǎn)品推薦界面詳細(xì)分析介紹了黃花菜的營(yíng)養(yǎng)成分含量及其人文價(jià)值、藥用價(jià)值、實(shí)用價(jià)值、審美價(jià)值等,同時(shí)對(duì)黃花餅、黃花醬、大同特級(jí)黃花菜干貨、大同高檔火山黃花菜等大同特色黃花產(chǎn)品進(jìn)行宣傳推薦。其中通過(guò)導(dǎo)入產(chǎn)品鏈接實(shí)現(xiàn)購(gòu)買界面跳轉(zhuǎn);使用fadeInUp、fadeInRight等實(shí)現(xiàn)左右搖擺動(dòng)畫。
大同黃花介紹界面詳細(xì)介紹大同黃花地域優(yōu)勢(shì)、歷史背景、國(guó)家政策及其發(fā)展前景。
使用MATLAB App Designer第三方開源工具箱封裝設(shè)計(jì)系統(tǒng)界面。設(shè)計(jì)系統(tǒng)界面布局,運(yùn)用回調(diào)函數(shù)工具,將訓(xùn)練好的網(wǎng)絡(luò)參數(shù)導(dǎo)入在模型中,編寫載入、關(guān)閉等函數(shù)模塊并鏈接網(wǎng)頁(yè)頁(yè)面。然后采用MATLAB Compiler創(chuàng)建獨(dú)立的桌面應(yīng)用程序,配置MATLAB runtime運(yùn)行環(huán)境并運(yùn)行測(cè)試該系統(tǒng)。黃花病株智能識(shí)別系統(tǒng)主界面與部分測(cè)試結(jié)果如圖5所示。
圖5:黃花病株識(shí)別界面與測(cè)試結(jié)果
黃花病株智能識(shí)別系統(tǒng)主要功能是通過(guò)遷移學(xué)習(xí)SqueezeNet網(wǎng)絡(luò)模型,實(shí)現(xiàn)對(duì)蚜蟲病、葉枯病和鐵銹病三種黃花疾病進(jìn)行智能識(shí)別,以能實(shí)際應(yīng)用于大同黃花種植基地為最終目標(biāo)。目前,該系統(tǒng)主要針對(duì)黃花植株進(jìn)行識(shí)別預(yù)測(cè),但其設(shè)計(jì)思路和方法同樣適用于其他植株的病害識(shí)別檢測(cè),具有良好的擴(kuò)展性和推廣性。今后將搭建黃花病株智能識(shí)別手機(jī)APP、運(yùn)用物聯(lián)網(wǎng)技術(shù)配置農(nóng)田攝像頭實(shí)時(shí)捕獲農(nóng)田數(shù)據(jù)并開發(fā)預(yù)警系統(tǒng),實(shí)現(xiàn)對(duì)黃花農(nóng)田的實(shí)時(shí)監(jiān)管,使之在農(nóng)業(yè)領(lǐng)域擁有更廣闊的應(yīng)用前景。