李書琴 陳 聰 朱 彤 劉 斌
(西北農(nóng)林科技大學信息工程學院, 陜西楊凌 712100)
植物病害問題與人們的生產(chǎn)生活密切相關[1-3]。在植物生長過程中,容易受到天氣、環(huán)境、微生物、病毒和細菌等影響而產(chǎn)生各種病害。植株葉片是病癥最常出現(xiàn)的部位,由于病害種類較多且部分病害特征相似,僅靠種植者肉眼觀察和經(jīng)驗判斷不能及時診斷病害類型,導致植物病害越來越嚴重,造成巨大損失。因此,快速準確地確定病害類型是防治植物病害的關鍵點。
傳統(tǒng)病害識別算法[4-6]主要通過人工提取研究對象圖像特征進行分析研究,取得了一定的研究成果。鄭建華等[7]通過融合葡萄病葉的RGB顏色矩、HSV顏色直方圖特征、GLCM紋理特征、HOG特征,利用支持向量機算法對3種病害識別準確率達到93.41%。郭小清等[8]選擇HSV模型中的4維H分量等量分割波段作為顏色特征,基于灰度差分統(tǒng)計的均值、對比度和熵3維特征作為紋理特征,通過粒子群算法優(yōu)化支持向量機參數(shù),獲得了90%番茄葉片病害識別準確率。然而,人工提取的特征包含一定程度的主觀性,無法確定最佳和魯棒的特征,且植物病害通常表現(xiàn)為紋理、形狀和顏色等多種復合特征,這為傳統(tǒng)植物葉片病害識別算法帶來了巨大的挑戰(zhàn),也影響了識別的效果。
深度學習的出現(xiàn),為病害識別提供了新的方法。卷積神經(jīng)網(wǎng)絡不依賴特定特征,得到廣泛應用?;诰矸e神經(jīng)網(wǎng)絡的植物葉片病害識別方法[9-11]具有識別準確率高的優(yōu)點,但也存在網(wǎng)絡參數(shù)眾多,計算量大且復雜的問題,實用性較差。因此越來越多的學者將目光轉向輕量級植物葉片病害識別網(wǎng)絡的研究。孫俊等[12]通過批歸一化和全局池化改進卷積神經(jīng)網(wǎng)絡獲得了99.56%識別準確率,參數(shù)內(nèi)存需求2.6 MB。劉洋等[13]采用MobileNet V1[14]在PlantVillage數(shù)據(jù)集獲得了95.02%的準確率,參數(shù)內(nèi)存需求17.1 MB。賈鶴鳴等[15]運用深度可分離卷積,全局平均池化,批歸一化改進VGG網(wǎng)絡,改進后的網(wǎng)絡識別精度為99.43%,內(nèi)存占用空間為6.47 MB??梢钥闯錾鲜鲅芯恐皇沁\用或改進卷積神經(jīng)網(wǎng)絡,未能針對病害特征進一步分析,雖然取得了較好的結果,但模型仍有提升的空間。
為進一步提升輕量級植物病害識別網(wǎng)絡性能,結合植物病害特征,本文提出一種基于輕量級殘差網(wǎng)絡的植物葉片病害識別方法,通過縮減ResNet-18[16]卷積核數(shù)目和輕量級殘差模塊(SD-BLOCK),在減少參數(shù)、降低計算復雜度的同時提取多種病害特征,保持低識別錯誤率。然后加入SE[17]模塊,增強網(wǎng)絡病害特征提取能力,降低網(wǎng)絡識別錯誤率,從而構建輕量級殘差網(wǎng)絡(Scale-Down ResNet,SDResNet)。
分析植物病害顏色、紋理、輪廓等特征可知,不同植物病害特征,同一植物不同病害特征表現(xiàn)出一定的相似性,區(qū)分難度較大。Residual Network[16](ResNet)運用了殘差學習的思想,增加了網(wǎng)絡的深度,進而提升了網(wǎng)絡病害特征提取能力,被廣泛應用于病害識別[18-20]。ResNet主要由一系列殘差模塊(圖1)組成。一個殘差模塊可以表示為
圖1 殘差模塊Fig.1 Residual module
XL+1=XL+F(XL,WL)
(1)
式中XL、XL+1——第L、L+1層特征圖
WL——第L層卷積參數(shù)
F——卷積運算函數(shù)
即將網(wǎng)絡映射H(XL,WL):=XL+1轉變?yōu)閄L+F(XL,WL),疊加的卷積層只需要擬合F(XL,WL)函數(shù)。這種轉變使深層網(wǎng)絡更容易優(yōu)化。假設網(wǎng)絡學習的XL是最優(yōu)的,網(wǎng)絡更深層的卷積將權重置為0便能達到最佳性能。若最優(yōu)結果接近XL,更深的卷積層則只需要微調(diào),而不是學習一個新的映射。
殘差結構實現(xiàn)簡單,如圖1所示,在網(wǎng)絡中構建恒等連接即可,這使得網(wǎng)絡底層和深層中的信息可以快捷傳遞,在一定程度上解決了深層網(wǎng)絡信息丟失、損耗和梯度爆炸與消失問題,提升了深層網(wǎng)絡的性能。
1.2.1分組卷積
分組卷積采用split-transform-merge[21]思想,在減少參數(shù)和計算量的同時提高了網(wǎng)絡識別精度。通過這種卷積方式可以得到關注點不同的特征圖,互為補充,更完整地表示圖像特征。同時分組卷積增加了卷積核之間的對角相關性,減少了參數(shù),可以緩解過擬合,類似于正則。分組卷積計算過程如圖2所示,分組卷積對輸入特征圖分解,然后在各個分組上進行卷積計算。由于卷積的輸入通道數(shù)減少,相應也減少了參數(shù)和計算量,減為原來的1/G,G為分組數(shù)。
圖2 分組卷積Fig.2 Group convolution
1.2.2深度可分離卷積
(2)
由式(2)可知,如果卷積核尺寸為3×3(DK=3),由于輸出通道數(shù)N很大,深度可分離卷積大約是標準卷積計算量的1/9。MobileNet V1[14]將標準卷積替換為深度可分離卷積,精度卻沒有損失太多,證明了深度可分離卷積強大的特征提取能力。
1.2.3輕量級殘差模塊結構
輕量級殘差模塊(SD-BLOCK)主要運用了深度可分離卷積和分組卷積。首先2種卷積方式搭配使用大幅減少了網(wǎng)絡參數(shù),降低了計算量。同時2種卷積方式都構建了多條卷積路徑,并且深度卷積不會擾亂分組卷積的分組。植物病害往往表現(xiàn)為顏色、紋理、形狀等復合特征。通過不同卷積路徑得到的特征圖關注的主要特征不同,互為補充,進而提取了多種的病害特征,增強了網(wǎng)絡病害識別能力。同時分組卷積存在各分組信息無法交互的問題,而逐點卷積可以融合通道信息,解決了此問題。如圖3所示,DSConv代表深度可分離卷積,GConv表示分組卷積,SD-BLOCK有2種不同結構,結構A(圖3a)用于特征圖減半,結構B(圖3b)使用1×1卷積進一步減少參數(shù)。
圖3 SD-BLOCK 模塊Fig.3 SD-BLOCK module
SE[17](Squeeze-and-Excitation)模塊是一個輕量級的通道注意力模塊,可以使模型注意到重要的病害特征,同時弱化其他干擾因素,提升模型病害識別能力。SE模塊由Squeeze和Excitation 2部分構成。
由于卷積計算只在局部接受域上,無法獲取更多的上下文信息。為解決這個問題,Squeeze部分使用了全局平均池化獲取通道維度的上下文信息。單通道特征圖u的上下文信息z的計算公式為
(3)
式中H——特征圖高度
W——特征圖寬度
Excitation部分主要目的是學習通道之間的相關性。為了做到這一點,要滿足2個條件:①必須有極強的學習能力,可以學習通道之間的非線性關系。②學習到的應是非互斥關系,以確保對多個通道增加注意力。同時為了限制模型的復雜度,Excitation部分構建了一個2層瓶頸狀的全連接網(wǎng)絡。具體計算公式為
s=σ(W2δ(W1Z))
(W1∈R(C/r)×C,W2∈RC×C/r)
(4)
式中δ——ReLU函數(shù)C——通道數(shù)
σ——Sigmoid函數(shù)
W1——第1層網(wǎng)絡的參數(shù)
W2——第2層網(wǎng)絡的參數(shù)
r——中間全連接層的縮減參數(shù)
Z——所有通道的上下文信息
s——通道注意力信息
融合SE模塊的殘差模塊結構如圖4所示,SE模塊加入到殘差模塊的卷積層之后。在卷積層之后先使用全局平均池化聚合特征圖的信息。然后送入兩層全連接網(wǎng)絡中學習各通道權重,進而與輸入特征圖相乘重新調(diào)整網(wǎng)絡特征。最后和初始特征圖相加實現(xiàn)殘差學習。
圖4 SE-ResNet模塊Fig.4 SE-ResNet module
輕量級殘差網(wǎng)絡(Scale-Down ResNet,SDResNet)模型總體結構如表1所示,表中RE-BLOCK代表原殘差模塊。
表1 輕量級殘差網(wǎng)絡結構Tab.1 Scale-Down ResNet structure
模型以ResNet-18為基礎,首先縮減卷積核的數(shù)目,去除網(wǎng)絡冗余。本研究構建了3個模型SDResNet-1、SDResNet-2和SDResNet-3,卷積核的數(shù)目分別設置為(12,24,48,96)、(16,32,64,128)和(24,48,96,192)??紤]到底層提取的特征對網(wǎng)絡識別精度至關重要,SDResNet保留了網(wǎng)絡底層的原殘差模塊,使用標準卷積提取底層特征,提高了網(wǎng)絡的性能。因為經(jīng)過縮減后網(wǎng)絡底層特征通道數(shù)已足夠小,所以這樣做并沒有帶來過多的參數(shù)和計算量。網(wǎng)絡深層特征通道數(shù)仍比較大,SDResNet使用SD-BLOCK減少了大部分參數(shù)和計算量,同時保持了低識別錯誤率。最后網(wǎng)絡融合了SE注意力模塊,進一步提升了網(wǎng)絡性能。
本研究數(shù)據(jù)集選用PlantVillage工程(www.plantvillage.org)面向所有用戶開放的植物病害圖像數(shù)據(jù)庫[22],它包含26類植物患病葉片圖像和12類植物健康葉片圖像,共54 306幅。數(shù)據(jù)庫中的圖像均是在室內(nèi)拍攝,拍攝規(guī)范,背景簡單。數(shù)據(jù)集詳情如表2所示。實驗將圖像統(tǒng)一到224像素×224像素,然后按照4∶1劃分得到訓練集和測試集。
表2 PlantVillage數(shù)據(jù)庫圖像信息Tab.2 Image information of PlantVillage
蘋果葉片病害數(shù)據(jù)集包含4種蘋果葉片病害圖像和1種健康蘋果葉片圖像,葉片病害分別是黑星病、褐斑病、銹病、花葉病。數(shù)據(jù)集圖像主要來自Kaggle競賽和田間采集,共有2 276幅原始圖像。與PlantVillage數(shù)據(jù)集不同,該數(shù)據(jù)集中所有病害葉片圖像均為自然光照下拍攝且背景復雜。為均衡各類別圖像,對部分類別采用隨機旋轉、亮度調(diào)整、對比度增強、翻轉操作擴充數(shù)據(jù)集,擴充后的數(shù)據(jù)集共有2 973幅圖像,每個類別約有600幅圖像。圖5給出了蘋果葉片病害數(shù)據(jù)集中5個類別的樣例。同樣,實驗將圖像調(diào)整到224像素×224像素,訓練集和測試集的比例為4∶1。
圖5 蘋果葉片病害數(shù)據(jù)集樣本Fig.5 Examples of apple leaf disease data set
本研究實驗環(huán)境配置如表3所示,訓練epoch設置為60,學習率初始值為0.1,epoch為45時設置為0.01,epoch為55時設置為0.001。batch設置為128。
表3 實驗環(huán)境配置Tab.3 Experimental environment configuration
本研究選用識別錯誤率、網(wǎng)絡參數(shù)量和每秒百萬次浮點運算(MFLOPs)作為評價網(wǎng)絡的指標。
圖6為SDResNet-1、SDResNet-2和SDResNet-3的損失函數(shù)曲線。由圖6可以看出,模型收斂迅速,可以很好地擬合病害特征。這使得SDResNet-3模型在訓練3輪后識別錯誤率低于10%,訓練5輪后識別錯誤率低于5%。分析原因,模型運用殘差學習的思想,加入了恒等連接,使網(wǎng)絡更容易優(yōu)化。并因此構建了更深的網(wǎng)絡,提高網(wǎng)絡擬合病害特征的能力。
圖6 損失函數(shù)曲線Fig.6 Loss function curves
為更好地評價所提網(wǎng)絡的性能,選取現(xiàn)有優(yōu)異的圖像識別模型ResNet-18、ShuffleNet V2[23]和MobileNet V3[24]與SD-ResNet在PlantVillage數(shù)據(jù)集進行實驗對比。MobileNet V3出自Google AI,是最近發(fā)布的輕量級網(wǎng)絡架構。ShuffleNet V2是曠視科技推出的最新輕量級網(wǎng)絡架構,相關論文收錄在ECCV中。
實驗結果如表4所示,按計算量正序排列。從識別錯誤率分析,SDResNet-3取得了最優(yōu)的結果,甚至超過ResNet-18,而前者是后者參數(shù)量和計算量的幾十分之一。這是因為針對植物葉片病害識別問題,SDResNet繼承了ResNet優(yōu)異的殘差結構,在幾乎不影響性能的情況下,合理去除了更多的參數(shù)和計算量。針對植物葉片病害特征使用SD-BLOCK提取了多種病害特征,使用SE模塊關注到重要的病害特征,提升了網(wǎng)絡性能。與其他輕量級網(wǎng)絡相比,SDResNet-3在計算量略小于MobileNet V3情況下,識別錯誤率低于后者。SDResNet-2在計算量小于ShuffleNet V2 1x情況下,識別錯誤率低于后者。SDResNet-1在計算量略大于ShuffleNet V2 0.5x情況下,識別錯誤率明顯低于后者。MobileNet V3和ShuffleNet V2并未就植物葉片病害特征針對性處理,使其無法更好地提取病害特征,影響了網(wǎng)絡精度。
表4 卷積神經(jīng)網(wǎng)絡實驗結果Tab.4 Convolution neural network experiments
為確定縮減卷積核數(shù)目對ResNet-18網(wǎng)絡性能的影響程度,研究構建不同的殘差塊卷積核數(shù)的模型進行實驗。模型1卷積核數(shù)為(12,24,48,96),模型2卷積核數(shù)為(16,32,64,128),模型3卷積核數(shù)為(24,48,96,192),分別對應SDResNet-1、SDResNet-2、SDResNet-3殘差塊卷積核數(shù)目。實驗結果如表5所示。
由表5可知,縮減后的模型在網(wǎng)絡參數(shù)與計算量大幅減少的同時,識別錯誤率并沒有顯著上升,仍維持在較低水平,這很大程度上得益于殘差結構的設計,構建了較深的網(wǎng)絡,增強了病害特征提取能力??s減后的模型依然能很好地擬合植物病害特征,具有更少的參數(shù)和計算量,但識別錯誤率相比ResNet-18仍有不足。同時可以看出,不同的縮減模型,具有不同的性能,總體上隨著卷積核數(shù)目的增長,模型識別錯誤率也在下降,并逐漸逼近原網(wǎng)絡,但同時也可以看出隨著網(wǎng)絡性能的提升,通過單純增加卷積核數(shù)目來降低識別錯誤率的代價高昂,因此本研究選擇了SD-BLOCK和SE模塊提升網(wǎng)絡的性能。
表5 縮減卷積核數(shù)目實驗結果Tab.5 Reduce convolution kernel experiment
將輕量級殘差模塊SD-BLOCK和SE模塊加入到網(wǎng)絡中以探討他們對網(wǎng)絡性能的影響。模型1~3與3.5節(jié)定義相同。不同的分組數(shù)和SE參數(shù)對不同模型的影響不同,本文通過實驗選取最優(yōu)參數(shù)值,將3個模型的分組卷積參數(shù)依次設置為12、8、12,SE參數(shù)依次設置為3、4、6。
實驗結果如表6所示,單獨加入SD-BLOCK的模型相比縮減模型(模型1~3)參數(shù)減少了絕大部分,計算量明顯下降。SD-BLOCK對模型識別錯誤率的影響不同。因為模型1加入SD-BLOCK后變得極小,影響了識別錯誤率,但仍保持了低識別錯誤率,與原模型僅相差0.11個百分點。模型2較大,加入SD-BLOCK后,識別錯誤率已與原模型相差不大。模型3更大,加入SD-BLOCK后,識別錯誤率降低了0.05個百分點。這是因為植物病害往往表現(xiàn)為顏色、紋理、形狀等復合特征,SD-BLOCK構建了多條卷積路徑,通過不同卷積路徑得到的特征圖關注的主要特征不同,互為補充,進而提取了多種病害特征,增強了網(wǎng)絡病害識別能力。
表6 SD-BLOCK和SE模塊影響實驗結果Tab.6 SD-BLOCK and SE influence experiment
單獨加入SE模塊的模型相比縮減模型參數(shù)和計算量增加微乎其微,識別錯誤率卻明顯下降,低于縮減模型。說明SE是高效的提升網(wǎng)絡性能的方法。植物葉片病害具有顏色、紋理、輪廓等多種多樣的特征,SE模塊的注意力機制使網(wǎng)絡可以增強重要的特征,提升了網(wǎng)絡的性能。相比單獨加入SD-BLOCK的模型,這種模型識別錯誤率更低,但擁有更多的參數(shù)和計算量。
同時加入SD-BLOCK和SE模塊的網(wǎng)絡即SDResNet綜合性能最優(yōu),既減少了參數(shù)量和計算量,又降低了識別錯誤率。SD-BLOCK減少了模型大部分參數(shù)量和計算量,同時提取了眾多的病害特征,而SE會增強重要的病害特征,兩者相互配合,提升了網(wǎng)絡性能。
PlantVillage數(shù)據(jù)集是公開數(shù)據(jù)集,眾多的學者基于此研究植物葉片病害識別。為準確評估所提模型的性能,與近期植物病害識別方法進行比較。由于各個研究的評價指標不同,在原有評價指標的基礎上添加了參數(shù)內(nèi)存需求,它表示存儲網(wǎng)絡參數(shù)所需的空間大小。由表7可知,SDResNet在網(wǎng)絡參數(shù)量和參數(shù)內(nèi)存需求遠低于其他方法情況下,識別錯誤率更低。SDResNet-2在網(wǎng)絡參數(shù)量和參數(shù)內(nèi)存需求大幅減少的情況下,識別錯誤率仍低于或等于其他方法。說明針對植物葉片病害識別,基于殘差結構搭建深而窄的網(wǎng)絡,并輔以輕量級的注意力模塊,更為高效。
表7 植物病害識別方法實驗對比Tab.7 Experimental comparison of plant disease identification methods
為探討所提方法在不同植物葉片病害數(shù)據(jù)集的效果。在自建蘋果葉片病害數(shù)據(jù)集上進行實驗,同樣與MobileNet V3、ShuffleNet V2 1x和ResNet-18對比??紤]到蘋果葉片數(shù)據(jù)集圖像較少且背景復雜,實驗將訓練epoch增大到100,以使模型更好地收斂。訓練學習率初始值為0.1,epoch為60時設置為0.01,epoch為90時設置為0.001。分析表8實驗數(shù)據(jù)可知,復雜背景會影響植物葉片病害的識別效果,網(wǎng)絡識別錯誤率整體升高。相比輕量級網(wǎng)絡ShuffleNet V2 1x和MobileNet V3,SDResNet模型的識別錯誤率明顯下降,其中SDResNet-3模型取得了最低識別錯誤率1.52%。原因是SDResNet網(wǎng)絡底層使用標準卷積,可以更好地提取病害特征,尤其在復雜的背景中。同樣設計的ResNet-18因為較少的訓練數(shù)據(jù)和大量的參數(shù)使得網(wǎng)絡過擬合,識別錯誤率升高,但仍低于輕量級網(wǎng)絡ShuffleNet V2 1x和MobileNet V3。實驗表明,SDResNet針對不同植物葉片病害數(shù)據(jù)集均可以獲得較好的識別精度。
表8 蘋果葉片病害數(shù)據(jù)集實驗結果Tab.8 Experiment on data set of apple leaf diseases
針對植物葉片病害識別模型參數(shù)眾多,計算量大且復雜的問題,提出一種輕量級植物葉片病害識別網(wǎng)絡SDResNet。SDResNet基于縮減的ResNet-18,運用SD-BLOCK,在大幅減少參數(shù),降低計算復雜度的同時提取了多種病害特征,保證了低識別錯誤率,加入SE模塊,進一步降低了識別錯誤率。在PlantVillage數(shù)據(jù)集上實驗表明,SDResNet識別錯誤率略低于ResNet-18,同時參數(shù)量約為其1/39,計算量約為其1/10,具有很強的實用性。