李書琴 陳 聰 朱 彤 劉 斌
(西北農林科技大學信息工程學院, 陜西楊凌 712100)
植物病害問題與人們的生產生活密切相關[1-3]。在植物生長過程中,容易受到天氣、環境、微生物、病毒和細菌等影響而產生各種病害。植株葉片是病癥最常出現的部位,由于病害種類較多且部分病害特征相似,僅靠種植者肉眼觀察和經驗判斷不能及時診斷病害類型,導致植物病害越來越嚴重,造成巨大損失。因此,快速準確地確定病害類型是防治植物病害的關鍵點。
傳統病害識別算法[4-6]主要通過人工提取研究對象圖像特征進行分析研究,取得了一定的研究成果。鄭建華等[7]通過融合葡萄病葉的RGB顏色矩、HSV顏色直方圖特征、GLCM紋理特征、HOG特征,利用支持向量機算法對3種病害識別準確率達到93.41%。郭小清等[8]選擇HSV模型中的4維H分量等量分割波段作為顏色特征,基于灰度差分統計的均值、對比度和熵3維特征作為紋理特征,通過粒子群算法優化支持向量機參數,獲得了90%番茄葉片病害識別準確率。然而,人工提取的特征包含一定程度的主觀性,無法確定最佳和魯棒的特征,且植物病害通常表現為紋理、形狀和顏色等多種復合特征,這為傳統植物葉片病害識別算法帶來了巨大的挑戰,也影響了識別的效果。
深度學習的出現,為病害識別提供了新的方法。卷積神經網絡不依賴特定特征,得到廣泛應用。基于卷積神經網絡的植物葉片病害識別方法[9-11]具有識別準確率高的優點,但也存在網絡參數眾多,計算量大且復雜的問題,實用性較差。因此越來越多的學者將目光轉向輕量級植物葉片病害識別網絡的研究。孫俊等[12]通過批歸一化和全局池化改進卷積神經網絡獲得了99.56%識別準確率,參數內存需求2.6 MB。劉洋等[13]采用MobileNet V1[14]在PlantVillage數據集獲得了95.02%的準確率,參數內存需求17.1 MB。賈鶴鳴等[15]運用深度可分離卷積,全局平均池化,批歸一化改進VGG網絡,改進后的網絡識別精度為99.43%,內存占用空間為6.47 MB。可以看出上述研究只是運用或改進卷積神經網絡,未能針對病害特征進一步分析,雖然取得了較好的結果,但模型仍有提升的空間。
為進一步提升輕量級植物病害識別網絡性能,結合植物病害特征,本文提出一種基于輕量級殘差網絡的植物葉片病害識別方法,通過縮減ResNet-18[16]卷積核數目和輕量級殘差模塊(SD-BLOCK),在減少參數、降低計算復雜度的同時提取多種病害特征,保持低識別錯誤率。然后加入SE[17]模塊,增強網絡病害特征提取能力,降低網絡識別錯誤率,從而構建輕量級殘差網絡(Scale-Down ResNet,SDResNet)。
分析植物病害顏色、紋理、輪廓等特征可知,不同植物病害特征,同一植物不同病害特征表現出一定的相似性,區分難度較大。Residual Network[16](ResNet)運用了殘差學習的思想,增加了網絡的深度,進而提升了網絡病害特征提取能力,被廣泛應用于病害識別[18-20]。ResNet主要由一系列殘差模塊(圖1)組成。一個殘差模塊可以表示為

圖1 殘差模塊Fig.1 Residual module
XL+1=XL+F(XL,WL)
(1)
式中XL、XL+1——第L、L+1層特征圖
WL——第L層卷積參數
F——卷積運算函數
即將網絡映射H(XL,WL):=XL+1轉變為XL+F(XL,WL),疊加的卷積層只需要擬合F(XL,WL)函數。這種轉變使深層網絡更容易優化。假設網絡學習的XL是最優的,網絡更深層的卷積將權重置為0便能達到最佳性能。若最優結果接近XL,更深的卷積層則只需要微調,而不是學習一個新的映射。
殘差結構實現簡單,如圖1所示,在網絡中構建恒等連接即可,這使得網絡底層和深層中的信息可以快捷傳遞,在一定程度上解決了深層網絡信息丟失、損耗和梯度爆炸與消失問題,提升了深層網絡的性能。
1.2.1分組卷積
分組卷積采用split-transform-merge[21]思想,在減少參數和計算量的同時提高了網絡識別精度。通過這種卷積方式可以得到關注點不同的特征圖,互為補充,更完整地表示圖像特征。同時分組卷積增加了卷積核之間的對角相關性,減少了參數,可以緩解過擬合,類似于正則。分組卷積計算過程如圖2所示,分組卷積對輸入特征圖分解,然后在各個分組上進行卷積計算。由于卷積的輸入通道數減少,相應也減少了參數和計算量,減為原來的1/G,G為分組數。

圖2 分組卷積Fig.2 Group convolution
1.2.2深度可分離卷積

(2)
由式(2)可知,如果卷積核尺寸為3×3(DK=3),由于輸出通道數N很大,深度可分離卷積大約是標準卷積計算量的1/9。MobileNet V1[14]將標準卷積替換為深度可分離卷積,精度卻沒有損失太多,證明了深度可分離卷積強大的特征提取能力。
1.2.3輕量級殘差模塊結構
輕量級殘差模塊(SD-BLOCK)主要運用了深度可分離卷積和分組卷積。首先2種卷積方式搭配使用大幅減少了網絡參數,降低了計算量。同時2種卷積方式都構建了多條卷積路徑,并且深度卷積不會擾亂分組卷積的分組。植物病害往往表現為顏色、紋理、形狀等復合特征。通過不同卷積路徑得到的特征圖關注的主要特征不同,互為補充,進而提取了多種的病害特征,增強了網絡病害識別能力。同時分組卷積存在各分組信息無法交互的問題,而逐點卷積可以融合通道信息,解決了此問題。如圖3所示,DSConv代表深度可分離卷積,GConv表示分組卷積,SD-BLOCK有2種不同結構,結構A(圖3a)用于特征圖減半,結構B(圖3b)使用1×1卷積進一步減少參數。

圖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層瓶頸狀的全連接網絡。具體計算公式為
s=σ(W2δ(W1Z))
(W1∈R(C/r)×C,W2∈RC×C/r)
(4)
式中δ——ReLU函數C——通道數
σ——Sigmoid函數
W1——第1層網絡的參數
W2——第2層網絡的參數
r——中間全連接層的縮減參數
Z——所有通道的上下文信息
s——通道注意力信息
融合SE模塊的殘差模塊結構如圖4所示,SE模塊加入到殘差模塊的卷積層之后。在卷積層之后先使用全局平均池化聚合特征圖的信息。然后送入兩層全連接網絡中學習各通道權重,進而與輸入特征圖相乘重新調整網絡特征。最后和初始特征圖相加實現殘差學習。

圖4 SE-ResNet模塊Fig.4 SE-ResNet module
輕量級殘差網絡(Scale-Down ResNet,SDResNet)模型總體結構如表1所示,表中RE-BLOCK代表原殘差模塊。

表1 輕量級殘差網絡結構Tab.1 Scale-Down ResNet structure
模型以ResNet-18為基礎,首先縮減卷積核的數目,去除網絡冗余。本研究構建了3個模型SDResNet-1、SDResNet-2和SDResNet-3,卷積核的數目分別設置為(12,24,48,96)、(16,32,64,128)和(24,48,96,192)。考慮到底層提取的特征對網絡識別精度至關重要,SDResNet保留了網絡底層的原殘差模塊,使用標準卷積提取底層特征,提高了網絡的性能。因為經過縮減后網絡底層特征通道數已足夠小,所以這樣做并沒有帶來過多的參數和計算量。網絡深層特征通道數仍比較大,SDResNet使用SD-BLOCK減少了大部分參數和計算量,同時保持了低識別錯誤率。最后網絡融合了SE注意力模塊,進一步提升了網絡性能。
本研究數據集選用PlantVillage工程(www.plantvillage.org)面向所有用戶開放的植物病害圖像數據庫[22],它包含26類植物患病葉片圖像和12類植物健康葉片圖像,共54 306幅。數據庫中的圖像均是在室內拍攝,拍攝規范,背景簡單。數據集詳情如表2所示。實驗將圖像統一到224像素×224像素,然后按照4∶1劃分得到訓練集和測試集。

表2 PlantVillage數據庫圖像信息Tab.2 Image information of PlantVillage
蘋果葉片病害數據集包含4種蘋果葉片病害圖像和1種健康蘋果葉片圖像,葉片病害分別是黑星病、褐斑病、銹病、花葉病。數據集圖像主要來自Kaggle競賽和田間采集,共有2 276幅原始圖像。與PlantVillage數據集不同,該數據集中所有病害葉片圖像均為自然光照下拍攝且背景復雜。為均衡各類別圖像,對部分類別采用隨機旋轉、亮度調整、對比度增強、翻轉操作擴充數據集,擴充后的數據集共有2 973幅圖像,每個類別約有600幅圖像。圖5給出了蘋果葉片病害數據集中5個類別的樣例。同樣,實驗將圖像調整到224像素×224像素,訓練集和測試集的比例為4∶1。

圖5 蘋果葉片病害數據集樣本Fig.5 Examples of apple leaf disease data set
本研究實驗環境配置如表3所示,訓練epoch設置為60,學習率初始值為0.1,epoch為45時設置為0.01,epoch為55時設置為0.001。batch設置為128。

表3 實驗環境配置Tab.3 Experimental environment configuration
本研究選用識別錯誤率、網絡參數量和每秒百萬次浮點運算(MFLOPs)作為評價網絡的指標。
圖6為SDResNet-1、SDResNet-2和SDResNet-3的損失函數曲線。由圖6可以看出,模型收斂迅速,可以很好地擬合病害特征。這使得SDResNet-3模型在訓練3輪后識別錯誤率低于10%,訓練5輪后識別錯誤率低于5%。分析原因,模型運用殘差學習的思想,加入了恒等連接,使網絡更容易優化。并因此構建了更深的網絡,提高網絡擬合病害特征的能力。

圖6 損失函數曲線Fig.6 Loss function curves
為更好地評價所提網絡的性能,選取現有優異的圖像識別模型ResNet-18、ShuffleNet V2[23]和MobileNet V3[24]與SD-ResNet在PlantVillage數據集進行實驗對比。MobileNet V3出自Google AI,是最近發布的輕量級網絡架構。ShuffleNet V2是曠視科技推出的最新輕量級網絡架構,相關論文收錄在ECCV中。
實驗結果如表4所示,按計算量正序排列。從識別錯誤率分析,SDResNet-3取得了最優的結果,甚至超過ResNet-18,而前者是后者參數量和計算量的幾十分之一。這是因為針對植物葉片病害識別問題,SDResNet繼承了ResNet優異的殘差結構,在幾乎不影響性能的情況下,合理去除了更多的參數和計算量。針對植物葉片病害特征使用SD-BLOCK提取了多種病害特征,使用SE模塊關注到重要的病害特征,提升了網絡性能。與其他輕量級網絡相比,SDResNet-3在計算量略小于MobileNet V3情況下,識別錯誤率低于后者。SDResNet-2在計算量小于ShuffleNet V2 1x情況下,識別錯誤率低于后者。SDResNet-1在計算量略大于ShuffleNet V2 0.5x情況下,識別錯誤率明顯低于后者。MobileNet V3和ShuffleNet V2并未就植物葉片病害特征針對性處理,使其無法更好地提取病害特征,影響了網絡精度。

表4 卷積神經網絡實驗結果Tab.4 Convolution neural network experiments
為確定縮減卷積核數目對ResNet-18網絡性能的影響程度,研究構建不同的殘差塊卷積核數的模型進行實驗。模型1卷積核數為(12,24,48,96),模型2卷積核數為(16,32,64,128),模型3卷積核數為(24,48,96,192),分別對應SDResNet-1、SDResNet-2、SDResNet-3殘差塊卷積核數目。實驗結果如表5所示。
由表5可知,縮減后的模型在網絡參數與計算量大幅減少的同時,識別錯誤率并沒有顯著上升,仍維持在較低水平,這很大程度上得益于殘差結構的設計,構建了較深的網絡,增強了病害特征提取能力。縮減后的模型依然能很好地擬合植物病害特征,具有更少的參數和計算量,但識別錯誤率相比ResNet-18仍有不足。同時可以看出,不同的縮減模型,具有不同的性能,總體上隨著卷積核數目的增長,模型識別錯誤率也在下降,并逐漸逼近原網絡,但同時也可以看出隨著網絡性能的提升,通過單純增加卷積核數目來降低識別錯誤率的代價高昂,因此本研究選擇了SD-BLOCK和SE模塊提升網絡的性能。

表5 縮減卷積核數目實驗結果Tab.5 Reduce convolution kernel experiment
將輕量級殘差模塊SD-BLOCK和SE模塊加入到網絡中以探討他們對網絡性能的影響。模型1~3與3.5節定義相同。不同的分組數和SE參數對不同模型的影響不同,本文通過實驗選取最優參數值,將3個模型的分組卷積參數依次設置為12、8、12,SE參數依次設置為3、4、6。
實驗結果如表6所示,單獨加入SD-BLOCK的模型相比縮減模型(模型1~3)參數減少了絕大部分,計算量明顯下降。SD-BLOCK對模型識別錯誤率的影響不同。因為模型1加入SD-BLOCK后變得極小,影響了識別錯誤率,但仍保持了低識別錯誤率,與原模型僅相差0.11個百分點。模型2較大,加入SD-BLOCK后,識別錯誤率已與原模型相差不大。模型3更大,加入SD-BLOCK后,識別錯誤率降低了0.05個百分點。這是因為植物病害往往表現為顏色、紋理、形狀等復合特征,SD-BLOCK構建了多條卷積路徑,通過不同卷積路徑得到的特征圖關注的主要特征不同,互為補充,進而提取了多種病害特征,增強了網絡病害識別能力。

表6 SD-BLOCK和SE模塊影響實驗結果Tab.6 SD-BLOCK and SE influence experiment
單獨加入SE模塊的模型相比縮減模型參數和計算量增加微乎其微,識別錯誤率卻明顯下降,低于縮減模型。說明SE是高效的提升網絡性能的方法。植物葉片病害具有顏色、紋理、輪廓等多種多樣的特征,SE模塊的注意力機制使網絡可以增強重要的特征,提升了網絡的性能。相比單獨加入SD-BLOCK的模型,這種模型識別錯誤率更低,但擁有更多的參數和計算量。
同時加入SD-BLOCK和SE模塊的網絡即SDResNet綜合性能最優,既減少了參數量和計算量,又降低了識別錯誤率。SD-BLOCK減少了模型大部分參數量和計算量,同時提取了眾多的病害特征,而SE會增強重要的病害特征,兩者相互配合,提升了網絡性能。
PlantVillage數據集是公開數據集,眾多的學者基于此研究植物葉片病害識別。為準確評估所提模型的性能,與近期植物病害識別方法進行比較。由于各個研究的評價指標不同,在原有評價指標的基礎上添加了參數內存需求,它表示存儲網絡參數所需的空間大小。由表7可知,SDResNet在網絡參數量和參數內存需求遠低于其他方法情況下,識別錯誤率更低。SDResNet-2在網絡參數量和參數內存需求大幅減少的情況下,識別錯誤率仍低于或等于其他方法。說明針對植物葉片病害識別,基于殘差結構搭建深而窄的網絡,并輔以輕量級的注意力模塊,更為高效。

表7 植物病害識別方法實驗對比Tab.7 Experimental comparison of plant disease identification methods
為探討所提方法在不同植物葉片病害數據集的效果。在自建蘋果葉片病害數據集上進行實驗,同樣與MobileNet V3、ShuffleNet V2 1x和ResNet-18對比。考慮到蘋果葉片數據集圖像較少且背景復雜,實驗將訓練epoch增大到100,以使模型更好地收斂。訓練學習率初始值為0.1,epoch為60時設置為0.01,epoch為90時設置為0.001。分析表8實驗數據可知,復雜背景會影響植物葉片病害的識別效果,網絡識別錯誤率整體升高。相比輕量級網絡ShuffleNet V2 1x和MobileNet V3,SDResNet模型的識別錯誤率明顯下降,其中SDResNet-3模型取得了最低識別錯誤率1.52%。原因是SDResNet網絡底層使用標準卷積,可以更好地提取病害特征,尤其在復雜的背景中。同樣設計的ResNet-18因為較少的訓練數據和大量的參數使得網絡過擬合,識別錯誤率升高,但仍低于輕量級網絡ShuffleNet V2 1x和MobileNet V3。實驗表明,SDResNet針對不同植物葉片病害數據集均可以獲得較好的識別精度。

表8 蘋果葉片病害數據集實驗結果Tab.8 Experiment on data set of apple leaf diseases
針對植物葉片病害識別模型參數眾多,計算量大且復雜的問題,提出一種輕量級植物葉片病害識別網絡SDResNet。SDResNet基于縮減的ResNet-18,運用SD-BLOCK,在大幅減少參數,降低計算復雜度的同時提取了多種病害特征,保證了低識別錯誤率,加入SE模塊,進一步降低了識別錯誤率。在PlantVillage數據集上實驗表明,SDResNet識別錯誤率略低于ResNet-18,同時參數量約為其1/39,計算量約為其1/10,具有很強的實用性。