黃 亮 許文雅 譚 帥
(1. 江蘇省測繪工程院,江蘇 南京 210013; 2. 江陰市綠化技術監督指導站, 江蘇 江陰 214400;3. 江陰市園林綠化管理所, 江蘇 江陰 214400)
樹木在城市環境中是園林綠化的主要組成部分,在野外環境中是森林的基本構成單元,在保護生態環境、改善人居環境、碳達峰及碳中和等方面具有不可替代的作用。建設工程多測合一中綠化測量、園林綠化調查、森林資源調查等都需要采集樹木信息,恢復樹木的三維結構是樹木資源精細化管理、全生命周期管理的基礎工作。
傳統的單木測量方式主要是全野外采集,利用全球定位系統(Global Positioning System,GPS)接收機或者全站儀獲取樹木的位置和高度數據,利用胸徑尺、卷尺獲取樹木的地徑、胸徑、蓬徑等數據[1]。傳統方法效率低、成本高、周期長、精度差,且只能獲取有限的結構參數,無法滿足生物量統計、實景三維構建等新需求。隨著遙感技術的不斷發展,地面三維激光掃描技術已經可以獲取樹木的高密度、高精度三維點云,為樹木資源的三維模型構建、立體監測提供了技術途徑[2]。
利用點云重建樹木三維模型的方法大致分為兩類,即分割建模法和直接建模法[3]。分割建模法是先對樹木點云進行枝葉分割,利用枝干點云構建樹木骨架后建模。直接建模法是將采集得到的所有點云統一處理、建模,避開了分割枝葉的步驟,模型注重整體視覺效果,但與真實枝干分布吻合度較差。顯然,分割建模法可以反映樹木更真實的形態結構信息,而有效的枝葉點云分割是樹木分割建模法的前提和基礎。
文獻[4]利用鄰域點的主曲率方向相似性來區分有效樹枝點和噪聲,但算法針對的落葉樹的樹葉很少,具有一定的局限性。文獻[5]利用移動圓柱體提取枝干骨架點,對枝干細節模擬不夠。文獻[6]在利用移動圓柱體提取枝干骨架點的基礎上,利用移動圓柱主方向判斷點云密集區枝干的中心點,優點是枝條半徑精度較高,但后續重建的判斷條件比較復雜。文獻[7]分析局部鄰域的特征值,將線性的分布歸類為樹木的枝干,將平面分布歸類為樹葉,但較粗的主干往往不成線性,較小的樹葉疊加晃動等因素在點云中也不表現為平面。文獻[8]利用半監督的支持向量機(Support Vector Machine,SVM)分類算法對櫻花樹和深山含笑樹的點云進行枝葉分離,得到枝干點云數據。文獻[9]利用法向量分布、結構張量與半監督SVM結合,分割枝干、樹葉等多種點云。文獻[10]利用點特征向量組特性,結合一種半監督SVM的方法,實現枝干、葉片的分類。文獻[11]構造特征訓練分類器將樹木點云分割為地面、樹干與枝葉。利用SVM或其他分類器進行分類,由于樹木種類多、激光掃描儀的型號多、掃描方式差異大,需要頻繁采集和訓練樣本,操作復雜,對用戶的要求較高。文獻[12]利用超體聚類算法實現單木枝干和樹葉的分割,需要設置體素分辨率、種子分辨率、顏色權重、空間權重、法向量權重、相鄰體素法向量夾角閾值等參數,且依賴顏色屬性,較為復雜。文獻[13]采用閾值法和隨機森林法進行立木枝葉分離,活立木強度數據經過校正可以得到枝葉分離的閾值,但面對混生樹木差異較大時適應性較差。
為此,本文提出一種基于鄰域點分布規律的枝葉分割方法。首先對樹木點云構建K維樹(KDimension-Tree,KD-Tree),搜索某激光點的R鄰域點集;接著對鄰域點集進行主成分分析(Principal Component Analysis,PCA),獲取特征值和特征向量,利用特征值構建鄰域點集的分布散亂度;然后將分布散亂度與閾值比較,區分枝干和葉片的候選點;最后利用歐氏聚類獲取可靠的枝干點。利用江陰大橋公園的樹木點云數據集進行測試。結果表明:本文提出的樹木點云枝葉分離方法準確率高、點云屬性要求低、簡單易用,可應用于多測合一綠化測量、城市綠地生物量統計、實景三維樹木模型構建等領域。
本文使用Leica ScanStation C10、Leica ScanStation P40兩款三維激光掃描儀,架設自由站從多個角度對樹木進行掃描,如圖1(a)所示。各站點云,首先人工選取同名點對計算旋轉和平移參數,實現粗配準。再利用迭代最近點(Iterative Closest Point,ICP)算法[14]實現自動的精配準,配準點云如圖1(b)所示。

圖1 掃描與配準
由于儀器本身、懸浮顆粒等原因,獲取的三維點云含有大量的噪聲,會影響法向量計算、主成分分析等算法的可靠性,使用統計離群點移除(Statistical Outlier Removal,SOR)濾波器[15]去除噪聲點。
掃描儀的型號、掃描的距離、掃描的角度、掃描的分辨率等因素,都會影響樹木點云的密度。不均勻的點密度會降低算法的穩定性,因此,利用體素化網格(VoxelGrid)方法進行重采樣。將點云在空間中劃分為等邊長的立方體,每個立方體就是一個體素,每個體素中包含的激光點只保留最靠近體素中心的那個點(圖2)。體素邊長即重采樣后點云中相鄰點的平均間距。

圖2 移除噪聲和重采樣后的點云
激光掃描數據中含有大量的地面點,不僅增加了點云處理的運算量,也不利于后續單棵樹木的分割。因此,使用布料模擬濾波器(Cloth Simulation Filter,CSF)[16]加上少量的人工編輯將點云分為地面點、非地面點,其中非地面點(圖3)包含了所有的樹木點云。

圖3 非地面點云
由于樹冠重疊生長等原因,非地面點中的樹木點云在空間上可能是粘連的,并不是按棵獨立分布的。可以使用最小割分割(mincut segment)[17]算法結合人工編輯,對非地面點實施精確的單木分割。在樹木點云之間粘連較少時,可以單純使用人工編輯提取單木點云(圖4)。

圖4 單木點云
已經分割成單木的樹木點云構建KD-Tree結構,實現點云的快速索引。遍歷樹木點云,第i個激光點Pi,以其為球心搜索半徑R內的領域點,構成鄰域點集Ni。通過觀察發現,樹的主干部分較粗,當搜索半徑R小于樹徑時,其鄰域點集Ni一般呈現為面狀分布;樹的枝干較細,直徑一般小于搜索半徑R,其鄰域點集Ni一般呈現為線狀分布;不考慮葉片特別大的樹種,葉片尺寸一般小于搜索半徑R,再加上葉片堆疊和晃動等因素,其鄰域點集Ni一般趨近各向同性分布。

為了定量表達鄰域點集Ni的各向同性分布程度,構建散亂度指標S,如公式(1)所示。
(1)
S值越小則鄰域點集Ni的散亂度越高,越有可能是樹葉點。設定一個預定義的散亂度閾值ST,當前點Pi的散亂度為Si,當Si 對枝干候選點集Mbranch進行歐式聚類,距離判斷準則為歐氏距離。具體步驟: (1)對于當前點Pj,利用KD-Tree近鄰搜索算法,找到Pj的K個最近鄰點,距離D小于設定閾值DT的聚類到集合Q中。Pj標記為已處理。 (2)對Q中未處理的其他點,執行(1)操作。 (3)如果Q中點的數量n不再增加,則當前聚類完成。計算Q的空間尺寸L(x,y,z),其中長Lx,寬Ly,高Lz。 (4)如果n>nT且L(x,y,z)>L(x,y,z)T,則Pj保留為枝干點,否則Pj放入Mleaf中。其中,nT為歐氏聚類的點數量閾值,L(x,y,z)T為歐氏聚類的尺寸閾值,兩個閾值都是預定義的。 (5)最終樹木點云分為枝干點集Mbranch和樹葉點集Mleaf,完成了枝葉分離。 實驗點云數據使用Leica ScanStation C10和Leica ScanStation P40聯合三維激光掃描獲得,共計16站,地點位于江陰市大橋公園內部。掃描站之間,先手動選取4對以上同名點粗配準,若配準誤差較大,再利用ICP算法精配準,最終所有站之間的配準點位誤差均小于0.02 m。使用統計離群點移除(Statistical Outlier Removal,SOR)噪聲時,參數采用默認推薦值,即估計平均距離的鄰域點數設置為6,標準差設置為1.0,隨機噪聲去除的效果較好。點云基于VoxelGrid重采樣時,體素的邊長設置為0.01 m,獲得重采樣點云密度約為每立方厘米1個點。使用布料模擬濾波器(Cloth Simulation Filter,CSF)進行地面濾波時,布料的分辨率設置為1.0 m,最大迭代次數設置為500,點到布料的距離閾值設置為0.3 m,獲取了包含樹木的非地面點。非地面點在空間聚類后依靠簡單的人工編輯和標記,實現了精確的單木分割。 實驗點云數據經過預處理后,得到37個單木點云,使用本文提出的方法進行枝葉分割,散亂度閾值設置為0.8,歐氏聚類時最小間距設置為0.02 m,最少聚類點數10,最小聚類尺寸0.20 m,枝葉分割的效果如表1所示。 表1 枝葉分割效果 目視判別點云中的樹木主干、一級枝干、次級枝干,認為是真值。統計本文枝葉分割方法的運算結果,經計算可知,對于樹木主干可以全部精確分割,對于一級枝干的正確分割的比例為89.63%,對于次級枝干,正確分割的比例為72.72%,錯誤分割的比例為17.29%。分割結果可以用于樹木骨架更精確地跟蹤。 表2 枝葉分割結果 單位:根 針對現有枝葉分割方法參數設置復雜、需要訓練樣本、依賴顏色強度等不足,提出了一種新的基于鄰域點分布規律的枝葉分割方法。該方對鄰域點集進行主成分分析,利用特征值計算鄰域點集的分布散亂度,進而區分枝干和葉片的候選點,對枝干候選點實施歐氏聚類獲取可靠的枝干點。使用江陰大橋公園的樹木點云數據集進行測試,結果表明,本文方法分割的準確率高、簡單易用,可應用于多測合一綠化測量、城市綠地生物量統計、實景三維樹木模型構建等領域。 本文方法的不足之處是當樹木的葉片較大時,容易被分割為次級枝干。接下來的研究,計劃先分割出主干,用主干中心線作為約束,雖然大樹葉也呈現面狀分布,但可以利用其距離主干較遠的特點進行排除。2.3 歐式聚類
3 實驗與結論


4 結束語