張善文, 許新華, 齊國紅
(鄭州西亞斯學院電子信息工程學院,河南 鄭州 451150)
及時、準確地檢測作物病害是病害防治的提前。傳統的作物病害檢測方法特別依賴于提取的分類特征,但很難從復雜、多變、多種多樣的病害葉片圖像中提取到通用的特征,所以這些方法的檢測率不高且泛化性不強[1-3]。卷積神經網絡(CNN)能夠克服傳統病害檢測方法的不足,提取復雜圖像的深層分類特征,在作物病害檢測中取得了顯著效果[4-5]。邵明月等[6]總結了從早期的作物病害檢測方法到基于CNN檢測方法的研究進展,闡述了近年來CNN在作物病害檢測中的研究成果以及各種方法的優缺點。Ngugi等[7]回顧了近年來基于圖像處理和機器學習的作物病蟲害識別方法,分析了10種CNN架構在識別準確率、召回率、準確性、特異性、F1得分、訓練持續時間和存儲要求方面的作物病害識別性能,為該領域的深入研究提供了技術指導。深度CNN的檢測準確率比較高,但從多種多樣的病害葉片圖像中提取有效的分類特征,需要大量訓練樣本,模型的訓練時間很長,而且對圖像的旋轉和仿射變換比較敏感[8]。
為了克服深度CNN的不足,出現了很多改進的CNN模型。利用多個CNN的組合能夠提取互補的分類特征,增強模型的檢測能力[9];多尺度CNN能夠極大提高病害檢測方法的特征提取能力[10];將注意力機制加入CNN能夠加快網絡收斂,提高網絡的抗噪能力[11];輕量級CNN減少了訓練樣本和網絡參數,加速網絡收斂[12-13];遷移學習加快了模型訓練,增強了模型的泛化能力[14];空洞卷積能夠在不增加訓練參數和不增加計算代價的情況下擴大卷積的感受野,從而提高多尺度特征提取性能[15-16]。
膠囊網絡(CapsNet)利用動態路由算法提取膠囊特征向量,彌補了CNN失去空間位置信息的不足,克服了深度CNN對圖像的旋轉和仿射變換較為敏感的問題[17]。CapsNet使用向量特征狀態的重要信息,向量的模和方向分別表示特征存在的概率和姿態信息,移動特征可以改變膠囊向量,但不影響特征存在概率,特別適用于不規則的、多種多樣的作物病害葉片圖像識別[18]。孿生網絡(Siamese)能夠克服CNN和CapsNet依賴于大量訓練樣本的問題。孿生網絡通過共享權值來實現其功能,能夠通過已有類別中的特征相似度,準確判斷2個相似的樣本,還能利用先驗知識識別新樣本的類別[19-20],在樣本類別多且每個類別的訓練樣本較少的情況下取得較好的效果[21]。
針對實際大田作物病害葉片圖像較少,包含遮擋和復雜背景,病害葉片圖像病斑的大小、形狀和顏色等差異較大等問題,本研究擬提出一種基于孿生多尺度空洞膠囊網絡(SMSDCNet)的黃瓜葉部病害檢測方法,減少對模型訓練樣本量的依賴,在有限訓練樣本中獲取到多類別樣本間的共同特征,以期提高黃瓜病害檢測準確率。
本研究構建了1個用于黃瓜葉部病害檢測的病害葉片圖像數據集,共有500幅圖像,包括黃瓜常見的白粉病、褐斑病、黑斑病、炭疽病和角斑病的葉片圖像各100幅,其中70%的圖像在陜西省楊凌農業示范區采集,30%的圖像來自于數據集PlantVillage(https://www.plantvillage.org/en/tos)。不同病害的黃瓜葉片圖像如圖1所示。

圖1 感染不同病害的黃瓜葉片圖像Fig.1 Images of cucumber leaves infected with different diseases
數據集中的葉片圖像大小不一,因此在試驗過程中將圖像均勻歸一化為224×224像素,以5折交叉驗證策略將數據集隨機劃分為訓練集和測試集,訓練集用于模型訓練,測試集用于測試模型的性能,用5次試驗結果的平均值作為識別結果。
1.2.1 多尺度空洞卷積模塊Inception Inception是一個多尺度卷積網絡模塊,能夠并行組合不同的卷積層,由不同卷積層提取的特征在深度、維度上拼接以形成更深的矩陣,提取不同尺度特征,其結構見圖2。
1.2.2 膠囊網絡 膠囊網絡以膠囊層為數據處理單元,采用動態路由算法在膠囊層之間傳輸數據,具有比CNN更好的特征表達能力。膠囊網絡的基本結構如圖3所示,卷積模塊用于從原始圖像中提取分類特征,主膠囊模塊用于將提取的分類特征表示轉換為特征矢量,數字膠囊模塊使用動態路由算法更新網絡參數,避免因池化操作而造成的損失,最終輸出特征向量,其長度為測試樣本屬于某一類的概率。

圖2 Inception模塊Fig.2 Inception module
1.2.3 孿生網絡 孿生網絡的結構比較簡單,圖4顯示,孿生網絡通過2個具有相同結構、共享權重的CNN模型提取2個輸入圖像的特征向量,然后通過最小化相同類別之間的損失,同時最大化不同類別樣本的損失訓練模型參數,再通過迭代訓練后判別2個樣本是否相似,最后計算2組特征向量的相似度,進行樣本分類識別。

Wij為模型的卷積核。圖3 膠囊網絡的基本結構Fig.3 Structure of capsule network

圖4 孿生網絡結構Fig.4 Structure of Siamese network
針對深度CNN模型訓練參數多,需要大量訓練樣本,但從大田黃瓜種植園難以采集到足夠的病害葉片圖像,導致基于CNN及其改進模型的作物病害識別方法的訓練性能較差,容易出現過擬合等問題。本研究提出一種孿生多尺度空洞膠囊網絡,應用于黃瓜病害識別。SMSDCNet的基本構架如圖5A所示,由2個結構相同的空洞Inception模塊進行特征提取,再基于余弦距離的分類準則進行病害檢測。由圖5A看出,SMSDCNet為孿生膠囊網絡的改進模型,由2個結構相同的卷積層和膠囊層構成,病害檢測由相似度度量層和分類器完成。卷積層由3個空洞Inception模塊構成(圖5B),其中批量歸一化層加快模型的正向、反向傳播速率。在SMSDCNet中,利用空洞卷積代替Inception模塊中卷積,構建一種空洞Inception模塊,其結構見圖5C。

Wij為模型的卷積核。圖5 多尺度空洞膠囊網絡(SMSDCNet)架構Fig.5 Architecture of Siamese multi-scale dilated capsule network (SMSDCNet)
主膠囊層設置32個主膠囊,數字膠囊層有10個數字膠囊,每個膠囊輸入一個6×6×8張量,輸出16×10的矩陣。由圖像對的相似度判定待分類圖像的類別,2個特征向量x1、x2之間的余弦距離[dcos(x1,x2)]作為相似度,計算如下:
dcos(x1,x2)=x1·x2/(‖x1‖·‖x2‖)
(1)
通過對比誤差損失函數Loss進行反向優化模型參數,表示如下:
(2)
式中,x1、x2為2個特征向量;dcos(x1,x2)為特征向量x1、x2之間的相似度;l為2個圖像是否匹配的標簽;N為樣本個數;λ為設定的閾值,由試驗確定,默認值為0.5。
設待檢測圖像映射的特征向量為s,帶標簽圖像的特征向量為ti(ti∈[1,C]),C為病害類別數,按相似度打分排序,用最大值判定待檢測圖像的病害類型(Label)。
Label=[dcos(s,ti)]max
(3)
式中,dcos(s,ti)為待識別圖像與帶標簽圖像的相似度。
圖6顯示,基于SMSDCNet的黃瓜病害識別過程主要為:第一,對圖像進行歸一化處理,并構建圖像對;第二,在SMSDCNet的每個子網絡中,首先由3個空洞Inception模塊依次提取圖像的多尺度卷積特征,然后由膠囊網絡進一步提取特征向量,得到16×10的向量矩陣;第三,構建圖像的特征向量對,按照公式(1)計算每個向量對圖像的相似度;第四,利用公式(2)得到的誤差損失函數Loss優化模型參數,反復訓練直至完成所設定的迭代次數;第五,計算待識別圖像與帶標簽圖像的相似度dcos(s,ti),由dcos(s,ti)的最大值判斷待識別圖像的病害類型。

圖6 基于SMSDCNet的黃瓜病害識別過程Fig.6 Cucumber disease recognition based on SMSDCNet
為了證明利用SMSDCNet進行黃瓜病害識別的有效性,進行了試驗驗證。SMSDCNet訓練的批處理大小設為25,迭代次數為3 000,學習率設為1.5×10-4,Adam作為模型的優化器。所有方法均在Python3.3環境下以Tensorflow1.4編程實現,CNN網絡模型在深度學習的Keras框架下搭建,系統為Ubuntu14.04,核心硬件運算平臺為Intel i7 CPU Ti GPU1080。
對3種孿生網絡[孿生卷積神經網絡(SCNN)[20]、孿生膠囊網絡(SCapsNet)[21]和SMSDCNet]進行5折交叉驗證對比試驗,分析識別率隨迭代次數變化的結果。圖7顯示,當迭代次數達到1 000次后,SMSDCNet趨于收斂,其收斂效果和病害檢測精度明顯高于其他2種模型。表明空洞Inception收斂最快、病害識別效果更好。SMSDCNet和SCapsNet的收斂效果優于SCNN,主要原因是SMSDCNet和SCapsNet中將多尺度卷積Inception模塊加入CapsNet作為孿生網絡的子網絡來構建孿生網絡,Inception模塊替代了SCNN中的卷積層,解決了CNN中最大池化導致重要信息丟失的問題。SMSDCNet與SCapsNet的主要區別在于,SCapsNet利用Inception模塊,而SMSDCNet利用空洞Inception模塊,減少了網絡訓練參數,所以加速了網絡收斂。

SCNN:孿生卷積神經網絡;SCapsNet:孿生膠囊網絡;SMSDCNet:孿生多尺度空洞膠囊網絡。圖7 3個孿生網絡的病害檢測精度隨迭代次數的變化Fig.7 Disease recognition rates of three Siamese networks versus iteration times
為了證明SMSDCNet在訓練樣本有限情況下的有效性,將SMSDCNet與4種近期提出的作物病害識別方法[多尺度殘差神經網絡(MSRNN)[10]、改進卷積神經網絡(ICNN)[22]、VGG輕量級卷積神經網絡(VGG-ICNN)[12]和輕量級卷積神經網絡(LWCNN)[13]]進行對比,這5種方法在原始圖像數據集上進行驗證試驗,訓練樣本數與測試樣本數之比為m∶n,其中m為每類病害的訓練樣本數,n為每類病害的測試樣本數。選擇迭代次數為3 000次,重復試驗5次。表1顯示,當訓練樣本數越來越少時,5種方法的病害檢測精度越來越低,訓練樣本數由90降低為10時,MSRNN、ICNN、VGG-ICNN、LWCNN和SMSDCNet的病害檢測精度分別降低24.90個百分點、21.04個百分點、36.58個百分點、38.06個百分點、8.35個百分點,SMSDCNet的病害檢測精度降低幅度最小。當m∶n=10∶90,即訓練樣本數為10且測試樣本數為90時,SMSDCNet的病害檢測精度為82.89%,比MSRNN、ICNN、VGG-ICNN和LWCNN分別高40.10個百分點、31.27個百分點、36.01個百分點和33.86個百分點。試驗結果表明,SMSDCNet能夠在訓練樣本比較少的情況下達到較高的病害檢測精度,這是因為SMSDCNet通過計算2幅圖像的相似度極大地減少網絡參數的訓練負擔,對于訓練樣本數為m的訓練集可以組成[m(m-1)/2]個不同的訓練樣本對,由此增加訓練樣本的利用率,從而減少模型對訓練樣本量的依賴。

表1 5種病害識別方法在原始數據集上的黃瓜病害檢測精度
為了驗證SMSDCNet的魯棒性,通過改變SMSDCNet中的不同模塊,采用5折交叉驗證方法進行消融試驗。表2顯示,Inception模塊明顯優于傳統膠囊網絡中的卷積和VGG16的卷積,原因是Inception為多尺度卷積;空洞Inception的訓練時間比Inception少,原因是它擴大了感受野但沒有增加訓練參數;余弦距離的效果略優于歐氏距離,其原因是余弦距離能夠直接用于相似度度量。表2結果表明,SMSDCNet具有一定的魯棒性,原因是它利用了孿生網絡、空洞卷積網絡和膠囊網絡的優勢。

表2 基于SMSDCNet的消融試驗結果
由于黃瓜病害葉片圖像復雜多樣,傳統方法很難提取到魯棒的圖像分類特征,深度CNN需要大量訓練樣本,本研究在空洞卷積網絡、多尺度卷積網絡、膠囊網絡和孿生網絡的基礎上,提出了一種基于孿生多尺度空洞膠囊網絡的黃瓜葉部病害檢測方法。該方法通過對比樣本相似度擴大訓練次數,解決病害葉片圖像不足的問題,采用膠囊網絡提取特征的空間信息和位置信息,選用余弦距離相似度更好地區分2個膠囊向量的差異性。結果表明,SMSDCNet具有良好的泛化性,該方法為黃瓜病害檢測與識別的進一步研究提供了參考。下一步工作主要在于優化模型,在擁有更多病害類型的數據集上驗證模型的有效性、可行性。