【論文閱讀】Using deep learning for image-based plant disease detection

本文是一個使用plant village數據集,AlexNet和GoogleNet兩個網絡,針對不同比例的train/test和三種不同格式的圖片color/grayscale/segmented做的實驗,plant village數據集就在作者Mohanty的github上

數據集鏈接:https://github.com/spMohanty/PlantVillage-Dataset

 

論文下載地址:https://www.frontiersin.org/articles/10.3389/fpls.2016.01419/full

作物病害是糧食安全的主要威脅,但由於缺乏必要的基礎設施,在世界許多地區仍然難以迅速查明它們。全球智能手機普及率的不斷提高,以及深度學習帶來的計算機視覺的最新進展,爲智能手機輔助疾病診斷鋪平了道路。利用在受控條件下收集到的54,306張病葉和健康葉的公共數據集,我們訓練了一個深度卷積神經網絡來識別14種作物和26種疾病(或沒有)。訓練後的模型在給定的測試集上達到了99.35%的精度,證明了該方法的可行性。總體而言,在越來越大且公開可用的圖像數據集上訓練深度學習模型的方法,爲大規模全球範圍內的智能手機輔助農作物疾病診斷提供了一條清晰的道路。

INTRODUCTION

爲了開發用於植物病害診斷的準確的圖像分類器,我們需要一個大的、經過驗證的疾病和健康植物圖像數據集。直到最近,這樣的數據集還不存在,甚至更小的數據集也不能免費使用。爲了解決這個問題,PlantVillage項目已經開始收集成千上萬健康和患病作物的圖片(Hughes和Salathe, 2015),並公開和免費提供這些圖片。在此,我們報告了利用54,306幅圖像和卷積神經網絡方法對14種作物的26種病害進行分類。我們根據模型預測正確的作物-疾病對的能力來衡量模型的性能,給出了38種可能的分類。性能最好的模型F1平均得分爲0.9934分(總精度爲99.35%),說明了我們方法的技術可行性。我們的研究結果是邁向智能手機輔助植物疾病診斷系統的第一步。

METHODS

Dataset Description 

我們分析了54,306張植物葉片的圖片,這些圖片有38個類別的標籤。每個類別標籤都是一個作物病害對,我們試圖只使用植物葉片的圖像來預測作物病害。圖1顯示了PlantVillage數據集中每個作物-疾病對的一個示例。在本文描述的所有方法中,我們將圖像大小調整爲256×256像素,並對這些縮小後的圖像進行模型優化和預測。

在所有的實驗中,我們使用了整個PlantVillage數據集的三個不同版本。我們從實際的PlantVillage數據集開始,用顏色表示;然後我們實驗的灰度版本PlantVillage數據集,最後我們分割版本。因爲刪除了所有額外的背景信息,這些信息可能會在數據集中引入一些固有的偏差,因爲在PlantVillage數據集的情況下,數據收集的過程是規範化的。分割是通過一個腳本自動實現的,該腳本經過調優,可以在我們的特定數據集上執行得很好。我們選擇了一種基於一組掩模的技術,這些掩模是通過分析圖像在不同顏色空間(Lab和HSB)中不同部分的顏色、亮度和飽和度組成而生成的。該處理的一個步驟還允許我們輕鬆地修復顏色轉換,而在數據集的某些子集中,顏色轉換非常強,從而消除了另一個潛在的偏差。

這組實驗的目的是瞭解神經網絡是否真的學習了植物疾病的“概念”,或者僅僅是學習了數據集中固有的偏差。圖2顯示了隨機選擇的一組葉子的相同葉子的不同版本。

Measurement of Performance 

想知道我們的方法對一個全新的數據的效果,同時跟蹤我們的方法是否存在過度擬合,所以我們通過分割一系列的訓練測試集來運行我們所有的實驗。即80 - 20(80%的整個數據集用於培訓和測試)爲20%,60 - 40(60%的整個數據集用於培訓和測試)爲40%,50 - 50(50%的整個數據集用於培訓和測試)爲50%,獎金(40%的整個數據集用於培訓,60%的測試),最後20 - 80(20%的整個數據集用於培訓和測試)爲80%。必須指出的是,在許多情況下,PlantVillage數據集具有相同葉子的多個圖像(取自不同方向),在54,306幅圖像中,我們有41,112幅圖像的這種情況的映射;在這些測試序列分割中,我們確保所有相同葉子的圖像要麼在訓練集中要麼在測試集中。此外,對於每一個實驗,我們計算平均精度,平均召回率,平均F1分數( mean precision, mean recall, mean F1 score),以及在整個訓練期間(在每個epoch結束時)的總精度。我們使用最終的平均F1分數來比較所有不同實驗配置的結果。

Approach

我們評估了深度卷積神經網絡對上述分類問題的適用性。我們關注兩種流行的架構,AlexNet (Krizhevsky etal., 2012)和GoogLeNet (Szegedy etal.,2015),它們是在“大規模視覺識別挑戰”(ILSVRC)(Russakovskyetal.,2015)爲imagenet數據集設計的(Deng etal., 2009)。

AlexNet體系結構(參見圖S2)遵循與20世紀90年代的LeNet-5 (LeCun et al., 1989)體系結構相同的設計模式。LeNet-5架構的變體通常是一組堆疊的卷積層,然後是一個或多個完全連接的層。卷積層可選地在它們之後有一個歸一化層和一個池化層,並且網絡中的所有層通常都有與之相關的ReLu非線性激活單元。AlexNet由5個卷積層組成,然後是3個完全連接的層,最後是一個softMax層。前兩個卷積層(conv{1,2})後面分別是標準化和池化層,最後一個卷積層(conv5)後面是單個池化層。最後一個完全連接層(fc8)在我們的AlexNet的改編版本中有38個輸出(等於數據集中類的總數),它提供了softMax層。softMax層最終以指數形式規範化它從(fc8)獲得的輸入,從而在38個加起來等於1的類中生成值的分佈。這些值可以解釋爲網絡的置信度,即給定的輸入圖像由相應的類表示。AlexNet的前7層都有一個相關的ReLu非線性激活單元,前2個完全連接的層(fc{6,7})都有一個相關的dropout層,dropout比爲0.5。

另一方面,GoogleNet體系結構是一個更深更廣的體系結構,有22層,但是網絡中的參數數量(500萬個參數)仍然比AlexNet(6000萬個參數)少得多。以inception模塊的形式應用“網絡中的網絡”架構(Lin et al., 2013)是GoogleNet架構的一個關鍵特性。inception模塊使用並行的1×1、3×3和5×5卷積,並並行地使用最大池層,因此它能夠並行地捕獲各種特性。在實現的實用性方面,需要控制相關計算量,這就是爲什麼在上面提到的3×3,5×5卷積之前(以及在max-pooling層之後)添加1×1卷積來降維的原因。最後,過濾器連接層只是連接所有這些並行層的輸出。雖然這形成了一個inception模塊,但是我們在實驗中使用的GoogLeNet體系結構版本中總共使用了9個inception模塊。這個架構的更詳細的概述可以參考(Szegedy et al., 2015)。

我們分析了這兩種架構在PlantVillage數據集上的性能,方法是在一種情況下從零開始訓練模型,然後使用遷移學習調整已經訓練好的模型(在ImageNet數據集上訓練)。在遷移學習的情況下,我們在AlexNet的情況下重新初始化fc8層的權重,在GoogLeNet的情況下重新初始化{1,2,3}/分類器層的損失。然後,在訓練模型時,我們不限制任何層的學習,這在遷移學習中有時是這樣做的。換句話說,關鍵區別這兩種學習方法(遷移vs從頭訓練)在哪幾層的權重是初始狀態,這使得遷移學習方法可以利用從ImageNet中提取的預先訓練過的AlexNet和GoogleNet模型已經學習的大量視覺知識(Russakovsky et al., 2015)。

綜上所述,我們總共有60種實驗構型,其參數各不相同:

1. Choice of deep learning architecture: AlexNet, GoogLeNet.
2. Choice of training mechanism: Transfer Learning, Training from Scratch.
3. Choice of dataset type: Color, Gray scale, Leaf Segmented.
4. Choice of training-testing set distribution: Train: 80%, Test: 20%, Train: 60%, Test: 40%, Train: 50%, Test: 50%, Train: 40%, Test: 60%, Train: 20%, Test: 80%.
在本文中,我們使用了體系結構:訓練機制:數據集類型:訓練-測試集分佈的符號來引用特定的實驗。例如,爲了參考使用GoogLeNet architecture的實驗,我們將使用GoogLeNet:TransferLearning:GrayScale: 60-40表示法,在訓練集分佈爲60-40的灰度PlantVillage數據集上使用transfer learning進行訓練。

這60個實驗中的每一個都運行了30個epoch,其中一個epoch定義爲特定神經網絡完成整個測試集的完整遍歷的訓練迭代次數。根據經驗觀察,在所有這些實驗中,學習總是在30個時代內很好地收斂(從所有實驗的聚合圖(圖3)可以看出)。

爲了使所有實驗配置的結果能夠公平比較,我們還嘗試對所有實驗的超參數進行標準化,我們在所有實驗中都使用了以下超參數:

• Solver type: Stochastic Gradient Descent,

• Base learning rate: 0.005,

• Learning rate policy: Step (decreases by a factor of 10 every 30/3 epochs),

• Momentum: 0.9,

• Weight decay: 0.0005,

• Gamma: 0.1,

• Batchsize:24(incaseofGoogLeNet),100(incaseofAlexNet).

以上實驗都是使用我們自己的Caffe fork進行的(Jia et al., 2014),這是一個用於深度學習的快速開源框架。基本的結果,例如總體精度,也可以使用caffe的標準實例進行復制。

RESULTS

首先,我們注意到,對於具有38個類標籤的數據集,隨機猜測的總體準確率平均只能達到2.63%。所有我們的實驗配置,其中包括三個視覺表徵圖像的數據(參見圖2),我們獲得的總體精度PlantVillage數據集變化從85.53%(例如AlexNet:: TrainingFromScratch::灰度::80 - 20)到99.34%(例如GoogLeNet:: TransferLearning::顏色::80 - 20),因此表現出強烈的承諾的深度學習方法類似的預測問題。表1顯示了所有實驗配置的F1平均得分、平均精確度、平均召回率和總體精確度。所有的實驗配置都運行了總共30個epoch,並且在學習速度下降的第一步之後,它們幾乎一致收斂。

爲了解決過擬合問題,我們改變測試集來訓練集比和觀察,在極端情況下只有20%的訓練數據和測試在其餘80%的數據訓練模型,該模型實現了98.21%的總體精度(平均F1得分0.9820)對於GoogLeNet:: TransferLearning::顏色::20 - 80。正如預期的那樣,如果我們繼續增加測試集與訓練集的比例,AlexNet和GoogLeNet的整體性能都會下降(參見圖3D),但是如果模型確實過度擬合,性能的下降並不像我們預期的那麼劇烈。圖3C還顯示驗證損失和訓練損失之間沒有差異,這證實了過擬合併不是我們在所有實驗中得到的結果的貢獻因素

在AlexNet和GoogLeNet體系結構中,GoogLeNet的性能始終優於AlexNet(圖3A),基於訓練的方法,遷移學習總是產生更好的結果(圖3B),這兩者都是預期的。

當我們保持其餘實驗配置不變時,數據集的三個版本(顏色、灰度和分段)在所有實驗中都表現出多種結果。對於數據集的彩色版本,模型執行得最好。在設計實驗時,我們擔心神經網絡可能只學會捕捉與光照條件有關的固有偏差,即收集數據的方法。因此,我們對同一數據集的灰度版本進行了實驗,以測試模型在沒有顏色信息的情況下的適應性,以及學習特定作物和疾病典型的高層次結構模式的能力。正如所料,與彩色版本的數據集實驗相比,性能確實有所下降,但即使在性能最差的情況下,觀察到的F1評分均值爲0.8524(總準確率爲85.53%)。整個數據集的分割版本也準備調查背景圖像的整體性能,如圖3E,模型的性能使用分割模型的圖像始終比使用灰度圖像好,但略低於模型的使用圖像的彩色版本。

雖然這些方法在受控環境下收集的PlantVillage數據集上取得了很好的結果,但我們也評估了該模型對可信在線資源(如學術農業推廣服務)採樣的圖像的性能。這樣的大量圖像不可用,使用自動化的組合從Bing下載圖片搜索和IPM圖像視覺驗證步驟,我們獲得了兩個小,驗證數據集121(數據集1)和119年的圖像數據集(2),分別爲(見補充材料的詳細描述過程)。利用這些數據集上的最佳模型,我們成功預測了正確的類標籤(即),從38個可能的類別標籤。我們注意到,隨機分類器的平均準確率只有2.63%。在所有的圖像中,數據集1中有52.89%的預測結果是正確的,數據集2中有65.61%的預測結果是正確的。兩個數據集的最佳模型分別是egooglenet: segmentation:TransferLearning: 80-20fordataset1和GoogLeNet:Color:TransferLearning: 80-20 fordataset 2。圖4顯示了來自這些數據集的示例圖像,以及它對AlexNet體系結構初始層中的激活的可視化。

到目前爲止,所有的結果都是在假設模型需要同時檢測作物種類和病害狀態的前提下報告的。我們可以將挑戰限制在一個更現實的場景中,即提供作物種類,因爲種植作物的人可以預期知道這些作物種類。爲了評估此場景下模型的性能,我們將自己限制在至少有n > = 2(爲了避免瑣碎的分類)或n > = 3個類的作物上。在n > = 2的情況下,數據集1包含分佈在9個作物中的33個類。在這樣一個數據集中隨機猜測的準確率爲0.225,而我們的模型的準確率爲0.478。在n > = 3的情況下,數據集包含分佈在5個作物中的25個類。在這樣一個數據集中隨機猜測的準確率爲0.179,而我們的模型的準確率爲0.411。同樣,在n > = 2的情況下,數據集2包含分佈在4個作物中的13個類。在這樣一個數據集中隨機猜測的準確率爲0.314,而我們的模型的準確率爲0.545。在n > = 3的情況下,數據集包含分佈在3個作物中的11個類。在這樣一個數據集中隨機猜測的準確率爲0.288,而我們的模型的準確率爲0.485。

DISCUSSION

近年來,卷積神經網絡在目標識別和圖像分類方面取得了巨大的進展。(Krizhevsky等,2012;Simonyan和Zisserman, 2014;Zeiler和Fergus, 2014;He et al., 2015;Szegedy等,2015)。以前,傳統的圖像分類方法是基於人工工程的特徵,如SIFT (Lowe, 2004)、HoG (Dalal和Triggs, 2005)、SURF (Bay等,2008)等,然後在這些特徵空間中使用某種形式的學習算法。因此,這些方法的性能在很大程度上依賴於底層預定義的特性。特性工程本身是一個複雜而乏味的過程,每當手頭的問題或相關數據集發生重大變化時,都需要重新審視它。這個問題發生在所有使用計算機視覺檢測植物病害的傳統嘗試中,因爲它們嚴重依賴於手工設計的特性、圖像增強技術和許多其他複雜且勞動密集型的方法。

此外,通過機器學習來進行疾病分類的傳統方法通常集中在一種作物內的少量類別上。例如,爲了將番茄白粉病與健康番茄葉進行分類,使用熱圖像和立體圖像進行特徵提取和分類管道(Raza等,2015);RGB圖像檢測非受控環境下白粉病(Hernandez-Rabadan et al., 2014);使用RGBD圖像檢測蘋果黑星病(Chene et al ., 2012)的使用熒光成像光譜檢測柑橘huanglongbing (Wetterich et al ., 2012)的檢測柑橘huanglongbing使用近紅外光譜模式(Sankaran et al ., 2011)和機載傳感器(Garcia-Ruiz et al ., 2013)番茄黃卷葉病毒的檢測使用一組經典的特徵提取步驟,然後使用支持向量機管道進行分類(Mokhtar et al., 2015),以及許多其他方法。最近一篇關於機器學習在植物表型中的應用的綜述(Singh et al., 2015)廣泛討論了這一領域的工作。而神經網絡應用在植物病害識別(黃,2007)(等蝴蝶蘭屬幼苗疾病的分類和檢測細菌性軟腐病、細菌性褐斑病、疫黴黑腐病),代表圖像的方法需要使用精心挑選的紋理特徵列表前的神經網絡分類。

我們的方法是基於最近的工作Krizhevsky et al。(2012) whichshowedforthefirsttimethatend-to-endsupervised培訓使用深卷積神經網絡體系結構是一個實際的可能性甚至對圖像分類問題,大量的類,擊敗了傳統方法使用hand-engineered特性的標準基準測試。由於沒有特徵工程的勞動密集型階段和解決方案的通用性,使得它們成爲一種實用的、可擴展的植物病害計算推理方法的非常有希望的候選方案。

利用深度卷積神經網絡結構,我們在植物葉片圖像上訓練了一個模型,目的是在模型從未見過的圖像上對作物種類和病害的存在和識別進行分類。在PlantVillage的54,306幅圖像中,包含了14種作物的38個分類和26種疾病(或沒有),這一目標已經通過99.35%的最高精度得到了證明。因此,在沒有任何特徵工程的情況下,該模型從1000幅圖像中的993幅中正確地分類了38種作物和病害。重要的是,雖然模型的訓練需要大量的時間(在高性能GPU集羣計算機上需要多個小時),但分類本身非常快(在CPU上不到一秒),因此可以很容易地在智能手機上實現。這爲全球範圍內智能手機輔助農作物疾病診斷提供了一條清晰的道路。

然而,在未來的工作中,仍有一些侷限需要解決。首先,當對一組不同於用於訓練的圖像在不同條件下拍攝的圖像進行測試時,模型的準確性大大降低,僅有31%。需要注意的是,這種準確性比隨機選擇38個班級(2.6%)的準確率要高得多,但是,需要一組更加多樣化的訓練數據來提高準確性。我們目前的結果表明,更多的(和更多的變量)數據將足以大幅提高準確性,並相應的數據收集工作正在進行中。

第二個限制是,我們目前限於單一葉子的分類,面朝上,在同一背景下。雖然這些都是簡單的條件,但真實世界中的應用程序應該能夠對疾病的圖像進行分類,因爲它直接顯示在植物上。事實上,許多疾病並不僅僅出現在葉子的上部(或者根本沒有),而是出現在植物的許多不同部位。因此,新的圖像收集工作應該嘗試從許多不同的角度獲取圖像,最好是從儘可能真實的場景中獲取。

與此同時,通過使用包含作物種類和疾病狀況的38個類,我們使挑戰變得更加困難,從實際的角度來看,這是不必要的,因爲種植者需要知道他們正在種植哪些作物。由於PlantVillage數據集的精度非常高,限制疾病狀態的分類挑戰將不會產生可測量的效果。然而,在真實世界的數據集上,我們可以測量出明顯的精度改進。總的來說,所提出的方法對許多不同的作物品種和病害都能很好地發揮作用,有望在今後的研究中得到推廣。

最後,值得注意的是,這裏提出的方法並不是要取代現有的疾病診斷解決方案,而是對它們進行補充。實驗室測試最終總是比僅憑視覺症狀進行診斷更可靠,而且通常僅憑視覺檢查進行早期診斷是具有挑戰性的。儘管如此,考慮到到2020年全球智能手機將超過50億部,其中非洲將接近10億部(GSMA Intelligence, 2016),我們確實認爲,這種方法是一種可行的額外方法,有助於防止產量損失。更重要的是,在未來,智能手機的圖像數據可能會補充位置和時間信息,以進一步提高準確性。最後但並非最不重要的一點是,要謹慎地記住過去幾年移動技術發展的驚人速度,並將繼續保持這種速度。隨着移動設備上傳感器數量和質量的不斷提高,我們認爲通過智能手機進行高度準確的診斷可能只是時間問題。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章