姚強 粟超 李波 易婧 敬廷桃 呂斌



摘 要 為解決傳統水稻氮素營養診斷方法需要采集水稻植株葉片,損傷水稻植株,需到指定實驗室測定,耗時費力,手持葉綠素儀不穩定、誤差大等問題,對使用深度學習方法開展水稻氮素營養診斷開展了初步探索。簡介了深度學習模型的建立和訓練,對模型識別效果的驗證。參與模型訓練的水稻樣本圖片共10 173張,通過調整訓練參數,得到多個模型,保留準確率達到80%以上的模型9個,其中返青期3個、分蘗期3個、拔節孕穗期2個、灌漿期1個;對精度最高的返青期模型開展了模型識別效果驗證。初步結果顯示,使用深度學習方法開展水稻氮素營養診斷有效可行。
關鍵詞 深度學習;數字圖像;水稻葉片;氮;營養診斷
中圖分類號:S126 文獻標志碼:A DOI:10.19415/j.cnki.1673-890x.2021.31.029
水稻是我國最主要的糧食作物,全國60%以上人口以稻米為主食。水稻生產在我國農業生產上和糧食安全方面具有舉足輕重的地位。氮素是作物生長發育周期中需要量最多的營養元素之一,也是對作物生長、產量和品質影響最為顯著的營養元素之一[1]。在種植水稻的過程中,錯誤地施用氮肥或是施氮經驗不足,會使水稻氮素營養失調,從而導致水稻產量和品質的降低[2]。傳統的氮素營養診斷以田間采集植株樣品、實驗室化學分析為主,這種方法在樣品的采集、測試及數據處理等方面需耗費大量的人力、物力和財力,時效性差,不利于推廣應用[3]。近年來,隨著互聯網+、大數據、人工智能等新技術的發展和應用,數字農業、智慧農業應運而生,運用數字技術、人工智能技術開展作物氮素營養診斷的研究取得了很多成果。如:李嵐濤等應用數字圖像技術進行了水稻氮素營養診斷方面的研究[3];吳剛等采用一種基于卷積神經網絡的方法對采集的多光譜玉米植株圖像進行氮素含量、水分含量等分析識別[4];魏全全等運用數字圖像技術對馬鈴薯氮素營養開展估測及驗證[5];魏雪等開展了智能手機圖像參數與玉米氮素營養狀況關聯解析[6];李紅軍等利用數碼相機對小麥冠層進行拍照,分析色彩參數與作物氮素營養狀況之間的關系[7]。本文探索采用深度學習的方法開展水稻氮素營養診斷。
1 ?試驗方案及數據采集
1.1 ?試驗方案
試驗在重慶市農業科學院高科技園區(九龍坡區白市驛鎮高峰寺村)開展。水稻品種為重慶市當前栽培面積較大的主栽品種渝香203。為了產生不同含氮量的水稻植株和群體,為水稻葉片與冠層圖像采集和植株氮素含量分析提供樣本,共設置7個處理、3次重復。7個處理分別是空白對照、低氮、低中氮、中氮、中高氮、高氮和超高氮,3次重復按設定順序排列試驗區組。試驗前對3個重復田塊的土壤養分基本情況進行了化驗分析(結果見表1)。
試驗田小區間設立隔離肥水田埂。各處理施氮量(均為純N量)分別為:空白對照(0 kg·hm-2)、低氮(70 kg·hm-2)、低中氮(105 kg·hm-2)、中氮(140 kg·hm-2)、中高氮(210 kg·hm-2)、高氮(280 kg·hm-2)和超高氮(420 kg·hm-2)。試驗田的水分管理、磷肥和鉀肥施用量各個處理保持一致。磷肥施用量(P2O5)為50 kg·hm-2,鉀肥施用量(K2O)為100 kg·hm-2。
施肥方式:氮肥按照7∶3的重量比例分2次施入,分別為基肥(7)和分蘗肥(3);磷肥、鉀肥作基肥1次性施入,在揚花后期葉面噴施0.5%磷酸二氫鉀1次。
1.2 ?數據采集
試驗數據包括水稻圖像數據和氮營養含量數據。圖像數據作為深度學習算法的輸入,氮營養含量數據用于數據集的標定。在水稻的返青期、分蘗期、拔節孕穗期及灌漿期開展圖像數據采集,利用國產安卓智能手機獲取水稻葉片和冠層圖像,每個處理采集100~200幅圖像,拍攝角度包含與地面成60°和90°。照片長寬比設置為4∶3,測光方式設置為矩陣測光,ISO模式設置為自動,對焦方式設置為自動對焦(AF-C),圖像保存格式為JPG格式。
采集圖像數據的同時,對水稻植株葉片進行同步取樣,選擇長勢適中的水稻植株第三完全展開葉作為樣本葉片,每個處理采集40~50個葉片(鮮重約200 g)放入提前編號的專用樣品袋中,送回實驗室進行氮素含量化學測定。
2 ?深度學習建模、訓練
2.1 ?準備數據集
數據集是深度學習模型的輸入,模型的訓練和測試圍繞數據集開展。好的數據集是豐富的高質量數據的集合。
2.1.1 ?圖像數據歸類
在水稻的返青期、分蘗期、拔節孕穗期及灌漿期采集了約10 000幅圖像數據,取得處理樣本葉片氮營養含量測定結果84個。對3個重復的氮營養含量測定結果取平均值,分別得到各生長期空白對照、低氮、低中氮、中氮、中高氮、高氮、超高氮的氮營養含量值。將同一生長期3個重復采集的圖像歸為一類,以計算得到的氮營養含量值標定分類,最終將每個生長期的圖像劃分為7類,每個分類約有圖像350幅。
2.1.2 ?圖像處理
在圖像采集過程中,會有一些圖像因拍攝位置導致水稻圖像在整個畫面中占比較小,這部分圖像會降低模型識別的準確率,因此需要對這部分數據進行裁剪,使水稻圖像在整個畫面中的占比大于50%。另外,拔節孕穗期及灌漿期的圖像會存在部分過度曝光,這部分圖像會影響模型的有效性,因此需將這部分圖像剔除。
2.1.3 ?劃分訓練集和測試集
按水稻生長期將所有圖像數據分為4個數據集,每個數據集7個分類,由訓練集和測試集組成,訓練集用來訓練神經網絡中的參數,測試集用于客觀評價神經網絡的性能。從每個分類中隨機選取20%的圖像數據作為測試集,剩余圖像數據作為訓練集。
2.2 ?建立模型
2.2.1 ?模型設計
基于卷積神經網絡構建深度學習模型,模型設計如圖1所示。
卷積層和池化層分別設置3層,輸入層神經元7個(對應7個分類),神經元激活函數用Relu,分類器使用Softmax。
2.2.2 ?模型創建
目前流行的深度學習工具有:Keras、TensorFlow、Torch等,其中Keras是使用最為廣泛的深度學習工具之一。Keras是一個高層神經網絡API,由純Python編寫,將TensorFlow、theano、CNTK等作為底層庫進行封裝。為了快速搭建實驗環境,減少因程序包與包之間的依賴關系造成的大量錯誤,使用Anaconda結合PyCharm進行搭建,Anaconda版本用Anaconda3-5.3.1,Python版本用3.7.0,TensorFlow版本用2.3.0。
使用Keras創建卷積神經網絡模型有3種方法,分別是:使用Sequential API創建、使用Functional API創建、模型子類化。本研究使用Sequential API創建圖1所示模型,部分代碼如下:
model.add(Conv2D(20,(3, 3), padding="same", input_ shape=shape, name='filter1'))
model.add(Activation("relu"))
model.add(MaxPooling2D(strides=(2,2),name="max1"))
model.add(Dropout(0.5))
# 以上是添加卷積層1和池化層1激活函數是relu
model.add(Conv2D(30, (3, 3), padding="same", name='filter2'))
model.add(Activation("relu"))
model.add(MaxPooling2D(strides=(2,2),name="max2"))
#以上是添加卷積層2和池化層2
model.add(Conv2D(50, (5, 5), padding="same", name='filter3'))
model.add(Activation("relu"))
model.add(MaxPooling2D(strides=(2,2),name="max3"))
model.add(Dropout(0.5))
#以上是添加卷積層3和池化層3
model.add(Flatten())
model.add(Dense(250))
model.add(Dropout(0.5))
model.add(Activation("relu"))
model.add(Dense(classes))
#以上是添加全連接層
model.add(Activation("softmax"))
#以上是添加分類器
2.3 ?模型訓練
分別對4個數據集中的圖像開展模型訓練,生成模型參數,用于分生長期水稻氮營養診斷。模型訓練過程如下。
1)將一個生長期的數據集放入Python項目中。
2)設置訓練所需的參數,如圖像大小、分類數、batchsize和epoch等。參數設定沒有確切的最優值,只能在實驗中不斷調整以得到更好的模型參數。
3)指定模型優化器、參數名稱、訓練集擴充方法等。因采集的圖像數量有限,為了提高模型的泛化能力,需通過圖像旋轉、水平平移、上下平移和圖像翻轉等方法擴充訓練集。
4)將圖像數據矩陣化。將縮放后的圖像數據轉化為矩陣形式的數據,便于計算機運算。
5)調用keras.model的fit_generator函數開始執行模型訓練,訓練過程由計算機自行完成。
3 ?結果與分析
參與模型訓練的水稻樣本圖片共10 173張,其中:返青期訓練樣本1 981張,測試樣本496張;分蘗期訓練樣本2 146張,測試樣本536張;拔節孕穗期訓練樣本1 888張,測試樣本472張;灌漿期訓練樣本2 123張,測試樣本531張。
3.1 ?模型精準度分析
模型的精準度受多種因素影響,當測試集圖像數據不變的情況下,同一模型在不同訓練參數下,模型精準度會有很大的差別。影響訓練結果精度的參數包括:batch_size、epoch、learning_rate及圖像縮放比例。
通過調整訓練參數,得到了多個模型,保留準確率達到80%以上的模型9個,其中返青期3個、分蘗期3個、拔節孕穗期2個、灌漿期1個。返青期訓練參數和模型精度見表2,分蘗期訓練參數和模型精度見表3,拔節孕穗期訓練參數和模型精度見表4,灌漿期訓練參數和模型精度見表5。4個生長期精度最高模型訓練時的epoch、loss、accuracy關系分別見圖2、圖3、圖4、圖5。
3.2 ?模型識別效果驗證
從每個生長期的圖像數據中各隨機選取70張圖像分別組成各生長期最佳模型的驗證集,開展模型識別效果驗證,以精度最高的返青期模型為例,驗證結果列于表6。
可以看出,低中氮的準確率最低,10張驗證圖片有7張被識別為低氮。結合葉片樣本氮營養含量測定值發現,低氮為33.78 g·kg-1,低中氮為33.71 g·kg-1,兩個等次的氮營養含量非常接近,因此導致分類出錯,如果根據氮營養含量來劃分等次,則低中氮的準確率為90%。高氮準確率不高的原因與低中氮相似。
4 ?討論與小結
本研究使用智能手機自帶的照相機在可見光下采集水稻各生長期圖像數據,應用深度學習的方法探索水稻氮營養診斷的新途徑。初步結果顯示,該方法有效可行,與采用多光譜圖像數據的方法對比,在保證較高準確率的情況下,大大降低了診斷成本;與傳統采集植株樣本進行實驗室測定的方法相比,優勢在于對水稻植株的無損診斷;與使用手持葉綠素儀進行診斷的方法相比,優勢在于結果穩定、誤差小。該方法的難點和不足在于需要針對不同的水稻品種建立各個生長期的圖像數據集和深度學習模型。
后續可開發出基于Web的水稻氮營養診斷系統,對水稻圖像開展批量診斷。也可將深度學習模型遷移到移動端,開發用于水稻氮營養診斷的手機APP,讓用戶可以通過手機隨時隨處開展診斷。
參考文獻:
[1] 孫棋.基于數字圖像處理技術的水稻氮素營養診斷研究[D].杭州:浙江大學,2008.
[2] 楊紅云,羅建軍,萬穎,等.計算機視覺技術在水稻氮素營養診斷中應用的研究進展[J].中國農學通報,2020,36(16):149-155.
[3] 李嵐濤,張萌,任濤,等.應用數字圖像技術進行水稻氮素營養診斷[J].植物營養與肥料學報,2015,21(1):259-268.
[4] 吳剛,彭要奇,周廣奇,等.基于多光譜成像和卷積神經網絡的玉米作物營養狀況識別方法研究[J].智慧農業(中英文),2020,2(1):111-120.
[5] 魏全全,李飛,張萌,等.基于數字圖像技術的馬鈴薯氮素營養估測及驗證[J].生態學雜志,2021,40(9):3017-3024.
[6] 魏雪,賈彪,蘭宇,等.智能手機圖像參數與玉米氮素營養狀況關聯解析[J].生態學雜志,2021,40(8):2656-2664.
[7] 李紅軍,張立周,陳曦鳴,等.應用數字圖像進行小麥氮素營養診斷中圖像分析方法的研究[J].中國生態農業學報,2011,19(1):155-159.
(責任編輯:丁志祥)
收稿日期:2021-09-16
基金項目:重慶市農業發展資金項目“手機+圖像識別構建水稻氮素營養診斷系統研究”(NKY-2021AB009)。
作者簡介:姚強(1981—),男,河南南陽人,碩士,高級工程師,從事農業信息技術、物聯網集成開發研究。E-mail:94388062@qq.com。
為通信作者,E-mail:479996341@qq.com。