姚 強,粟 超,李 波,易 婧,敬廷桃,呂 斌
(重慶市農(nóng)業(yè)科學(xué)院,重慶 401239)
水稻是我國最主要的糧食作物,全國60%以上人口以稻米為主食。水稻生產(chǎn)在我國農(nóng)業(yè)生產(chǎn)上和糧食安全方面具有舉足輕重的地位。氮素是作物生長發(fā)育周期中需要量最多的營養(yǎng)元素之一,也是對作物生長、產(chǎn)量和品質(zhì)影響最為顯著的營養(yǎng)元素之一[1]。在種植水稻的過程中,錯誤地施用氮肥或是施氮經(jīng)驗不足,會使水稻氮素營養(yǎng)失調(diào),從而導(dǎo)致水稻產(chǎn)量和品質(zhì)的降低[2]。傳統(tǒng)的氮素營養(yǎng)診斷以田間采集植株樣品、實驗室化學(xué)分析為主,這種方法在樣品的采集、測試及數(shù)據(jù)處理等方面需耗費大量的人力、物力和財力,時效性差,不利于推廣應(yīng)用[3]。近年來,隨著互聯(lián)網(wǎng)+、大數(shù)據(jù)、人工智能等新技術(shù)的發(fā)展和應(yīng)用,數(shù)字農(nóng)業(yè)、智慧農(nóng)業(yè)應(yīng)運而生,運用數(shù)字技術(shù)、人工智能技術(shù)開展作物氮素營養(yǎng)診斷的研究取得了很多成果。如:李嵐?jié)葢?yīng)用數(shù)字圖像技術(shù)進行了水稻氮素營養(yǎng)診斷方面的研究[3];吳剛等采用一種基于卷積神經(jīng)網(wǎng)絡(luò)的方法對采集的多光譜玉米植株圖像進行氮素含量、水分含量等分析識別[4];魏全全等運用數(shù)字圖像技術(shù)對馬鈴薯氮素營養(yǎng)開展估測及驗證[5];魏雪等開展了智能手機圖像參數(shù)與玉米氮素營養(yǎng)狀況關(guān)聯(lián)解析[6];李紅軍等利用數(shù)碼相機對小麥冠層進行拍照,分析色彩參數(shù)與作物氮素營養(yǎng)狀況之間的關(guān)系[7]。本文探索采用深度學(xué)習(xí)的方法開展水稻氮素營養(yǎng)診斷。
試驗在重慶市農(nóng)業(yè)科學(xué)院高科技園區(qū)(九龍坡區(qū)白市驛鎮(zhèn)高峰寺村)開展。水稻品種為重慶市當前栽培面積較大的主栽品種渝香203。為了產(chǎn)生不同含氮量的水稻植株和群體,為水稻葉片與冠層圖像采集和植株氮素含量分析提供樣本,共設(shè)置7個處理、3次重復(fù)。7個處理分別是空白對照、低氮、低中氮、中氮、中高氮、高氮和超高氮,3 次重復(fù)按設(shè)定順序排列試驗區(qū)組。試驗前對3 個重復(fù)田塊的土壤養(yǎng)分基本情況進行了化驗分析(結(jié)果見表1)。
表1 試驗前土壤養(yǎng)分基本情況
試驗田小區(qū)間設(shè)立隔離肥水田埂。各處理施氮量(均為純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次。
試驗數(shù)據(jù)包括水稻圖像數(shù)據(jù)和氮營養(yǎng)含量數(shù)據(jù)。圖像數(shù)據(jù)作為深度學(xué)習(xí)算法的輸入,氮營養(yǎng)含量數(shù)據(jù)用于數(shù)據(jù)集的標定。在水稻的返青期、分蘗期、拔節(jié)孕穗期及灌漿期開展圖像數(shù)據(jù)采集,利用國產(chǎn)安卓智能手機獲取水稻葉片和冠層圖像,每個處理采集100~200 幅圖像,拍攝角度包含與地面成60°和90°。照片長寬比設(shè)置為4∶3,測光方式設(shè)置為矩陣測光,ISO 模式設(shè)置為自動,對焦方式設(shè)置為自動對焦(AF-C),圖像保存格式為JPG格式。
采集圖像數(shù)據(jù)的同時,對水稻植株葉片進行同步取樣,選擇長勢適中的水稻植株第三完全展開葉作為樣本葉片,每個處理采集40~50個葉片(鮮重約200 g)放入提前編號的專用樣品袋中,送回實驗室進行氮素含量化學(xué)測定。
數(shù)據(jù)集是深度學(xué)習(xí)模型的輸入,模型的訓(xùn)練和測試圍繞數(shù)據(jù)集開展。好的數(shù)據(jù)集是豐富的高質(zhì)量數(shù)據(jù)的集合。
2.1.1 圖像數(shù)據(jù)歸類
在水稻的返青期、分蘗期、拔節(jié)孕穗期及灌漿期采集了約10 000 幅圖像數(shù)據(jù),取得處理樣本葉片氮營養(yǎng)含量測定結(jié)果84 個。對3 個重復(fù)的氮營養(yǎng)含量測定結(jié)果取平均值,分別得到各生長期空白對照、低氮、低中氮、中氮、中高氮、高氮、超高氮的氮營養(yǎng)含量值。將同一生長期3 個重復(fù)采集的圖像歸為一類,以計算得到的氮營養(yǎng)含量值標定分類,最終將每個生長期的圖像劃分為7類,每個分類約有圖像350幅。
2.1.2 圖像處理
在圖像采集過程中,會有一些圖像因拍攝位置導(dǎo)致水稻圖像在整個畫面中占比較小,這部分圖像會降低模型識別的準確率,因此需要對這部分數(shù)據(jù)進行裁剪,使水稻圖像在整個畫面中的占比大于50%。另外,拔節(jié)孕穗期及灌漿期的圖像會存在部分過度曝光,這部分圖像會影響模型的有效性,因此需將這部分圖像剔除。
2.1.3 劃分訓(xùn)練集和測試集
按水稻生長期將所有圖像數(shù)據(jù)分為4 個數(shù)據(jù)集,每個數(shù)據(jù)集7 個分類,由訓(xùn)練集和測試集組成,訓(xùn)練集用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)中的參數(shù),測試集用于客觀評價神經(jīng)網(wǎng)絡(luò)的性能。從每個分類中隨機選取20%的圖像數(shù)據(jù)作為測試集,剩余圖像數(shù)據(jù)作為訓(xùn)練集。
2.2.1 模型設(shè)計
基于卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建深度學(xué)習(xí)模型,模型設(shè)計如圖1所示。
圖1 深度學(xué)習(xí)模型示意圖
卷積層和池化層分別設(shè)置3 層,輸入層神經(jīng)元7個(對應(yīng)7個分類),神經(jīng)元激活函數(shù)用Relu,分類器使用Softmax。
2.2.2 模型創(chuàng)建
目前流行的深度學(xué)習(xí)工具有:Keras、TensorFlow、Torch 等,其中Keras 是使用最為廣泛的深度學(xué)習(xí)工具之一。Keras 是一個高層神經(jīng)網(wǎng)絡(luò)API,由純Python 編寫,將TensorFlow、theano、CNTK 等作為底層庫進行封裝。為了快速搭建實驗環(huán)境,減少因程序包與包之間的依賴關(guān)系造成的大量錯誤,使用Anaconda 結(jié)合PyCharm 進行搭建,Anaconda 版本用Anaconda3-5.3.1,Python版本用3.7.0,TensorFlow版本用2.3.0。
使用Keras創(chuàng)建卷積神經(jīng)網(wǎng)絡(luò)模型有3種方法,分別是:使用Sequential API 創(chuàng)建、使用Functional API創(chuàng)建、模型子類化。本研究使用Sequential API 創(chuàng)建圖1所示模型,部分代碼如下:
分別對4 個數(shù)據(jù)集中的圖像開展模型訓(xùn)練,生成模型參數(shù),用于分生長期水稻氮營養(yǎng)診斷。模型訓(xùn)練過程如下。
1)將一個生長期的數(shù)據(jù)集放入Python項目中。
2)設(shè)置訓(xùn)練所需的參數(shù),如圖像大小、分類數(shù)、batchsize和epoch等。參數(shù)設(shè)定沒有確切的最優(yōu)值,只能在實驗中不斷調(diào)整以得到更好的模型參數(shù)。
3)指定模型優(yōu)化器、參數(shù)名稱、訓(xùn)練集擴充方法等。因采集的圖像數(shù)量有限,為了提高模型的泛化能力,需通過圖像旋轉(zhuǎn)、水平平移、上下平移和圖像翻轉(zhuǎn)等方法擴充訓(xùn)練集。
4)將圖像數(shù)據(jù)矩陣化。將縮放后的圖像數(shù)據(jù)轉(zhuǎn)化為矩陣形式的數(shù)據(jù),便于計算機運算。
5)調(diào)用keras.model 的fit_generator 函數(shù)開始執(zhí)行模型訓(xùn)練,訓(xùn)練過程由計算機自行完成。
參與模型訓(xùn)練的水稻樣本圖片共10 173 張,其中:返青期訓(xùn)練樣本1 981張,測試樣本496張;分蘗期訓(xùn)練樣本2 146張,測試樣本536張;拔節(jié)孕穗期訓(xùn)練樣本1 888 張,測試樣本472 張;灌漿期訓(xùn)練樣本2 123張,測試樣本531張。
模型的精準度受多種因素影響,當測試集圖像數(shù)據(jù)不變的情況下,同一模型在不同訓(xùn)練參數(shù)下,模型精準度會有很大的差別。影響訓(xùn)練結(jié)果精度的參數(shù)包括:batch_size、epoch、learning_rate及圖像縮放比例。
通過調(diào)整訓(xùn)練參數(shù),得到了多個模型,保留準確率達到80%以上的模型9 個,其中返青期3 個、分蘗期3個、拔節(jié)孕穗期2個、灌漿期1個。返青期訓(xùn)練參數(shù)和模型精度見表2,分蘗期訓(xùn)練參數(shù)和模型精度見表3,拔節(jié)孕穗期訓(xùn)練參數(shù)和模型精度見表4,灌漿期訓(xùn)練參數(shù)和模型精度見表5。4個生長期精度最高模型訓(xùn)練時的epoch、loss、accuracy關(guān)系分別見圖2、圖3、圖4、圖5。
圖5 水稻灌漿期模型訓(xùn)練效果
表2 水稻返青期訓(xùn)練參數(shù)和模型精度
表3 水稻分蘗期訓(xùn)練參數(shù)和模型精度
表4 水稻拔節(jié)孕穗期訓(xùn)練參數(shù)和模型精度
表5 水稻灌漿期訓(xùn)練參數(shù)和模型精度
圖2 水稻返青期模型訓(xùn)練效果
圖3 水稻分蘗期模型訓(xùn)練效果
圖4 水稻拔節(jié)孕穗期模型訓(xùn)練效果
從每個生長期的圖像數(shù)據(jù)中各隨機選取70張圖像分別組成各生長期最佳模型的驗證集,開展模型識別效果驗證,以精度最高的返青期模型為例,驗證結(jié)果列于表6。
表6 水稻返青期模型驗證
可以看出,低中氮的準確率最低,10 張驗證圖片有7 張被識別為低氮。結(jié)合葉片樣本氮營養(yǎng)含量測定值發(fā)現(xiàn),低氮為33.78 g·kg-1,低中氮為33.71 g·kg-1,兩個等次的氮營養(yǎng)含量非常接近,因此導(dǎo)致分類出錯,如果根據(jù)氮營養(yǎng)含量來劃分等次,則低中氮的準確率為90%。高氮準確率不高的原因與低中氮相似。
本研究使用智能手機自帶的照相機在可見光下采集水稻各生長期圖像數(shù)據(jù),應(yīng)用深度學(xué)習(xí)的方法探索水稻氮營養(yǎng)診斷的新途徑。初步結(jié)果顯示,該方法有效可行,與采用多光譜圖像數(shù)據(jù)的方法對比,在保證較高準確率的情況下,大大降低了診斷成本;與傳統(tǒng)采集植株樣本進行實驗室測定的方法相比,優(yōu)勢在于對水稻植株的無損診斷;與使用手持葉綠素儀進行診斷的方法相比,優(yōu)勢在于結(jié)果穩(wěn)定、誤差小。該方法的難點和不足在于需要針對不同的水稻品種建立各個生長期的圖像數(shù)據(jù)集和深度學(xué)習(xí)模型。
后續(xù)可開發(fā)出基于Web 的水稻氮營養(yǎng)診斷系統(tǒng),對水稻圖像開展批量診斷。也可將深度學(xué)習(xí)模型遷移到移動端,開發(fā)用于水稻氮營養(yǎng)診斷的手機APP,讓用戶可以通過手機隨時隨處開展診斷。