曹躍騰,朱學(xué)巖,趙燕東,陳鋒軍
(1.北京林業(yè)大學(xué)工學(xué)院,北京市,100083;2.城鄉(xiāng)生態(tài)環(huán)境北京實驗室,北京市,100083;3.林業(yè)裝備與自動化國家林業(yè)局重點實驗室,北京市,100083)
植物病蟲害的種類繁多,傳統(tǒng)依靠農(nóng)林專家觀察識別植物病蟲害種類的方式速度慢、主觀性強且不易獲取,無法準(zhǔn)確快速的識別病蟲害種類并給出具體應(yīng)對措施,嚴(yán)重限制了農(nóng)林業(yè)的發(fā)展[1]??焖?、準(zhǔn)確且高效的識別植物病蟲害種類并針對性的給出應(yīng)對措施一直是農(nóng)林業(yè)迫切需要實現(xiàn)的目標(biāo),設(shè)計移動端植物病蟲害識別算法更是重中之重[2-3]。植物葉片作為病蟲害的高發(fā)區(qū)域具有圖像獲取方便的特點,現(xiàn)已成為植物病蟲害識別的關(guān)鍵器官之一[4-5]。
為解決植物病蟲害種類自動識別的問題,國內(nèi)外研究者嘗試采用傳統(tǒng)機器視覺和深度學(xué)習(xí)技術(shù)對植物病蟲害種類進行識別。基于傳統(tǒng)機器視覺[6]的植物病蟲害識別方法一般在提取顏色、形狀和紋理等淺層特征后,訓(xùn)練支持向量機、BP神經(jīng)網(wǎng)絡(luò)等實現(xiàn)病蟲害識別。張善文等[7]使用稀疏表示對紫薇等植物病害葉片進行識別,達到了92.41%的準(zhǔn)確率;馬超等[8]使用灰度直方圖特征結(jié)合SVM對水稻病害葉片進行識別,取得了98.4%的準(zhǔn)確率。然而,受環(huán)境和植物葉片病蟲害區(qū)域特征不穩(wěn)定等因素影響,導(dǎo)致基于傳統(tǒng)機器視覺的植物病蟲害識別方法實際應(yīng)用中效果不甚理想[9]。
基于深度學(xué)習(xí)的植物病蟲害識別方法一般是通過卷積神經(jīng)網(wǎng)絡(luò)[10]提取植物葉片的深層特征進行病蟲害的識別,目前此類方法已經(jīng)被充分應(yīng)用于茶葉[11]、番茄[12]和棉花[13]等植物的病蟲害識別。Srdjan等[14]嘗試使用VGG16模型對桃白粉病、蘋果銹病和櫻桃白粉病等16種植物病蟲害葉片進行識別,準(zhǔn)確率達到96.3%;Ferentinos等[15]通過對比AlexNet、GooLeNet、OverFeat和VGG模型對蘋果雪松銹病、玉米銹病、黃瓜霜霉病等58種植物病蟲害的識別結(jié)果,確定VGG模型最優(yōu),準(zhǔn)確率達到99.53%。與傳統(tǒng)機器視覺方法相比,基于深度學(xué)習(xí)的植物病蟲害識別方法能夠抵抗環(huán)境因素的影響,魯棒性更強且具有更高的識別準(zhǔn)確率。
基于深度學(xué)習(xí)的圖像分類模型ResNet具有分類穩(wěn)定的特點,目前已被應(yīng)用于葡萄、番茄、黃瓜和水稻的病蟲害識別。何欣等[16]使用ResNet對葡萄葉部病害圖像進行識別,準(zhǔn)確率為90.83%;方晨晨等[17]使用ResNet對番茄葉部病害圖像進行識別,平均準(zhǔn)確率為98.58%。先前的研究已經(jīng)表明,在植物病蟲害識別研究中,ResNet模型準(zhǔn)確率高且性能穩(wěn)定[18],是本文植物病蟲害識別的理想算法。然而,ResNet[19]雖在植物病蟲害識別領(lǐng)域取得了可信賴的效果,但該模型參數(shù)量多且模型大,不適合部署到移動端。
為解決移動端植物病蟲害識別最重要的算法設(shè)計問題,本文以ResNet18模型為基礎(chǔ),通過卷積核尺寸調(diào)整、殘差塊優(yōu)化和模型剪枝[20-23]優(yōu)化ResNet18模型,設(shè)計輕量化植物病蟲害識別模型Simplify-ResNet。
2020年4—7月使用榮耀7手機于河南鄢陵和山東棗莊的果蔬采摘園采集番茄、辣椒、馬鈴薯、蘋果的病蟲害圖像2 133幅,大小為5 344像素×4 016像素。采用隨機裁剪、翻轉(zhuǎn)、亮度調(diào)整、對比度調(diào)整和加入噪聲等方式擴充人工采集的2 133幅原始圖像數(shù)據(jù)至24 831幅,以提高模型對光照、遮擋和拍攝角度等的魯棒性[24-25]。為豐富植物葉片病蟲害圖像數(shù)據(jù)集,將人工采集圖像與PlantVillage數(shù)據(jù)集融合,融合后的數(shù)據(jù)集共包含圖像57 864幅,涉及10種植物,22類病蟲害和3種病蟲害程度。
按8∶1∶1的比例劃分植物葉片病蟲害程度識別數(shù)據(jù)集為訓(xùn)練集、驗證集和測試集,分別包含圖像46 292 幅、5 786幅和5 786幅。植物葉片病蟲害圖像數(shù)據(jù)集的部分圖像如圖1所示。
圖1 植物葉片病蟲害圖像數(shù)據(jù)集Fig.1 Data set of plant leaf pests and disease images
ResNet18模型的輸入圖像大小為224像素×224像素,主通道共包含17個卷積層和1個全連接層,其基本結(jié)構(gòu)如圖2所示。17個卷積層的卷積核大小為7×7和3×3,起到提取植物病蟲害圖像特征的作用。當(dāng)植物病蟲害圖像輸入ResNet18模型后,大小為7×7卷積層會首先提取輸入圖像的底層特征;之后四組殘差塊會進行高層特征的提取,并采用捷徑通道來消除卷積層堆疊引起的梯度消失、爆炸和網(wǎng)絡(luò)退化的問題;最后通過Softmax層根據(jù)提取特征來對葉片圖像進行病蟲害程度識別。
圖2 ResNet網(wǎng)絡(luò)模型Fig.2 ResNet network model
準(zhǔn)確識別植物病蟲害圖像類別,ResNet18模型優(yōu)勢非常顯著,但在移動端部署中發(fā)現(xiàn),ResNet18同時存在著不可避免的問題:(1)底層卷積層參數(shù)提取量龐大;(2)模型訓(xùn)練緩慢;(3)訓(xùn)練后的模型體積臃腫。為此,調(diào)整ResNet18模型底層卷積尺寸,改進模型殘差塊結(jié)構(gòu),對訓(xùn)練完成后模型進行迭代剪枝,設(shè)計輕量化植物病蟲害程度識別模型Simplify-ResNet。
2.2.1 卷積核尺寸調(diào)整
在深度卷積神經(jīng)網(wǎng)絡(luò)中,大尺寸卷積核雖能提取圖像中更復(fù)雜的特征,但存在參數(shù)量大的問題,不適合應(yīng)用于移動端植物病蟲害識別研究。而小尺寸卷積核雖參數(shù)量較小,但存在所提取特征無法全面表達圖像信息的問題。為在盡量少的損失模型精度的前提下降低參數(shù)量,選用5×5卷積層來替換原有的7×7卷積,平衡模型參數(shù)和特征表達。
2.2.2 殘差塊結(jié)構(gòu)優(yōu)化
為減少ResNet18網(wǎng)絡(luò)模型參數(shù)量,對殘差塊的結(jié)構(gòu)進行優(yōu)化,采用1×1卷積、3×3卷積和1×1卷積串聯(lián)的瓶頸結(jié)構(gòu)代替原有兩個3×3卷積串聯(lián)的結(jié)構(gòu)。改進前的殘差塊結(jié)構(gòu)和改進后的殘差塊結(jié)構(gòu)如圖3所示。
(a)修改前結(jié)構(gòu)
以輸入256維的數(shù)據(jù)為例,如果使用改進前的殘差塊結(jié)構(gòu)進行特征提取,所需的參數(shù)量為1 179 648;而如果使用改進后的殘差結(jié)構(gòu)進行特征提取,所需參數(shù)量僅為69 632。由數(shù)據(jù)對比結(jié)果可知,本文改進的殘差塊結(jié)構(gòu)特征提取過程所需的參數(shù)量相比原有殘差結(jié)構(gòu)降低了94%。改進后的殘差塊結(jié)構(gòu)計算量顯著降低,有利于模型訓(xùn)練速度的提高、模型大小的壓縮和泛化性能的提高。
2.2.3 模型剪枝
本文采用模型剪枝技術(shù)刪減掉模型中冗余的濾波器實現(xiàn)模型運行效率的提高、參數(shù)量的降低以及過擬合風(fēng)險的降低。模型剪枝主要包含模型載入、濾波器重要性評分、剪枝閾值計算、模型裁剪及后處理五個步驟。當(dāng)載入訓(xùn)練好的模型后,首先計算模型中所有的濾波器的重要性評分,如式(1)所示。
(1)
式中:mi——第i個濾波器的重要性評分;
αi——第i個濾波器對應(yīng)的BN層的縮放系數(shù);
Ei——濾波器i的所有卷積核的L1范數(shù)之和;
|Wj|——濾波器i中第j個卷積核的L1范數(shù)大?。?/p>
k——濾波器i中卷積核的數(shù)量。
其次,計算模型剪枝的閾值,如式(2)所示。
θ=sortp(mi)
(2)
式中:θ——模型剪枝的閾值;
mi——第i個濾波器的重要性評分;
sort——對mi進行升序排序;
p——剪枝率,p=0.7。
然后,根據(jù)計算得到的模型剪枝閾值θ,刪除所有評分低于剪枝閾值θ的濾波器。模型剪枝的前后對比具體如圖4所示。
圖4 模型剪枝前后對比圖Fig.4 Comparison of model before and after pruning
最后,測試剪枝后模型的準(zhǔn)確率和速度等性能指標(biāo)。如果剪枝后模型準(zhǔn)確率降低,可通過對剪枝之后的模型進行再訓(xùn)練等操作進行準(zhǔn)確率的提升。
經(jīng)由以上卷積核尺寸調(diào)整、殘差塊優(yōu)化和模型剪枝操作步驟優(yōu)化后,所設(shè)計改進后的植物病蟲害識別模型Simplify-ResNet模型如圖5所示。
圖5 Simpilfy-ResNet模型結(jié)構(gòu)示意圖Fig.5 Schematic diagram of Simplify-ResNet model structure
所設(shè)計Simplify-ResNet模型訓(xùn)練硬件平臺為AMD(R)2600X @3.60 GHz CPU,16GB內(nèi)存,NVIDIA GeForce 1070Ti顯卡,軟件平臺為Windows 10,TensorFlow 1.10.1和Keras 2.2.4。模型訓(xùn)練過程設(shè)置學(xué)習(xí)率為0.001,批處理量為16,采用AdamOptimizer優(yōu)化器更新模型參數(shù)。
本研究Simplify-ResNet模型識別植物病蟲害需同時考慮識別精度和訓(xùn)練后的模型大小,故選用精確率P、召回率R、F1分?jǐn)?shù)和訓(xùn)練模型大小M定量評價本文算法,如式(3)~式(6)所示。
(3)
(4)
(5)
(6)
式中:TP——被正確識別為正例圖像個數(shù),即正確識別數(shù);
FP——錯誤的識別為正例圖像的個數(shù),即錯誤識別數(shù);
FN——錯誤的識別為負(fù)例圖像的個數(shù),即正例丟失數(shù);
C0——輸出通道數(shù);
Ci——輸入通道數(shù);
kw——卷積核寬;
kh——卷積核高。
為確定本文模型改進中所采用的卷積核尺寸調(diào)整、殘差塊優(yōu)化和模型剪枝操作對ResNet模型植物病蟲害識別能力的具體提升效果,設(shè)計測試試驗如表1所示,其中方案5為本文Simplify-ResNet模型。
表1 測試設(shè)計方案Tab.1 Experimental design
由表2測試試驗結(jié)果可知,方案5本文Simplify-ResNet模型的病蟲害識別結(jié)果最佳,準(zhǔn)確率達到94.34%,且模型占用內(nèi)存大小僅為36.14 Mb,有效的實現(xiàn)了在保證模型準(zhǔn)確率的前提下進行輕量化設(shè)計的目標(biāo)。
表2 各試驗方案表現(xiàn)效果Tab.2 Performance effect of each experimental scheme
如方案1和方案2,在采用瓶頸結(jié)構(gòu)替代捷徑結(jié)構(gòu)后,模型的準(zhǔn)確率P、召回率R、F1分?jǐn)?shù)分別提升6.31%、2.86%和4.49,內(nèi)存大小M增加5.3 Mb。如方案1和方案3,在使用5×5卷積核替代原有底層 7×7卷積核后,模型的準(zhǔn)確率P、召回率R、F1分?jǐn)?shù)分別下降1.61%、1.91%和1.76,內(nèi)存大小M減小26 Mb。如方案3和方案4,采用5×5卷積核替代原有底層7×7卷積核,采用瓶頸結(jié)構(gòu)替代捷徑結(jié)構(gòu)使模型能夠兼顧準(zhǔn)確率和模型大小。
如方案5,經(jīng)過剪枝后,模型準(zhǔn)確率P、召回率R、F1分?jǐn)?shù)和模型大小分別為94.79%、94.75%、94.54和36.14 Mb。與方案4相比,剪枝后模型大小減少21.66 Mb,壓縮率為62.53%,表明模型剪枝可以有效降低模型的內(nèi)存占用。與方案4相比,剪枝后模型準(zhǔn)確率P、召回率R和F1分?jǐn)?shù)分別提升了4.36%、5.52%和4.71,表明模型剪枝可在一定程度上提升模型的性能。
以測試集5 786幅植物病蟲害圖像為實驗數(shù)據(jù),將本文Simplify-ResNet模型與LeNet、AlexNet和MobileNet模型進行對比分析。不同方法對測試集植物病蟲害圖像的識別結(jié)果如表3所示。
表3 Simplify-ResNet與其他方法對比Tab.3 Simplify-ResNet compared with other methods
由表3不同方法的實驗結(jié)果可知,本文Simplify-ResNet模型的植物病蟲害識別性能更加均衡,平均識別時間為48 ms,平均內(nèi)存大小為36.14 Mb,平均識別準(zhǔn)確率為92.45%。與LeNet模型相比,Simplify-ResNet模型所占內(nèi)存大小雖遠(yuǎn)高于LeNet模型,但36.14 Mb的內(nèi)存大小已可滿足移動端部署的實際需求;Simplify-ResNet模型的準(zhǔn)確率比LeNet模型高18.3%。與Multi-Scale AlexNet模型相比,Simplify-ResNet模型的識別時間減少27 ms,準(zhǔn)確率高出7.45%,模型內(nèi)存大小大6.24 Mb。與MobileNet模型相比,Simplify-ResNet模型的識別時間減少14 ms,準(zhǔn)確率高出1.2%,模型內(nèi)存大小減小1.76 Mb。對比實驗結(jié)果表明,本文設(shè)計的Simplify-ResNet模型在移動端植物病蟲害識別中具有更加均衡的性能,特別是在識別準(zhǔn)確率這一指標(biāo)上,具有明顯優(yōu)勢。
本文以設(shè)計移動端植物病蟲害識別算法為研究目標(biāo),根據(jù)ResNet網(wǎng)絡(luò)準(zhǔn)確率高且性能穩(wěn)定的特點,選取ResNet18為基礎(chǔ)網(wǎng)絡(luò)模型。針對ResNet18模型存在的參數(shù)量大和訓(xùn)練后的模型體積較大問題,調(diào)整ResNet18模型底層卷積尺寸,改進模型殘差塊結(jié)構(gòu),對訓(xùn)練后的模型進行剪枝操作,設(shè)計輕量化移動端病蟲害識別模型Simplify-ResNet。
設(shè)計試驗測試調(diào)整底層卷積尺寸、改進殘差塊結(jié)構(gòu)和模型剪枝操作對模型性能的實際提高能力,證明了調(diào)整底層卷積尺寸和模型剪枝可以有效減小模型參數(shù)量,改進殘差塊結(jié)構(gòu)可有效提升模型性能。本文算法對測試集植物病蟲害圖像的識別準(zhǔn)確率為92.45%,識別時間為48 ms,模型大小為36.14 Mb。與LeNet、AlexNet和MobileNet模型進行對比,本文Simplify-ResNet模型的整體性能更優(yōu)。本文為移動端植物病蟲害識別解決了最重要的算法設(shè)計問題,接下來將進行移動端植物病蟲害識別儀的開發(fā)。