程 鋼 王敬宇 楊 杰 趙宗澤 王 磊
(1.河南理工大學(xué)測(cè)繪與國(guó)土信息工程學(xué)院,焦作 454000;2.河南理工大學(xué)教務(wù)處,焦作 454000)
森林是重要的生態(tài)與經(jīng)濟(jì)資源,包含了地球上約80%的植被生物量,對(duì)全球碳循環(huán)平衡具有非常重要的意義[1]。隨著三維綠量[2]、冠積指數(shù)[3]等植被生物量統(tǒng)計(jì)參數(shù)概念的提出,三維樹(shù)木因子的測(cè)定也變得愈發(fā)重要。樹(shù)冠作為樹(shù)木的重要組成部分,其體積參數(shù)的確定對(duì)森林生物量和三維綠量的統(tǒng)計(jì)分析具有重要作用。
傳統(tǒng)的樹(shù)冠體積量測(cè)方法[2-5]通過(guò)構(gòu)建樹(shù)冠體積預(yù)估方程進(jìn)行量測(cè),這種方法要考慮樹(shù)種等因素的影響,其作業(yè)周期長(zhǎng)、擬合形狀差,測(cè)量精度很難保證,易造成計(jì)算結(jié)果不穩(wěn)定、不準(zhǔn)確等方面的問(wèn)題。近年來(lái),三維激光掃描技術(shù)已逐漸被應(yīng)用到逆向工程[6]、文物保護(hù)[7]以及傳統(tǒng)測(cè)繪[8]等領(lǐng)域,該技術(shù)可以在不接觸物體的情況下對(duì)物體進(jìn)行遠(yuǎn)距離測(cè)量,這為無(wú)損、快速、準(zhǔn)確地量測(cè)樹(shù)冠體積提供了契機(jī)?;诩す恻c(diǎn)云數(shù)據(jù)進(jìn)行樹(shù)冠體積計(jì)算的方法主要分為基于內(nèi)部結(jié)構(gòu)的樹(shù)冠體積計(jì)算和基于外部輪廓的樹(shù)冠體積計(jì)算兩類(lèi)。第1類(lèi)計(jì)算方法,如文獻(xiàn)[9-10]提出以固定的體元來(lái)模擬不規(guī)則樹(shù)冠形狀的體元模擬法,該方法對(duì)于濃密程度較高的樹(shù)木由于遮擋原因會(huì)導(dǎo)致其利用三維點(diǎn)云數(shù)據(jù)構(gòu)建的結(jié)構(gòu)內(nèi)部產(chǎn)生“空洞”現(xiàn)象,使測(cè)算結(jié)果相較于真值偏小。第2類(lèi)計(jì)算方法,如文獻(xiàn)[11]通過(guò)改進(jìn)Delaunay算法機(jī)制,采用一種基于空間分割分塊優(yōu)先機(jī)制的三角網(wǎng)表面重建算法來(lái)提取樹(shù)冠三維信息,具有較好的穩(wěn)定性;文獻(xiàn)[12]通過(guò)提取樹(shù)冠冠體邊緣點(diǎn)云,應(yīng)用不規(guī)則三角網(wǎng)TIN計(jì)算冠體體積,由于每次提取的輪廓點(diǎn)僅有4個(gè),故樹(shù)冠體積計(jì)算結(jié)果不夠準(zhǔn)確;文獻(xiàn)[13]將樹(shù)冠分割為多個(gè)不規(guī)則的臺(tái)體,但是將每個(gè)點(diǎn)云切片的橫截面看作圓形或橢圓形,導(dǎo)致計(jì)算結(jié)果偏差較大;文獻(xiàn)[14]對(duì)文獻(xiàn)[13]中的臺(tái)體法進(jìn)行改進(jìn),通過(guò)計(jì)算每個(gè)樹(shù)冠點(diǎn)云切片的凸包面積來(lái)求取臺(tái)體體積,但計(jì)算結(jié)果仍有較大偏差;文獻(xiàn)[15]運(yùn)用三維凸包算法計(jì)算樹(shù)冠凸包體積,由于未考慮樹(shù)冠邊緣間的空隙,故計(jì)算結(jié)果較真值偏差仍較大。
總的來(lái)看,體元法基于樹(shù)冠內(nèi)部結(jié)構(gòu)計(jì)算樹(shù)冠體積,有利于消除樹(shù)冠內(nèi)部無(wú)效體積,對(duì)于內(nèi)部結(jié)構(gòu)遮擋較少的稀疏枝葉樹(shù)冠體積計(jì)算有一定優(yōu)勢(shì),但對(duì)于枝葉較為濃密的樹(shù)冠,由于缺少樹(shù)冠內(nèi)部點(diǎn)云數(shù)據(jù),其計(jì)算結(jié)果往往不準(zhǔn)確。因此,由于遮擋的緣故,體元法通常存在樹(shù)冠體積低估的問(wèn)題。臺(tái)體法將三維樹(shù)冠體積計(jì)算轉(zhuǎn)換為多個(gè)二維切片面積計(jì)算,使其可以在充分利用樹(shù)冠外部幾何特征的基礎(chǔ)上來(lái)求解三維樹(shù)冠信息,是一種簡(jiǎn)單、快速、有效的樹(shù)冠體積量測(cè)方法,其準(zhǔn)確度除與樹(shù)冠內(nèi)部結(jié)構(gòu)有關(guān)外,最關(guān)鍵的步驟在于臺(tái)體外輪廓的精確計(jì)算。為了提高臺(tái)體法的準(zhǔn)確度,文獻(xiàn)[16]提出了一種基于過(guò)濾三角網(wǎng)的樹(shù)冠邊界精確提取算法,對(duì)最優(yōu)分層間距與過(guò)濾閾值進(jìn)行了討論,在考慮樹(shù)冠外部空隙的情況下得到更為準(zhǔn)確的樹(shù)冠體積;文獻(xiàn)[17]將邊長(zhǎng)閾值作為圓直徑,在切片凸包的基礎(chǔ)上搜尋“疑似邊界點(diǎn)集”中與直徑端點(diǎn)組成最大角的點(diǎn)作為新邊界點(diǎn),但未對(duì)邊長(zhǎng)閾值做進(jìn)一步討論。上述2種方法均通過(guò)設(shè)置固定邊長(zhǎng)閾值來(lái)消除樹(shù)冠邊緣存在的空隙,閾值過(guò)小,容易使整個(gè)切片碎片化,閾值過(guò)大,則會(huì)高估切片面積??紤]到動(dòng)態(tài)閾值對(duì)于點(diǎn)云外輪廓形狀描述的重要性,本文在α-shape算法[18-22]的基礎(chǔ)上,借鑒三角網(wǎng)生長(zhǎng)算法的思想[23-26],提出一種考慮邊界點(diǎn)云密度的動(dòng)態(tài)閾值改進(jìn)α-shape算法,以期提取更為準(zhǔn)確的點(diǎn)云切片邊界,并利用臺(tái)體法的基本思想獲取更為準(zhǔn)確的樹(shù)冠體積。
臺(tái)體法計(jì)算樹(shù)冠體積是把單棵樹(shù)木整個(gè)樹(shù)冠從下到上看作是由許多個(gè)臺(tái)體和一個(gè)錐體所組成的幾何體,如圖1所示,通過(guò)對(duì)樹(shù)冠點(diǎn)云數(shù)據(jù)基于高程進(jìn)行切片并利用離散化格林公式求解每個(gè)切片面積S(圖2),進(jìn)而計(jì)算出每個(gè)臺(tái)體體積,然后將這些臺(tái)體和錐體體積進(jìn)行累加計(jì)算,即可算出整個(gè)樹(shù)冠的體積。計(jì)算公式為
(1)
(2)
式中m——端點(diǎn)數(shù)量
(xk,yk)、(xk+1,yk+1)——第k、k+1個(gè)端點(diǎn)的平面坐標(biāo)
Si、Si+1——第i、i+1層點(diǎn)云切片面積
n——切片數(shù)量
hi——相鄰切片之間的間隔
hn+1——圓錐體高
V——樹(shù)冠體積
計(jì)算過(guò)程中,點(diǎn)云切片面積的準(zhǔn)確性至關(guān)重要,直接影響到后續(xù)樹(shù)冠體積的計(jì)算,合理、準(zhǔn)確地求取樹(shù)冠點(diǎn)云切片面積成為臺(tái)體法計(jì)算樹(shù)冠體積的關(guān)鍵問(wèn)題。
α-shape算法作為經(jīng)典的邊緣探測(cè)算法之一,最早是由EDELSBRUNNER等[18]提出并被用于獲取散亂點(diǎn)集的輪廓,本質(zhì)上使用該算法所獲取的圖形為歐幾里得空間中點(diǎn)集三角剖分的子集。文獻(xiàn)[19]通過(guò)引入加權(quán)思想來(lái)控制點(diǎn)集中每一個(gè)點(diǎn)對(duì)周?chē)c(diǎn)的影響力進(jìn)而實(shí)現(xiàn)捕捉不同層次的局部空間特征,使得加權(quán)α-shape算法被廣泛應(yīng)用到局部特征提取領(lǐng)域,文獻(xiàn)[20-21]均采用這種加權(quán)算法來(lái)實(shí)現(xiàn)對(duì)局部特征圖形結(jié)構(gòu)的探測(cè)。文獻(xiàn)[27]通過(guò)計(jì)算檢測(cè)點(diǎn)的k個(gè)鄰近點(diǎn)平均距離和增設(shè)調(diào)節(jié)因子,自適應(yīng)設(shè)置滾動(dòng)圓半徑α,但未考慮實(shí)測(cè)點(diǎn)云中激光掃描噪聲和散亂點(diǎn)云點(diǎn)間距離散程度對(duì)α的影響。在提取樹(shù)冠散亂點(diǎn)云輪廓方面,文獻(xiàn)[28]通過(guò)使用α-shape算法獲取了樹(shù)冠體積并對(duì)結(jié)果進(jìn)行了驗(yàn)證,但其獲取輪廓的α是固定的,理論上仍存在提升樹(shù)冠體積精度的空間。
二維空間中,α-shape算法可以想象成一個(gè)半徑為α的圓在一堆無(wú)序點(diǎn)集P中進(jìn)行滾動(dòng),當(dāng)α足夠大時(shí),這個(gè)圓不會(huì)滾動(dòng)至點(diǎn)集內(nèi)部,此時(shí)的滾動(dòng)痕跡即為該點(diǎn)集的邊界[27],如圖3所示。本文將α-shape算法運(yùn)用到點(diǎn)云切片外輪廓的獲取,根據(jù)不同切片的點(diǎn)云結(jié)構(gòu),動(dòng)態(tài)設(shè)定α。
根據(jù)文獻(xiàn)[18]可知,當(dāng)半徑α趨于無(wú)窮小時(shí),點(diǎn)集P中的所有點(diǎn)都有可能是邊界點(diǎn);當(dāng)半徑α趨于無(wú)窮大時(shí),會(huì)形成一個(gè)包含點(diǎn)集P中所有點(diǎn)的凸包。理論上,存在一個(gè)閾值αb,當(dāng)α≥αb時(shí),其所形成的邊界多邊形可以包含點(diǎn)集P中的所有點(diǎn)。
本文通過(guò)迭代方式來(lái)找尋每個(gè)點(diǎn)云切片的閾值αb并獲取該閾值下切片外輪廓多邊形的面積。迭代公式為
αi+1=αi+Δα(i=1,2,…,n)
(3)
式中αi、αi+1——第i、i+1次迭代時(shí)圓的半徑
Δα——迭代步長(zhǎng)i——迭代次數(shù)
設(shè)樹(shù)冠點(diǎn)云位于空間直角坐標(biāo)系OXYZ中,OZ軸為高程軸。對(duì)樹(shù)冠點(diǎn)云基于高程進(jìn)行等間距切片處理,設(shè)其中一個(gè)點(diǎn)云切片的點(diǎn)集為D,則改進(jìn)α-shape算法構(gòu)建切片外輪廓多邊形及求取面積的流程圖如圖4所示,具體如下:
(1)輸入點(diǎn)云切片并設(shè)置初始α。
(2)構(gòu)建鄰域點(diǎn)集。將點(diǎn)集D投影至XOY平面,獲取投影點(diǎn)集P中每一個(gè)點(diǎn)Pi的半徑為2α的圓形鄰域內(nèi)的點(diǎn)集,其中i=1,2,…,n。為了提高其查詢速度,本文借助了kd-tree結(jié)構(gòu)來(lái)獲取點(diǎn)集P中每一個(gè)點(diǎn)的鄰域點(diǎn)集。
(3)設(shè)置邊界初始點(diǎn)。由凸包性質(zhì)可知,點(diǎn)集中任意一個(gè)凸包極值點(diǎn)均為該點(diǎn)集的邊界點(diǎn),為了便于獲取可以將初始點(diǎn)設(shè)置為OX或OY方向上其中一個(gè)極值點(diǎn)即可,本文以O(shè)Y方向上的最小值點(diǎn)PyMin為例,將其設(shè)置為初始邊界點(diǎn)并加入到邊界點(diǎn)集L中。
(4)獲取整個(gè)切片的邊界點(diǎn)集L。包括以下幾個(gè)步驟:
①尋找下一個(gè)邊界點(diǎn)。以當(dāng)前邊界點(diǎn)Li為基礎(chǔ),從其鄰域點(diǎn)集Ni中選取任意一點(diǎn)n1,求出過(guò)點(diǎn)Li和n1且半徑為α的兩個(gè)圓o和o′;遍歷點(diǎn)集Ni,依次判斷鄰域中其他點(diǎn)是否落入圓o和o′內(nèi)部,如果存在一個(gè)不包含其他鄰域點(diǎn)的圓(“空?qǐng)A”準(zhǔn)則,見(jiàn)圖5),則可以判斷出點(diǎn)n1是點(diǎn)集P的邊界點(diǎn);對(duì)Ni內(nèi)下一點(diǎn)重復(fù)上述過(guò)程,直至對(duì)Ni內(nèi)所有點(diǎn)均使用“空?qǐng)A”準(zhǔn)則判別之后,統(tǒng)計(jì)其邊界點(diǎn)的個(gè)數(shù)。
其中,初始點(diǎn)PyMin(L1)較為特殊,該點(diǎn)在尋找下一個(gè)邊界點(diǎn)的過(guò)程中不需要統(tǒng)計(jì)其鄰域內(nèi)的邊界點(diǎn)個(gè)數(shù),只需要在NyMin中找到一個(gè)符合“空?qǐng)A”準(zhǔn)則的邊界點(diǎn)即可執(zhí)行步驟①,反之,如果一個(gè)邊界點(diǎn)也找不到,則跳轉(zhuǎn)至步驟(5)。
②判斷邊界點(diǎn)的唯一性。如果新找到的邊界點(diǎn)有且僅有1個(gè),則執(zhí)行步驟③。如果新找到的邊界點(diǎn)個(gè)數(shù)為0或多于1個(gè),則跳轉(zhuǎn)至步驟(5),如圖6a中,邊界點(diǎn)7的鄰域點(diǎn)集為空,新邊界點(diǎn)的個(gè)數(shù)為0,邊界無(wú)法回到起始點(diǎn)。圖6b中,邊界點(diǎn)3存在2個(gè)新邊界點(diǎn),邊界出現(xiàn)2個(gè)可能的走向。圖6這2種情況均說(shuō)明當(dāng)前閾值無(wú)效,需要更新α。
③判斷唯一邊界點(diǎn)是否為初始點(diǎn)。如果該邊界點(diǎn)為初始點(diǎn)PyMin(圖7),則執(zhí)行步驟④;反之,則將該邊界點(diǎn)添加至點(diǎn)集L中,并執(zhí)行步驟①。
④判斷點(diǎn)集L是否包含點(diǎn)集P中的極值點(diǎn)。獲取點(diǎn)集P中多個(gè)方向上的凸包極值點(diǎn)[29],如圖8a所示,根據(jù)文獻(xiàn)[18]可知,相同點(diǎn)集下,該點(diǎn)集的凸包極值點(diǎn)亦是其邊界凹包的極值點(diǎn),故這些極值點(diǎn)一定為點(diǎn)集P的邊界點(diǎn)。如果點(diǎn)集L未包含這些極值點(diǎn),則該凹包僅僅為點(diǎn)集P的一個(gè)局部凹包,如圖8b所示,則跳轉(zhuǎn)至步驟(5);反之,輸出相應(yīng)α值下的凹包并執(zhí)行步驟(6),如圖8c所示。
(5)更新α并判斷α是否達(dá)到終止條件。利用式(3)迭代更新α,之后將α與迭代閾值αmax相比較,如果大于αmax則停止迭代過(guò)程,輸出一個(gè)包含點(diǎn)集P的凸包面積;反之,執(zhí)行步驟(1)重新設(shè)置α。設(shè)置終止條件的原因在于:一方面,當(dāng)α過(guò)大時(shí),提取的邊界形狀趨于凸包,另一方面,可以避免程序陷入死循環(huán)。
(6)求解切片外輪廓多邊形面積。利用離散化格林公式求解出切片外輪廓多邊形面積的絕對(duì)值并輸出,則整個(gè)邊界提取過(guò)程結(jié)束。
最后,將整個(gè)樹(shù)冠的所有點(diǎn)云切片均重復(fù)步驟(1)~(6)以獲取其相應(yīng)的切片外輪廓面積,求取對(duì)應(yīng)的臺(tái)體體積,進(jìn)而通過(guò)累加求出更為準(zhǔn)確的樹(shù)冠體積。
本次實(shí)驗(yàn)研究區(qū)域?yàn)槟承@內(nèi),選擇晴朗天氣采集樹(shù)木點(diǎn)云數(shù)據(jù),采集平臺(tái)為L(zhǎng)eica公司MS60型全站儀,掃描分辨率設(shè)置為0.01 m×0.01 m(與儀器激光發(fā)射中心某個(gè)距離的平面上,點(diǎn)云點(diǎn)間距在水平和垂直方向上均為0.01 m),每秒測(cè)量3 600個(gè)點(diǎn)。選取校內(nèi)14棵樹(shù)進(jìn)行掃描,獲取樹(shù)木點(diǎn)云數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行去噪和濾波處理,僅留下純粹的樹(shù)冠點(diǎn)云數(shù)據(jù),如圖9所示。算法實(shí)驗(yàn)在一臺(tái)CPU為Intel Core i5-9300H、頻率為2.4 GHz的便攜式計(jì)算機(jī)上進(jìn)行,開(kāi)發(fā)平臺(tái)為Matlab R2018a,α的初始值設(shè)置為0.01 m。
使用改進(jìn)α-shape算法計(jì)算樹(shù)冠體積時(shí),不同的迭代步長(zhǎng)與樹(shù)冠分層間距會(huì)直接影響樹(shù)冠體積的計(jì)算效率與準(zhǔn)確度,并且考慮到方法的實(shí)用性等因素,需要為改進(jìn)α-shape算法確定最優(yōu)的迭代步長(zhǎng)以及分層間距。由微積分原理可知,樹(shù)冠分層間距越小,使用該方法計(jì)算的樹(shù)冠體積越準(zhǔn)確。因此,將迭代步長(zhǎng)為0.01 m、分層間距為0.1 m時(shí)的計(jì)算結(jié)果作為體積參照。為了消除不同樹(shù)木之間計(jì)算時(shí)間與體積的差異,更為合理表征方法的計(jì)算效率與準(zhǔn)確度,本文對(duì)不同樹(shù)木樣本的樹(shù)冠體積與計(jì)算時(shí)間進(jìn)行歸一化處理,計(jì)算公式為
(4)
(5)
式中nt、nV——計(jì)算時(shí)間、樹(shù)冠體積歸一化值,nt越小表示計(jì)算效率越高,nV越大表示體積損失越大
t、Vα——使用改進(jìn)α-shape算法計(jì)算單木樹(shù)冠體積所用時(shí)長(zhǎng)與體積
t0、V0——迭代步長(zhǎng)為0.01 m、分層間距為0.1 m時(shí)所用時(shí)長(zhǎng)和體積
采用不同迭代步長(zhǎng)和分層間距對(duì)樣本數(shù)據(jù)進(jìn)行實(shí)驗(yàn)和統(tǒng)計(jì),結(jié)果如圖10所示。分析迭代步長(zhǎng)對(duì)運(yùn)算時(shí)間的影響及其造成的體積損失(圖10a、10b)可知,當(dāng)?shù)介L(zhǎng)Δα約為0.1 m時(shí),計(jì)算效率的提升效果開(kāi)始趨于緩和??紤]到隨著迭代步長(zhǎng)的增大,樹(shù)冠體積損失也在增加,因此迭代步長(zhǎng)Δα=0.05 m是一個(gè)較為理想的選擇。在Δα=0.05 m的基礎(chǔ)上,分析分層間距對(duì)時(shí)間和體積的影響(圖10c、10d)可知,當(dāng)分層間距Δh=0.2 m時(shí),樹(shù)木樣本體積損失情況與Δh<0.2 m時(shí)的體積損失情況相當(dāng),并且其計(jì)算效率亦有顯著的提升,故選擇分層間距Δh=0.2 m。
對(duì)樣本樹(shù)木樹(shù)冠體積計(jì)算的時(shí)長(zhǎng)和體積進(jìn)行統(tǒng)計(jì)和分析,見(jiàn)表1。分析表1可知,對(duì)女貞樹(shù)2來(lái)說(shuō),采用選定的Δα與Δh時(shí),體積V1比V0僅損失了1.360 7%,而時(shí)間僅為原來(lái)的11.851 3%,運(yùn)算效率大大提升。對(duì)白楊樹(shù)3來(lái)說(shuō),采用選定的Δα與Δh時(shí),體積V1比V0僅損失了2.512 6%,而時(shí)間為原來(lái)的29.080 2%,運(yùn)算效率明顯提升。體積損失最高的是銀杏樹(shù)3,V1比V0損失了9.167 3%,時(shí)間為原來(lái)的21.845 9%,運(yùn)算效率亦有明顯提升。可見(jiàn),在V1與V0的相對(duì)誤差不超過(guò)9.167 3%的情況下,改進(jìn)α-shape算法的用時(shí)僅為參照數(shù)據(jù)用時(shí)的11.460 6%~31.581 9%,顯著提高了方法的運(yùn)算效率和實(shí)用性,可以滿足樹(shù)冠體積測(cè)算的實(shí)際需求。
表1 樹(shù)冠樣本計(jì)算結(jié)果
分別使用體元累加法、Graham算法[14]和改進(jìn)α-shape算法對(duì)所有樹(shù)冠樣本進(jìn)行體積計(jì)算。參數(shù)設(shè)置方面,將改進(jìn)α-shape算法的初值、迭代步長(zhǎng)、分層間距、最大迭代閾值αmax分別設(shè)置為0.01、0.05、0.2 m、2;Graham算法的分層間距亦設(shè)置為0.2 m;參照文獻(xiàn)[9],本文對(duì)不同體元邊長(zhǎng)與體積增幅G之間的關(guān)系進(jìn)行比較分析,從圖11可見(jiàn),當(dāng)體元邊長(zhǎng)為10 cm左右時(shí),體積增幅已趨于穩(wěn)定,故將體元累加法中的體元邊長(zhǎng)設(shè)置為10 cm(數(shù)據(jù)獲取方法同3.2節(jié))。
(6)
式中Bi、Bj+1——體元邊長(zhǎng)為j、j+1時(shí)所計(jì)算的樹(shù)冠體積
Gj——體元邊長(zhǎng)為j+1與j的樹(shù)冠體積比值
將體元累加法、Graham算法和改進(jìn)α-shape算法所計(jì)算出的樹(shù)冠體積分別記為v0、v1和v2,結(jié)果如表2所示。
通過(guò)對(duì)不同樹(shù)種不同方法獲得的單木樹(shù)冠體積(表2)進(jìn)行分析,可以得出以下規(guī)律:
(1)對(duì)于枝葉密度稀疏的樹(shù)冠(如銀杏樹(shù)1~3),v1、v2相較于v0均偏差較大,存在高估現(xiàn)象,v2相比于v1更接近v0。分析原因在于,對(duì)于枝葉密度稀疏的樹(shù)冠其內(nèi)部的空隙可以被體元法更好地識(shí)別和去除,體積明顯小于使用外輪廓進(jìn)行體積估算的方法;由于Graham算法沒(méi)有顧及到樹(shù)冠邊緣的空隙問(wèn)題(圖12),本文算法相較于Graham算法所計(jì)算的結(jié)果v1會(huì)更為準(zhǔn)確。
(2)枝葉茂密的情況下(如女貞樹(shù)1~3、白楊樹(shù)1~8),3種方法得到的樹(shù)冠體積更為接近。分析表2可知,v2恰好處于v0與v1之間,表明Graham算法的高估問(wèn)題仍然存在,改進(jìn)α-shape算法雖然略高于體元累加法,但相較于Graham算法更接近于體元累加法。分析原因在于,對(duì)于枝葉密度較高的樹(shù)冠,體元法對(duì)于內(nèi)部空隙的去除作用減弱。
表2 不同方法計(jì)算樹(shù)冠體積
(3)通過(guò)表2可知,計(jì)算不同樣本樹(shù)冠體積時(shí),求得了不同的α,說(shuō)明本文方法對(duì)不同樹(shù)種樹(shù)冠的適用性較好。
綜合分析來(lái)看,樹(shù)冠體積計(jì)算準(zhǔn)確度與樹(shù)冠自身的枝葉結(jié)構(gòu)關(guān)系緊密。本文算法可以適用于不同樹(shù)種的樹(shù)冠,無(wú)論是低密度還是高密度樹(shù)冠,其結(jié)果相對(duì)于Graham算法可以去除凸包邊界帶來(lái)的高估問(wèn)題,相對(duì)于體元累計(jì)法則更有利于樹(shù)冠總體占用空間的計(jì)算。
計(jì)算結(jié)果的穩(wěn)定性是衡量一個(gè)算法好壞的重要指標(biāo),從樣本數(shù)據(jù)中任意選取一個(gè)樹(shù)冠樣本進(jìn)行算法穩(wěn)定性測(cè)試。對(duì)原始點(diǎn)云數(shù)據(jù)經(jīng)去噪濾波處理后,進(jìn)行均勻抽稀。抽稀過(guò)程以樹(shù)冠點(diǎn)云的立方體包圍盒為基礎(chǔ),通過(guò)構(gòu)建不同大小的正方體體元,保留體元內(nèi)距離體元幾何中心的最近點(diǎn),剔除體元內(nèi)其他點(diǎn)。使用這種方式可以將原始點(diǎn)云分別抽稀為分辨率為1~10 cm的樹(shù)冠點(diǎn)云(分辨率k表示每個(gè)邊長(zhǎng)為k的體元內(nèi)僅保留不多于1個(gè)激光點(diǎn)),用以測(cè)試不同算法計(jì)算樹(shù)冠體積的效果。對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行歸一化處理,即
(7)
(8)
式中Kv、Ks——抽稀后樹(shù)冠樣本的體積相對(duì)誤差和抽稀后點(diǎn)云占比。Kv越大則體積損失越大;Ks越小,則表示抽稀后剩余點(diǎn)云數(shù)據(jù)占原始點(diǎn)云數(shù)據(jù)比例越少
Fk、F1——點(diǎn)云體元邊長(zhǎng)為k、1 cm時(shí)樹(shù)冠體積
Ck、C1——點(diǎn)云體元邊長(zhǎng)為k、1 cm時(shí)點(diǎn)數(shù)量
測(cè)試結(jié)果見(jiàn)表3。表3第1列,點(diǎn)云體元表示1個(gè)點(diǎn)所占的立方體空間,數(shù)值越大,點(diǎn)云分辨率越低。分析表3可知,在設(shè)置相同參數(shù)情況下,隨著點(diǎn)云分辨率降低,不同算法計(jì)算的樹(shù)冠體積均呈下降趨勢(shì)。其中,體元法受點(diǎn)云分辨率的影響波動(dòng)較大,當(dāng)點(diǎn)云體元邊長(zhǎng)為10 cm時(shí),損失了原始樹(shù)冠體積的51.016 6%;Graham算法與本文算法體積下降的幅度相較于去除點(diǎn)云的比例相對(duì)較小,在點(diǎn)云體元邊長(zhǎng)為10 cm,且抽稀后點(diǎn)云數(shù)量?jī)H為原始點(diǎn)云樣本的3.478 0%的情況下,損失了原始樹(shù)冠體積的13.746 1%和11.804 6%。這說(shuō)明本文算法在相同的迭代步長(zhǎng)與分層間距下,計(jì)算結(jié)果受點(diǎn)云分辨率影響相對(duì)較小,高密度點(diǎn)云使用的相關(guān)參數(shù)對(duì)于低密度數(shù)據(jù)亦具有一定適用性,在一定程度上說(shuō)明了本文算法的穩(wěn)定性。
表3 抽稀與計(jì)算結(jié)果
(1)樹(shù)冠體積計(jì)算的準(zhǔn)確性與樹(shù)冠內(nèi)部枝葉結(jié)構(gòu)和點(diǎn)云密度均有關(guān)系。
(2)本文算法對(duì)不同樹(shù)種樹(shù)冠體積計(jì)算具有較好的適用性,無(wú)論對(duì)于高密度還是低密度樹(shù)冠,采用改進(jìn)α-shape算法的樹(shù)冠體積計(jì)算結(jié)果具有良好的穩(wěn)定性,在過(guò)濾樣本為原始點(diǎn)云樣本3.478 0%的情況下,僅損失了原始樹(shù)冠體積的11.804 6%,而且相較于已有其他方法更為準(zhǔn)確,既避免了Graham凸包算法的高估問(wèn)題,相較于體元累加法也更利于樹(shù)冠總體占用空間的計(jì)算。
農(nóng)業(yè)機(jī)械學(xué)報(bào)2021年5期