999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

采用改進的SqueezeNet模型識別多類葉片病害

2021-04-02 06:56:10高國琴
農業工程學報 2021年2期
關鍵詞:模型

劉 陽,高國琴

(1. 江蘇大學電氣信息工程學院,鎮江 212013;2. 南通職業大學電子信息學院,南通 226007)

0 引言

準確識別作物病害類別是作物病害防治的前提,而作物葉片病斑及其相關特征是判斷作物病害種類及其病害程度的重要依據[1-2]。傳統作物病害檢測主要依靠人工現場觀察判斷,存在主觀性強、工作強度大等不足,難以滿足大范圍作物病害實時監測系統的需求[3]。

利用現代信息技術對作物病害種類進行診斷和識別是一種先進有效的手段。在作物病害識別研究方面,國內外已有諸多報道,較多涉及馬鈴薯[4]、黃瓜[5-7]、西紅柿[8]、茄子[9]等單一作物的病害識別。這些傳統機器學習方法一般包含了圖像分割,特征提取和模式識別三個環節,但其性能的優劣非常依賴于對病斑特征的提取。如果不能準確地提取病斑底層特征并選擇對分類貢獻率較高的特征來進行分類,則分類性能會明顯下降。傳統機器學習方法的另一個缺點是針對某種具體作物病害識別任務生成的特征不僅費時費力,而且泛化性能較差。與之相比法,深度學習是一種端到端的方法,它以原始數據為輸入,以最終的任務為輸出,經過層層抽取將原始數據逐層抽象為任務自身所需要的特征,避免了人為特征選取對分類性能的影響,也同時大幅增強了系統的魯棒性。

近年來隨著深度學習技術的興起,卷積神經網絡(Convolutional Neural Network,CNN)在作物葉片病害識別相關領域已獲得廣泛應用。黃建平等[10]以PlantVillage公開數據集為試驗數據,設計了一種新穎的基于神經結構自動學習并搜索的葉片病害識別方法;任守綱等[11]研究了一種基于反卷積引導的VGG網絡模型,能夠同時實現植物葉部病害種類識別與病斑分割;鮑文霞等[12]先利用深度語義分割網絡分割出麥穗圖像,然后設計多路卷積神經網絡進行小麥赤霉病的識別;趙立新等[13]以棉花葉部病蟲害為研究對象,利用PlantVillage大數據集對改進的AlexNet模型進行預訓練,然后使用自建棉花數據集微調并識別;姚青等[14]提出以RetinaNet為目標檢測框架的水稻冠層2種害蟲為害檢測模型,包括采用基于ResNeXt101的特征提取網絡、組歸一化及改進特征金字塔網絡等措施;余小東等[15]以AI challenger 2018公開數據集為研究對象,提出一種基于殘差網絡的農作物病蟲害的檢測模型并進行基于Android的APP設計與測試;楊森等[16]提出一種基于卷積神經網絡與綜合特征詞袋模型相結合的馬鈴薯病害葉片識別方法;Nazki等[17]將生成對抗網絡GAN應用于番茄的病害識別研究中。上述研究采用各自模型在取得較好研究效果的同時也存在網絡模型結構復雜、參數龐大、運算量要求高等不足,因此目前的研究也有趨向于模型結構小型化、實用化。其中,孫俊等[18]通過使用批歸一化、空洞卷積與全局池化等措施,提出多種改進的AlexNet模型,減少了模型所需參數,提升了識別準確率;郭小清等[19]基于AlexNet提出一種適用于移動平臺的多感受野識別模型,針對AlexNet模型第一層設置不同尺寸的卷積核,綜合提取多種特征來表征病害的動態變化;劉洋等[20]基于MobileNet與Incption V3提出2種輕量級卷積神經網絡的作物病害分類模型,綜合考慮識別精度、運算速度和模型尺寸等指標進行擇優選擇,并實現手機端的葉片檢測。在前人研究基礎上,為進一步探索病害葉片識別應用中卷積網絡模型的輕量化研究,本文基于PlantVillage工程開源數據庫,對輕量級卷積神經網絡SqueezeNet[21]架構進行分析,結合多種改進步驟先后獲取5種病害葉片檢測模型,并運用遷移學習和隨機梯度下降算法進行訓練,力圖在保持較高的識別性能的同時進一步減少識別系統模型參數及其運算量,以便應用于資源受限的嵌入式實時系統。

1 試驗數據

本文以 PlantVillage工程開源數據庫(www. plantvillage.org)所收集的54306張葉片圖像作為試驗數據,其中包含14種植物共38類葉片(包含26類病害葉片和12類健康葉片),各類葉片數目從275到5357張不等,直接采用這樣的數據會產生嚴重的樣本分類不均衡問題,對模型訓練過程造成困擾。由于學習算法設計的背后隱含的優化目標是數據集上的分類準確度,因此樣本量大的類別因其累積訓練誤差較大往往會主導訓練過程,這將導致學習算法在不平衡數據上偏向于更多樣本的類別[22]。

抽樣是解決樣本分布不均衡的常用方法,包括過抽樣和欠抽樣兩種。過抽樣也稱為上采樣,它通過增加分類中少數類樣本的數量來實現樣本均衡。最直接的上采樣方法是簡單復制少數類樣本形成多條記錄,其缺點是一旦樣本特征少則可能導致過擬合問題。為此,可以用數據增強的方法在少數類中加入隨機噪聲、干擾數據或通過一定規則產生新的合成樣本。欠抽樣也稱為下采樣,通過減少分類中多數類樣本的數量來實現樣本均衡。最直接的方法是隨機去掉一些多數類樣本來減小多數類的規模,其缺點是會丟失多數類樣本中的一些重要信息??傮w上,過抽樣方法應用更加廣泛。

本文采用開源的Python庫imgaug(https://github.com/ aleju/imgaug)對樣本量較少的類別進行數據增強。增強的方法包括水平鏡像翻轉、垂直鏡像翻轉、隨機截取、加噪聲、改變亮度和對比度等,并將尺寸歸一化至224×224像素。文中原始PlantVillage工程樣本在經過欠采樣和數據增強后,各類葉片的樣本總數增加到73327張,本文隨機選取其中的80%作為訓練集,剩下的20%作為測試集,其中38個類別分別標注為C1~C38。部分增強后的樣本示例如圖1所示。

2 模型結構

2.1 經典SqueezeNet模型

近年來卷積神經網絡的層數不斷增加,從7層的AlexNet[23]到 16 層的 VGGNet[24],再到 22 層的GoogleNet[25]、152層的ResNet[26],更有上千層的復雜網絡,雖然網絡性能得到了提高,但隨之而來的就是效率問題。效率問題主要是指模型存儲及模型預測計算量問題,只有解決效率問題,才能讓CNN走出實驗室,更廣泛地應用于日常生活當中。對此,通常的方法是在已經訓練好的模型上進行壓縮,使網絡攜帶更少的參數,從而解決內存及速度問題。相比之下,輕量化模型設計則是另辟蹊徑,其主要思想在于設計更高效的“網絡計算方式”從而使網絡參數減少的同時不過多損失網絡性能。本文主要研究了輕量級卷積網絡SqueezeNet[21],并在其基礎上提出了多種改進模型以滿足葉片病害識別的任務需求。經典SqueezeNet內部參數如表1所示,圖2為其直觀的結構圖,方便與后續改進結構的對照。

表1 SqueezeNet的內部參數 Table 1 Internal parameters of SqueezeNet

如圖2所示,該架構中共有3個最大池化層分別標識為池化層A、B和C。每通過一個池化層,圖像的大小就變為原來的一半以減少計算量。卷積層10采用1×1的卷積核,輸入通道為512,輸出通道為1000,輸出圖像大小為14×14像素。卷積層10的輸出經過全局平均池化,并通過softmax計算得到1000種分類的概率,其中全局平均池化是指將每個輸出通道特征圖求取平均值,使得該層輸出特征維數等于該層的輸出通道數。

如圖3所示,SqueezeNet的核心在于fire模塊,它由兩部分構成,分別是squeeze層和expand層。通常定義一個fire模塊為fire(M,N,E1,E2),其中M、N分別代表squeeze層的輸入、輸出通道數,E1、E2分別代表expand層中1×1、3×3卷積核的輸出通道數目。

圖3中,squeeze層是一個卷積核為1×1的卷積層,它把輸入通道從M變到N,通常N小于M,squeeze層主要用來對輸入通道進行壓縮,以減少網絡的計算量;expand層是包含1×1和3×3兩種卷積核的卷積層,1×1卷積核、3×3卷積核分別將輸入通道從N擴張成E1與E2,最后把1×1和3×3得到的特征圖進行拼接,得到輸出通道為(E1+E2)的特征圖。

為引入非線性并使深度學習模型產生強大的表示能力,模型中在每個卷積層后都添加了激活函數ReLU[27]。為了避免網絡過擬合的發生,對全連接層引入了隨機失活(dropout)[28]。隨機失活就是對某層的每個神經元,在訓練階段均以概率p隨機將該神經元的權重置為0。在測試階段所有神經元均為激活態,但其權重須乘上系數(1-p)以保證訓練和測試階段各自權重擁有相同的期望值。

2.2 改進模型設計

改造上述網絡,并利用其對PlantVillage開源葉片數據進行分類。由于只需要識別26類病害及12類健康葉片,兩者合計38類,因此將圖2中卷積層10的輸出通道數從1000修改為38,將此僅修改卷積層10參數的模型標識為改進模型0,并將其作為后續改進的基礎模型。

改進模型0的參數可以用經典的SqueezeNet的網絡參數進行初始化。這里采用遷移學習方法,遷移學習就是將一個龐大而復雜的模型所學習到的知識,通過一定的技術手段遷移到另一模型上。考慮到大部分數據或任務是存在相關性的,所以通過遷移學習可以將已經學到的模型參數通過某種方式來分享給新模型從而加快并優化模型的學習,而不需要從零開始。

注意到經典SqueezeNet模型是對ImageNet數據庫進行分類的,該數據庫包含了1000類物體。而本文只需要對38類葉片進行分類,對于相對簡單些的任務并不需要很深的網絡結構。為了最大限度減少模型參數并保持網絡在PlantVillage數據庫上的性能,對改進模型0做修改:移除fire模塊6、7和8,并把fire模塊5的參數修改為fire(256,32,256,256),即把該模塊中squeeze層的輸出通道由48減少為32,同時把expand層的輸出通道由192增加為256,修改后的網絡結構如圖4a所示,文中將其標識為改進模型1。

注意到3×3的卷積核共有9個參數,進行一次卷積需要進行9次浮點乘法和1次浮點加法運算。而1×1的卷積核只有1個參數,進行一次卷積運算只需要進行1次浮點乘法運算,所以1×1的卷積運算量和參數量都約是3×3卷積的1/9[20]。

基于此原理,考慮把部分3×3的卷積核用1×1的卷積核來代替,這樣既可以減少參數數量,同時又可以大幅減少計算量。改進模型2就是把改進模型1中所有fire模塊expand層中1×1和3×3的卷積核數目比例按3∶1的重新分配,圖4b顯示了改進模型2的架構。

下面以經典SqueezeNet結構中的fire模塊1為例進行expand層中2種卷積核數目重新分配及其計算量減少的說明。

圖5a顯示的是原始的fire模塊1。其Expend層分為左邊的卷積核為1×1的分支和右邊的卷積核為3×3的分支,每個分支都各有64個輸出通道。Fire模塊1的輸出為這兩個分支的拼接,總通道數為128。圖5b顯示的是改進后的fire模塊1。主要的改進在于把右分支中卷積核為3×3的輸出通道由64減少為原來的一半(32個輸出通道)。為了保證總的輸出通道數不變,把這減少的32個輸出通道移到左邊的卷積核為1×1的分支上。經過改進后fire模塊1的輸入與輸出通道數保持不變,expend層的參數由原來的10240個減少到了6144個,大幅減少了40%;expend層的運算量也由原來的 32.1 MFLOPs(Million Floating-point Operations,MFLOPs,百萬次浮點運算)減少到了19.2 MFLOPs。

注意到改進模型2中共有5個fire模塊(最大池化層A、B中間與最大池化層B、C中間各有2個,最后1個位于最大池化層C和卷積層10之間)。原始圖片大小為224×224像素,通過第1個卷積層后,特征圖大小變為112×112像素;通過最大池化層A后,特征圖大小變為56×56像素;通過最大池化層B后,特征圖大小變為28×28像素;通過最大池化層C后,特征圖大小變為14×14像素。很顯然,特征圖的大小與深度學習架構的運算量有著緊密的關系。對fire模塊2即fire(128,16,96,32),如將它從最大池化層A、B之間移動到最大池化層B、C之間,此時特征圖大小變為移動前的1/4,因此相應計算量也會減少至移動前的1/4?;诖怂枷耄诟倪M模型2的基礎上,把fire模塊2從最大池化層A、B之間移動到最大池化層B、C之間,提出改進模型3;在改進模型3的基礎上,再把fire模塊3、4從最大池化層B、C之間移動到最大池化層C之后,提出改進模型4。2種改進模型如圖6所示。

3 模型訓練

3.1 試驗平臺

試驗軟件環境為Ubuntu 16.04 LTS 64位系統,采用目前流行的PyTorch(https://pytorch.org/)深度學習開源框架。PyTorch是一個基于Torch的Python開源機器學習庫,它主要由Facebook的人工智能小組開發,不僅能夠實現強大的GPU加速,同時還支持動態神經網絡。計算機內存為16GB,搭載Intel Core i5-8300 CPU,GPU采用英偉達的GTX1050Ti對深度學習模型進行加速。

3.2 參數設置與訓練

試驗中訓練數據和測試數據的批次大小都設置為32,遍歷一次訓練集中的所有圖片稱作一次迭代(epoch)。由于采用了遷移學習技術,模型收斂速度很快,因而每個模型都只迭代了30次。訓練模型時采用了隨機梯度下降優化算法(Stochastic Gradient Descent,SGD)。為防止過擬合,采用了隨機失活(dropout)技術,其參數p設置為0.5,初始學習率設置為0.01,每7次迭代(epoch)學習率減小為原來的10%。

本文訓練具體采用anaconda環境,框架是pytorch10,訓練30個epoch,每個epoch有3666次迭代,訓練過程與結果分別如圖7、圖8所示。

3.3 評價指標

混淆矩陣定義中的變量定義如下:

TP,真實值為正且預測也為正的數量;TN,真實值為負且預測也為負的數量;FP,真實值為負但預測為正的數量;FN,真實值為正但預測為負的數量。

查準率(Precision)定義如下

查準率是分類器預測的正樣本中預測正確的比例,取值范圍為[0,1],取值越大表示模型預測能力越好。

查全率(recall)定義如下;

查全率又稱召回率,是分類器預測正確的正樣本占所有正樣本的比例,取值范圍為[0,1],取值越大模型預測能力越好。

準確率(accuracy,ACC)定義如下

在正、負樣本不平衡的情況下,準確率這個評價指標有較大缺陷,因此需要綜合運用這3個指標對算法模型進行科學和全面的評價[22]。

4 結果與分析

利用ImageNet數據集對5種改進模型進行預訓練,之后在PlantVillage訓練數據集上進行遷移學習,測試集上的試驗結果如表2所示。

由表2可知,改進模型0與經典SqueezeNet非常類似,擁有2個卷積層(卷積層1和卷積層10)和8個fire模塊,因此改進后的5種模型中模型0的準確率、查全率和查準率都是最高的,但是其參數內存需求及模型運算量在所有模型里最多,分別達到了2.91 MB和272 MFLOPs。

表2 改進模型的參數及性能 Table 2 Modified model parameters and performance

模型1在模型0的基礎上刪除了最后3個fire模塊,減少了網絡的深度,其內存需求大幅減小到0.908 MB,運算量也大幅減少到185 MFLOPs,準確率為98.76%。這說明僅簡單應用遷移學習獲取的模型0結構上存在一定程度的冗余,有著明顯的改進空間。模型2是在模型1的基礎上用1×1的卷積核代替部分3×3的卷積核,其內存需求進一步減少到了620 kB,運算量減少到131 MFLOPs,準確率為98.46%。這說明按3∶1的關系重新調整expand層的1×1和3×3的卷積核數量后,網絡的性能僅有輕微的下降,但在節省參數內存及模型運算量上的收益卻相當巨大。模型3、4在模型2的基礎上僅調整了fire模塊相對于池化層的位置。模型3的計算量減少到111 MFLOPs,準確率為98.13%;模型4的計算量進一步減少到76 MFLOPs,準確率為96.25%,下降略顯明顯。這說明特征圖的大小對深度學習模型的性能有一定影響,在相對較大特征圖上進行的特征抽取能在一定程度上改善網絡的性能。

總體上各改進模型均表現較為優異,雖然在性能指標上依次呈現小幅下滑,但其參數內存需求及模型運算量卻依次呈現出明顯的逐級改善。綜合來看,模型3具有更高的性價比,因此將其作為本文最終的改進結果。

表3顯示了采用改進模型3在測試集38類測試圖片上的分類準確率。

表3 Plant village測試集的分類準確率 Table 3 Classification accuracy of Plant village test set

由表3可以看出錯較高的類別主要為玉米灰斑病、玉米北方葉枯病、番茄早疫病和番茄晚疫病,其圖片如圖9所示,可以看出這2組葉片的相似度較高,一定程度上造成誤判。

由于文獻[18-20]采用了相同的PlantVillage工程開源數據進行類似的模型輕量化研究,因此與本文方法具有一定的可比性,其中的方法均選自各自文獻中PC端的最優或優化后的模型進行比較,其結果如表4所示。

表4 不同分類方法的主要性能比較 Table 4 Main performance comparisons of different classification methods

文獻[18]基于改進的AlexNet結構,運用多種技術手段獲取最優模型4的技術指標為:模型參數需求2.60 MB及平均識別準確率、查全率和查準率分別99.56%、99.41%、99.42%,四項性能指標均接近并略好于本文基礎模型(模型0)的2.91 MB、99.29%、98.73%、98.78%。但本文最優模型3是在基礎模型0上的改進,以較小幅度的性能犧牲進一步換取較大幅度的模型參數(0.62 MB)及計算量的減少,而且本文模型設計過程更為簡明方便。文獻[19]提出改進的多尺度感受野AlexNet模型,采用部分PlantVillage工程開源數據結合自建圖像樣本進行8種番茄葉片(7種病害加健康葉片)的識別研究并開發基于Android平臺的識別系統。其模型參數需求達29.9 MB,均遠高于本文的5種改進模型;其平均識別準確率(該準確率定義實際為召回率)為92.7%,均低于本文表2中的5種改進模型,這或許與該研究樣本數量(8349張)明顯偏少及自建樣本質量下降存在一定關系。文獻[20]在PC端采用MobileNet和Inception V32種輕量級卷積神經網絡借助ImageNet數據集進行遷移學習,在PlantVillage數據集上取得95.02%和95.62%的平均識別率(該識別率定義實際也為召回率);在模型參數需求方面分別為17.1 MB與87.5 MB。這兩項主要指標也均低于表2、表4中本文的5種改進模型。上述結果表明,與已有相關研究相比,本文在輕量級網絡的基礎上進一步提出的精簡改進模型具有更好的性價比與競爭優勢,更加適合嘗試部署在嵌入式資源受限設備上。

圖10a給出了5種改進模型的測試準確率與迭代次數關系曲線,由于采用了遷移學習,所有模型收斂迅速,其中模型0收斂最快,在第一次迭代后的準確率就達到了93.7%。其他改進模型在三次迭代后準確率都達到了93%以上;圖10b給出了5種改進模型的預測誤差與迭代次數的關系曲線,模型0、1、2和3在第七次迭代后的模型損失都一直穩定保持在0.1以下水平。

圖11以蘋果為例,給出4種不同蘋果葉片的分類混淆矩陣??梢钥闯觯?78張果瘡痂病葉片中有370張被正確識別,召回率為97.88%;373張黑腐病葉片中有371張被正確識別,召回率為99.46%;385張銹病葉片中有381張被正確識別,召回率為98.96%;329張健康葉片圖片中有327張被準確識別,召回率為99.39%。這表明本文提出的模型具有較好的識別性能和魯棒性。

5 結論

本文基于深度學習技術,提出將輕量級卷積神經網絡應用于14類不同作物的38種不同病害葉片識別。在已有經典輕量級SqueezeNet模型的基礎上,為進一步適應網絡規模小型化和計算過程快速化的需求進行了改進,改進后的模型在識別性能基本保持不變的情況下,在參數內存需求和運算量上體現出明顯的優越性,其中最優模型的參數內存需求從經典SqueezeNet的4.85 MB大幅減少到0.62 MB,模型計算量也從經典SqueezeNet的360 MFLOPs大幅減少到111 MFLOPs,平均準確率達到98.13%,平均查全率達到98.09%,平均查準率達到97.62%,與已有相關研究相比,具有一定的比較優勢。

本文提出的模型較好的平衡了參數內存需求、網絡運算量和網絡性能這3個指標,在大幅減少模型參數內存要求和模型計算量的同時使模型的性能保持在了一個較高的水平,這有利于將卷積神經網絡模型部署在移動終端等嵌入式資源受限設備上,有助于實現對作物病害的實時準確識別。下一步將在融入自然環境圖像數據的基礎上,嘗試將本文模型移植到手機平臺,以測試本文模型對于作物病害的實時識別效果。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 成人福利在线免费观看| 国产午夜无码片在线观看网站| 亚洲成人黄色在线观看| 午夜视频日本| 亚洲成aⅴ人片在线影院八| 欧洲免费精品视频在线| 国产噜噜噜视频在线观看| 日本人真淫视频一区二区三区| 亚洲国产看片基地久久1024| 亚洲综合经典在线一区二区| 欧类av怡春院| 国产一级裸网站| 国产精品一区二区在线播放| 亚洲a免费| 欧美在线精品怡红院 | 日本一区二区不卡视频| 大乳丰满人妻中文字幕日本| 99久久无色码中文字幕| 亚洲91在线精品| 无码又爽又刺激的高潮视频| 99草精品视频| 国产性精品| 九九这里只有精品视频| 成人小视频网| 国模私拍一区二区| 亚洲AV永久无码精品古装片| 国产精品人莉莉成在线播放| 国产午夜在线观看视频| 亚洲人成日本在线观看| 欧美天天干| 成人毛片免费在线观看| 在线中文字幕网| 欧美一区二区啪啪| 亚洲资源站av无码网址| 在线观看亚洲天堂| 精品视频福利| 亚洲第一在线播放| 国产人成在线观看| 欧美成人午夜影院| 精品国产Ⅴ无码大片在线观看81| 国产高清免费午夜在线视频| 欧美日韩国产在线观看一区二区三区| 国产黄网永久免费| 国产精品女人呻吟在线观看| 亚洲欧美精品日韩欧美| 凹凸国产分类在线观看| 老司国产精品视频91| 国产主播福利在线观看| 亚洲色偷偷偷鲁综合| 欧美亚洲另类在线观看| 中文字幕1区2区| 精品国产91爱| 成年看免费观看视频拍拍| 久久综合丝袜长腿丝袜| 欧洲亚洲欧美国产日本高清| 十八禁美女裸体网站| 亚洲欧美一区二区三区麻豆| 欧美三级日韩三级| 国产香蕉在线视频| 美女高潮全身流白浆福利区| 欧美激情福利| 亚洲成人一区二区| 全午夜免费一级毛片| 五月婷婷伊人网| 欧美人与性动交a欧美精品| 一区二区影院| 9966国产精品视频| 中文字幕日韩丝袜一区| 国产精品免费久久久久影院无码| 亚洲中文久久精品无玛| 丰满的少妇人妻无码区| 天天综合网在线| 亚洲美女一级毛片| 亚洲精品图区| 亚洲欧洲自拍拍偷午夜色无码| 老司机精品99在线播放| 午夜精品国产自在| 亚洲一级毛片免费观看| 国产玖玖玖精品视频| 精品一区二区三区四区五区| 国产精品hd在线播放| 亚洲人成网站色7799在线播放|