?

基于輕量級CNN的作物病蟲害識別及安卓端應用

2023-01-19 03:54牛學德高丙朋任榮榮徐明明
關鍵詞:農作物準確率卷積

牛學德,高丙朋*,任榮榮,徐明明

(1. 新疆大學 電氣工程學院,新疆 烏魯木齊 830047;2.四川信息職業技術學院 智能控制學院,四川 廣元 628040)

農作物病蟲害的發生對全球范圍的農業產量都會產生消極影響,假如不能夠及時發現和識別作物病蟲害,并采取有效治療措施,就可能發生糧食供應不足的風險。因此,在農作物的生產過程中,能夠迅速準確地識別出病蟲害的種類,并采取及時有效的防治措施,對于提升農作物產量、提高作物經濟效益具有重要意義[1]。農作物病蟲害的識別方法多種多樣,以前大多數依靠人工鑒別,請當地相關農業專家或者植保工作人員在農場觀察,這種識別方法效率低、難以在大面積范圍里開展,還容易受到工作疲勞、經驗不足等因素的影響,降低識別準確率[2],并且很多病蟲害早期特征不明顯,易被誤識別,導致錯過最佳防治時期。

2018年,中共中央、國務院印發了《鄉村振興戰略規劃(2018—2022年)》,提出要大力發展數字農業,實施智慧農業工程。近年來,隨著深度學習在各種視覺任務中的優越表現[3],基于深度學習的農作物病蟲害分類研究成為農業信息感知領域中的熱點[4]。Zhang等[5]提出改進的GoogLeNet網絡模型,對來自公開數據集和網絡的9種類別的玉米葉部圖片進行訓練和識別,準確率達到98.9%;陳善雄等[6]采用MSER和CNN結合的區域檢測方法并引入兩級Inception結構,通過對8種蕎麥病害圖像的識別,證明其方法在速度和精度上具有良好性能;鮑文霞等[7]設計一種多路卷積神經網絡來提取小麥麥穗圖片的3個通道特征,通過特征融合將麥穗圖片語義特征獲得更高的辨識性,對單株麥穗赤霉病的識別準確率達到100%;任守綱等[8]通過將上采樣和卷積操作相結合,進而提出一種反卷積引導的VGG網絡模型,對于番茄病害圖像的識別精度可以達到99.19%;劉文波等[9]提出一種改進的SOLOv2實例分割算法,在語義與掩膜分支上對番茄葉部病害圖像進行分割與檢測,在高精度的同時縮短了識別用時;Karthik等[10]提出一種注意力機制與深度殘差網絡結合的方法,在3種番茄葉部病害圖像數據上進行5倍交叉驗證,能夠達到98%的識別準確率;Krishnaswamy等[11]提出將VGG16作為模型的第8卷積層來提取圖像特征,通過構建多級支持向量機對茄子葉部病害進行識別,取得了較好的分類效果;Verma等[12]通過構建多種結構的膠囊網絡對馬鈴薯葉部病害進行識別,取得了91.83%的識別準確率。

以上研究均利用卷積神經網絡模型在農作物病蟲害識別任務上取得了較好的分類效果,然而,它們都是以單一農作物葉片的病蟲害作為研究對象進行識別,具有一定的局限性,通常情況下真實的農業生產環境中會同時種植多種農作物。此外,以上研究雖然從不同角度著手設計并訓練出有效的農作物病蟲害分類網絡模型,卻沒有考慮以解決模型的應用落地問題,未將訓練好的網絡模型應用到移動終端。

本文針對不同農作物的多種葉部病蟲害圖像數據集較小的問題,提出一種將MobileNetV3網絡和遷移學習思想結合起來的輕量級卷積神經網絡模型,通過采用RAdam優化器保證其對農作物病蟲害分類任務具有較高準確率的同時占用內存更小,再調用腳本語言接口和推理引擎框架將訓練好的模型部署到Android手機應用端,實現移動端對農作物葉片病蟲害的便捷智能化診斷,促進農業生產朝著智能化方向發展[13-15]。

1 材料與方法

1.1 數據集

本文所使用的農作物病蟲害數據集來自Plant Village工程數據庫,該數據庫是在實驗室環境下采集的具有相同背景葉部病害圖集,包含蘋果瘡痂病、玉米灰斑病、南瓜白粉病等14種作物共38類葉部圖片數據,各類葉部圖像數量在275至5 357張之間不等[16]。本文選取番茄、玉米、馬鈴薯3種農作物的17類葉部病蟲害圖像為研究對象,病蟲害圖像樣例如圖1所示。對部分質量較差的樣本圖像進行篩選淘汰,保留的17類病蟲害圖像為21 386張;又考慮到緩解部分樣本不均衡問題,通過python腳本語言對部分圖片進行數據增強操作,最終將獲得的23 790張圖片作為研究數據。為了提高模型的處理性能,圖片尺寸統一修改為224×224,在多次實驗的基礎上,將數據集中90%的圖片作為訓練集,另外10%作為測試集。

標號001—010依次為番茄細菌性斑點病樣本、早疫病樣本、健康樣本、晚疫病樣本、葉霉病樣本、斑枯病樣本、二斑葉螨病樣本、輪斑病樣本、花葉病樣本、黃曲葉病樣本;011—014依次為玉米灰斑病樣本、銹病樣本、健康樣本、大斑病樣本;015—017依次為馬鈴薯早疫病樣本、健康樣本、晚疫病樣本。圖1 病蟲害圖像示例Fig. 1 Examples of pests and diseases images

1.2 MobileNet網絡模型

針對傳統深度卷積神經網絡模型內存需求過大、計算量也大,導致在嵌入式設備或者移動式設備上運行困難的問題,谷歌公司提出了輕量級卷積神經網絡MobileNet,MobileNetV3網絡模型[17]在MobileNetV1的深度可分離卷積和MobileNetV2的倒殘差結構基礎上進行改進,在網絡結構上添加了輕量級的SE(squeeze-and-excitation)注意力機制,模塊結構如圖2所示。該機制源自SE-Net模型[18],核心思想是通過顯式地建模網絡卷積特征通道之間的相互依賴關系來提高網絡所產生表示的質量,網絡模型能夠自動學習到每個特征通道的重要程度,然后更多關注有用的特征,并抑制對當前任務用處不大的特征,從而提高網絡模型的檢測效率[19]。

圖2 改進后的模塊結構Fig. 2 Improved module structure diagram

MobileNetV3網絡使用NAS(neual archtecture serach)搜索參數技術,重新設計耗時層參數。對網絡每一層的推理時間進行分析,針對耗時的層結構做了優化,減少了第一個卷積層的卷積核個數,由32減為16。同時對網絡搜索的最后一步進行精簡,改進了MobileNetV2網絡的后端部分[20],通過將平均池化(Avg Pooling)提前,減少網絡計算量,省略Squeeze操作步驟,直接使用1×1卷積,構建更高效的網絡尾部結構,在保證檢測精度的同時,縮小了模型參數和檢測耗時。改進前后網絡結構對比如圖3所示。

圖3 網絡尾端結構對比Fig. 3 Comparison chart of tail structure

此外,MobileNetV3還重新設計了激活函數。Swish激活函數能夠提高模型的識別準確率,但是計算量大且求導過程比較復雜,對模型量化過程也不友好,不利于在移動端設備部署。MobileNetV3模型中引入了Hard-swish非線性激活函數,在推理速度和量化速度上均得到提升。

1.3 遷移學習

遷移學習[21]是把已有領域的知識應用到另一個相關領域來解決問題的一種策略,主要目的是遷移已有的先驗知識來解決目標領域樣本數據不足時訓練準確率低、容易過擬合等問題[22]。由于農業信息圖像的研究較難收集大規模的數據集,而卷積神經網絡模型需要在大量數據集上充分訓練后才能獲得對病蟲害圖像分類的能力,因此本研究采用遷移學習的策略,對MobileNet卷積神經網絡進行預訓練,訓練檢測流程如圖4所示。預訓練采用類別為1 000的ImageNet大型數據集,改進優化網絡模型,在訓練過程調用RAdam優化器,再使用本文的數據集對遷移學習后的模型參數微調,搭建出泛化性強、收斂速度快、占用內存小的多種農作物葉片病蟲害識別模型[23]。

圖4 基于MobileNetV3網絡的遷移學習流程Fig. 4 Flow chart of migration learning based on MobileNetV3 network

1.4 參數設置

參數的設置對網絡模型的訓練和性能非常重要,為兼顧內存效率與內存容量二者間的最佳平衡[24],本文實驗采取多個批次(batch)訓練方案,訓練周期(epoch)為50,每批次樣本數據大小(batch size)分別設置為8、16、32、64,進行對比實驗后,確定batch size為32。合適的學習率能夠使模型的損失函數更快更好地收斂,實驗按照指數標尺對比了0.000 1、0.001、0.01共3組學習率結果后,最終將學習率確定為0.000 1。損失函數采用多分類效果較好的交叉熵損失函數,數學表達式為

(1)

1.5 RAdam優化器

深度學習網絡模型參數量較大,在訓練過程選擇合適的優化算法進行參數學習非常必要,目前Adam是使用較為廣泛的優化器,其算法原理通過指數滑動平均來對梯度分量的一、二階矩進行估計,獲得每步的更新值后提供自適應學習率[25]。但在模型訓練的初期二階矩方差比較大,Adam更新算法較難滿足,尤其是在小樣本數據集上。Liu等[26]改進Adam后提出了Rectified Adam (RAdam),在自適應學習率的基礎上添加了一個修正項,用來修正Adam中的方差,訓練過程的初期把更新算法修正為隨機梯度下降的動量算法,避免了在訓練過程中對訓練熱身(Warmup)手動調優,也防止陷入局部最優狀態,使得學習率變化獲得更強的魯棒性能,同時在小樣本數據集和不同深度學習網絡模型中具有更高的訓練效果與泛化性能。

2 實驗結果與分析

2.1 實驗平臺

本文實驗硬件平臺為NVIDIA RTX 2070s(8 GiB),AMD Ryzen5 3600,16 GiB RAM;軟件環境為CUDA10.2,Anaconda4.8.4,采用Pytorch深度學習框架,在Windows10(64位)操作系統下完成。

2.2 模型評價指標

為了評價所提模型對農作物病蟲害識別結果的好壞,對樣本測試后分別計算平均識別準確率、查準率(P)、查全率(R)、F1值。各模型的平均準確率等于正確分類的圖像數量與測試圖像總數量的百分比值。查準率、查全率、F1值越大表示模型的預測能力越好,定義分別如下:

(2)

(3)

(4)

式中:NTP代表預測結果正確的正樣本;NFP表示預測結果正確的負樣本;NFN為預測結果錯誤的正樣本。

2.3 不同優化器效果對比

本文采用RAdam優化器,訓練損失和驗證準確率如圖5所示。同時還選擇了其他種類的優化器作為對比實驗,其中,Adagrad優化器和SGD優化器在損失上收斂曲線能達到較平穩的效果,但是二者訓練速度慢,過分依賴人工設置的學習率,準確率分別為82.1%和89%,相對其他3種優化器略低;Adam優化器和RMSProp優化器二者收斂速度很快,驗證準確率也比前兩者高,分別能達到93.3%和92.4%,但是二者在小樣本數據集下初始準確率較低,魯棒性差,容易陷入局部最優解;本文使用的RAdam優化器準確率達到95.35%,不僅收斂速度快,收斂曲線還平穩,同時收斂結果對學習率的初始值并不敏感,在小樣本數據集下也能達到較高的準確率。

圖5 不同優化器效果對比Fig. 5 Comparison of the effects of different optimizers

2.4 不同模型對比結果分析

本文在相同數據集條件下,與其他5種深度卷積神經網絡模型進行對照實驗,這5類網絡模型分別是GooleNet、VGG16、AlexNet、MobileNetV2+遷移學習策略、ShuffleNetV1+遷移學習策略。通過對訓練后的模型權重構建混淆矩陣,計算出各卷積模型對每一種農作物病蟲害的識別準確率,同時還對比了不同模型的訓練用時和模型大小,具體數據如表1所示。

表1 不同模型結果對比Tab. 1 Comparison of results of different models

從表1中可以看出,深度卷積神經網絡對農作物病蟲害分類均有著較高的識別精度,其中模型GooleNet、VGG16、AlexNet是從零開始訓練的大型網絡模型,模型MobileNetV2遷移和ShuffleNetV1遷移是基于遷移學習的輕量級網絡模型,通過對比不同模型對不同病蟲害分類的準確率可知,模型GooleNet、VGG16、AlexNet、MobileNetV2遷移、ShuffleNetV1遷移和本文模型分別有4、4、4、5、7、3種病蟲害的識別準確率未達到90%,其中容易誤分類的病蟲害標簽為007(番茄二斑葉螨病)、008(番茄輪斑病)、011(玉米灰斑病)、014(玉米大斑病)、016(馬鈴薯健康)。這主要是因為多數農作物在感染病蟲害之后葉部表面色澤以及病斑顏色會隨著患病程度發生變化,例如:番茄患有二斑葉螨病之后,葉片會隨著病害程度加重由灰白色變成暗褐色;患有輪斑病后,葉片病斑中央部分會由灰褐色變至灰白色;患有晚疫病后,葉片會由墨綠色變化為褐色[27]。再比如玉米灰斑病病斑形狀上可表現為橢圓形和長方形,顏色上可分為灰褐色、黃褐色和深褐色;枯葉病病斑也可表現為淡褐色和暗褐色。不同病害患病程度不同時,會在輪廓、紋理和顏色等局部細粒度特征上表現出極大的相似性,人工也難以分辨。對于標簽016,樣本量偏少,僅有152張圖片,模型GooleNet、VGG16、AlexNet這3類大型深度卷積網絡結構復雜,具有更深的特征提取層,能提取到圖像深層較抽象的有效特征[28],識別準別率比后3者更高。但是整體而言,本文模型的識別準確率達到95.3%,比其他5種模型分別高出1.0、1.4、2.6、4.1、6.8個百分點,在查準率、查全率以及F1值上對比其他模型均有明顯優勢。此外,經過對比模型的單張圖像識別耗時和模型大小2項指標,本文模型方法較GooleNet、VGG16、AlexNet識別速度更快、效率更高、占用內存更??;較MobileNetV2遷移和ShuffleNetV1遷移這2種輕量級卷積神經網絡模型而言,雖然在訓練用時和模型大小上有些許不足,但識別精度有很大提升,以少量內存的代價換取到更有應用意義的高準確率。

由于本文所使用的數據集為小樣本,模型GooleNet、VGG16、AlexNet為深層卷積神經網絡,又是從零開始訓練,需要大量的樣本數據輸入給網絡模型后,經過網絡參數的不斷迭代更新才能夠獲得提取病蟲害病斑細微特征的能力,因此這3種模型在小樣本數據研究下識別準確度略低、訓練過程較慢、模型體積較大;MobileNetV2遷移和ShuffleNetV1遷移模型通過遷移策略和輕量級CNN相結合的方法,將CNN從大型ImageNet數據集上學習到的先驗知識應用到病蟲害識別任務中,大幅度提升了識別速度,減小了模型體積,但是這2種輕量級模型網絡結構較淺,參數量較少,特征提取能力較差,因此識別準確率有待提升;而本文模型在結合遷移學習和輕量級CNN方法的基礎上,引入更適合小樣本數據的RAdam優化器,同時MobileNetV3網絡中的SE模塊使模型的注意力能夠更多的關注到有益于本分類任務的特征,從而保證了本研究模型的識別精度,與其他5種方法相比具有更優越的綜合性能??傮w而言,本文模型在保證較高準確率的同時還兼顧了輕量化的優勢,相比其他網絡模型也更適合在農業機械嵌入式設備或者移動通信設備上部署。

3 手機端應用

為了保證訓練好的卷積神經網絡模型能夠便捷智能地用于農作物病蟲害識別,需將訓練好的模型部署到Android移動端??紤]到深度學習框架的兼容性,本文所使用的推理引擎框架是Pytorch官方針對移動設備推出的輕量化解決方案Pytorch Mobile。在充分綜合對比卷積神經網絡模型的準確率、識別效率、模型大小等多項評價指標的情況下,本文優先選擇了最佳的輕量級CNN網絡模型,以進一步開發Android手機系統下的多種農作物病蟲害識別APP。

3.1 安卓端操作系統與推理框架簡介

Android是由谷歌公司推出的一款針對移動設備的操作系統,主要由應用程序層、框架層、程序庫、系統運行層和內核層等組成。應用程序層可為開發用戶提供API接口來構建自己的應用程序,采用JAVA語言編寫;框架層使得對核心應用程序的API接口調用更加友好,程序庫為系統中的C/C++文件;系統運行層通過調用庫文件來為系統提供支持;內核層中系統內核依賴Linux3.0內核。

Pytorch Mobile是由Facebook推出的用于在邊緣設備上運行機器學習模型的加速推理框架,提供了一種端到端的模型部署方式。該框架所具備的API涵蓋了機器學習中頻繁用到的預處理操作以及集成任務,優化了深度學習模型從研究到部署在移動設備上的流程,通過高效的編譯器和優化器來簡化模型和減少延遲,加快了計算機視覺任務在手機應用端的推理識別速度。

3.2 安卓端應用開發

應用系統的開發環境主要由Android Studio軟件、JDK(Java development kit)和SDK(software development kit)等3部分組成,模型的訓練過程在Pytorch框架中完成,之后的優化和部署過程主要在推理框架和Android Studio軟件中完成,流程如圖6所示。首先搭建安卓開發環境,在Gradle中添加推理框架接口的依賴庫,用來減少重復編譯Module的數量,便于編譯和運行時進行調用訪問;然后將訓練好的CNN網絡模型通過腳本語言轉換模型文件的格式,經過量化、剪枝等操作處理后,在MainActivity.java文件中加載模型,并在CameraActivity.java文件中創建模型的重寫調用鏈接以及編寫使用相機的相關設置,同時,在安卓開發軟件中按照網絡模型訓練過程中使用的類別文檔格式,依次配置好各類農作物病蟲害的標簽;最后在Android Studio軟件上完成安卓應用的UI界面設計等其他相關開發與調試工作,用戶在允許應用軟件調用攝像頭或者內存權限的前提下,軟件能夠調用攝像頭或者獲取本地圖片進行圖像識別。

圖6 安卓端應用開發流程Fig. 6 Android application development process

軟件調試使用的移動端設備是華為榮耀V20智能手機,內置操作系統為Android 10.0,搭配海思麒麟980處理器,運行內存為6 GiB。將手機調為開發者模式,接收并賦予權限安裝病蟲害檢測軟件后,打開成功部署的移動端應用進行識別的界面如圖7所示,分別展示了對驗證集和真實農業場景下病蟲害圖像的識別效果。軟件不僅移植應用方便、識別準確率高,還具有較高的檢測效率,識別耗時小于0.5 s,同時有簡單友好的人機交互界面,在識別農作物病蟲害的同時給予對應的防治建議措施,基本實現了移動端對農作物病蟲害的智能化診斷。

圖7 移動端識別應用Fig. 7 Mobile application recognition interface

4 結語

本文基于計算機視覺技術,將輕量級CNN模型應用在3類農作物的17種不同葉部病蟲害圖像檢測任務上。在輕量級MobileNet模型的基礎上,結合遷移學習策略,在訓練過程中選擇更適合小樣本的RAdam優化器進行算法更新,改進后的模型避免了以往檢測方法中人工設計特征的繁瑣過程,對農作物病蟲害圖像具有較好的識別效果,模型識別準確率達到95.3%,同時保證了計算過程快速化和網絡規模小型化,并且還借助推理引擎框架,成功將模型部署到移動端。通過將人工智能與農業信息領域相結合的手段對農作物病蟲害進行自動識別,開發成本低,減輕了務農人員勞動強度,也拓展了深度卷積神經網絡的應用場景,對于智慧農業的發展具有深遠的意義。未來工作將繼續研究和設計高識別精度的輕量級網絡模型,進一步提高卷積神經網絡的綜合性能。

猜你喜歡
農作物準確率卷積
高溫干旱持續 農作物亟須“防護傘”
俄發現保護農作物新方法
夏季農作物如何防熱害
厲害了!農作物“喝”上環保酵素
基于3D-Winograd的快速卷積算法設計及FPGA實現
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
卷積神經網絡的分析與設計
從濾波器理解卷積
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合