賴亦斌,陸聲鏈,錢婷婷,宋真,陳明
1.廣西師范大學計算機科學與工程學院,廣西桂林541004
2.廣西師范大學廣西多源信息挖掘與安全重點實驗室,廣西桂林541004
3.上海市農(nóng)業(yè)科學院農(nóng)業(yè)科技信息研究所,上海201403
全球人口正在不斷增長,水土等自然資源面臨著流失、匱乏的處境,加上全球新冠疫情的影響,人類對于糧食的需求將會逐漸增大[1]。為適應(yīng)糧食增產(chǎn)的迫切需求,需要育種專家采用高效的育種方案與策略選育出高產(chǎn)高質(zhì)的優(yōu)質(zhì)作物品種。然而,與高通量測量作物基因序列的技術(shù)相比,傳統(tǒng)的以人工測量作物生長參數(shù)為基礎(chǔ)的植物表型獲取手段通常效率低下,從而制約了現(xiàn)代農(nóng)業(yè)智能育種的進程[2]。此外,人工測量具有主觀性,導致測量參數(shù)不準確;人工測量與植物直接接觸,還可能對被測量作物造成不可逆轉(zhuǎn)的破壞。因此,自動化的無損高通量作物表型監(jiān)測技術(shù)已成為現(xiàn)代數(shù)字化農(nóng)業(yè)領(lǐng)域的的研究熱點。植物表型通常指植物個體或群體由自身基因決定且處于特定的環(huán)境下所表現(xiàn)出的可觀察的形態(tài)特征[3],植物表型研究是綜合評估分析植物的各種性狀。構(gòu)成植物表型性狀的植物器官通常包括根、葉、莖和果實等,其中葉器官構(gòu)成了大多數(shù)植物的主要性狀。對植物葉器官的大小、顏色、形狀等表型參數(shù)進行實時監(jiān)測和評估分析,可以實時檢測病蟲害,預(yù)測作物產(chǎn)量,為優(yōu)質(zhì)作物品種選育、糧食增產(chǎn)提供發(fā)展空間。因此,用某種傳感器在自然環(huán)境下自動計數(shù)、分割與識別作物冠層中的葉器官是高通量植物表型研究的一項主要任務(wù)。在以往的工作中,研究人員大多從二維圖像和三維點云這兩個角度研究植物器官的分割任務(wù)。
文獻[4]針對作物病蟲害圖像的特點,提出了一種基于模糊C-均值聚類算法的作物病蟲害圖像自適應(yīng)分割方法。文獻[5]提出了一種基于馬爾科夫隨機場最優(yōu)化模型的聯(lián)合分割算法,實現(xiàn)了自然光條件下棉花葉片的自動分割。文獻[6]提出了一種基于粒子種群算法(particle swarm optimization,PSO)與最大類間方差法相結(jié)合的分割方法,得到了生菜葉片分割圖。文獻[7]基于遺傳算法提出一種用于植物葉片疾病自動監(jiān)測和分類的圖像分割算法。文獻[8]提出了一種從無人機獲得的圖像中識別與計數(shù)煙草植物的算法。然而,基于二維圖像獲取葉器官的表型信息具有一定的局限性,因為葉器官之間互相遮擋,所以二維信息并不能充分反映完整的葉片信息。隨后,研究人員在三維尺度上探索植物表型,采用激光雷達[9]、超聲波傳感器[10]、激光掃描[11]等先進設(shè)備獲取植株的三維點云模型,進而獲得植株的表型參數(shù)。
文獻[12]提出了一種從彩色點云中分割生菜并估算鮮重的新穎方法。文獻[13]首次在農(nóng)業(yè)領(lǐng)域提出了基于激光雷達探測的莖葉分割和表型性狀提取方法。由于相機設(shè)備的成本相對低廉,近年來基于雙目立體視覺和多目視覺等三維重建方法得到了廣泛應(yīng)用。文獻[14]根據(jù)多視圖立體(multi-view stereo,MVS)方法重建黃瓜、辣椒、茄子的三維點云,采用區(qū)域生長算法分割葉片并提取株高、葉長、葉面積等植物表型參數(shù)。文獻[15]從不同視角拍攝植物以構(gòu)建植物的三維結(jié)構(gòu),根據(jù)分水嶺算法對頂視圖進行分割后生成種子點,再將種子點擴展到三維圖像上生長,從而準確自動地分割每一片葉子。文獻[16]擴展了現(xiàn)有的基于歐氏距離和光譜的聚類方法,并用迭代方法分割三維油菜點云器官。文獻[17]提出了一種基于體素的卷積神經(jīng)網(wǎng)絡(luò)(voxel-based convolutional neural network,VCNN),用于玉米莖葉的分類和分割?;谌S點云進行植物表型特征和參數(shù)的自動提取是當前農(nóng)業(yè)信息技術(shù)研究的熱點問題[18],因此針對三維植物點云自動分割的相關(guān)研究具有重要的意義。然而,植物的點云分割具有一定的挑戰(zhàn)性,一是因為植物本身的結(jié)構(gòu)復雜又不規(guī)則,且器官之間往往存在遮擋現(xiàn)象;二是因為植物的自然生長環(huán)境易受光照、風向、天氣等物理條件的影響,所以通過傳感器等設(shè)備獲取的植物點云數(shù)據(jù)除了包含一定的噪聲外還存在不均勻、無序性等問題[19]。
鑒于此,本文根據(jù)不同種類植物的三維點云開展了針對性的分割實驗,以煙草、玉米和黃瓜群體3種植物為樣本數(shù)據(jù),進行了預(yù)處理、群體分離、邊緣提取、葉片分割等操作,并對分割結(jié)果進行評估分析。
無論是三維激光掃描儀還是基于圖像的MVS方法,獲取的點云數(shù)據(jù)都有一定的噪聲,尤其是后者獲取的點云數(shù)據(jù)更容易受到背景的影響。為了消除離群點與多余的背景點,需要對點云數(shù)據(jù)進行濾波預(yù)處理[20],具體方法如下:
1)統(tǒng)計濾波
統(tǒng)計每一個點近鄰的空間距離信息,設(shè)定閾值去除點云中的噪聲點。
2)體素濾波
由掃描儀掃描的點云通常密度較大,如果采用基于體素的濾波方法對點云進行降采樣,就可以在不破壞點云原有形態(tài)的基礎(chǔ)上降低點云數(shù)量,從而減輕后續(xù)分割任務(wù)的計算負擔。
3)顏色濾波
黃瓜群體點云存在標簽紙以及盆等多余點云,而MVS生成的點云還有RGB顏色信息。考慮到這些背景顏色與植物部分的顏色存在一定的差別,將RGB轉(zhuǎn)換到色調(diào)、飽和度、明度(hue,saturation,value,HSV)顏色空間,再根據(jù)H色調(diào)信息盡量篩選出只包含植物部分的點云。
三維點云分割的方法有很多種類,具體可分為基于邊緣、基于區(qū)域、基于屬性、基于圖、基于模型等類型的分割方法[19]。根據(jù)點云庫(point cloud library,PCL)框架可以實現(xiàn)基于歐氏距離的聚類、基于隨機采樣一致性(random sample consensus,RANSAC)分割、區(qū)域生長分割、超體聚類+基于凹凸性聚類等分割方法。
在三維點云數(shù)據(jù)中,一些如直線、圓柱體、球形等較規(guī)則的幾何模型都有一個共同特點:就是可以用相應(yīng)的方程(數(shù)學特征)描述特定的幾何模型。RANSAC算法可以在噪聲中擬合出符合某個模型的數(shù)據(jù),如識別出點云中的地板、墻面等背景點云以及在地面上擺放著的規(guī)則物體,或者是人工設(shè)計的具有規(guī)則性的圓柱體等建筑類型的點云。對于形狀不規(guī)則的植物器官,RANSAC算法雖然可以分割出具有近似圓柱體特征的莖桿,為后續(xù)的分割操作提供便利,但其應(yīng)用會受到限制。
RANSAC算法的大致過程如下[5]:根據(jù)預(yù)先設(shè)定的參數(shù)擬定一個估計的幾何模型,再用這個估計模型對整個三維空間隨機采樣,可以擬合出符合條件的點。例如:設(shè)定一個距離閾值和特定的幾何模型,隨機采樣點云數(shù)據(jù)中的點并計算這些點與設(shè)定的幾何模型之間的距離,若在閾值范圍之內(nèi)則這些點稱為局內(nèi)點或內(nèi)點,若不在閾值范圍之內(nèi)則稱為局外點或外點。每進行一次隨機估計的迭代都會統(tǒng)計內(nèi)點的數(shù)量,當達到一定的迭代次數(shù)后,選取內(nèi)點數(shù)量最大的那次結(jié)果作為分割結(jié)果,這樣就可以把三維點云數(shù)據(jù)中與估計模型最佳匹配的點云分割出來。
歐氏聚類分割方法是一種基于近鄰信息屬性的分割方法,這個近鄰信息就是在三維空間中點與點之間的歐氏距離。依據(jù)空間中的距離,將小于距離閾值的點云作為一個集群。
區(qū)域生長分割的目的是根據(jù)平滑度約束合并足夠接近的點,以便將具有相同特征的連通區(qū)域分割出來,同時能保證分割后的部分保留較好的邊緣信息[21]。該算法的輸出是點云聚類的集合,每一個聚類包含一組點。同組的點具有相同的特征,因而被認為是同一光滑曲面的一部分。區(qū)域生長算法的基本思路是:根據(jù)曲率大小選出區(qū)域中曲率值最小的一個初始種子點,接著在種子點鄰近的區(qū)域搜索與該種子點有相似特征的點,并將這些搜索到的點合并到種子區(qū)域中。然后將合并后的點作為新的種子點繼續(xù)搜索,直到種子區(qū)域中所有像素周圍沒有相似特征的點為止。算法的具體步驟[22]如下:
步驟1初始種子點的選取
依據(jù)點云的曲率值將輸入點云排序,選擇曲率最小的點作為初始種子點,則該點所在的區(qū)域即為最平滑的區(qū)域。從最平滑的區(qū)域開始生長可減少分割片段的總數(shù),提高分割效率。將曲率排序后選出的點添加到種子集合中。
步驟2鄰近區(qū)域的搜索
設(shè)置一個空的種子點序列和空的聚類集合,從已排序的點云中選出初始種子點添加到種子點序列中,并搜索其鄰域點。
步驟3相似準則的判斷
比較每一個鄰域點與當前種子點法線之間的夾角,若角度小于平滑閾值,則將當前區(qū)域添加到當前點;若該鄰域點的曲率小于曲率閾值,則將其加入種子集合,并將當前種子點從種子序列中移除。
循環(huán)執(zhí)行上述步驟,直至種子序列為空。
超體素聚類與基于凹凸性的聚類方法[23]分為兩部分:一是超體素聚類,類似于圖像中超像素的概念,這種聚類方法會將場景的點云過分割。根據(jù)每一個點的局部信息整合成一個超體素,需要設(shè)置主要參數(shù)seed_resolution和voxel_resolution來限制即將形成的體素網(wǎng)格的大小。二是在超體素的基礎(chǔ)上再聚類,需要計算不同點云塊之間的凹凸關(guān)系,而凹凸關(guān)系則根據(jù)凸性準則和健全性準則來判斷。這種基于凹凸關(guān)系的分割方法也稱為局部凸連接打包(locally convex connected patches,LCCP)方法。
在二維圖像上,像素值在某個方向上發(fā)生突變的地方通常視為圖像的邊緣。根據(jù)圖像邊緣的定義方式[24]可知,三維點云上的邊緣點通常處于兩個相交面的交界處。因此,對每一個點進行擬合計算得到其近鄰點的法向量角度,若某一個點的法向量夾角相對周圍的點發(fā)生了突變,則說明該點為邊緣點。
具體的步驟如下:設(shè)定一個k閾值和角度閾值,k閾值用來搜索點云中每一個點的k近鄰點;用最小二乘法將這k個近鄰點中擬合成二維平面,并將這些點投影到這個平面上;計算每個點與k個投影點之間所形成的角度。若這個角度值的標準差大于設(shè)定的角度閾值,則判斷這個點為邊緣點。
本文的三維點云分割實驗采用C++語言結(jié)合開源庫PCL來實現(xiàn),并在Dell-PC latitude 3490筆記本電腦上測試。PCL提供了強大的三維點云數(shù)據(jù)處理功能,包括點云數(shù)據(jù)的讀取、可視化、濾波、關(guān)鍵點提取、分割、配準、識別、曲面重建等。在數(shù)字領(lǐng)域、虛擬農(nóng)業(yè)領(lǐng)域中,PCL對于三維植物點云數(shù)據(jù)處理來說非常重要。通過跨平臺支持的嵌入式設(shè)備,將PCL作為基礎(chǔ)平臺開發(fā)出可以提取植物三維信息的程序,對于三維植物建模具有重要的意義。
實驗采用的樣本數(shù)據(jù)是以三維激光掃描儀獲取的煙草和玉米植株,以及根據(jù)MVS重建方法獲取的黃瓜群體。三維激光掃描儀獲取的.obj格式的三維點云需要通過PCL中的IO模塊將其轉(zhuǎn)換為.pcd格式。
預(yù)處理的主要過程如圖1和2所示。用統(tǒng)計濾波去除煙草點云中的離群點如圖1中的(a)和(b)所示,用體素濾波降低點云密度如圖1中的(c)和(d)所示,用RANSAC去除地面點云如圖2中的(a)和(b)所示,用顏色濾波去除非葉子部分的點云如圖2中的(c)和(d)所示。
圖1 三維植物點云的預(yù)處理過程Figure 1 Pre-processing process of 3D plant point cloud
圖2 三維植物群體點云的預(yù)處理過程Figure 2 Pre-processing process of 3D plant population point cloud
預(yù)處理過程的相應(yīng)參數(shù)如表1所示。
表1 預(yù)處理過程的各項參數(shù)Table 1 Parameters of pre-processing
將預(yù)處理后的點云作為后續(xù)分割任務(wù)中的輸入數(shù)據(jù)。
對于煙草植株,可以取不同的曲率閾值和平滑度閾值,采用區(qū)域生長算法分割后為每一個聚類賦色,從而得出不同的分割結(jié)果如圖3所示。顏色是隨機分配的,紅色的點不屬于任何類別。
圖3 煙草植株分割結(jié)果Figure 3 Tobacco plant segmentation results
對于玉米植株,取不同的曲率閾值和平滑度閾值執(zhí)行區(qū)域生長算法,從而計算出最佳的分割結(jié)果如圖4所示。
圖4 玉米植株分割結(jié)果Figure 4 Corn plant segmentation results
玉米的莖桿具有類似圓柱體的特征,于是用RANSAC模型擬合出玉米原始點云的莖桿部分,再根據(jù)區(qū)域生長算法得到結(jié)果如圖5中的(a)~(c)所示。
圖5 分割結(jié)果Figure 5 Segmentation results
對于黃瓜群體,分割的需求需要針對特定的問題。若要從群體中分離出每一個植株,則可用歐氏聚類方法將包含盆栽的群體植株點云分割為單個植株點云,如圖6所示。
圖6 分割結(jié)果Figure 6 Segmentation results
當分割植物群體中的葉片器官時,用區(qū)域生長算法分割預(yù)處理后的黃瓜葉片點云,取不同的曲率閾值和平滑度閾值執(zhí)行區(qū)域生長算法,從而得出最佳的分割結(jié)果如圖7所示。
從圖7中看出:大部分葉子均可以分割到理想位置上,但不可避免地出現(xiàn)兩片葉子分割為同一片葉子的情況,可見用區(qū)域生長算法對植物點云分割需要考慮這種重疊的現(xiàn)象。使用區(qū)域生長算法對3種植物進行分割實驗,區(qū)域生長算法設(shè)置的參數(shù)如表2所示。
圖7 基于區(qū)域生長的黃瓜群體分割結(jié)果Figure 7 Segmentation results of cucumber population based on region growing
表2 區(qū)域生長算法的各項參數(shù)Table 2 Parameters of pre-processing
使用超體素聚類+LCCP聚類的方法分割黃瓜群體點云,設(shè)置的主要參數(shù)如下:voxel_resolution為0.008 5,seed_resolution為0.150 0,concavity_tolerance_threshold為2,smoothness_threshold為10,其中voxel_resolution和seed_resolution這兩個參數(shù)會影響超體素網(wǎng)格的大小,完成聚類結(jié)果如圖8所示。
圖8 基于超體聚類+LCCP的黃瓜群體分割結(jié)果Figure 8 Cucumber population segmentation results based on supervoxel clustering+LCCP clustering
相比于區(qū)域生長算法,超體素聚類+LCCP聚類的方法可以解決葉片分割中部分重疊的問題,但是與葉片相連的莖稈有時也會聚為一類。因此,本文引入邊緣濾波的方法(類似于圖像的形態(tài)學腐蝕)對黃瓜群體點云進行多次邊緣提取操作,結(jié)果如圖9所示。
圖9 黃瓜群體的邊緣提取結(jié)果Figure 9 Edge extraction results of cucumber population
通過觀察可以發(fā)現(xiàn):隨著邊緣濾波次數(shù)的增加,葉片器官逐漸減小,葉片之間的接觸現(xiàn)象也會減少,且細長的莖稈比葉器官更早消失。對于經(jīng)過2次邊緣提取的群體點云,可以執(zhí)行超體素聚類+LCCP聚類操作,如圖10所示。
圖10 基于邊緣提取后的聚類結(jié)果Figure 10 Clustering results based on edge extraction
經(jīng)過邊緣提取后再進行分割操作,可以觀察到兩片葉子劃分為同一片葉子的重疊現(xiàn)象相較之前減少了,而且部分莖稈也在邊緣提取過程中被去除,減少了聚類中莖稈與葉片相連的現(xiàn)象,但是較小的葉器官會存在被濾除的風險。
完成分割后通過統(tǒng)計每個聚類中包含的點云數(shù)量來評估分割結(jié)果,煙草聚類結(jié)果的點云數(shù)量統(tǒng)計如表3所示。
表3 煙草聚類結(jié)果的點云數(shù)量統(tǒng)計Table 3 Points statistics of tobacco cluster results
從表3中可以發(fā)現(xiàn):單一傳統(tǒng)的區(qū)域生長方法對于煙草植株器官分割的效果不太理想,靠近莖桿的葉子(索引為7的類)會被分為一個單獨的聚類。設(shè)置更精確的參數(shù)可能會得到更精確的結(jié)果,但參數(shù)是人為設(shè)置的,這就需要大量的重復試驗。因此,根據(jù)輸入點云特征自動確定閾值參數(shù)是一項重要的研究工作,這會大大提高分割算法的效率,減少人工干預(yù)分割結(jié)果的影響。玉米聚類結(jié)果的點云數(shù)量統(tǒng)計如表4所示。
表4 玉米聚類結(jié)果的點云數(shù)量統(tǒng)計Table 4 Points statistics of corn clustering results
從表4中可以看出,已被分配到某一個類別的點云數(shù)量占總點云數(shù)量的88.3%,也就是意味著還有11.7%的點云未被歸類。
使用RANSAC抽取莖稈后的玉米聚類結(jié)果的點云數(shù)量統(tǒng)計如表5所示。
表5 使用RANSAC抽取莖稈后的玉米聚類結(jié)果的點云數(shù)量統(tǒng)計Table 5 Points statistics of corn clustering results after using RANSAC to extract corn stalks
對比表4與5的結(jié)果可以看出:頂部的器官被當作莖桿提取出來,故聚類結(jié)果中只有5類點云簇。已分配的點云數(shù)量占總點云數(shù)量的96.9%,還剩下3.1%的點云未被分配。
本文根據(jù)不同類型植物的三維點云開展了針對性的分割實驗。初步結(jié)果表明:在植物三維點云分割方面還有許多問題需要考慮,其中葉片器官重疊現(xiàn)象影響了自動分割的性能,而邊緣提取可以在一定程度上弱化植物葉器官的重疊現(xiàn)象,為自動提取作物葉器官表型信息的研究提供新的線索。
三維點云分割在許多領(lǐng)域中都有著廣泛的應(yīng)用,尤其是對農(nóng)業(yè)領(lǐng)域中植物的表型測量具有至關(guān)重要的作用[14]。對植物進行三維建模以獲取表型信息的關(guān)鍵在于提取植物的葉片、莖桿等器官并計算葉長、葉寬等參數(shù),這離不開三維點云分割算法。傳統(tǒng)的點云分割算法需要憑經(jīng)驗設(shè)定合理的閾值參數(shù),而參數(shù)的大小會影響分割結(jié)果的好壞。因此,對于結(jié)構(gòu)復雜的植物,要實現(xiàn)精確的點云分割面臨較大的挑戰(zhàn),后續(xù)工作需要研究如何基于輸入點云特征自動地選取參數(shù)。深度學習技術(shù)雖然在二維圖像分割上取得了明顯的效果,但是在三維點云分割上還有相當大的潛力可以挖掘。文獻[17]使用了三維體素卷積神經(jīng)網(wǎng)絡(luò)分割了玉米莖葉,并與傳統(tǒng)方法、PointNet[25]、PointNet++[26]點云深度學習框架進行對比,從而表明深度學習方法分割三維植物點云器官是一種新趨勢。