陽 昊,黃 超,2,劉欣然,王中舉,王 龍,2
(1.北京科技大學 計算機與通信工程學院,北京 100083;2.北京科技大學 順德創(chuàng)新學院,廣東 佛山 528399)
萵苣作為一種葉用蔬菜因其豐富的口感和質地而受到廣大消費者的喜愛[1]。有研究表明,生菜富含維生素、胡蘿卜素、鐵元素,對減少心血管疾病和慢性病有積極作用[2]。萵苣的生長狀態(tài)監(jiān)測對最大化產量和提高萵苣品質具有重要意義[3]。葉片鮮重(LFW)、葉片干重(LDW)、生菜高度(H)、生菜直徑(D)、和葉面積(LA)是表征萵苣生長的關鍵指標。準確地獲取生長狀態(tài)指標(LFW、LDW、H、D和LA),對采取相應的生產措施有極大的參考價值。人為采集農作物樣本獲取生長指標的方法簡單,能獲取較為準確的結果,但會破壞作物,費時費力[4]。卷積神經網絡作為類腦領域重要的研究成果,能高效地處理圖像輸入,在工業(yè)界和學術界得到了廣泛的應用[5-6]。隨著計算機視覺技術的發(fā)展,基于圖像的農作物識別、無損監(jiān)測方法具有廣泛的前景[7]?;趫D像的監(jiān)測方法通常從圖像中抽取人為設計的特征,通過對這些特征與生長指標構建回歸模型,進行無損的生長監(jiān)測。Chen等人[8]從彩色圖像、熒光圖像、近紅外圖像中提取結構特征和近紅外反應生理特征,利用支持向量機、隨機森林、線性回歸等機器學習算法估計大麥生物量的積累。結果表明,隨機森林能更好地建立圖像特征與生物量之間的關系。Tackenberg等人[9]提出了一種基于數字圖像分析的牧草生長狀態(tài)估計方法,以線性回歸估計地表干物質量、新鮮生物量等。實驗結果顯示所有模型的決定系數都高于0.85,表明這些特征和生長特性有較好的線性關系。Casadesús等人[10]從不同彩色空間的圖片中提取色彩特征來估計大麥的葉面積、綠色面積指數和干重,這些特征包括HIS色彩空間的H分量,CIELUV色彩空間的U分量,實驗結果表明這些特征與不同生長階段的生長指標有很強的相關性。Fan等人[11]設計可見光和近紅外攝像系統(tǒng)用于獲取意大利黑麥草的時間序列圖像,基于這些圖像的R、G和NIR通道數值,利用多元線性回歸模型估計葉面積指數從而量化麥草的生長。實驗結果表明,對圖像進行分割預處理能獲得更好的準確率。Liu等人[12]利用基于直方圖的閾值分割方法從圖像中分割植被區(qū)域,再提取垂直間隙指數來估計大豆、玉米、小麥的葉面積指數。Sakamoto等人[13]從彩色圖像和近紅外圖像中提取植被系數用于估計葉面積指數、總葉面積指數、生物量。實驗表明,彩色圖像提取的特征能準確地估計葉面積指數和葉片生物量,而從近紅外圖像中提取的特征能更準確地估計總葉面積指數。Daniel等人[14]從彩色圖像和多光譜圖像中提取歸一化植被差異指數、綠色區(qū)域面積、簡單比指數,利用最小二乘法估計木薯的生長和關鍵營養(yǎng)特性,實驗表明,木薯礦物元素的含量與多光譜特征的關聯(lián)性較低。為了評估雜草對小麥生長的影響,Gée等人[15]利用支持向量機和視覺詞匯袋技術從圖像中估計雜草和小麥的覆蓋率。除了二維圖片,Briglia等人[16]利用3D圖像來獲得葡萄葉片角度的變化,由此來監(jiān)測葡萄水分狀況。根據以往的研究,圖像的來源包括彩色圖片、近紅外圖片、熒光圖片和3D圖片,針對不同的圖片和具體估計的指標,需要設計不同的特征,如色彩特征、幾何特征等。并且在設計之前,特征與指標之間的相關性是未知的,導致這類方法的泛化性能較差,特別是對于不同場景、不同的光照和復雜背景下獲取的圖片。Zhang等人[17]設計了一種基于卷積網絡的萵苣生長指標估計算法,以圖片作為模型的輸入,直接輸出LFW、LDW和LA。實驗表明相比于人工設計的從不同色彩空間提取的特征,卷積網絡具有更好的精度,作者認為卷積網絡的優(yōu)勢是能夠更有效地從圖像中提取復雜的特征?;谶@一啟發(fā)[17],該文結合深度學習和機器學習,設計了兩階段的萵苣生長指標估計算法。在第一階段通過訓練卷積神經網絡作為自動的特征提取工具;第二階段利用神經網絡自動從圖像中提取的高維特征訓練集成機器學習模型直接估計LFW、LDW、LA、H和D。該文輸入的圖像包括彩色圖像和深度圖像。通過卷積網絡提取特征,免除了人為特征的設計與篩選,算法具有魯棒性,同時,特征提取網絡和機器學習模型有廣泛的選擇,算法的設計具有靈活性。實驗表明,相比直接利用卷積網絡估計生長指標,文中算法能夠顯著降低誤差。
算法整體流程如圖1所示,輸入包括RGB彩色圖像和深度圖,偽代碼如算法1所示。在第一階段,通過梯度下降訓練卷積網絡估計萵苣生長指標,在達到最大訓練周期后,卷積網絡的參數固定。第二階段,利用訓練的卷積網絡作為特征提取工具,從圖像中提取特征向量,用于訓練機器學習模型。測試階段,利用參數固定的卷積網絡從圖像中提取特征向量,機器學習模型利用提取的特征估計萵苣的生長參數。
圖1 萵苣生長狀態(tài)參數估計算法流程
算法1:二階段的萵苣生長監(jiān)測算法
1.fori=1,2,…,5 do //對生長參數逐個訓練模型
2.for each batch do //循環(huán)訓練
3.L←0 //損失函數置0
4.Xr,Xd,Yi← dataloader.iter() //數據生成
7.L.backward() //模型通過梯度下降優(yōu)化
8. end for //第一階段卷積網絡訓練完成
9.fori=1,2,…,5 do//第二階段機器學習模型訓練
10.Xr,Xd,Yi← dataloader.load()
11.Xf←f(Xr,Xd;θi)//卷積網絡提取特征
12.f(θ1,θ2,θ3).fit(Xf,Yi) //機器學習訓練
13.end for
該文使用的數據包括338張RGB圖和對應的深度圖[18],原始圖片大小為1 920×1 080,來自四類萵苣品種,包含從幼苗到收獲的五個生長階段,數據集還提供每張圖片對應的LFW,LDW,H,D和LA。圖2給出了數據集的示例,四列分別表示不同品種的萵苣,其中第一列給出了對應的標簽,一行表示同一生長階段。由圖2可以看出,原始圖像中目標區(qū)域只占整體圖像的一部分,特別是對于早期生長階段的萵苣,并且生菜的空間位置并不固定。為了減少卷積網絡模型的計算量,同時移除無關區(qū)域,設計了基于萵苣中心的圖片裁剪。裁剪過程如圖3所示。為了確定萵苣中心,首先根據閾值分割深度圖,然后通過計算分割產生的掩膜的空間位置的平均值得到萵苣中心點,最后根據中心點將圖片裁剪為600×600的大小。深度圖也通過同樣的方式進行裁剪,確保RGB圖像和深度圖空間分布的一致性。
(a、b、c和d分別來自四個不同的萵苣品種,圖像的左上角標出了對應的真實測量值。LFW(克),LDW(克),H(厘米),D(厘米),LA(平方厘米))
圖3 圖像的預處理過程(包括深度圖閾值分割,中心點獲取,深度圖和原圖裁剪)
為了卷積網絡能從圖像中提取萵苣生長參數相關的特征,首先訓練模型估計萵苣生長參數。模型的整體結構包括卷積神經網絡和全連接層。圖像經過卷積神經網絡連續(xù)的卷積、正則化、激活函數提取高維特征,生長指標的估計通過兩層全連接層輸出。在卷積網絡的輸出送到全連接層之前,將其展平為一維特征。第一層全連接層將特征維度壓縮一半,之后添加Dropout[19]以緩解過擬合的問題。如圖2所示,五個指標之間的數量級差異較大,并且有不同的物理意義。不同于文獻[17]中的研究,該文對于五個指標分別訓練模型,免除歸一化的問題。對于單獨的RGB圖像輸入,選取ResNet[20]提取特征;對于RGB和深度圖的組合輸入,選取RD3D[21]提取特征。RD3D來自于ResNet的改進,將ResNet中所有的3×3卷積替換成3×3的3D卷積。深度圖是單通道圖片,為了與彩色圖組成3D的輸入,首先以復制的方式將深度圖擴展為三個通道,再與RGB圖像堆疊,構成三維圖像送入3D卷積網絡中,輸入的維度可以表示為“T×H×W×C”,其中T=2,H和W和圖像的高度和寬度(文中H=W=600),C為3。不同深度的卷積網絡展平后的一維特征維度有所不同,模型深度為34時,d=512,深度為50或者101時,d=2 048。卷積網絡訓練采用均方誤差損失函數:
(1)
通過訓練后的卷積神經網絡自動提取的特征,作為機器學習的輸入,該文選擇表1中第一層全連接層的輸出作為提取的特征向量(不經過激活函數)。在機器學習算法的選擇上,采用了Stacking[22-23]的集成方式,第一層使用隨機森林[24]和深度森林[25],在第二層使用嶺回歸。第一層選擇基于森林的算法,可以對提取的高維特征自動處理。隨機森林在分裂節(jié)點時隨機選擇部分特征,能自動對特征進行篩選。深度森林是一種級聯(lián)的森林網絡,當前層次的輸入是上一層的輸出與初始輸入特征的拼接。為了利用特征之間的相互關系,深度森林引入了多粒度掃描來構建初始的輸入特征,具體地,使用不同大小的窗口在特征上滑動,構建出一組初始輸入特征,對這一組初始輸入特征,其中的每一個都會訓練一個級聯(lián)的森林,最后的輸出是所有級聯(lián)森林輸出的均值。
表1 卷積網絡估計結果(RD3D輸入由彩色圖和深度圖構成,誤差由歸一化均方誤差表示) %
定義集成機器學習的訓練集為L={(yn,xn),n=1,2,…,N},其中xn表示卷積網絡提取的特征向量,yn表示萵苣生長參數的真實值,N為樣本個數。Stacking第一層包含的隨機森林、深度森林表示為vk,k∈{1,2},第一層兩個模型通過留一法進行訓練,訓練完成后模型的輸出為:
(2)
留一法保留的數據組成新的訓練集,用于訓練第二層嶺回歸算法,將第一層兩個算法組合。新的訓練集定義為{{yn,zn},n-1,…,N},嶺回歸算法的訓練:
s.t.αk≥0
(3)
αk即需要求解的第一層算法的組合權重。
實驗環(huán)境基于Linux操作系統(tǒng),使用Python語言,在Pytorch框架中搭建卷積網絡,機器學習使用Scikit-learn包。主要硬件環(huán)境為:GPU為GTX 3080 10 GB顯存,CPU為AMD 3950X 16核。
數據集劃分為訓練集和測試集,其中訓練集288張,測試集50張。卷積網絡的訓練使用均方誤差損失函數,優(yōu)化器選擇AdaBound[26]以加速模型的收斂,初始學習率設定為1e-3,所有的模型訓練50個周期。訓練過程中每張圖片有50%的幾率采用數據增強,增強方式包括左右翻轉,上下翻轉,旋轉10、30、60、90度角。隨機森林和深度森林中,樹的個數設為100,特征選擇的判斷基于均方誤差。
實驗結果的評價指標采用歸一化均方誤差(NMSE),計算方式如下:
(4)
其中,m表示萵苣指標的種類(文中m=5),包括LFW、LDW、H、D和LA,n表示測試樣本的個數(文中n=50)。
算法的整體可以分為兩個階段,第一階段訓練卷積網絡提取特征,第二階段利用訓練好的卷積網絡提取特征訓練Stacking模型。第一階段訓練完成后模型在測試集上的估計結果如表1所示。根據表1,隨著模型深度的增加,五個指標的總誤差(Total NMSE)是降低的,表明網絡復雜度的增加能在一定程度上提升準確率。其中單個指標下降最為明顯的是LDW(只輸入彩色圖片時,誤差從22.02%下降到8.15%,對深度圖和彩色圖片的組合輸入,從17.82%下降到了8.54%)。另外,對比ResNet和RD3D,ResNet101的誤差是最小的。同樣深度下,RD3D50的誤差比ResNet50低(27.44%和34.85%),而RD3D101的誤差卻比ResNet101高(25.48%和19.89%),可能的原因是RD3D101的模型復雜度高,參數量大,需要更多的樣本進行學習。
在卷積網絡訓練完成后,提取的特征用于訓練Stacking模型。Stacking模型在測試集上的表現如表2所示。根據表2,基于卷積網絡提取的特征,所有模型的誤差都有明顯的降低,如對于ResNet50,誤差從34.85%下降到12.78%,證明使用卷積網絡自動提取特征是可行的,對于卷積網絡提取的高維特征,使用隨機森林、深度森林來自動處理,能有效減小誤差。其中NMSE下降最為明顯的是LDW,直接使用卷積網絡估計LDW的誤差范圍為8.15%~22.02%,二階段算法LDW的誤差范圍為2.61%~3.08%。在所有的模型當中,Total NMSE最低的是ResNet101(10.53%),其次是RD3D50(10.62%)。圖4是使用卷積網絡直接估計和提出的二階段的算法的誤差對比圖,可以直觀看出二階段算法對降低誤差是有效的。
表2 二階段算法估計結果(誤差由歸一化均方誤差表示) %
圖4 直接估計和設計的兩階段算法誤差對比
圖5和圖6分別是ResNet101和RD3D50+Stacking的估計結果與真實值的對比圖。兩種算法對五個指標的決定系數(R2)范圍分別是0.884 4~0.957 8、0.872 9~0.952 7,表明卷積網絡提取的特征與生長參數有較好的相關性。五個指標當中,決定系數較高的是LFW(0.955 2和0.942 4)、LDW(0.957 8和0.952 7)和LA(0.936 2和0.947 2),而H(0.892 1和0.916 1)和D(0.884 4和0.872 9)的決定系數相對較低。值得注意的是RD3D對高度的估計更為準確,可能的原因是高度是三維空間的信息,而彩色圖像只提供了平面的信息,所以ResNet101對高度的估計較為困難,而RD3D包含深度圖,提供了關于高度的信息,從而能較為準確地估計。此外,對直徑的估計較為困難,可能是在圖像數據的采集過程中,攝像機和萵苣的相對位置不固定,空間比例不一致,導致無法準確估計。Zhang等人[17]在預處理中對圖片進行了分割,之后采用卷積網絡來估計萵苣的生長參數。在實驗中,考慮到圖像中萵苣的背景并不復雜,也嘗試用超像素分割的方法對圖像進行預處理,將萵苣與背景進行分割,然而超像素分割需要迭代較長的時間才能獲得良好的效果,并且對比使用分割后的圖片估計的誤差與直接利用圖片的誤差,并沒有顯著的差異,所以該文最終沒有采用類似的方法對圖片進行預處理。另外,為了對比設計的二階段算法與直接通過卷積網絡直接預測,只在ResNet和RD3D進行了對比實驗,Zhang等人[17]的工作是基于卷積網絡直接預測,但代碼并未開源,不參與比較。
圖5 ResNet101對五種萵苣生長狀態(tài)參數的估計結果(輸入只包括彩色圖片,a-e分別是LFW、LDW、H、D和LA)
圖6 RD3D50+Stacking模型對萵苣五種生長狀態(tài)參數的估計結果(a-e分別是LFW、LDW、H、D和LA)
針對萵苣的生長狀態(tài)參數監(jiān)測,設計了一種兩階段的算法。第一階段訓練卷積網絡自動從圖像中提取特征,第二階段利用提取的特征訓練機器學習模型估計萵苣生長狀態(tài)參數。輸入的圖像包括彩色圖片和深度圖,通過自適應的中心裁剪對圖片進行預處理。使用ResNet從彩色圖片中提取特征,使用RD3D從彩色圖和深度圖的組合輸入中提取特征。在機器學習算法的選擇上,采用隨機森林和深度森林自動對提取的高維特征進行處理。
實驗表明,相比直接使用卷積網絡估計萵苣生長參數,設計的二階段算法能明顯降低誤差(0.84%~3.18%),并且真實值和估計值之間的決定系數較高(0.87~0.95),表明卷積網絡提取的特征與生長參數之間有較強的相關性。此外,對于萵苣高度的估計,引入深度圖提供空間信息能進一步減小誤差。