王煥鑫,沈志豪,劉 泉,劉金江
(1.南陽師范學院生命科學與農業(yè)工程學院,河南 南陽 473000;2.南陽師范學院計算機科學與技術學院,河南 南陽 473000)
受全球氣候和環(huán)境因素的影響,農作物病害頻繁發(fā)生,成為影響農業(yè)經濟作物產量和質量的主要危害之一。農作物病害的發(fā)病率越來越高,病害也越來越復雜,因此,研究農作物病害的預防、診斷和補救措施顯得尤為重要。傳統(tǒng)的病害識別方法完全依賴于工作者的肉眼觀察以及個人經驗判斷,具有主觀性強、識別效率低等缺點。因此,實現(xiàn)對農作物病害的快速準確識別具有重要意義。
隨著機器學習及其相關行業(yè)技術不斷革新,越來越多的研究者使用機器學習技術鑒定農作物病害?;趥鹘y(tǒng)機器學習的農作物病害分類識別的實現(xiàn)需要先提取圖像的顏色、形狀、紋理等特征,再使用支持向量機、人工神經網絡等進行分類[1?2]。宋凱等[3]針對玉米葉片病害特點,使用機器學習方法分割圖像并提取病灶特征,最后使用支持向量機對玉米葉部病害進行分類,結果表明,支持向量機具有良好的分類能力。張建華等[4]提出了一種在自然環(huán)境條件下基于棉花病斑特征,使用粗糙集和BP神經網絡對棉花病害識別的方法,實現(xiàn)特征向量的優(yōu)選,且對棉花病害的平均識別正確率達到92.72%。然而機器學習這種方法對設備要求較高,無法應用于多個場景。近年來,深度學習技術不斷發(fā)展并廣泛應用在農作物病害識別方面。不同學者在對作物病害識別準確率提升方面使用了不同的方法,如使用AlexNet 和GoogLeNet 等網絡[5]、數(shù)據(jù)集擴充[6]或引入新的損失函數(shù)[7]等。但基于AlexNet[8?9]、VGGNet[10?11]、ResNet[12?14]等網絡的農作物病害圖像識別模型參數(shù)量大,難以在實際農業(yè)生產中部署到計算資源有限的低性能移動端設備。研究者們進一步提出了輕量型網絡模型結構,如MobileNet[15]、ShuffleNet[16]等,以及輕量型網絡模型常用的設計結構深度可分離卷積(Depthwise separable convolution,DWConv)和分組卷積(Group convolution,GConv),為實際生產過程中模型部署在移動端提供了有力支撐[17?20]。在此基礎上,提出一種改進MobileNetV2 輕量級網絡結構,改進模型在保持高準確率的同時減少模型參數(shù),降低對移動設備的性能要求,為輕量型農作物病害識別模型部署在低性能設備上的相關研究提供參考。
從公開數(shù)據(jù)集PlantVillage 中挑選出玉米、辣椒、土豆和番茄4 種常見農作物圖像數(shù)據(jù)作為試驗材料。數(shù)據(jù)集包含4 種常見農作物(玉米、辣椒、番茄、馬鈴薯)的15 種病害葉片圖像以及4 種健康圖像,共計26 639 張。原始的葉片病害數(shù)據(jù)集的詳細數(shù)據(jù)情況如表1所示。
表1 數(shù)據(jù)集詳細信息Tab.1 Data set details張
續(xù)表1 數(shù)據(jù)集詳細信息Tab.1(Continued)Data set details張
因為部分樣本數(shù)量分布極不均衡,數(shù)量差距過大,若使用差異過大的數(shù)據(jù)集對模型訓練,易導致在若干次迭代訓練中積累較大的誤差,故本研究對數(shù)據(jù)集進行平衡處理以便于后續(xù)的模型訓練及分類識別。根據(jù)過抽樣方法使用Python 腳本對原始數(shù)據(jù)集樣本數(shù)量過少的類別進行隨機鏡像、隨機旋轉等操作,以模擬實際使用中不同的拍攝角度,對樣本數(shù)量過多的類別進行隨機選取,將每種類別的圖像數(shù)量維持在1 000 張上下,優(yōu)化數(shù)據(jù)集。最終獲得樣本數(shù)量足夠而且分布較為均衡的農作物葉片病害數(shù)據(jù)集,其中葉片病害圖像總共19 738 張。而后根據(jù)數(shù)據(jù)集的劃分,使用Python 腳本隨機將平衡后的數(shù)據(jù)集按照8∶1∶1的比例劃分為相應的訓練集、驗證集和測試集(表1)。
為追求更高的準確度,在不損失網絡性能的前提下,改進MobileNetV2 來適當減少網絡的計算參數(shù),其對比結果如下。
1.3.1 MobileNetV2 MobileNetV2[21]是 2018 年Google 公司在MobileNetV1 的基礎上進行改進所提出的輕量化網絡模型結構并構建了比V1 版本更深層的模型結構,同時準確度更高。MobileNetV2 模型首先引進了更多的結構設計,因此相比較下訓練速度下降,需要更長的時間進行訓練;其次,模型的參數(shù)數(shù)量相比于MobileNetV1增加了1倍以上,增加了內存和計算負擔。雖然MobileNetV2 相比于MobileNetV1 提高了準確性,但是相對于更深層次的神經網絡,它的精度仍然存在一定的限制。MobileNetV2所使用的基本模塊如圖1所示。在圖1中,當輸入步距參數(shù)為1時使用模塊1進行網絡構建,輸入特征圖維度與輸出特征圖維度相同。當輸入步距參數(shù)為2 時,使用模塊2 進行網絡構建,代替池化層,起到減少網絡參數(shù)量的作用。
圖1 MobileNetV2基本模塊Fig.1 MobileNetV2 basic modules
1.3.2 改進模型的設計 因本試驗的數(shù)據(jù)集中,農作物葉片病害有著病斑區(qū)域分布不均勻、病斑大小不一等特點,所以MobileNet易出現(xiàn)感興趣區(qū)域提取不足、降維過程丟失部分特征等缺點,因此針對以上的不足之處,以MobileNetV2 為骨干網絡,對其進行改進。改進MobileNetV2 模型的bottleneck 如圖2所示,與初始MobileNetV2 相比,在模塊中引入了高效通道注意力(ECA)機制,提升感興趣區(qū)域特征的提取能力;使用注意力特征融合(AFF)模塊以替換簡單的特征層相加,減少在特征融合時造成小目標信息的丟失;通過模型剪枝,將模型中冗余的層除去,以提升模型性能。
圖2 ECA_AFF_bottleneck模塊Fig.2 ECA_AFF_bottleneck module
1.3.2.1 ECA 模塊 注意力機制是將重要的特征賦予更大的權重,使其在訓練過程中被網絡所注重。普通的通道注意力機制可以有效提升網絡性能,但較為復雜的注意力模塊也會使網絡的參數(shù)量增加。因此,WANG 等[22]提出一種新的ECA 模塊,如圖3所示。
圖3 ECA模塊Fig.3 ECA module
該模塊去掉了降維的卷積層,直接將輸入的特征圖進行全局平均池化(Global average pooling,GAP),避免通道降維對通道注意力學習帶來的負面影響。接著使用卷積核大小為K 的1D 卷積將每個通道與其臨近K 個通道進行卷積操作,實現(xiàn)局部跨通道間的信息交互。1.3.2.2 AFF 模塊 為解決普通的特征融合結構中應用場景有限、容易在融合時損失小目標的特征、無法應對語義及尺度不一致的特征等缺點,引入了AFF 模塊來代替MobileNetV2 基本模塊中簡單的疊加特征融合。AFF 是DAI等[23]提出的一種新的特征融合結構,AFF模塊如圖4所示。
圖4 AFF模塊詳細結構Fig.4 Detailed structure of AFF module
AFF模塊可以表示為式(1),其中Z是融合后的特征,X是特征映射,Y是殘差分支,?表示元素相乘,M(X+Y)表示融合權重,取值范圍在0~1。圖4b的AFF 模塊中虛線表示1-M(X+Y),同樣取值范圍在0~1,使得網絡能夠在X與Y之間進行軟選擇或加權平均化。
為解決病斑圖像分布不均勻以及部分樣本的病斑圖像區(qū)域過小的問題,將傳統(tǒng)的特征融合模塊替換為AFF 模塊,不僅能夠避免不同尺度之間特征融合所帶來的問題,同時AFF 模塊中的MS-CAM 模塊結合了全局信息以及局部信息,能夠避免簡單的特征相加或拼接造成的小目標特征丟失。
1.3.2.3 模型剪枝 為解決深度神經網絡中存在巨大的計算冗余,從模型結構與卷積方式的角度對模型進行輕量化改進,通過模型剪枝刪減掉模型中冗余的濾波器以達到提高模型性能、減少參數(shù)量以及降低過擬合的風險。主要步驟包括模型載入、濾波器重要性評分、模型剪裁、模型微調4個步驟。剪枝算法流程如下:
①使用改進MobileNetV2 模型訓練初始的農作物病害識別模型。
②計算模型中bottleneck 的所有濾波器所對應的重要性評分,如式(2):
其中,mi為第i個濾波器的重要性評分;ai為第i個濾波器對應的BN層的縮放系數(shù);| |Wi為濾波器i中第j個卷積核的L1范數(shù)大??;k為卷積核數(shù)量。
③將bottleneck的評分相加,對重要性評分最低的bottleneck進行刪除,壓縮模型。
④在病害數(shù)據(jù)集上驗證模型性能,若性能降低則將模型進行微調后重復②③,若評估滿足要求則停止剪枝。算法流程如圖5所示。
圖5 改進MobileNetV2的剪枝流程Fig.5 Improved MobileNetV2 pruning process
經由以上層數(shù)(layers)調整、bottleneck 模塊優(yōu)化和模型剪枝操作步驟優(yōu)化后,所設計改進的農作物病害識別模型如圖6所示。
圖6 MobileNetV2與改進MobileNetV2Fig.6 MobileNetV2 and improved MobileNetV2
1.3.3 模型評價指標 為了客觀地對模型性能進行評價,采用混淆矩陣以及3 種評價指標來評估[24]。準確率(Accuracy,Acc)、查準率(Precision,P)、查全率(Recall,R)計算公式如下:
其中,TPi表示第i類已經被正確分類過的樣本數(shù)量;FNi表示第i類已被錯誤分類的總的樣本數(shù)量;FPi表示除第i類樣本之外,被分類為第i類的已存樣本數(shù)量;TNi表示除第i類樣本外,已經分類正確的樣本數(shù)量。
對MobileNetV2 網絡進行改進,并利用其對PlantVillage 開源葉片數(shù)據(jù)進行分類。對經典網絡MobileNetV2、ShuffleNetV2-0.5X、EfficientNet-b0 進行測試,訓練過程損失值曲線與驗證集準確率曲線如圖7所示。
通過圖7 可知,在經過第13 個輪次訓練后,各模型均趨于穩(wěn)定,訓練集損失值逐漸收斂,初始MobileNetV2 的損失值穩(wěn)定在0.21,ShuffleNetV2-0.5X、EfficientNet-b0 網絡穩(wěn)定在0.20,而改進MobileNetV2 模型則低于其余3 種模型,穩(wěn)定在0.17左右,說明改進MobileNetV2 模型穩(wěn)定性高于其余3種模型。在圖7b 的驗證集準確率曲線中,從第13個輪次開始,改進MobileNetV2 模型的識別準確率明顯高于其余3 種模型,達到了98.4%,說明改進MobileNetV2模型的泛化能力更強。
圖7 不同網絡模型的損失值(a)和準確率(b)Fig.7 Loss values(a)and accuracy(b)of different network models
如表2所示,改進MobileNetV2模型在最高準確率、平均查準率和平均查全率方面都是最高,參數(shù)量僅高于ShuffleNetV2-0.5X,但準確率高于其1.1個百分點。對比初始 MobileNetV2,改進MobileNetV2 模型在參數(shù)量方面低于初始模型15.37%,且準確率提高了0.9 個百分點,原因在于去除冗余層,同時在模塊內加入了ECA 模塊與AFF 模塊,達到了提升準確率的同時降低模型對內存的消耗,體現(xiàn)了改進模型的優(yōu)越性。
表2 4種網絡模型評價指標對比Tab.2 Comparison of evaluation indexes of four network models
使用改進MobileNetV2 模型對測試集進行測試,各分類結果的評價結果如表3 所示。由表3 可知,各農作物病害識別的準確率、查準率和查全率都保持在較高水平,其中準確率保持在88.6%~100.0%,平均為97.9%;查準率保持在94.1%~100.0%,平均為98.0%;查全率保持在88.7%~100.0%,平均為97.9%。表明改進MobileNetV2模型在既定的數(shù)據(jù)集中表現(xiàn)良好,可以應用于農作物病害識別。
表3 改進MobileNetV2模型對測試集的分類結果Tab.3 Classification results of the improved MobileNetV2 model on the test set%
續(xù)表3 改進MobileNetV2模型對測試集的分類結果Tab.3(Continued)Classification results of the improved MobileNetV2 model on the test set%
混淆矩陣如圖8 所示,其中交叉部分代表識別正確的分類,其余部分則表示識別錯誤的種類。從圖8 可知,準確率較低的主要是番茄晚疫病和玉米北方葉枯病,其中番茄晚疫病主要被錯誤識別為馬鈴薯晚疫病與番茄早疫病,而玉米北方葉枯病主要被錯誤識別為玉米灰葉斑病和銹病。之所以造成識別錯誤,是因為葉片的相似度較高,一定程度上造成誤判。
本試驗研究了輕量級卷積神經網絡的農作物病害圖像識別技術,在對實際應用中輕量級網絡MobileNetV2 所存在的一些問題進行分析后,針對性地提出了改進方案:①加入ECA 注意力機制,緩解特征提取過程中出現(xiàn)的感興趣區(qū)域特征提取不足的情況,增加網絡的特征提取能力;②使用AFF模塊替換簡單的特征相加,減少特征融合時造成的特征丟失,提高模型對小尺度目標的檢測能力;③減少模型層數(shù),降低模型參數(shù)量,以降低其對部署設備的性能要求。結果表明,改進的方案能夠有效地提升模型的識別能力,與經典的輕量型MobileNetV2、ShuffleNetV2-0.5X、EfficientNet-b0 相比,改進MobileNetV2 模型在性能方面更好,識別準確率達到了98.4%。
因此,未來的研究目標將著眼于如何在復雜背景下,不降低農作物病害識別準確率的同時降低模型參數(shù),減少對設備的內存消耗,以便在低性能設備上部署,進一步提升模型的實際生產應用價值。