錢政, 楊孫哲, 張國卿, 郭紫微, 張林朋, 萬家興, 楊紅云*
(1.江西農(nóng)業(yè)大學(xué)軟件學(xué)院,南昌 330045; 2.江西師范大學(xué)計算機信息工程學(xué)院,南昌 330022; 3.北京粉筆天下教育科技有限公司石家莊分公司,石家莊 050051; 4.江西農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院,南昌 330045)
氮是水稻生命活動所必需的營養(yǎng)元素,水稻缺氮會導(dǎo)致植株葉片面積減小,植物光合作用和產(chǎn)量降低[1-2],而施用過量的氮會在土壤中殘留從而造成浪費以及破壞環(huán)境[3]。在水稻的種植過程中,錯誤地施用氮肥或是經(jīng)驗不足,均會使水稻缺乏所需的氮元素,從而導(dǎo)致水稻產(chǎn)量和質(zhì)量的降低[4]。傳統(tǒng)的水稻氮素營養(yǎng)診斷方法,主要以田間采集植株樣品、試驗室化學(xué)分析為主。孫棋[5]通過對旋翼無人機獲取的水稻圖像進行色彩分析,表明無人機拍攝冠層圖像的顏色特征參量G值與水稻葉片的SPAD、葉綠素和氮含量均有很好的相關(guān)關(guān)系;張國圣等[6]利用無人飛行平臺搭載高光譜成像系統(tǒng)獲取水稻冠層高光譜數(shù)據(jù),分析了試驗點水稻分蘗期葉片氮素與冠層高光譜信息之間的關(guān)系;Huang 等[7]利用衛(wèi)星遙感估計從不同的農(nóng)田收集地面真實數(shù)據(jù),研究中國東北地區(qū)水稻關(guān)鍵生長階段氮狀況;郭建華等[8]以手持式主動遙感光譜儀Greenseeker 和葉綠素儀SPAD 對玉米不同氮素水平下各個生育期的NDVI(normalized difference vegetable index)值及葉片SPAD 值進行測試,研究了不同氮素下玉米群體和個體營養(yǎng)狀況的變化。這些方法在樣品的采集、測試及數(shù)據(jù)處理等方面需要耗費大量的人力、物力和財力,且試驗周期較長、操作不便捷、效率低下[9-10],不利于推廣應(yīng)用。因此,需要探索高效且低成本的便捷方法進行水稻氮素營養(yǎng)診斷。計算機視覺技術(shù)彌補了以上缺點,能夠快速而準確地對水稻營養(yǎng)狀況進行有效觀測,并及時提出建議。
在水稻營養(yǎng)診斷的計算機視覺方法研究中,周瓊等[11]基于BP 神經(jīng)網(wǎng)絡(luò)和概率神經(jīng)網(wǎng)絡(luò)進行水稻氮素營養(yǎng)診斷,在幼穗分化期的水稻葉片中識別準確率達90%;Xu 等[12]采用深度卷積網(wǎng)絡(luò)方法,對水稻10 種營養(yǎng)進行識別,測試準確率達97.44%±0.57%;Yuan 等[13]基于可見光圖像處理的水稻氮素營養(yǎng)診斷,研究了數(shù)碼相機拍攝的水稻氮素狀態(tài)與水稻葉片綠度的關(guān)系,結(jié)果表明水稻葉片中部比葉尖和葉基更適合水稻氮素營養(yǎng)診斷;Sathyavani 等[14]設(shè)計了基于圖像采集的分類模型,該模型使用物聯(lián)網(wǎng)(internet of things, IoT)進行數(shù)據(jù)采集,并使用卷積神經(jīng)網(wǎng)絡(luò)的變體,即DenseNet-BC 進行分類任務(wù),與其他深度學(xué)習(xí)模型相比,該方法在準確性和F-measure方面均獲得了改善;Wang 等[15]基于卷積神經(jīng)網(wǎng)絡(luò)并結(jié)合強化學(xué)習(xí),使用1 500張包含缺氮、缺磷、缺鉀的水稻葉片數(shù)據(jù)集,通過調(diào)整模型架構(gòu),結(jié)果表明DenseNet121的測試準確率達到97%,適用于診斷農(nóng)作物營養(yǎng)缺乏情況。
SE block 通過訓(xùn)練網(wǎng)絡(luò)中產(chǎn)生的損失函數(shù)來學(xué)習(xí)特征權(quán)重[16],增加了有效特征圖的權(quán)重,同時減少了無效或效果較小特征圖的權(quán)重,從而改善模型的性能,但是,SE block 嵌入會導(dǎo)致額外的參數(shù)和計算量的增加,這可能增加模型的復(fù)雜性和計算成本。而全局平均池化可以降低特征圖的空間分辨率,減少模型的參數(shù)數(shù)量和計算量,提高模型的計算效率。此外,它還可以增加模型的魯棒性,減少過擬合的風險,并且可以作為一種簡單的正則化方法,提高模型的泛化能力;遷移學(xué)習(xí)是將已學(xué)習(xí)知識應(yīng)用于新任務(wù)的方法,可以利用已有數(shù)據(jù)和知識,提高模型的泛化能力,避免從零開始訓(xùn)練新模型所需的大量數(shù)據(jù)和計算資源[17-18]。
本研究掃描水稻圖像,再進行圖像處理,將卷積神經(jīng)網(wǎng)絡(luò)與SE block 模塊相結(jié)合,通過在ResNet34 殘差塊中加入SE block 模塊并基于遷移學(xué)習(xí)方法,研究了水稻幼穗分化期和齊穗期以及水稻不同施氮水平與模型識別效果的關(guān)系,建立水稻氮素營養(yǎng)診斷模型,并在試驗過程中通過微調(diào)學(xué)習(xí)率等參數(shù),訓(xùn)練網(wǎng)絡(luò)得到最佳識別效果模型,實現(xiàn)水稻氮素營養(yǎng)診斷的精確識別,為水稻氮素營養(yǎng)診斷識別研究提供了新的思路與方法。
水稻試驗于2017年在江西省南昌市成新農(nóng)場進行,土壤基本理化性質(zhì)為:全氮1.40 g·kg-1、有機質(zhì)24.4 g·kg-1、有效磷12.70 mg·kg-1、速效鉀(P2O5)123.0 mg·kg-1、pH 5.30。以超級雜交稻‘兩優(yōu)培九(Liangyoupei 9, LYP 9)’為試驗材料,最佳施氮量為純氮210~300 kg·hm-2[19]。本試驗以高氮,即氮為270 kg·hm-2以上進行栽培管理,并設(shè)置0(N1)、210(N2)、300(N3)和390 kg·hm-2(N4)4個施氮水平進行施肥。本試驗采用一般區(qū)域試驗設(shè)計,設(shè)置多個小區(qū)進行隨機排列[20],每個小區(qū)面積30 m2,小區(qū)間用土隔開且用塑料薄膜覆蓋住,單灌單排,重復(fù)3次。氮肥按基肥∶分蘗期∶穗肥為4∶2∶4 施用;鉀肥按分蘗期∶穗肥為7∶3 施用;磷肥一次性做基肥施用。各區(qū)間磷、鉀肥施用量相等,分別為P2O5225 kg·hm-2、K2O 300 kg·hm-2,移栽前1 d施用基肥,移栽7 d后施用分蘗肥,在葉齡余數(shù)1.5 左右時施用穗肥[21]。5 月25 日播種,6 月14 日移栽。人工移栽,栽插規(guī)格為13.3 cm×26.6 cm,其他按照常規(guī)的高產(chǎn)栽培要求進行。
本研究中所用水稻圖像通過MICROTEK 掃描儀(MRS-9600TFU2L,分辨率600 ppi,上海中晶科技有限公司生產(chǎn))于水稻幼穗分化期(2017 年7 月24 日)、齊穗期(2017 年8 月23 日)分2 次掃描獲取,每次掃描獲取960 張,共計1 920 張2 515×3 997像素水稻圖像,其中每個時期的不同施氮水平分別有240張。
水稻營養(yǎng)診斷模型的訓(xùn)練與測試均在Linux Ubuntu 操作系統(tǒng)下完成。試驗使用的電腦硬件配置為:CPU 采用Intel(R) Xeon(R) Gold 6330 CPU@2.00GHz,內(nèi)存為6×8 GB,GPU 采用NVIDIA GeForce RTX 3090,顯存為24 GB。軟件環(huán)境:Cuda 11.3,PyTorch 1.11.0,Python 3.8。
考慮到使試驗所用的GPU 顯存利用率最大化,將Batch_Size 設(shè)置為64,迭代次數(shù)均設(shè)置為150 輪,采用Adam(adaptive moment estimate)優(yōu)化算法,損失函數(shù)選擇交叉熵損失函數(shù),將初始學(xué)習(xí)率設(shè)置為1e-4。
水稻圖像數(shù)據(jù)經(jīng)過后期掃描得到,由于部分圖像在掃描過程中出現(xiàn)了葉片對折、卷曲的情況,使得掃描效果不佳且圖像信息有缺失,考慮模型訓(xùn)練的準確率,將這些數(shù)據(jù)舍棄,最終試驗數(shù)據(jù)集中幼穗分化期的有921張,齊穗期的有925張,每個類別的數(shù)據(jù)量如表1所示。由表1可知,原始圖像數(shù)量較少,這會使模型難以了解真實的數(shù)據(jù)分布,容易出現(xiàn)過擬合現(xiàn)象[22]。所以本研究采用平移、翻轉(zhuǎn)、旋轉(zhuǎn)、圖像模糊、增加噪聲以及亮度調(diào)亮和調(diào)暗6 種增強方式對原始數(shù)據(jù)集進行擴充[23],把每種圖像數(shù)量擴充為原來的9 倍,樣本圖像中幼穗分化期水稻數(shù)據(jù)由原來的921 張增加到8 289張,齊穗期水稻數(shù)據(jù)由原來的925 張增加到8 325張。由于水稻圖像分辨率不一致,為了方便訓(xùn)練,將水稻圖像的分辨率統(tǒng)一調(diào)整為512×512,并將80%圖像作為訓(xùn)練數(shù)據(jù)集,余下的20%作為測試數(shù)據(jù)集。
表1 原始數(shù)據(jù)集數(shù)量Table 1 Original rice data number
之后對圖像進行標準化歸一化處理,如果圖像的特征值較大,梯度也會較大,因此為了加速模型訓(xùn)練的收斂,需要將圖像特征值大小調(diào)整到相近的范圍。在對數(shù)據(jù)集進行標準化歸一化時,遍歷了每張圖片的紅綠藍(RGB)顏色通道,計算出每個通道的均值和方差,采用PyTorch 中torchvision.transforms.Normalize方法,最終將所有數(shù)據(jù)轉(zhuǎn)換到標準正態(tài)分布的數(shù)據(jù)集中,其計算公式如下。
式中,output[channel]表示輸出圖像的某個通道;input[channel]表示輸入圖像的某個通道;mean[channel]和std[channel]分別表示該通道的均值和標準差。
卷積神經(jīng)網(wǎng)絡(luò)是一種人工神經(jīng)網(wǎng)絡(luò),也是首個真正被成功訓(xùn)練的深層神經(jīng)網(wǎng)絡(luò)[24],在現(xiàn)實生活中應(yīng)用十分廣泛。由于ResNet34本身具有網(wǎng)絡(luò)較深、更容易訓(xùn)練、計算復(fù)雜度低、易于遷移等特點[25],本試驗選用其作為主干網(wǎng)絡(luò)模型,再對其進行遷移學(xué)習(xí),實現(xiàn)水稻氮素營養(yǎng)狀況的分類任務(wù)。
本試驗保留了ResNet34 的主干網(wǎng)絡(luò),在每個殘差塊分支最后引入SE block,其結(jié)構(gòu)如圖1 所示。其中,將平均池化層替換為全局平均池化層,然后通過全局平均池化層和全連接層得到水稻氮素的預(yù)測類別,改進后的模型標記為ResNet34_SEt。本試驗采用了自適應(yīng)梯度優(yōu)化算法和交叉熵損失函數(shù),在ResNet34_SEt 模型中,首先應(yīng)用了1 個核大小為7×7、步長為2 的卷積層,用于降低輸入圖像的分辨率。之后經(jīng)過一系列的卷積層、池化層和殘差塊對輸入進行處理,在這個過程中,圖像的尺寸逐漸縮小,通道數(shù)逐漸增加。最后,通過全局平均池化層將圖像特征壓縮成1 個向量,然后將全連接層輸出值設(shè)置為4。
圖1 改進的模型網(wǎng)絡(luò)構(gòu)架Fig. 1 Improved model network architecture
試驗主要流程如下。
①構(gòu)建水稻營養(yǎng)診斷模型?;赗esNet34模型,將模型的平均池化層替換為全局平均池化層,并將此方案記為方案1。
②基于步驟①,在模型每個殘差塊后引入SE block,并將全連接層的分類數(shù)替換為自身的分類任務(wù)數(shù),再進行訓(xùn)練及模型微調(diào),訓(xùn)練出適合水稻營養(yǎng)的模型,記為ResNet34_SE,并將此方案記為方案2。
③基于步驟①,在模型每個殘差塊后引入SE block,進行遷移學(xué)習(xí),并將全連接層的分類數(shù)替換為自身的分類任務(wù)數(shù),再進行訓(xùn)練及模型微調(diào),訓(xùn)練出適合水稻營養(yǎng)的模型,訓(xùn)練得到模型記為ResNet34_SEt,并將此方案記為方案3。
④模型測試。對水稻數(shù)據(jù)集中20%的測試集數(shù)據(jù)進行測試,并將ResNet34、ResNet34_SE、ResNet34_SEt的測試結(jié)果進行對比。
準確率(Accuracy)表示正確識別的總數(shù)占預(yù)測總數(shù)的比例,召回率(Recall)表示正確預(yù)測該類別的數(shù)量占所有真實該類別的數(shù)量的比例,二者評價指標的計算公式如下。
式中,TP 為真正例,表示樣本實際為正樣本,檢測為正樣本的個數(shù);TN 為正負例,表示樣本實際為正樣本,檢測為負樣本的個數(shù);FP 為假正例,表示樣本實際為負樣本,但檢測為正樣本的個數(shù);FN 為假負例,表示樣本實際為負樣本,檢測為負樣本的個數(shù)。
將方案1、方案2、方案3 進行對比,驗證了改進的殘差塊和遷移學(xué)習(xí)結(jié)合的有效性,模型識別準確率提升幅度均在7%以上。所得數(shù)據(jù)如表2 所示,在模型的最后一層添加全局平均池化層后,模型參與訓(xùn)練的參數(shù)量減少了,模型體積因此也有所減小,由于SE block 內(nèi)包含2 個卷積層,使得參與訓(xùn)練的參數(shù)有所增多,最終模型總參數(shù)量依然小于原始模型總參數(shù)量,減少了約1.6%。
表2 不同方案的試驗數(shù)據(jù)Table 2 Experimental data for different plans
由表2 最終可知,通過遷移學(xué)習(xí)以及引入SE block,方案3的各項指標優(yōu)于方案1和方案2。
2.2.1 模型在幼穗分化期的訓(xùn)練曲線和混淆矩陣 混淆矩陣也稱誤差矩陣,是評判模型結(jié)果的指標,屬于模型評估的一部分,用n行n列的矩陣形式來表示,可以用來判斷分類器的優(yōu)劣,通過混淆矩陣也可以更直觀地看到模型在各個類別上的表現(xiàn),混淆矩陣橫軸表示預(yù)測值,縱軸表示真實值,展示了分類任務(wù)中模型識別正確與錯誤情況。對于水稻幼穗分化期,方案1、2、3 的模型訓(xùn)練曲線圖以及混淆矩陣如圖2所示。
圖2 3個方案在幼穗分化期的訓(xùn)練曲線和混淆矩陣Fig. 2 Training curves and confusion matrices of three schemes during the spikelet differentiation stage
從圖2C可知,遷移學(xué)習(xí)能夠加速模型的收斂速度,同時ResNet34 在訓(xùn)練過程中產(chǎn)生了一定的過擬合現(xiàn)象,替換成全局平均池化層之后在一定程度上避免了過擬合現(xiàn)象的產(chǎn)生,這在圖2B中得到了體現(xiàn);由圖2C 可以看出,基于遷移學(xué)習(xí)再引入SE block后,模型的準確率均有一定的提升。
從圖2F所展示的混淆矩陣可知,模型對N3以及N4 處理施氮水平的水稻識別準確率大于N1和N2 處理;對于4 類施氮水平的識別準確率分別為96.53%、98.52%、98.84%、98.71%。因此,從圖2D~F 可以看出,ResNet_SE 的準確率優(yōu)于ResNet34,ResNet_SEt的準確率優(yōu)于ResNet_SE。
2.2.2 模型在齊穗期的訓(xùn)練曲線和混淆矩陣 對于水稻齊穗期,方案1、2、3 的模型訓(xùn)練曲線以及混淆矩陣如圖3所示。
圖3 3個方案在齊穗期的訓(xùn)練曲線和混淆矩陣Fig. 3 Training curves and confusion matrices of three schemes during the full heading stage
從圖3A~C 可知,改進后的模型在收斂速度、過擬合現(xiàn)象的處理、模型的準確率均有一定的提升。從圖3F 可知,模型對N2 以及N3 施氮水平的水稻識別準確率稍低于N1的和N4的施氮水平;對于4 類施氮水平的識別準確率分別為99.76%、99.05%、99.05%、100.00%。因此,從圖3D~F 可以看出,ResNet_SE 的準確率優(yōu)于ResNet34,ResNet34_SEt的準確率優(yōu)于ResNet_SE。
綜上可知,相比于未改進網(wǎng)絡(luò),基于遷移學(xué)習(xí),可以迅速在數(shù)據(jù)集數(shù)量不多的情況下,得到較為理想的識別準確率,且模型收斂速度更快,模型的整體性能也更好;替換為全局平均池化層,可以減少模型總參數(shù)量,且在訓(xùn)練過程中測試集的損失趨勢相對原始模型更加穩(wěn)定,其次能夠改善模型訓(xùn)練過程中產(chǎn)生的過擬合現(xiàn)象,但模型的收斂速度有所降低;SE block 的引入可以提高模型的準確率,但SE block 的引入增加了模型的訓(xùn)練時間,參與訓(xùn)練的參數(shù)也有所增加,經(jīng)過模型評估,ResNet34_SEt在水稻幼穗分化期和齊穗期分別能達到98.13%和99.46%的準確率;基于遷移學(xué)習(xí)以及在網(wǎng)絡(luò)殘差塊中引入SE block 相比直接進行全新學(xué)習(xí)識別錯誤的數(shù)量大大減小,表明ResNet34_SEt更適用于水稻氮素營養(yǎng)診斷任務(wù)。
為了進一步驗證方案3 的有效性,使用本試驗的數(shù)據(jù)集輸入到AlexNet、VGG11、VGG16 傳統(tǒng)模型進行分類任務(wù),并將模型的性能與方案3 的ResNet34_SEt進行對比,結(jié)果如表3 所示。由表3可知,AlexNe模型相較于ResNet34_SEt,二者訓(xùn)練時間相差不多,但是二者在2 個時期數(shù)據(jù)集中的表現(xiàn)卻相差較大,且模型總參數(shù)量也有近12 倍的差距;對于VGG11 以及VGG16 模型,它們所需的計算量相較于ResNet34_SEt 都十分巨大,VGG16在齊穗期的效果要優(yōu)于VGG11,但是該效果多體現(xiàn)在相較VGG11 層數(shù)更多,模型更深,需要更多的訓(xùn)練時間,且模型總參數(shù)量都較大;對于ResNet34_SEt自身而言,在訓(xùn)練時間,模型總參數(shù)量,測試效果方面綜合來說最優(yōu)。
表3 不同模型的性能對比Table 3 Performance comparison of different models
本文以‘兩優(yōu)培九’為研究對象,對2 個時期、4 個施氮水平的水稻進行幼穗分化期的營養(yǎng)診斷,從試驗結(jié)果來看,模型能更準確識別水稻幼穗分化期N3 以及N4 施氮水平,從齊穗期的試驗數(shù)據(jù)來看,模型對N1 以及N4 施氮水平的水稻能更準確地識別。羅建軍等[26]在本試驗數(shù)據(jù)集上,使用機器學(xué)習(xí)的方法,通過獲取水稻掃描圖像提取葉片顏色、幾何形態(tài)等特征進行水稻氮素營養(yǎng)診斷,與本試驗中幼穗分化期的數(shù)據(jù)有差異,可能是因為深度學(xué)習(xí)與基于特征的機器學(xué)習(xí)對樣本數(shù)據(jù)集大小要求不一樣所導(dǎo)致的。通過深度學(xué)習(xí)方法,發(fā)現(xiàn)水稻的齊穗期識別準確率稍高于水稻的幼穗分化期,這種差異可能是不同時期的數(shù)據(jù)集數(shù)量以及分布不同所導(dǎo)致的。張林朋等[27]在本試驗數(shù)據(jù)集上,使用深度學(xué)習(xí)方法構(gòu)建了改進的VGG16 和遷移學(xué)習(xí)相結(jié)合的網(wǎng)絡(luò)模型對水稻葉片圖像數(shù)據(jù)進行氮素營養(yǎng)診斷識別,結(jié)果表明在水稻幼穗分化期和齊穗期,該模型微調(diào)后的識別準確率均能達到95%以上,但是其存在模型體積大、模型參數(shù)量多、訓(xùn)練時間較長等問題。在本試驗中,對出現(xiàn)圖像彎折、卷曲現(xiàn)象的進行了舍棄,但由于對水稻的分割處理粗糙,也可能造成部分水稻的分割處有圖像信息缺失,在后續(xù)試驗中,增大樣本數(shù)量和對水稻的處理過程更加細致將是重要改進之處,其次應(yīng)盡量使數(shù)據(jù)分布均勻,再次提高每一類施氮水平的識別效果。綜上,在高光譜技術(shù)、機器學(xué)習(xí)方法、深度學(xué)習(xí)方法的對比中,深度學(xué)習(xí)方法將會是水稻氮素診斷的最優(yōu)選擇。
在數(shù)據(jù)集方面,本試驗后期對其進行預(yù)處理過程中丟棄了部分圖像信息,使得幼穗分化期的數(shù)據(jù)分布相較于齊穗期來說更加分布不均勻,每類施氮水平的數(shù)據(jù)量都有所不同,對最終得到的識別準確率造成了一定的影響。Cap 等[28]提出了一種LeafGAN 方法,通過從健康圖像轉(zhuǎn)換生成各種各樣的疾病圖像,作為提高植物疾病診斷性能的數(shù)據(jù)增強工具,對試驗過程中數(shù)據(jù)集數(shù)量過少問題進行了改善,改善了模型的過擬合現(xiàn)象,模型性能也有所提升。在數(shù)據(jù)集數(shù)量上,未來可使用GAN 等方法進行數(shù)據(jù)擴充,避免數(shù)據(jù)不足,使模型準確度更高。另外,本試驗使用1 個品種對模型的適用程度方面具有一定的局限性,例如外形特征以及其他品種施氮量的顏色特征等,這些都會影響本模型對數(shù)據(jù)的識別準確率;采用本試驗使用的ResNet 網(wǎng)絡(luò),需要大量數(shù)據(jù)以及更長的訓(xùn)練時間,以保證模型的準確率以及穩(wěn)定性。未來的研究中,需要增加不同水稻品種、獲取水稻不同生長時期的營養(yǎng)狀況數(shù)據(jù),基于本試驗的施氮水平,再細化出更多的施氮水平,會更加有利于模型的通用性、適用性。
本試驗通過使用卷積神經(jīng)網(wǎng)絡(luò),將網(wǎng)絡(luò)結(jié)構(gòu)進行改進,建立水稻氮素營養(yǎng)診斷模型,能夠獲得較高的模型識別準確率,同時該模型能夠抑制模型訓(xùn)練過程中過擬合現(xiàn)象的產(chǎn)生,數(shù)據(jù)表明該模型能夠用于水稻氮素營養(yǎng)的分類任務(wù),為利用計算機識別水稻氮素營養(yǎng)的研究方向提供了一種新思路。