吳 建, 王紅軍
(1. 廣安職業(yè)技術學院,四川 廣安 638000; 2. 西南交通大學,四川 成都 611756)
人類當前面臨食物需求量快速增加、水資源短缺以及氣候極端異常等問題,而且耕地面積和農作人員逐年減少,這意味著目前農業(yè)安全保障面臨巨大的威脅。為了應對這些可能到來的威脅,人們需要在單位面積的土地上獲得更多的產量來滿足大量人口的糧食需求。因此精準農業(yè)越來越受到世界各國的重視,特征監(jiān)測和作物表型特征是其重要組成部分。依靠精準農業(yè)可以幫助模擬植物的生長過程并提供適當的肥料、灌溉和疾病控制,最終獲得更高的產量[1]。精準農業(yè)的發(fā)展離不開農業(yè)工程的自動化和智能化,各種自動化的觀測裝置(定點攝像頭、熱成像、衛(wèi)星和無人機觀測等)、農業(yè)機器人已經開始在田間部署,計算機視覺技術和機器學習技術可以讓這些裝置像農事人員一樣,很好地理解田間場景并做出合理判斷。在農業(yè)生產中很多基礎自動化任務都可以歸結為計算機視覺問題[2],例如田間雜草識別[3]、葉片面積測量[4]、葉綠素含量分析[5]、葉片病害識別[6]等很多對實際農業(yè)生產有意義的工作。因此從計算機視覺的角度解決農業(yè)生產中的基礎問題不僅有助于提高當前農業(yè)技術水平,而且可以發(fā)現更多針對解決田間環(huán)境下的視覺問題。
作為機器人“眼睛”和“感知”的計算機視覺技術與農業(yè)工程的結合逐漸成為科研人員研究的熱點。張彥娥等[7]在RGB和HIS顏色模型下分析了各分量與葉片含氮率、含磷率和含水率之間的相關特性,分析結果表明葉片綠色分量G和色度H分量與氮含量線性相關,可用作快速診斷作物長勢的指標,而其他分量與氮含量沒有明顯的相關性。大量的研究表明,植物的水分脅迫是可以被檢測出來的,例如,Paloscia等[8]利用微波遙感檢測植物的水分脅迫。熱紅外遙感技術是一種被廣泛應用而且比較有效的方法,Jackson等[9]使用該技術通過測量植物冠層溫度來檢測植物的水分狀況。在近些年的研究中,葉綠素熒光技術也被應用到植物的干旱檢測中,Ni等[10]利用葉綠素熒光儀測量葉片的熒光性,通過對植物光合作用的研究確定植物的含水量。這些技術通過測量植物表面的反射率,溫度,亮度以及土壤濕度等數據對植物進行干旱檢測。
綜上所述,將計算機視覺和機器學習技術應用到對玉米作物的干旱檢測和表型學研究,對我國農業(yè)工程的生產和發(fā)展都具有舉足輕重的意義。但目前來看,國內外對于將計算機視覺技術應用于農作物的干旱程度檢測的研究與應用不足。本文提出了一種盆栽環(huán)境下的植物葉片數量自動檢測算法。
本節(jié)考慮植株的葉片計數問題(以玉米植株為例),葉片數量屬于植物表型學特征,它可以直接反映出作物的生長狀態(tài)[11]。在玉米生長周期中,很多都是以玉米葉片數量命名的(例如三葉期、十葉期),從中可以看出葉片數量對于玉米生長周期的重要性。另一方面,當玉米植株遭受干旱脅迫時生長周期會延長,因此葉片數量也是干旱脅迫程度的一個重要指標。傳統(tǒng)的手工葉片計數效率低下費時費力,這不符合精準農業(yè)自動化的要求,不利于植物生長狀態(tài)的連續(xù)監(jiān)測。近年來,隨著計算機視覺技術的發(fā)展,越來越多的研究者將該技術應用到葉片計數中并取得了不錯的效果,其中Aich等人[12]提出利用卷積神經網絡(VGG16)直接擬合植物圖像中葉片的數量,經過實驗這種直接擬合的方法對玉米葉片計數效果不甚理想,最終的擬合結果趨近于所有樣本葉片數量的均值。本文的算法流程如圖1所示。
圖1 算法流程圖
在深度卷積神經網絡中無論是進行分類還是回歸都需要訓練樣本的標簽。對于分類任務來說需要類別標簽,對于回歸任務則需要待擬合的真實值。由于樣本中包含不同生育期和不同干旱程度的樣本葉片數量分布并不均勻。在深度卷積神經網絡中,樣本標簽分布不均勻時,標簽少的樣本往往很難學習到有用的特征,而對于標簽占比較大的樣本又容易發(fā)生過擬合,因此首先需要對樣本標簽進行重置,使重置后的樣本分布更均勻。
使用k-means聚類的方法對葉片數進行聚類,類別數量選擇使用了手肘法,其核心評判標準是SSE(誤差平方和),如式(1)所示,其中Ci是第i個簇,p是樣本點,m是質心。
手肘法的核心思想是:隨著聚類數k的增大,樣本劃分會更加精細,每個簇的聚合程度逐漸提高,那么SSE會逐漸變小。并且,當k小于真實聚類數時,由于k的增大會大幅增加每個簇的聚合程度,故SSE的下降幅度會很大,而當k到達真實聚類數時,再增加k所得到的聚合程度回報會迅速變小,所以SSE的下降幅度會驟減,然后隨著k值的繼續(xù)增大而趨于平緩。
受Googlenet的多尺度卷積核(inception)結構啟發(fā),本文設計了Leaf-net(葉片特征提取網絡)。Inception結構如圖2所示,即在一個卷積層中使用多個尺度的卷積核進行卷積操作,并將卷積后得到的特征圖按相同維度拼接。在卷積過程中,不同大小的卷積核可以用來提取不同尺度的特征。在不同生長周期中,植物葉片的尺寸差異較大,使用多尺度卷積核可以更好地適應不同長短、寬度的葉片。但有一個不得不考慮的問題,經過特征拼接后的特征圖維度過大會對后面的網絡計算造成困難,增加了計算的復雜度。因此,可以使用1×1的卷積核降維具體的方法為在特征拼接層后加入1×1卷積操作,輸出端的卷積核數量小于輸入端。
圖2 Inception結構
圖3展示了通過1×1卷積核將256個特征圖減少到128的過程。該操作類似池化層,都是對信息的一個壓縮過程,但與池化層不同的是1×1卷積是對特征圖深度軸的壓縮。
圖3 通過1×1卷積核減少的特征圖維度
圖4展示了本文用于特征提取的完整網絡結構(Leaf-net),圖中的綠色框表示取出中間特征的特征尺度。從圖中可以看出在獲取中間特征圖之前都經過了池化操作來達到減小特征圖長寬尺寸的目的,為了進一步減少特征圖的維度在池化層的前面還會加入圖2中1×1卷積核的結構。例如在圖1中第二和第三個綠框之前都使用了圖2中的inception結構,拼接后的特征圖維度是之前的兩到三倍,使用(1×1)的卷積核后可以有效地壓縮特征圖的維度。
圖4 Leaf-net葉片特征提取
在1.2節(jié)中得到了三種尺寸的網絡中間特征圖,分別為 (53×53×128), (25×25×288)和 (3×3×64),可以看到即使在網絡中使用了1×1的卷積核降維,這些特征圖依然擁有較高的維度,在下一步做回歸的時候這些特征總數約為54萬,遠遠大于訓練樣本的數量,也就是說特征對于訓練樣本是過剩的,需要從特征圖提取主要信息達到壓縮的目的,因此利用Fisher向量(FV)編碼增強特征表達能力的同時可以將原特征壓縮,FV本質上是用似然函數的梯度向量表示一幅圖像,可以有效地將生成式法和判別式法的優(yōu)勢結合起來,即在保證分類效果的同時還可以處理長度不同的數據。常見的方法是使用FV將一幅圖像編碼為一個向量隨后連接分類器。在本文中,把每個尺度的特征圖的寬高分別記為H和W,每個特征圖有H×W個描述子。那么可以用X={xt,t=1,2,···,H ×W}來表示單維度的特征圖[13],使用混合高斯分布(GMM)來建模近似擬合這些分布,隨后利用Fisher vector編碼將數量不等的特征描述子轉換為固定長度的特征向量。具體過程如圖5所示。
圖5 FV對三個尺度特征圖編碼拼接成一個特征向量
FV編碼將一組密集的局部特征映射到高維空間(特征在高維空間中更容易區(qū)分)來描述整張圖片,這些特征描述子使用概率密度函數的梯度來計算局部特征的對數似然函數。一般來說,就是通過擬合一個參數生成模型(GMM)來實現的,然后根據模型參數對模型的對數似然導數編碼。FV不僅考慮與權重相關的梯度,還考慮與均值和標準差相關的偏導數。在深度軸上的每個特征圖是獨立同分布的,因此可以有如下表達:
在圖5中,一共有三組特征圖,每組特征圖都可以看作是對原始圖像的T個描述子(與使用SIFT從圖中提取出來的描述子類似),每個描述子的維度即為特征圖的個數。在式(2)中,特征圖xi=x1,x2,···,xT的概率分布可以表示為特征圖中每個特征點概率的乘積,其中 λ ={ωi,μi,i=1,2,···,K},為了方便計算,避免因連乘導致概率過小的問題,可以取對數轉換成相加的形式,如式(3)所示。在式(4)中,表示每個分量的權重,所有權重的和為1,其數學表達式如(5)所示,N為分量數量。是GMM的第i個高斯分量的概率密度函數展開式如式(6)所示,D表示特征向量的維度,表示均值,Q、Z表示協方差矩陣。根據式(4)和式(6)對式(3)求偏導數即為Fisher向量,在此之前還要定義一個變量,在式(7)中,其表示特征由第i個高斯分量生成的概率。
在本文中三組中間特征圖的尺寸分別為3×3×64、25×25×288和 53×53×128,經過編碼后的向量長度為 3×64、79×288和 79×128,式 (10)給出了壓縮率的計算,可以看出通過Fisher編碼大大減少了待擬合特征的數量,使后面的回歸模型更簡單。Fisher向量編碼本質是將底層的描述子映射到一個非常高的維度[15],雖然特征的維度上升了,但是由于原始特征圖的特征點數量較多,編碼時用這些特征點訓練多個高斯分布,所以編碼后的特征向量尺寸與特征點數量無關。
隨機森林(RF)是一種集成學習方法,組合多個決策樹算法對相同現象進行重復預測。它的基本單元是決策樹,本質是集成學習,進一步在決策樹的訓練中加入了隨機屬性的選擇。鑒于決策樹容易過擬合的缺點,隨機森林采用多個決策樹的投票機制來改善決策過程,假設隨機森林使用了m棵決策樹,那么需要產生m個一定數量的樣本集來訓練每一棵樹。其構建過程為:
1)從原始訓練集中使用Boostraping方法隨機有放回采樣取出m個樣本,一共進行n次采樣,生成n個訓練集且這n個子集之間是有大概率互相重復的。
2)對n個訓練集,訓練n個決策樹模型。
3)對于單個決策樹模型,假設訓練樣本的特征總數為p,那么每次分裂時根據一定的評價標準(信息增益或基尼指數)選擇最好的特征進行分裂,傳統(tǒng)決策樹選擇劃分特征時是在當前節(jié)點的屬性集合中選擇一個最優(yōu)屬性;而在隨機森林中,對基決策樹的每個結點,先從該結點的屬性集合中隨機選擇一個包含s個屬性的子集(最大特征數),再從這個子集中選擇一個最優(yōu)屬性進行劃分。參數s控制著隨機性的引入程度,推薦值s=sqrt(d)(d為特征總數)。本文的最大特征數按照上式計算出s=117。
4)重復第3)步,直到不能再分裂或達到設定的閾值(如葉子節(jié)點數或樹的深度),此時建立一棵完整的決策樹。
5)重復第1)~4)步,直到達到預先設置的T棵樹為止。
6)將所有得到的決策樹組合成隨機森林,如果是分類問題,則按照多棵樹分類器投票決定最終分類結果;對于回歸問題,由多棵樹預測值的均值決定最終預測結果。
學習器結合會從兩個方面帶來好處:首先,從統(tǒng)計方面來看,訓練數據可能包含多個分布,使用單一學習器可能只針對一個分布而導致過擬合或欠擬合;第二,從計算方面來看,學習算法往往會陷入局部極小,有的局部極小點所對應的泛化性能很差,通過多學習器結合后,可降低陷入糟糕局部極小點的風險;本文選擇隨機森林作為擬合工具的一個重要原因是特征維度大,而隨機森林在生成單棵決策樹時會產生若干個特征子集,這樣可以使特征得到充分地利用。
對于構建隨機森林最重要的一步是特征的劃分選擇,在第3)步中節(jié)點分裂生成決策樹的過程中會遵循一定準則,本文模型使用的是基尼指數來選擇劃分特征,基尼指數可以描述一個隨機變量的不確定程度。假設有k個類,樣本點屬于第k類的概率為,則數據集Q的基尼值如式(11)所示。
基尼值G(Q)反映了從數據集Q中隨機抽取兩個樣本,其標記類別不一致的概率,因此G(Q)越小,則數據集的純度越高。最終在候選特征子集A中選擇那個使得劃分后基尼指數最小的特征作為最優(yōu)劃分特征。
一些算法訓練參數以及硬件設備信息如下:
1)對于深度學習網絡的構建本文使用的框架是Python + Tensorflow。網絡的訓練參數如表1所示。
表1 卷積神經網絡中的部分訓練參數
2)網絡訓練的硬件環(huán)境是 Intel Core i7-8700主頻 3.2 GHz,運行內存16 GB,顯卡型號是 GTX 1050Ti,操作系統(tǒng)為 Windows10 64位。
本文實驗使用的單株玉米樣本品種是鄭單958號,室內盆栽生長。鄭單是中國最受歡迎的栽培品種,生長在河南、河北和山東。平均株高240 cm,平均穗高100 cm。本研究選取的盆為圓柱形高度為 44 cm,上部直徑為30 cm,底部直徑為23 cm,土壤類型為中壤土。實驗樣本設置了不同的含水量,本研究的目的是對不同干旱程度的單株玉米葉片自動計數并研究葉片數量與干旱程度的關系。表2展示了四種樣本的含水量情況和測熵深度。圖6展示了不同生育周期的玉米樣本圖像示例。
表2 土壤水分控制策略
圖6 不同生育時期的農作物樣本
圖7展示了特征提取網絡訓練時的正確率和損失值,從圖中可以看出隨著訓練迭代次數的增加,模型逐漸收斂,在第200代的時候訓練集的正確率接近100%。這表明了Leaf-net可以從不同葉片數量范圍的樣本中學到有用特征,同時也證明了在2.2節(jié)中對樣本標簽的劃分規(guī)則是合理的。與傳統(tǒng)分類應用不同的是Leaf-net是將一個植株按葉片數量聚類并將一定葉片數量的植株劃分為一類,同時在劃分過程中來提取特征,較高的正確率直接反映了網絡的特征提取能力,這些特征對于后面隨機森林的回歸是非常有幫助的。對于一個單株玉米樣本,通過該模型首先可以大致確定該樣本的葉片數量范圍,然后再進一步做精確數量的回歸。最后,為了避免過擬合,第200次迭代得到的權重模型被保存并用來從中間層提取特征。
圖7 訓練樣本的正確率曲線與損失曲線
不同方法的實驗結果對比如表3所示,“CountDiff”[16]表示樣本葉片數量真實值與擬合值得平均誤差,“AbsCountDiff”葉片誤差絕對值取平均,這兩個度量方法的數學表達式分別參考公式(12)~(13)。
表3 與現有方法的對比
表3中主要對比了本文方法和用卷積神經網直接回歸葉片數量的方法。在近幾年基于計算機視覺的葉片計數競賽中,用深度卷積神經網直接擬合葉片數的方法逐漸成為主流并取得了不錯的效果,例如方法1[16]以Alex-net作為主網絡結構,方法2[17]使用了VGG-16作為主網絡,從表3中可以看出兩種方法均有較高的均方誤差。在植物葉片競賽中使用的植物樣本是蓮座類植物,葉子通常密集呈輻射狀排列在地面,本文樣本使用的是玉米植株,葉片分散,這可能是算法表現差距較大的原因之一。而且通過實驗發(fā)現,CNN直接輸入的回歸結果接近訓練樣本葉片數量的平均值,對于葉片數量較多的樣本計數誤差大。從方法3和本文提出方法的對比中可以看出,與傳統(tǒng)的局部特征提取算法(如SIFT)相比,提出的方法對樣本特征的提取能力更強。在方法3中訓練集和測試集的結果差距較大,出現了過擬合的情況。因此,使用本文提出的CNN與傳統(tǒng)機器學習相結合的方法比單一地使用CNN或局部特征提取算法有更好的特征提取能力。其與表現最好的方法3進行對比,葉片平均誤差以及均方誤差分別減少了0.011與0.382,在檢測回歸葉片數量中,有著良好的效果。
為驗證不同土壤含水量對植物葉片數量的影響,利用本文的葉片回歸模型繪制四組樣本葉片數量隨生長周期變化的折線圖,如圖8所示。從圖中可以看出無論樣本是否遭受干旱脅迫,葉片數量在一定周期都是逐漸增加的,但是根據受干旱脅迫嚴重程度的不同,葉片數增加的速度有很大不同。樣本1是水分全適宜的樣本,葉片量增加速度明顯快于另外三種受干旱脅迫的樣本且與其他樣本有明顯的分界線。樣本2葉片數量同樣隨著生長周期的增加而增加,但與另外兩組樣本有重疊。樣本3和4之間的差異較小,其中樣本4中的葉片數量隨時間先增加后減少。通過觀察樣品的實際圖像,發(fā)現樣本3和4中的葉片由于干旱嚴重發(fā)生脫落的數量明顯高于樣本2。而且算法很難檢測到枯黃和脫落的葉子,因為它們的顏色接近土壤的顏色。這也是本文算法對于干旱程度較大樣本回歸誤差較大的原因。
圖8 不同含水量的樣本葉片數量隨生長周期的變化
在圖8中,三種受干旱脅迫樣本的葉片數隨周期變化的曲線重合嚴重這是由植物生長的特性造成的,因此使用最小二乘法對原數據做回歸,圖9展示了最終回歸后的結果,從圖中可以看出可分性明顯增強最終可以得出結論:作為植物生長的周期的重要標志,葉片數量的增加受土壤含水量的影響較嚴重。水量適宜的樣本葉片數量隨生長周期的推進穩(wěn)步增加,受干旱脅迫的樣本根據干旱程度的不同而受到不同程度的影響。因此植物葉片數量可以成為植物干旱檢測的重要特征之一。
圖9 對葉片數量與周期做線性回歸的結果
本文提出了一種根據基于計算機視覺的農作物干旱檢測的方法。該方法不需要對圖像進行分割預處理,從而避免了因分割可能引入的背景噪聲對葉片計數結果干擾的問題。創(chuàng)新點如下:
1)利用多尺度卷積核的CNN作為特征提取網絡提取玉米葉片特征。其中訓練標簽沒有使用樣本真實的葉片數,取而代之的是葉片數量的大概范圍。最終的學習目標是對于一個樣本模型做粗回歸,得到葉片數量的范圍。
2)使用了Fisher向量對從CNN提取到的特征圖進行編碼,進一步提高了特征的表達能力,同時降低了特征圖的維度,可以有效避免因維度過高帶來的過擬合和計算資源的大量消耗。