黄 亮 许文雅 谭 帅
(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 结束语