劉 剛 張偉潔 郭彩玲
(1.中國(guó)農(nóng)業(yè)大學(xué)現(xiàn)代精細(xì)農(nóng)業(yè)系統(tǒng)集成研究教育部重點(diǎn)實(shí)驗(yàn)室, 北京 100083;2.中國(guó)農(nóng)業(yè)大學(xué)農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)信息獲取技術(shù)重點(diǎn)實(shí)驗(yàn)室, 北京 100083; 3.唐山學(xué)院機(jī)電工程系, 唐山 063000)
葉冠是果樹(shù)光合作用的主要場(chǎng)所,其空間形態(tài)結(jié)構(gòu)直接影響冠內(nèi)的光照分布、光合生產(chǎn)力及枝葉器官的生理狀態(tài),進(jìn)而影響果實(shí)品質(zhì)和產(chǎn)量[1-2]。葉片作為葉冠的主要組成部分,獲取其空間分布規(guī)律及生長(zhǎng)參數(shù)對(duì)獲取精確的葉冠結(jié)構(gòu)具有重要的研究?jī)r(jià)值,也是進(jìn)一步研究冠層光照分布計(jì)算的基礎(chǔ)[3],可為果樹(shù)的自動(dòng)化修形剪枝提供技術(shù)支持[4-6]。
葉片的識(shí)別方法多局限于二維空間中,雖然存在運(yùn)算速度快等優(yōu)點(diǎn)[7-8],但難以進(jìn)一步提取生長(zhǎng)參數(shù)。地面三維激光掃描儀在農(nóng)業(yè)領(lǐng)域的應(yīng)用[9-12]使得快速獲取果樹(shù)冠層三維空間信息成為可能,進(jìn)而可實(shí)現(xiàn)冠層葉片的自動(dòng)分割及生長(zhǎng)參數(shù)的提取,能在較大程度上減少人力,提高作業(yè)效率[13-15]。
國(guó)內(nèi)外研究人員對(duì)點(diǎn)云分割方法進(jìn)行了大量研究,主要分為6類[16]:基于區(qū)域邊界的分割方法適用于邊界明顯、分布規(guī)則的數(shù)據(jù)[17-18];基于區(qū)域增長(zhǎng)的分割方法適用于有明顯分布差異的點(diǎn)云[19];基于圖的分割方法和基于模型匹配的分割方法對(duì)規(guī)則點(diǎn)云有很好的聚類效果[20];基于機(jī)器學(xué)習(xí)的分割方法對(duì)訓(xùn)練樣本的要求較高[21];基于聚類的分割方法采用特征聚類,根據(jù)不同的點(diǎn)云分布特征,選擇適當(dāng)?shù)奶卣鳈z測(cè)方法[22-23]。果樹(shù)葉片空間分布相對(duì)密集,枝葉連續(xù)生長(zhǎng)難以區(qū)分,因此利用特征聚類實(shí)現(xiàn)葉片分割較為合理。
葉片生長(zhǎng)參數(shù)提取研究中,吳升等[24]通過(guò)計(jì)算葉片點(diǎn)云法向量與XOY坐標(biāo)平面的夾角,實(shí)現(xiàn)點(diǎn)云在XOY坐標(biāo)平面的正投影,進(jìn)而將葉片幾何參數(shù)求解降維到二維空間上;鄭一力等[25]采用主成分分析與線性評(píng)判分析相結(jié)合的方法,實(shí)現(xiàn)了葉片的多特征降維計(jì)算。降維法計(jì)算葉片生長(zhǎng)參數(shù)簡(jiǎn)單快速,但忽略了葉片的三維空間特性。針對(duì)以上問(wèn)題,本文提出一種葉片點(diǎn)云聚類分割算法,融合局部凹凸性算法(Locally convex connected patches,LCCP)并改進(jìn)K-means算法,動(dòng)態(tài)獲取K值,進(jìn)而研究葉片的生長(zhǎng)參數(shù)提取方法。
隨機(jī)選取中國(guó)農(nóng)業(yè)大學(xué)蘋(píng)果樹(shù)采摘機(jī)器人試驗(yàn)基地(北京市昌平區(qū)南口鎮(zhèn)辛力莊村)的1棵富士蘋(píng)果樹(shù)作為研究對(duì)象,樹(shù)高3.1 m,樹(shù)齡4年,采用美國(guó)Trimble 公司TX8型地面三維激光掃描儀(具體參數(shù)如表1所示)進(jìn)行點(diǎn)云掃描。由于試驗(yàn)果樹(shù)周圍還生長(zhǎng)有其他果樹(shù),遮擋較多,為了獲得高質(zhì)量的點(diǎn)云,數(shù)據(jù)獲取試驗(yàn)采用5站掃描,如圖1所示。其中的s1~s5為5個(gè)掃描點(diǎn)位,掃描儀的工作位置與被測(cè)果樹(shù)樹(shù)干的距離為3.5~5 m,c1~c6為用于配準(zhǔn)定位的6個(gè)標(biāo)靶球(標(biāo)準(zhǔn)直徑100 mm),分布于試驗(yàn)果樹(shù)周圍,保證在每站掃描能識(shí)別3個(gè)以上標(biāo)靶球,以便多站點(diǎn)云的配準(zhǔn),掃描實(shí)地場(chǎng)景如圖2a所示。本試驗(yàn)不考慮環(huán)境(如風(fēng)速、溫濕度、光照度等)的影響。
表1 Trimble TX8型掃描儀產(chǎn)品參數(shù)Tab.1 Product parameters of Trimble TX8
圖1 掃描儀布置示意圖Fig.1 Scanner layout diagram
圖2 點(diǎn)云數(shù)據(jù)采集Fig.2 Point cloud acquisition
利用基于標(biāo)靶球提取的算法[26]配準(zhǔn)多站點(diǎn)云,點(diǎn)云數(shù)據(jù)獲取過(guò)程中由于外界環(huán)境干擾和設(shè)備自身的誤差,產(chǎn)生大量的噪點(diǎn),采用前期研究成果[27]——基于距離均值計(jì)算的方法,剔除噪點(diǎn)。點(diǎn)云密度大且分布不均勻,采用均勻網(wǎng)格法完成抽稀處理,最終所得的蘋(píng)果樹(shù)冠層點(diǎn)云數(shù)據(jù)如圖2b所示,圖2a中白色小球?yàn)闃?biāo)靶球。
本研究算法由C++語(yǔ)言編寫(xiě)實(shí)現(xiàn),點(diǎn)云處理庫(kù)為點(diǎn)云庫(kù)(Point cloud library,PCL)。獲取的點(diǎn)云數(shù)據(jù)以三維坐標(biāo)(x,y,z)的形式存儲(chǔ),數(shù)據(jù)量龐大,約有115萬(wàn)點(diǎn)。為了簡(jiǎn)化果樹(shù)葉片點(diǎn)云的搜索和存儲(chǔ),創(chuàng)建新的葉片點(diǎn)云PCD存儲(chǔ)格式,每條記錄存儲(chǔ)一個(gè)葉片節(jié)點(diǎn),包括的屬性有葉片中心點(diǎn)Li(xi,yi,zi)、葉片法向量Ni、葉長(zhǎng)Lleni和葉寬Lwidi。
本文研究方法流程主要分為4部分(圖3):數(shù)據(jù)獲取、點(diǎn)云預(yù)處理、葉片點(diǎn)云聚類分割和葉片生長(zhǎng)參數(shù)提取。數(shù)據(jù)獲取試驗(yàn)需在晴朗無(wú)風(fēng)條件下進(jìn)行;點(diǎn)云預(yù)處理主要包括點(diǎn)云配準(zhǔn)、去噪和抽??;采用基于動(dòng)態(tài)K閾值的算法,融合LCCP算法和改進(jìn)的K-means算法,隨機(jī)選取冠層的一個(gè)枝條,作為研究對(duì)象,進(jìn)行葉片點(diǎn)云聚類分割;葉片生長(zhǎng)參數(shù)提取方法采用PCA方法和邊界提取方法,分別實(shí)現(xiàn)葉片生長(zhǎng)角度和葉長(zhǎng)葉寬參數(shù)值的獲取。
圖3 葉片點(diǎn)云分割及生長(zhǎng)參數(shù)提取流程圖Fig.3 Flow chart of apple tree point cloud segmentation and growth parameters extraction
1.2.1葉片點(diǎn)云的聚類方法
葉片點(diǎn)云聚類分割,采用基于動(dòng)態(tài)K閾值的算法,融合LCCP算法,并采用改進(jìn)的K-means算法,實(shí)現(xiàn)K閾值的動(dòng)態(tài)獲取。該算法主要包含以下過(guò)程:超體聚類、LCCP聚類[28]、K閾值獲取和K-means分割。
超體聚類是一種過(guò)分割方法,過(guò)分割涉及的參數(shù)有體素距離Rv、晶核距離Rs。八叉樹(shù)初始化點(diǎn)云,過(guò)分割生成獨(dú)立的超體素塊pi=(xi,ni,Ei),其中pi為超體素索引、xi為體素中心、ni為體素法向量、Ei為鄰接體素邊集合,計(jì)算鄰接體素相似度完成超體聚類
(1)
式中D——體素合并的概率
wc、ws、wn——顏色、空間、法向量的信息權(quán)重
Dc、Ds、Dn——顏色、空間、法向量容差
以超體聚類所得體素集合為研究對(duì)象,建立體素索引向量,采用CC(Extended convexity criterion)和SC(Sanity criterion)方法判定鄰接體素凹凸性關(guān)系完成LCCP聚類。
(2)
(3)
β=∠(n1,n2)
(4)
式中 CCb(pi,pj)——鄰接體素塊凹凸性
n1、n2——鄰接體素塊法向量
βT——法向量角度偏差閾值
i、j——體素索引號(hào)
當(dāng)鄰接體素面不連接時(shí),CC的判定準(zhǔn)則不適用,此時(shí)需要使用SC準(zhǔn)則對(duì)鄰接體素關(guān)系進(jìn)行判定,SC判定依據(jù)為
(5)
其中θ(pi,pj)=min(∠(d,s),∠(d,-s))=
min(∠(d,s),180°-∠(d,s))
(6)
(7)
s=n1×n2
(8)
式中 SCb(pi,pj)——鄰接體素凹凸性
conv(pi,pj)=CCb(pi,pj)∧SCb(pi,pj)
(9)
式中 conv(pi,pj)——pi、pj的凹凸性
動(dòng)態(tài)K閾值的獲取主要分為兩個(gè)步驟:一方面計(jì)算K=4時(shí),K-means聚類后各點(diǎn)集三維質(zhì)心間歐氏距離;另一方面計(jì)算葉片中心點(diǎn)到擬合直線的距離均值,作為距離閾值。動(dòng)態(tài)獲取K閾值的具體方法如下:
(1)根據(jù)LCCP所得類簇,設(shè)定K=4,進(jìn)行K-means聚類分割,并計(jì)算4個(gè)點(diǎn)群的中心點(diǎn)Ckm(xm,ym,zm)。
(2)計(jì)算4個(gè)中心點(diǎn)之間的6組歐氏距離(其中m、n為類簇中心點(diǎn)編號(hào))
(10)
(3)手動(dòng)截取枝條葉片點(diǎn)云,計(jì)算所有葉片點(diǎn)云中心點(diǎn)Cs(xs,ys,zs),根據(jù)所得點(diǎn)云中心點(diǎn)擬合直線L,計(jì)算葉片中心點(diǎn)到直線L的距離均值,作為距離閾值Dt,此閾值為統(tǒng)計(jì)結(jié)果,不需要重復(fù)計(jì)算。
(4)將步驟(2)所得的中心點(diǎn)歐氏距離,與距離閾值Dt進(jìn)行比較,大于、小于距離閾值的個(gè)數(shù)分別為a、b,根據(jù)a與b的大小關(guān)系,確定此點(diǎn)群需要分割的點(diǎn)群個(gè)數(shù)K,其中K值的選定準(zhǔn)則為