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