王林柏,張博,姚竟發,楊志輝,張君,范曉飛
(1.河北農業大學機電工程學院,河北保定,071000;2.河北農業大學植物保護學院,河北保定,071000)
馬鈴薯是全球第四大重要的糧食作物,也是十大熱門營養健康食品之一,同時馬鈴薯是具有發展前景的高產作物,是僅次于水稻、玉米、小麥的重要糧食作物,由于它高產穩產、適應性廣、營養成分全和產業鏈長而受全世界的高度重視[1]。我國馬鈴薯主要有四個產區,分別是:北方一作區、中原二作區、南方冬作區和西南混作區。河北省北方地區屬于北方一作區,是重要的馬鈴薯種植基地,而馬鈴薯病害的防治是關乎其產量的至關重要因素,尤其早疫病與晚疫病是馬鈴薯種植過程中的兩種重要病害,也是主要的防治對象。近年來隨著馬鈴薯種植面積的不斷增加,早疫病與晚疫病的發病面積與危害程度也不斷增加,同時由于早疫病與晚疫病發病早期多集中在葉片,判斷錯誤容易延誤治療時機。因此對病斑的識別和準確定位是對馬鈴薯病害防治的重要手段[2-3]。
傳統的農作物病害診斷通常由有經驗的專家進行,然而人工檢測方法效率低、主觀性強,不適合大區域場景。目前機器視覺技術在農業應用領域快速發展,能夠對作物病害進行快速、準確的診斷[4-7]。范振軍等[8]提出了一種基于關鍵特征點的病害感興趣區域快速檢測與融合顏色和紋理特征的識別方法,對10類馬鈴薯病害實現了速度快、準確率高的識別,但對復雜環境下識別不夠理想。Brahimi等[9]通過卷積神經網絡對番茄的9種病害進行了訓練,最終模型的準確率達到99.1%。張建華等[10]提出基于改進VGG16卷積神經網絡的病害識別模型,實現了自然條件下棉花病害圖像準確分類,但模型的參數較大。張善文等[11]通過深度卷積神經網絡進行蘋果病害的識別,在蘋果病害葉片圖像數據庫上實現了病害識別準確率和模型識別時間的提升,但魯棒性不高。楊森等[12]提出一種基于深度卷積神經網絡與復合特征字典結合的馬鈴薯病害葉片識別方法,利用Faster R-CNN進行病斑區域的檢測,然后通過提取圖像特征構造出復合特征字典,利用支持向量機訓練出病害的識別模型,其平均識別準確率可達到84.16%,但是圖像背景較簡單。肖志云等[13]針對自然條件下馬鈴薯典型病害區域定位和識別難的問題,提出了一種馬鈴薯典型病害圖像的自適應特征融合與快速識別方法,對3類馬鈴薯典型病害圖像進行識別試驗,結果表明SVM識別模型下自適應特征融合方法比傳統自適應方法平均識別率至少提高了1.8個百分點,識別方法平均識別率為95.2%,但相較于深度學習速度較慢。李就好等[14]運用改進的Faster-RCNN進行苦瓜葉部病害的目標檢測,該方法對復雜的自然環境下的苦瓜葉部病害檢測具有較好的魯棒性和較高的精度,但對小目標的檢測效果較差。
目前在農作物病害識別和病斑檢測中存在以下問題:在以往研究中對復雜背景的農作物研究較少;傳統的識別方法對于植物葉片病害圖像識別率較差;植物葉片病害識別中對于小目標效果較差。因此,本文將深度學習的方法應用于自然環境下馬鈴薯葉片病害的識別和檢測中,通過多種卷積神經網絡的模型對病害圖像進行分類,獲取病害識別準確率最高的模型;進一步基于CenterNet,使用改進的目標檢測算法對馬鈴薯晚疫病進行研究,建立了馬鈴薯晚疫病的目標檢測模型,以實現田間復雜環境下晚疫病病斑的識別,為馬鈴薯病害的精準防治提供準確信息。
馬鈴薯葉片的采集是在中國北方具有代表性的種植地點(河北省承德市圍場、豐寧)河北農業大學馬鈴薯實驗基地,采用Nikon D7100相機對馬鈴薯葉片進行拍攝,拍攝方式為近拍模式、自動調節焦距、光圈、白平衡,相機距離馬鈴薯植株50 cm左右,采用垂直方式采集圖像,采集的圖像分辨率為6 000像素×4 000像素。本項研究中共獲取原始圖像1 949張,健康葉片圖像為529張,晚疫病圖像為632張,早疫病圖像為788張(圖1)。
為了提升模型訓練精度,本文進行了數據增強。首先將獲取的原始圖像對每一張進行不同大小、不同位置的隨機截取,用于擴充原始數據。再將所有圖像通過數據增強的方式增加數量,提升模型的性能。本文使用亮度調整、旋轉、加入高斯噪聲等操作來增加圖像數量(圖2)。
在馬鈴薯葉片圖像識別數據集中,從每組圖像中隨機選取50張用于驗證,其余圖像通過數據增強的方式,將每組圖像的樣本量擴充為4 000張,總樣本量為12 000張,并按4∶1的比例進行劃分,其中9 600張圖像用于訓練,2 400張圖像用于測試。
在晚疫病斑檢測數據集中,晚疫病的圖像共632張,隨機選取500張用于模型的訓練,其余132張用于模型驗證。數據增強后,訓練集樣本量為2 500張。

(a)健康馬鈴薯葉片圖像

(a)原始圖像
卷積神經網絡是一種深度學習模型或類似于人工神經網絡的多層感知器,其具有強大的學習能力,因此廣泛應用于圖像檢測中。本文將健康和患有早疫病或晚疫病的馬鈴薯葉片圖像通過卷積神經網絡進行識別,本文采用的卷積神經網絡模型有AlexNet、VGG16、InceptionV3、ResNet50、MobileNet模型。
AlexNet模型提出了ReLU函數,使用ReLU的模型收斂速度比Sigmoid快很多,這成了AlexNet模型的優勢之一。模型共有8層結構,其中前5層為卷積層,其中前兩個卷積層和第五個卷積層有池化層,后面3層為全連接層。同時各個層發揮了不同的作用,重疊池化層是為了提高精度,且不容易產生過擬合,局部歸一化響應是為了提高精度,而數據增益與dropout是為了減少過擬合。
VGG16模型的實質是AlexNet結構的增強版,它側重強調卷積神經網絡設計中的深度。其中每個卷積層之后都有一個池化層。VGG網絡用了更小的卷積核,使得參數量變小,節省了計算資源,由于層數較多,卷積核比較小,這樣使得整個網絡有比較好的特征提取效果。
InceptionV3網絡是由Google開發的深度卷積網絡,模型中的Inception結構其主要思想是找出如何用密集成分來近似最優的局部稀疏結構。Inception結構采用了3×3、5×5大小的卷積核,加入了1×1大小的卷積核,同時提出了的BN(BatchNormalization)方法,并使用了分支結構,引入了將一個較大的二維卷積拆成兩個較小的一維卷積的方法,這種非對稱的卷積結構拆分在處理更多、更豐富的空間特征以及增加特征多樣性等方面的效果比對稱的卷積結構拆分更好,同時能減少計算量。
ResNet50模型解決了由于網絡深度與寬度的增加,使實際效果變差的問題。深層的神經網絡模型犧牲了大量的計算資源,同時錯誤率也有所上升,這個現象的產生主要是因為隨著神經網絡的層數增加,梯度消失的現象愈加明顯。而ResNet50模型增加了殘差結構,即增加了一個恒等映射,將原本的變換函數H(x)轉換成了F(x)+x,使網絡不再是簡單的堆疊結構,解決了梯度消失的問題,這樣的簡單疊加并沒有給網絡增加額外的參數及計算量,同時也提高了網絡訓練的效果與效率。
MobileNet模型在保持模型性能的前提下降低模型復雜度,同時提升模型速度。模型的基本單元是深度級可分離卷積,其本質是可分解卷積操作。與卷積核作用在所有的輸入通道上的標準卷積不同,深度分離卷積針對每個輸入通道采用不同的卷積核,同時加入了BN,并使用ReLU激活函數,大幅降低了運算量和模型參數量。
1.3.1 CenterNet目標檢測模型
由于晚疫病在馬鈴薯病害中病斑比較明顯,因此適合通過目標檢測的方法將病斑在圖像中找出。目前目標檢測模型[16-17]分為兩類,第一類(Two-Stag)將目標識別和目標定位分為兩步完成其中比較典型的有R-CNN、Fast-RCNN、Faster-RCNN等。第二類(One-Stage)則直接在輸出層返回目標的位置和所屬類別,因此此類模型可以較快的識別目標,包含YOLO(You Only Look Once)、SSD(Single Shot Multibox Detector)、CenterNet等。其中CenterNet是基于中心點的檢測網絡,運算簡單快速,且準確率不亞于基于錨框的檢測器。在COCO數據集中CenterNet模型的AP值高于YOLOv2模型20%,高于Faster-RCNN模型6.9%[18]。因此本文選擇CenterNet模型來進行病斑的檢測。
與傳統的目標檢測模型不同,CenterNet模型將檢測目標看成一個中心點來代替錨框,作為目標框的中心點,解決了錨框中正負樣本不均衡與計算量過大的問題。該算法首先通過特征提取網絡獲得特征圖,繼而在特征圖像上找到局部特征峰值作為中心點,通過中心點回歸得到目標大小等圖像特征。在訓練過程中每一個目標產生一個中心點,無需進行NMS非極大值抑制,減少了計算量和訓練時間,同時使用分辨率較大特征圖,提升了小目標的檢測能力。
1.3.2 改進型CenterNet-SPP網絡結構
馬鈴薯病斑檢測深度神經網絡結構如圖3所示。

(a)CenterNet網絡結構圖
本文所采用的CenterNet-SPP網絡結構(圖3(a)),是基于ResNet50為主干的特征提取網絡,加入了SPP(Spatial Pyramid Pooling)空間金字塔池化模塊(圖3(b))。SPP用來增加感受野的范圍提高主干特征的接收范圍,同時顯著的分離了重要的特征,提高特征提取的能力。

(1)
式中:N——圖像中的關鍵點個數。

(2)
(3)
式中:Sk——目標真實尺寸;

整體的損失函數為中心點預測損失函數、中心點偏移量損失函數與目標框大小損失函數的和,每個損失都有相應的權重。
Ldet=Lk+λsizeLsize+λoffLoff
(4)
其中λsize=0.1,λoff=1。
本文試驗條件為:Windows10、64 位操作系統,Cuda版本為10.0,采用基于Python編程語言的Tensorflow與Keras深度學習框架。采用的電腦配置為:GeForce GTX 1660顯卡,6 G顯存;Intel (R)Core (TM)i5-9400F處理器,主頻2.90 GHz。試驗分為兩部分,分別是將三種情況的馬鈴薯葉片進行識別和對晚疫病斑進行檢測,通過對比不同的神經網絡模型,找到最合適的模型運用到馬鈴薯葉片病害的研究當中。
本文使用相同的數據集,將不同情況的馬鈴薯葉片在5種不同的卷積神經網絡模型下(VGG16、ResNet50、InceptionV3、MobileNet、AlexNet)進行訓練,每種模型都使用遷移學習[20]的方法,用預訓練好的ImageNet分類模型的參數初始化,模型進行120次迭代,采用交叉熵損失函數,同時使用Adam優化器[21],初始學習率0.000 1,動量因子為0.1,當5個epoch過后,若模型性能沒有提升,則降低學習率。五種模型最終的損失值趨于穩定狀態,同時測試集的準確率最終穩定在比較高的數值。表1表示五種模型的測試集的準確率,圖4表示訓練集loss、測試集loss、測試集的準確率。

表1 模型的準確率Tab.1 Accuracy rate of model
在三類馬鈴薯葉片圖像中,每類隨機選取50張圖像分別對每種模型進行驗證,所得混淆矩陣如圖5所示,其中InceptionV3模型的平均準確率最高達到98%(表2),識別一張圖像平均耗時0.12 s。結果表明,5種模型均可對馬鈴薯健康葉片及患有早疫病和晚疫病的葉片圖像進行準確的識別。

(a)訓練集loss曲線

表2 模型的平均準確率Tab.2 Average accuracy rate of model

(a)VGG16
在試驗中,將用LabelImg(圖像標注工具)按照PASCAL VOC2007的格式手工標注晚疫病圖片中的黑斑目標,其中包含目標病斑的名稱和外包邊框,使用CenterNet-SPP結構,并使用VOC數據集的預訓練模型進行初始化參數設置,將數據集在模型中一共訓練400個epoch,其損失精度在前100次迅速下降,由于100次后進行了模型的解凍(前100個epoch對主干特征網絡之后的模型進行訓練微調,后300次將所有網絡進行訓練),使模型的損失值迅速下降,然后漸漸趨于穩定,說明模型訓練效果良好,其訓練損失曲線如圖6(a)所示。
為了選出整體性能足夠高的模型,首先保留置信度大于0.5的病斑目標,同時找到mAP值最高的權值文件,然后模型進行了400次迭代,每10次迭代輸出一個模型,所以一共得到40個模型,需要在這40個模型中找出一個mAP值最高的模型(圖6(b))。當迭代到最后mAP值趨于穩定狀態,其中數值最大為90.03%,即為本文選用的模型。為了評估所獲晚疫病檢測模型的準確性和穩定性,本文使用準確率P(precision),召回率R(recall)兩項指標進行模型的評價,同時引入F1值[23]作為調和的平均評價。
(5)
(6)
(7)
式中:nTP——正確識別晚疫病目標的數目;
nFP——錯誤識別晚疫病目標的數目;
nFN——未識別晚疫病目標的數目。
通過CenterNet-SPP模型效果與其他One-Stage目標檢測模型效果進行對比,本文使用相同的樣本數據集分別對模型進行訓練,所有模型都使用VOC數據集的預訓練模型進行初始化參數設置。選出每一個穩定的模型之后,其P-R曲線如圖6(c)所示,由于mAP值較大,所以P-R曲線覆蓋了坐標系的大部分區域,P-R曲線圖直觀顯示出模型在總體樣本上的查全率和查準率,當一個模型的P-R曲線完全被另一個模型的曲線包含時,就說明后者的性能優于前者。從圖中可以看出Centenet-SPP模型的性能優于其他模型。
將不同的模型在驗證集中進行測試將結果進行對比(表3),CenteNet-SPP模型的準確率、召回率、F1值均高于其他類型的One-Stage模型,且F1值高出沒有添加SPP結構的CenterNet模型0.7%,說明CenteNet-SPP模型在自然環境下的馬鈴薯晚疫病斑檢測效果優于其他模型。檢測驗證集的132張圖像共耗時13.33 s,平均一張圖像需0.10 s,模型檢測效果展示如圖7所示。

(a)Loss值隨著迭代次數的變化曲線

表3 不同模型的試驗結果Tab.3 Test results of different models

(a)CenterNet-SPP檢測效果
本文在中國北方具有代表性的馬鈴薯種植地區,對不同時期和地域的馬鈴薯葉片進行了圖像采集,通過深度學習的方法并對比不同模型對自然環境中的馬鈴薯葉片病害進行了識別以及晚疫病的檢測,取得了較高的準確率。
1)在馬鈴薯葉片病害識別試驗中,通過典型的5種神經網絡模型對馬鈴薯的葉片在健康、早疫病、晚疫病三種情況下進行了識別,其中更深層的神經網絡表現出更好的效果,在訓練過程中由于使用了遷移學習的方式,使模型不需要從零開始訓練,加速了模型訓練的過程。InceptionV3和ResNet50的殘差結構使模型網絡在變深的同時能夠保留重要的信息特征,因此在馬鈴薯病害識別中表現出較高的準確度,其中InceptionV3模型性能最優,準確率達到98.00%,可以對馬鈴薯葉片病害進行準確分類。
2)在馬鈴薯葉片晚疫病的檢測試驗中,由于CenterNet-SPP算法通過中心點來代替錨框,無需進行NMS非極大值抑制,從而減少訓練時間,同時使用了比較大的特征圖,因此在病斑目標較小的情況下也表現出較好的效果,由于加入了SPP空間金字塔池化模塊,增加了特征提取的范圍且分離了顯著的特征,因此比原始的CenterNet模型F1值要高。通過CenterNet-SPP模型與其它典型的One-Stage結構的目標檢測模型進行對比,表明CenterNet-SPP模型在馬鈴薯晚疫病檢測中F1值最高為92.58%,平均檢測時間為0.10 s,在葉片病害識別定位中,并不需要頻繁刷新,所以能夠滿足實時要求,并能達到較好效果。