何東健 王 鵬 牛 童 毛燕茹 趙艷茹
(1.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100; 2.農業農村部農業物聯網重點實驗室, 陜西楊凌 712100;3.陜西省農業信息感知與智能服務重點實驗室, 陜西楊凌 712100)
葡萄產業是我國重要的果品產業之一,近年來,受氣候變化等因素影響,葡萄病害頻發。特別是葡萄霜霉病的發病率明顯上升,對葡萄產量和品質構成嚴重威脅,給果農造成了巨大經濟損失[1]。對葡萄病害嚴重程度進行分級,有利于果農精準施藥、提高防治效果,降低病害帶來的經濟損失。目前,國內規模化葡萄園需要依靠人工跟蹤果園葡萄霜霉病發展態勢,導致果園病害跟蹤管理存在滯后性。因此,實現實時準確的葡萄霜霉病嚴重程度分級,對葡萄病害科學管理和防治、培育抗病品種等都具有重要意義[2]。
隨著計算機視覺技術的發展,機器學習[3-5]和深度學習[6-9]方法近年來已被廣泛應用到遙感圖像識別[10]和農業[11-14]等領域,特別是在作物病害識別方面取得了很好的成果[15-17],為葡萄病害嚴重度等級劃分提供了新的解決方案。為了實現自動識別葡萄葉片病害,朱林等[18]在葡萄葉片病斑區域提取了基于灰度共生矩陣的4種紋理特征和顏色特征,用人工神經網絡進行分類,結果表明HS組合特征具有最佳識別效果。ZHU等[19]首先采用小波變換對葡萄葉片圖像去噪,利用形態學算法改善病害形狀并利用Prewitt算子提取病變區域邊緣,提出基于BP神經網絡識別5種葡萄葉片病害。劉洋等[20]在其自建的6種葡萄病害數據集上利用移動端設備部署MobileNet網絡進行識別,獲得87.5%的平均識別準確率。ADEEL等[21]提出了一個自動分割和識別葡萄葉片病害的系統,利用M-class SVM對最終的約簡特征進行分類,該方法平均分割正確率為90%,分類正確率達到92%以上。上述研究在病害識別方面取得了很好的成果,但是由于采用人工提取病害特征,難以高效完成有效特征的提取。
人工提取有效特征效率低下,而卷積神經網絡能夠避免這類復雜操作[22]。文獻[23-27]在模型的輕量化、特征提取能力的增強、識別準確率的提高等方面都有了很大改善,但是所用數據集圖像差異大、有效特征易提取,針對病害表征相似度較高的病斑特征提取能力有限,模型適應性不強。
不同程度葡萄霜霉病圖像病斑表征相似度高且背景復雜不易區分,為了準確識別發病程度,提高模型的泛化性能,本文在ResNet-50的基礎上,通過修改殘差塊的主分支和捷徑分支結構以增強網絡特征提取能力和保留重要信息的維度變化,并在多個不同的增強數據集上驗證本文構建模型的有效性。
2020年7—10月,于陜西省楊凌區西北農林科技大學葡萄種植基地,分別采集了霜霉病前期、中期、后期以及健康葉片圖像,圖像采集設備為小米9手機,分辨率為3 000像素×3 000像素。所采集圖像由葡萄病害專家根據發病時間以及葉片病斑面積進行了嚴重度等級劃分,共4 470幅,其中霜霉病前期1 190幅,中期1 090幅,后期1 180幅,健康葉片圖像1 010幅,建立了一個葡萄霜霉病圖像數據集。圖1為不同霜霉病發病程度圖像示例。
在實際應用中,葡萄葉片通常生長在復雜環境背景中,同時由于存在天氣、獲取圖像時的拍攝角度、設備噪聲等因素影響,病害的準確分級面臨諸多問題。田間環境存在背景多變、遮擋、陰影等情況,且獲取圖像易受光照、霧霾等因素干擾,同時葡萄葉片生長位置、葉片形狀也會影響圖像分級效果。如圖1部分示例所示,無論是在幾何特征、輪廓信息等方面均存在較大差異。
為模擬上述影響,使得本文數據集盡可能地符合田間復雜環境下的應用,對原始圖像進行高斯模糊、對比度增強30%/減弱30%、亮度增強20%/減弱20%、銳度增強50%/減弱50%以模擬不同天氣情況(圖2)。分別旋轉圖像90°、180°、270°和水平翻轉、垂直翻轉,以模擬拍攝角度變化(圖3)。對原始圖像加入高斯噪聲和椒鹽噪聲,以模擬圖像采集時的設備噪聲(圖4)。綜合以上3種方法得到增強后的數據集數據量是原來的14倍。將輸入模型數據集的圖像尺寸統一調整為224像素×224像素,并按照7∶2∶1劃分為訓練集、驗證集、測試集。

圖2 模擬不同天氣的數據增強效果Fig.2 Data enhancement effects for simulating different weathers

圖3 模擬不同拍攝角度的數據增強效果Fig.3 Data enhancement effects for simulating different shooting angles

圖4 模擬設備噪聲的數據增強效果Fig.4 Data enhancement effects of analog equipment noise
本文數據集包含3種不同發病程度的霜霉病以及健康葉片圖像,不同程度的霜霉病病斑的紋理、顏色、圖像中葡萄葉片面積占比等表征信息具有很高的相似性,區分難度大,會導致模型識別不同程度病害時準確率降低;同時由于不同病害等級葉片背景復雜無規律性,也會影響模型的特征提取過程,淺層網絡的特征提取能力無法滿足病斑特征的提取,模型泛化能力弱。深層卷積神經網絡能夠很好地提取圖像淺層、深層的不同特征信息,復雜背景下的提取能力有了較大提升。深度卷積神經網絡在特征提取能力上優于淺層網絡,但隨著網絡深度加深,模型會出現梯度消失或梯度爆炸現象,同時易導致模型退化。殘差塊從結構上看主要包括兩部分,即捷徑連接和恒等映射,捷徑分支使得殘差成為可能,保證了網絡深度增加的同時模型不退化,恒等映射使得網絡能夠更深,獲得更強的特征提取能力。依靠殘差塊堆疊搭建的深層殘差網絡在表征相似度高的不同圖像時仍然能達到很好的效果。為了使模型訓練過程更快收斂且保證較高的識別準確率,本文在ResNet-50深度殘差網絡[28]基礎上,修改模型殘差塊主分支結構與捷徑分支結構,進一步提高網絡特征提取能力,提取圖像中的葉片病斑信息,構建模型實現葡萄霜霉病的等級劃分。
本文采用的ResNet-50整體結構如圖5所示。首先利用7×7卷積層和3×3最大池化下采樣對輸入圖像進行一次常規特征提取操作,減小特征尺寸,然后通過Stage2中的Conv2、Conv3、Conv4與Conv5殘差體提取更高層特征信息,最后將提取到的高維特征輸入到Stage3全連接層進行分類輸出。

圖5 模型總體結構圖Fig.5 Overall structure of model
殘差塊有2種結構,如圖6所示,其主分支輸出特征矩陣與捷徑分支輸出特征矩陣具有相同形狀,兩者堆疊構成了殘差主體。

圖6 不同結構的殘差塊Fig.6 Residual blocks of different structures
在圖6a中,捷徑分支被用于改變特征維度,這一操作起到了避免模型退化的作用,為了保持輸出特征矩陣與主分支輸出一致,采用一個1×1卷積操作,能夠較好地實現跨通道的特征整合,但是直接用步長為2的1×1卷積層將上層特征圖尺寸減半,無重點的特征圖減半操作弱化了圖像紋理、角點等部分重要特征,造成特征圖存在一定程度失真,導致后續殘差層結構能提取到的有效特征減少。輸入特征在ID Block中殘差塊主分支中流動時,為了減少計算量先采用1×1卷積降維操作后再提取特征,然后將提取到的特征信息升維。如圖6b所示,這種瓶頸結構雖然提高了計算速度,但也在一定程度上限制了主分支的特征提取能力,僅修改主分支和ResNet-50原始模型相比準確率能夠提升3.11個百分點,模型泛化能力更優,說明單個3×3卷積層的特征提取性能不足。原始模型的全連接層不能直接用于本文數據集,需要對其重新設計。針對以上問題,本文對ResNet-50進行如下改進:
(1)對Conv3、Conv4、Conv5的Base Block捷徑分支進行改進。原始結構如圖7a所示,在原始1×1卷積層前插入3×3最大池化層,步長為2,實現保留重要信息的降維,經過1×1卷積層特征整合后通過批歸一化操作(BN)與主分支輸出相加,圖7b為改進后的捷徑分支結構。

圖7 改進前后捷徑分支結構Fig.7 Shortcut branch structure before and after improvement
(2)改進ID Block中殘差塊的主分支結構。ID Block中殘差塊的主分支結構如圖8a所示,在卷積過程中第1層卷積層僅對輸入特征進行降維。為了強化殘差結構主分支性能,使其能夠高效地用于本文數據的特征提取,將其中的第1層1×1卷積降維替換為3×3卷積降維且步長為1,卷積核個數不變,在降維的同時提取大部分重要特征,改進后ID Block中殘差塊主分支結構如圖8b所示。

圖8 改進前后主分支結構Fig.8 Main branch structure before and after improvement
(3)設計新的全連接層。設計的新的全連接層如圖9所示,用全局均值池化和3層節點個數分別為1 024、512和4的全連接層網絡代替原模型全連接層結構,并加入Dropout層避免模型過擬合,提升模型泛化能力,使其能夠針對本問題達到更好的效果。

圖9 新的全連接層Fig.9 New fully connected layer
試驗平臺為Intel Xeon Gold 5217 CPU,3 GHz處理器,系統內存251.4 GB。測試軟件環境為Ubuntu 18.04.5 LTS,64位操作系統。分類網絡模型由Python3.7基于TensorFlow2.1深度學習框架、GPU (Nvidia TESLA V100) 雙卡模式訓練實現。
為了盡可能提升BN的優化效果,本試驗將所有模型的輸入批尺寸統一設置為32,圖像尺寸設置為224像素×224像素,在保證訓練速度的同時也能最大化BN操作的效果。
為了探明動量因子、學習率、Dropout比率、數據增強方式對改進后模型識別準確率的影響,在原始數據集上測試不同模型。試驗設計如下:
(1)超參數(動量因子m、學習率α)對識別準確率的影響試驗。設置了0.30、0.60、0.90共3個動量梯度,進行預試驗,根據預試驗的結果,再進一步改變m,找到適合本文模型的最佳動量因子;在最優動量基礎上分別測試學習率為0.01、0.001、0.000 1,確定模型最優超參數。
(2)不同模型識別性能對比試驗。首先優化AlexNet、GoogLeNet、VGG-16以及ResNet-34、ResNet-101模型的最優超參數,自動選擇超參數算法往往需要更高的計算成本,因此各模型優化調參均采用手動調整的方式。將優化后的上述模型與改進后的模型在原始數據集上進行對比,分別測試準確率。
(3)數據增強方式對模型識別準確率的影響試驗。在4種不同的增強數據集上對改進后模型進行訓練和測試,以探明數據增強方式對識別準確率的影響;在綜合各種增強數據集上將改進后的模型與ResNet-50進行對比,評估改進殘差網絡模型的性能提升效果。
(4)殘差結構修改方式對模型識別準確率的影響試驗。為評估僅修改殘差塊捷徑分支和僅修改殘差塊主分支對模型識別準確率的影響,分別對兩種修改后的模型進行訓練并測試,最后與兩種方法并用的模型進行對比。
3.3.1動量因子對識別準確率的影響
預試驗結果顯示,在m=0.60時模型精度最高,根據這一結果,設計了m為0.50、0.55、0.60、0.65、0.70的動量梯度并在原始數據集上進行試驗;在動量因子為0.60的基礎上測試了不同學習率對模型準確率的影響,根據收斂速度和準確率優選出學習率α為0.001的模型,測試結果如表1所示。

表1 不同動量因子下改進ResNet-50模型的準確率Tab.1 Model accuracy of improved ResNet-50 under different momentum factors %
不同動量因子的模型訓練過程如圖10所示。動量因子較小時模型收斂過程較平緩,但收斂速度慢且訓練難以得到最優值,而過大的動量因子則使得模型訓練過程容易出現振蕩,不利于模型精度的提高。在測試集中,m=0.60時模型識別準確率為95.17%,高于其它動量參數模型。

圖10 不同動量因子下模型性能隨迭代周期的變化曲線Fig.10 Variation of model performance with iteration times under different momentum factors
3.3.2不同模型的識別性能
不同模型在原始數據集的訓練集、驗證集和測試集上的識別準確率如表2所示。
從表2可以看出,AlexNet網絡在訓練過程中采用分組卷積,其不同特征圖分別計算后融合,導致卷積核只與某部分特征圖進行卷積,模型泛化能力不強;本文數據集相似度較高,GoogLeNet網絡對多尺度特征的適應性優勢未能充分體現,識別準確率不高;VGG-16參數量大,初始數據集不足以訓練VGG-16,網絡難以優化;殘差網絡能很好地解決網絡深度增加導致的梯度消失和模型退化的問題,ResNet-34以較少的參數量獲得了較高的準確率,但還存在提升空間;更深層的ResNet-50模型識別效果有了明顯的提升;而ResNet-101網絡過深,訓練時間長,在ResNet-50模型基礎上識別準確率并未有顯著提升,計算成本過高,不利于實際應用。殘差網絡模型能夠較好地適應本文數據集相似度高的特點,改進后的ResNet-50模型識別準確率為95.17%,高于原始模型。

表2 不同模型識別準確率對比Tab.2 Comparison of recognition accuracy of different models %
3.3.3數據增強方式對改進模型識別性能的影響
為提高模型泛化能力,分別用4種不同的數據增強方式進行訓練并測試,表3中數據集A、B、C、D分別為模擬不同天氣、不同拍攝角度、不同設備以及綜合各種增強方法得到的數據集,不同增強方式所生成數據集的4個時期數據量統計如表3所示。

表3 數據增強后樣本量分布Tab.3 Sample number distribution after data enhancement 幅
圖11為改進后殘差網絡在綜合數據集上的訓練過程,模型收斂速度快,訓練準確率達100%。

圖11 改進模型性能隨迭代周期的變化曲線Fig.11 Performance of improved model varied with number of iterations
改進ResNet-50模型與ResNet-50模型在不同數據集上的識別準確率對比如表4所示。可以看出,與ResNet-50相比,改進ResNet-50在數據集D上識別準確率最高,測試效果最好。

表4 改進模型與原模型的識別效果對比Tab.4 Recognition effect comparison between improved model and original model %
由表4可知,在原始數據集上,改進后模型較原始模型在測試集的識別準確率提升了2.31個百分點;不同數據增強方法均能提高模型的泛化性能,使用改進殘差結構的模型識別準確率最高達到了99.92%。由于捷徑分支池化層的加入和主分支的結構調整,參數量有一定的增加,模型訓練耗時接近原始殘差網絡模型的1.3倍,但本文方法極大增強了模型特征提取能力和適應性,能夠在復雜背景下準確判別病害等級,具有更高的實用價值。
3.3.4殘差結構修改方式對模型識別準確率的影響
首先維持主分支不變,僅修改殘差結構Conv3、Conv4、Conv5的Base Block捷徑分支;然后維持捷徑分支不變,修改ID Block中殘差塊的主分支結構;在數據集D上分別訓練模型并進行測試,結果如表5所示。

表5 不同修改方式的殘差結構識別效果Tab.5 Residual structure recognition effect of different modification methods %
與原始模型相比,兩種修改方法在識別準確率上均有一定提升。僅修改捷徑分支時,能夠在實現降低特征維度的同時保留大量上層信息,基于這一上層信息,下層主分支在進行下一輪特征提取時能有更好的表現。僅修改主分支時,模型特征提取的能力得到增強,卷積層的性能得到較大提升。兩分支同時修改后,進一步減少了流動過程中的信息損失,準確率得到進一步提升,殘差結構主分支與捷徑分支相互促進,模型效果達到最優。
模型殘差結構改進前后的特征提取過程如圖12所示,圖12a中Block1、Block2、Block3分別為原始網絡結構中圖像經過第1、2、3個殘差體后輸出的特征圖;圖12b中各圖分別為改進后網絡第1、2、3個殘差體提取到的特征。殘差結構改進前后網絡在淺層提取到的特征差異不大,但改進后殘差結構提取深層抽象特征的能力比改進前更強。

圖12 改進前后殘差結構特征提取可視化Fig.12 Visualizations of feature extraction of improved residual structure
(1)為了提高自然條件下葡萄霜霉病病害程度分級準確率,從插入池化層、優化主分支結構和設計新的全連接層等方面對殘差網絡模型ResNet-50進行改進,原始數據集測試結果表明,動量因子m為0.60、學習率α為0.001時改進ResNet-50模型具有最好的識別效果。改進后的殘差塊增強了網絡的特征提取能力,在優化超參數的基礎上,相較于原始模型識別準確率提升了2.31個百分點。
(2)不同數據增強方式對提高模型識別準確率均有一定貢獻,且不同的殘差結構改進方式均能提高模型識別準確率。數據集D上改進ResNet-50模型的識別準確率高于原始模型4.68個百分點,達到99.92%,表明本文方法可實現復雜環境下葡萄霜霉病的自動準確識別。