資彩飛 曹志勇 許佳俊 陳 民 高 儼
(云南農業(yè)大學,云南昆明 650201)
目前,全球總體氣候逐漸變暖,生態(tài)環(huán)境被破壞,農作物病菌和病毒的適生區(qū)大規(guī)模擴大,從而造成農作物大量減產(chǎn),進一步提高了全球糧食危機的發(fā)生概率。現(xiàn)階段,水稻病害的識別主要是通過人工觀察的方法,但此方法效率低,易出現(xiàn)誤診,進而延誤最佳診斷時間,影響水稻病害防治的準確性和時效性[1]。稻瘟病是水稻的重要病害之一,在水稻整個生育期都有可能發(fā)生。在流行年份,一般減產(chǎn)10%~20%,嚴重的可減產(chǎn)40%~50%,局部田塊甚至顆粒無收?,F(xiàn)代農業(yè)發(fā)展趨勢是全面感知、智能處理,通過物聯(lián)網(wǎng),大田水稻可以產(chǎn)生大量生長數(shù)據(jù)。大量的水稻圖片數(shù)據(jù)可以利用深度學習模型進行稻瘟病預判,為稻瘟病防治提供決策。
計算機圖像處理和識別技術在水稻病害的準確識別方面取得了顯著成果。黃雙萍等[2]基于深度卷積神經(jīng)網(wǎng)絡GoogleNet模型對水稻穗瘟病檢測,預測準確率達到92%;同時,2017年有同樣基于卷積神經(jīng)網(wǎng)絡通過圖片對水稻害蟲二化螟成蟲、幼蟲、卵或蛹的智能識別,預測率高達89%,并具有很好的魯棒性[3]。袁媛等[1]利用R分量和中值濾波進行圖像預處理,并采用支持向量機方法對水稻紋枯病進行分類識別。李長纓等[4]利用計算機視覺技術實現(xiàn)對溫室植物生長的無損監(jiān)測。這些模式識別技術提高了病害診斷的自動化水平,但在特征提取及泛化能力方面還存在一定的局限。Hitimana等[5]采用圖像處理技術從形狀特性角度建立了識別參數(shù),對咖啡葉片病害進行了自動判斷與識別。為了提高作物病害診斷效果,許多學者研究了基于機器學習方法的作物病害自動診斷與識別。
稻瘟病在我國發(fā)生范圍廣泛,水稻生長的各個時期和各部位都有發(fā)生[6]。水稻種植戶對水稻病害的分辨能力有限,獲得的最佳診斷方案較少,不能及時對癥下藥。然而,傳統(tǒng)的水稻病害識別和診斷都需要專業(yè)的技術人員,專家嚴重不足,無法滿足水稻種植戶的需求[7]。本研究利用深度學習模型對水稻稻瘟病圖像進行訓練,旨在高效快速地識別水稻稻瘟病。
在自然光照條件下,使用手機獲取云南哈尼水稻梯田水稻稻瘟病圖像。將手機的后置攝像頭放在距離稻瘟病病葉適中且圖像清晰的環(huán)境下完成圖像采集。水稻稻瘟病病害圖像的采集工作分別在水稻的幼苗期、秧苗分蘗期和幼穗發(fā)育期進行,共采集了1 112幅圖像,其中包含70%的水稻稻瘟病病害圖像和30%的健康水稻圖像。每幅圖像采用JPG格式存儲,獲取的部分水稻稻瘟病病害圖像如圖1所示。
從云南哈尼水稻梯田和kaggle平臺得到稻瘟病圖像數(shù)據(jù)集,其中水稻稻瘟病病害圖像779幅和健康水稻圖像333幅,均為1 881×1 881像素的RGB圖像,并分別標簽為“LeafBlast”和“Healthy”。
本研究數(shù)據(jù)集較標準的深度學習數(shù)據(jù)集偏小、圖像內容接近,如果不進行數(shù)據(jù)預處理,加上深度學習的學習能力過強,容易使生成的模型出現(xiàn)過擬合,具體表現(xiàn)為訓練階段與測試階段的驗證率相差較大。因此,預處理時將圖像按16∶4∶5的比例分為訓練數(shù)據(jù)集、驗證數(shù)據(jù)集和測試數(shù)據(jù)集,以保證訓練、驗證、測試等3類數(shù)據(jù)的獨立,避免發(fā)生過擬合而發(fā)現(xiàn)不了的情況,保證充足的訓練數(shù)據(jù),增加數(shù)據(jù)的隨機性。
與其他任何深度學習框架相比,Keras在行業(yè)和研究領域的應用率更高,被工業(yè)界和學術界廣泛應用。此外,Keras可以在更廣泛的平臺上輕松部署。本次模型的構建采用Sequential方式。Sequential模型是函數(shù)式模型的簡略版,為最簡單的線性、從頭到尾的結構順序,是多個網(wǎng)絡層的線性堆疊,其相對于用函數(shù)式的方式構建模型更加易讀與易修改。因此,本研究使用tf.keras中的Sequential模型。通過Sequential模型定義的網(wǎng)絡模型主要包括3個卷積塊、1個Flatten層和2個全連接層,每個卷積塊都有2個卷積層、1個批歸一化、1個池化層和1個Dropout層。網(wǎng)絡結構模型如圖2所示。
在機器學習過程中,可以通過調整超參數(shù)的方法提升模型的預測精度。超參數(shù)是機器學習訓練之前需要指定的參數(shù),如果超參數(shù)設定合理,網(wǎng)絡模型就能得到更好的訓練,主要表現(xiàn)為模型更快地收斂,并且會對模型的訓練擬合結果造成影響。本研究所構建的網(wǎng)絡模型需要自行設定的超參數(shù)有學習率、激活函數(shù)以及AlphaDropout的概率。使用訓練完畢的模型對測試集中的圖像讀取并進行識別后發(fā)現(xiàn),識別精度只有73%,此時可以對超參數(shù)進行網(wǎng)格搜索尋找出每一個超參數(shù)的最優(yōu)值,但受限于所擁有的計算機資源,不能對所有的超參數(shù)進行網(wǎng)格搜索。因此,在保證其他超參數(shù)不變的情況下對學習率(0.000 1~0.000 8)進行搜索,并獲得超參數(shù)搜索數(shù)據(jù)。通過超參數(shù)學習率的搜索,可以得到模型在不同學習率下最低的loss值和最低loss值對應的精確度,如圖3所示。
loss值可以描述模型預測值與真實值的差距。對于模型來說,loss值越低越好,預測精度越高越好,因而在學習率固定的情況下,采用1減去此學習率下訓練時模型最低的loss值再加上此loss值對應預測精度的值來表示此學習率的綜合指數(shù)。綜合指數(shù)隨學習率變化情況如圖4所示。由圖4可知,當學習率為0.000 8時,模型達到最優(yōu)。
雖然以上數(shù)據(jù)并不能證明模型可使用的最優(yōu)學習率是0.000 8,但是當學習率達到0.000 3后,loss的值和預測精度的變化趨勢均已經(jīng)很平緩(圖3)。因此,目前已知的最優(yōu)學習率是0.000 8,而學習率達到0.000 8以上模型的預測精度可能會更好,但與學習率為0.000 8的預測精度差距不會太大。本文不再對學習率為0.000 8進行超參數(shù)搜索。
當學習率為0.000 1~0.000 8時,進行網(wǎng)格搜索可以得出,當學習率為0.000 8時,模型達到最優(yōu)。將學習率設置為0.000 8,并進行模型的訓練得到最佳模型后,使用數(shù)據(jù)預處理后得到的測試數(shù)據(jù)集圖像對模型進行測試。模型在測試數(shù)據(jù)集2類不同健康狀況的稻葉圖片上進行測試,此時模型的loss值為0.631 1,預測精度為0.780 9,如圖5所示。
當前,糧食危機是全球各國面臨的熱點問題之一。面對糧食危機,切實保證糧食產(chǎn)量是我國最主要的應對策略。水稻是我國重要的糧食作物,因而在農業(yè)生產(chǎn)中,水稻健康狀況的智能識別尤為重要。稻瘟病為水稻常見的病害之一,本研究實現(xiàn)了水稻稻瘟病田間診斷的實時、高效、智能化,大大提高了植保效率。
本研究使用TensorFlow框架,利用其跨平臺的特性訓練模型并擬合樣本分布。雖然使用了數(shù)據(jù)增強和超參數(shù)搜索方法來提高模型的預測精度,但是受限于原始圖片數(shù)據(jù)集數(shù)量過少、計算資源不充足等,模型對樣本分布的擬合度始終不夠高。隨著今后數(shù)據(jù)的不斷更新和計算機性能的發(fā)展,深度學習模型的預測精度將會大幅度提升。