树木点云数据基于分割和自动生长的三维模型重建方法

文档序号:6603358阅读:814来源:国知局
专利名称:树木点云数据基于分割和自动生长的三维模型重建方法
技术领域
本发明属于计算机图形学和计算机视觉技术领域,涉及一种利用三维激光扫描仪 对树木进行测量得到树木点云数据,并根据点云数据进行基于分割和自动生长的三维模型
重建方法。
背景技术
植物在现实生活中扮演着重要的角色,它既是室外场景的重要组成部分,也是室 内场景不可缺少的部分。因此植物模型的准确真实的重建在数字娱乐、农业林业和古树名 木保护等方面都有重要的应用。经过几十年的发展,已经出现了多种植物建模技术,这些技术大体上可以分为四 类基于规则的方法,基于几何解析表达的方法,基于草绘的方法以及基于树木数字化的方 法。下面对这些方法分别进行介绍。基于规则的方法的主要特点就是通过数学模型结合植物学的知识和规则来模拟 植物的生长过程和形态特征,植物模型的具体形态依靠调整参数进行控制。其中代表性的 工作包括L-系统和AMAP系统。基于几何解析表达的方法利用曲线曲面造型技术来构造植物模型,不需要严格遵 守植物学规律,目的在于生成的模型具有较高的真实感。这类方法中树枝一般都由广义圆 柱来表达,其中代表性的方法有基于分形的方法以及粒子系统。基于草绘的方法以手工绘制的树枝或者外形轮廓为基础,然后利用植物学规则或 者模型库生成植物三维模型。Makoto Okabe基于“树木在生长过程中将使不同树枝之间距 离最大化”的假设,将从二维草图中获得三维树枝模型,并且设计一套手工交互界面,可以 简单快速地对树枝和树叶进行交互性的修改,获得了较好的视觉效果。这种方法的缺陷在 于无法自动生成树枝的细枝,所有的树枝的细枝都要通过手工交互完成,在树木规模较大 的情况下,重建的工作量巨大。近年来伴随数字化手段的快速发展,基于树木数字化的重建方法在植物重建中获 得越来越多的重视,该方法以目前的树木数字化手段获得的树木照片、点云等作为输入数 据,利用一些先验知识和规则,获得与输入数据相似的植物模型。除了获得较好的视觉效果 外,重建模型的准确性也逐渐成为重建的目标之一。按照输入数据的不同,该方法又可以分 为基于照片的重建和基于激光扫描点云的重建。

发明内容
本发明欲解决基于激光点云数据的树木重建过程中无法保证树枝位置准确和保 持原模型生长规律的的技术问题,本发明的目的是针对现实世界中由激光扫描得到的树木 点云数据,提供一个激光扫描点云模型准确并且保持原始模型生长规律的三维重建方法。为实现上述目的,本发明的技术解决方案是提供一种树木点云数据基于分割和自 动生长的三维模型重建方法,该三维重建步骤包括
步骤Sl 利用激光扫描仪扫描直接采集树木的扫描点云数据并对点云数据预处 理,按照点云数据中每个点的坐标进行空间划分,实现三维空间的数据存储结构称为kd树 (k-dimensional tree);步骤S2 对于点云数据的每一个点,利用点云数据的kd树查找多个近邻点,根据 最小二乘方法把这些点拟合出一个平面,以这个平面的法向量作为点云法向量的初始估计 值,利用其法向量、切平面构造局部三维直角坐标系,利用点云数据的kd树查找多个近邻 点;利用这些近邻点拟合二次曲面;利用这些近邻点拟合出的二次曲面计算主曲率;步骤S3 对于点云数据的每一个点,利用主曲率方向计算轴向分布密度,利用轴 向分布密度将属于树枝上的点云与属于树叶上的点云区分;对于属于树枝上的点云,利用 主曲率方向进行区域生长,产生过分割的分割结果;对于过分割的树枝上的点云,依照相邻 组内的点云数量以及依照分组中所有点云的主曲率方向的平均值所确定的组角度进行区 域合并,得到符合树木树枝器官分布的分割结果;步骤S4 对于分割得到的属于树枝部分的点云,将每一个树枝的点云沿其组方向 进一步分割成较小的点云分组,利用较小的点云分组中心获得树枝的主枝的骨架点和对应 的半径;步骤S5 统计不同树枝的主枝的骨架之间的夹角分布规律,利用分割得到的属于 树叶部分的点云从树枝的主枝的骨架上引导生长树枝的细枝,通过控制树枝的主枝长出树 枝的细枝的位置、树枝的细枝的骨架与树枝的主枝的骨架的夹角,树枝的细枝的长度来控 制树冠的形状;步骤S6 利用各个骨架点和对应的半径建立树木的三维网格模型,在树枝的细枝 的末端添加树叶模型完成重建。其中,所述沿其组方向进一步分割成较小的点云分组,通过下面方法实现首先在 属于每个树枝的点云分组中任选一点P作为根点,之后以P作为坐标原点,以该点云分组的 组方向作为Z轴,以与Z轴垂直平面上任意两个正交方向为X轴和1轴建立局部坐标系,将 分组内的点按照其在局部坐标系内的ζ值进行进一步分离成若干小分组,称每一个小分组 为一个点云片。其中,所述利用较小的点云分组中心获得树枝的主枝的骨架点,其中较小的点云 分组中心是该组中的所有点的空间位置的算术平均值。其中,所述统计不同树枝的主枝的骨架之间的夹角分布规律,是通过下述方法进 行的,计算相互连接的树枝的主枝之间的夹角;角度α为其中最小的夹角,角度β为最大 的夹角,记树枝的主枝的夹角所在的区间为η = [α,β],将η划分为若干小角度区间 η0 = [ α,ε ],H1= [ α + ε , α +2 ε ],. . .,nn = [ α +n ε , β ],记区间集合 X= { n0,
...,nj ; ε为角度,设置为5°,n是整数,为(β-α)/ε的整数部分,用概率θχ(χ = 0,l,...,n)表示角度位于角度区间ηχ(χ = 0,1,...,η)的概率,计算每一个概率θχ(χ =0,1,..., n),这些概率被用来指导后面的树枝的细枝的生长过程。其中,所述树枝的细枝的长度,通过下述方法确定,对每个树枝的主枝的骨架点 Pi,定义骨架点Pi的吸引点点集为τ e ρ,T = {、,、,...,tn},其中点集P为属于树叶的点 云;点tx(x= {0,1, ..n})满足下列条件点tx和点Pi的欧氏距离小于一定的阈值Ω,此 处Ω被设置为十倍于扫描间距;假设Pi的每一个吸引点都能从点Pi处以朝向点tx的方向牵引出一个树枝的细枝,该树枝的细枝以点、为第一个骨架点,试图向前继续生长,在点tx 位置以点tx为下底面中心,以h为高,以r为半径,以点Pi朝向点tx的方向为轴向构建圆 柱S,在粒子中,高h被设置为10倍于扫描间距,半径r被设置为1. 5倍的扫描间距,当满足 下列两个条件为在圆柱S内存在属于树叶上的点云和圆柱S内不存在其他已有的树枝的主 枝的骨架点时,生成下一个骨架点;圆柱S的中心点被作为树枝的细枝的生长的下一个骨 架点,该过程反复运行直到不再满足树枝的细枝的生长的条件。其中,所述控制树枝的主枝长出树枝的细枝的位置、树枝的细枝的骨架与树枝的 主枝的骨架的夹角,是通过下述方法进行的,为模拟植物的形态学特点,假设每个树枝的主 枝的骨架点只能生长出最多一个树枝的细枝,而每个骨架点都可能有若干吸引点,每个吸 引点都能引出一个树枝的细枝完成生长过程,其中只有骨架数量大于一定阈值ξ的树枝 的细枝才会被考虑,在这里ξ阈值被设为4,依靠下列规则从被考虑的树枝的细枝中寻找 最合适的一个进行保留记骨架Api处牵引出的树枝的细枝的列表为Bi= IbtlA,...,bn}, 其中Bi为树枝的细枝的集合,^{ = 0,..., η}为树枝的细枝;首先计算每个树枝的细枝 与骨架点PiK在的树枝的主枝的夹角,判断该夹角是否位于夹角区间n = [α,β],其中 角度α为相互连接的树枝的主枝之间的最小的夹角,角度β为相互连接的树枝的主枝之 间的最大的夹角;如果该夹角位于区间内,找到该夹角在X内所对应的小区间1对应的概 率θ χ,令该树枝的细枝对应的概率Qi = θ χ,如果该夹角不在区间内,令该树枝的细枝对 应的概率91 = 0,之后计算每个树枝的细枝的骨架点数量11(1 = 0,1,...,11);通过比较 各树枝的细枝对应的权值δ i = Ii* θ i来保留各树枝的细枝中对应权值δ i最大的一个。本发明的有益效果本发明以树木的扫描点云为输入数据,获得树木准确的三维 重建模型,人工交互少,重建过程易于操作,重建模型能够保持原始数据的形态特征。本发 明利用三维激光扫描仪对树木进行测量得到树木点云数据,并根据点云数据进行基于分割 和自动生长的三维模型重建方法。其结果在虚拟现实、电脑游戏、自然场景模拟、城市景观 设计、电影制作、树木3D重建、农林业测量等领域具有重要的应用价值。


图1示出本发明方法的流程图;
图2示出本发明采用的单面扫描数据;
图3a、图3b示出树木点云主方向分布规律示意图4示出圆柱构造示意图5a、图5b示出轴向分布密度的可视化表示和被判断属于树枝上的点云;
图6示出区域生长的结果示意图;
图7示出小分组被合并后的分割情况示意图;
图8a、图8b示出区域合并的角度限制示意图;
图9示出区域合并后的分割结果示意图;
图10示出分组建立局部坐标系;
图11示出树枝点云的进一步分割;
图12示出树枝的主枝的骨架点;
图13示出重建的树枝网格模型;
图14示出完整的重建模型。
具体实施例方式下面结合附图详细说明本发明技术方案中所涉及的各个细节问题。应指出的是, 所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。1、方法概述(overview ofapproach)如图1示出本发明整个方法的流程,其中本发明算法的主要步骤包括1)、点云的获取及预处理。2)、局部几何量计算,包括4个子步骤(a)点云法方向估计、(b)局部坐标系的构 造、(c)利用近邻点拟合二次曲面、(d)利用二次曲面计算主曲率。3)、对树木点云模型进行分割,包括3个子步骤(f)计算轴向分布密度并利用轴 向分布密度区分属于树枝上的点云与属于树叶上的点云、(g)利用主曲率方向进行区域生 长、(h)依照相邻组内的点云数量以及组内点云主曲率平均值的夹角进行区域合并。4)、计算树枝的主枝的骨架点和对应半径。5)、利用树叶部分的点云引导生长树枝的细枝。6)、三维网格模型的重建与树叶模型的添加。2、点云的获取及预处理首先,获取真实树木的扫描数据(如图2示出采用的扫描数据)并进行预处理。对 点云数据进行预处理包括以下两个步骤2. 1 创建 kd 树在计算三维点云数据法向量和主曲率、主方向的过程中都需要用到近邻点,我们 使用建立点云数据的3维空间的二分查找树,简称为kd树(k-dimensional tree)来查找 近邻点。首先,建立kd树。kd树基于点的空间位置信息,通过二分法迭代划分三维空间,实 现最优存储。在kd树上,进行k近邻查找的时间复杂度为O(Iog2Ii),这里η为点云数据的 点的个数。2. 2搜索近邻点由于预处理阶段建立了 kd树,以点云模型P中点ρ为查询点,基于欧式距离查找k 近邻,比如k = 20近邻或k = 30近邻,根据数据扫描精度确定近邻点的个数,扫描精度较 低则取15个近邻点,扫描精度较高则取30个近邻点,这里记qi(i = 1,2,·.·,m)为查询得 到的m个近邻点。3、利用二次曲面计算主曲率利用二次曲面计算主曲率,包括以下4个子步骤3. 1计算各个点的法向量对于点云数据的每一个点,利用点云数据的kd树查找15个或30个近邻点,对整 个点云模型P中的每个点P选择其近邻点组成的点集N(P ;k) = {qi ;i = 1,...,k}表示 点P附近的局部形状、Qi(I = L--^k)为点ρ的k个近邻点进行曲面拟合。点ρ处的法 方向可以用下述方法计算首先构造矩阵,
其中(g)表示向量之间的叉乘,M(p,k)的较小的特征值对应的特征向量即为ρ点处 的法方向。我们记该法方向为坷妁,我们统一的把朝向摄像机的一侧作为法方向HO)的正 方向。3. 2建立局部坐标系在点云各个点处建立局部坐标系,设点ρ的法向量为砜妁=("¥,"%, ,丨,其中 nx,p, ny,p,nz,p法向量的三个分量,则这个ρ点就是局部坐标系的原点,X,Y,Z三个坐标轴分 别为
其中 Ψ 和φ通过下式计算 3.3拟合二次曲面点云模型P处待拟合的二次曲面为h (u,v) = c0u2+2ciuv+c2v2,其中(u,ν, h(u, ν))为空间中的点,该二次曲面h(u, ν) = c0u2+2ciuv+c2v2的系数C0C1C2通过最小化
η ι||Αμ-Β||2获得,其中Α、Β、μ为矩阵 Ui, Vi,Iii为η个近邻点的坐标值,i = 1,...,n,CtlC1C2为二次曲面的系数,通过μ =[C0C1C2Jt= (AtA)ItB得到二次曲面的系数,其中T表示转置,[CtlC1C2]工表示矩阵[CtlC1C2] 的转置矩阵;3. 4计算局部几何量利用二次曲面h(u,ν) = c0u2+2ciuv+c2v2,计算ρ点处的局部几何量,包括两个主 曲率
以及对应的主曲率方向式O)和式O)。图3a是各点式O) 的结果,图3b是主方向局部的特写。4、对点云数据进行分割树木点云模型的分割,包括以下三个步骤4. 1计算轴向分布密度并进行树枝点云与树叶点云的分离大多数的树枝都近似圆柱形,分布在上面的点云也呈圆柱面分布。圆柱面上对应 主曲率值较小的主曲率方向与圆柱的轴向一致,所以树枝上点云处的局部几何量也有相同 的性质,即式ο)与树枝的轴向方向近似一致,所以我们在这里更加关心式(P),统一朝向地 面的方向为式(P)的正方向,在后面,我们称式(P)为主方向。
但是仅仅依靠近邻点云的主方向相似度无法实现树枝与树叶的分离,原因有如下
的两点a、在树枝的某些位置由于形状不规则或遮挡而导致相邻的点也没有相似的主方向。b、尽管大多数树叶的点云的主方向都杂乱无章,但是在当进行二次拟合时,当k
近邻点的选取不能保证在同--平面时,拟合结果将体现出--定的随机性,某些位于树叶上的局部点云也可能具有相似的主方向。因此,仅仅考虑近邻点云方向的相似度没有充分利用点云的空间位置信息。在综 合考虑点云主方向和空间位置关系后,我们注意树枝上点云的另外一个特点树枝上点云 在树枝轴向方向近似均勻分布。我们在树枝点云P1处,以P1为中心,以其主方向为轴向构 建细长圆柱,在细长圆柱内近似均勻分布很多点云。而在树叶点云处,尽管某些局部近邻点 云具有相似的主方向,但不满足在主方向上分布的特点。具体构建细长圆柱如图4所示。利 用这个特点,我们可以实现枝叶分离。对点云模型中的点p,以点ρ为中心,以h为高,以r为半径构建圆柱S,圆柱S的 轴向与点P的主方向式O)—致;其中高h被设置为10倍于扫描间距,半径r被手工设置为 2倍于扫描间距;位于圆柱S内的每一个点p,将点ρ投影到圆柱S的中心轴上,投影点被 记为Ps(P),然后再以中心轴为中心,手工设置的固定长度α为长度选定线段u (ρ,S),称线 段u(p,S)为点ρ在圆柱S内的投影覆盖区域;当将圆柱S内的每一个点ρ投影到中心轴 后,则得到了中心轴上的若干表现为一个个线段的投影覆盖区域,这些区域可能相互重叠, 求取这些区域的并集,记为 记L[U(p,S)]为投影覆盖区域并集的长度,长度L[U(p,S)]能够同时表示圆柱S 内的所有点在圆柱S内的分布密度和分布均勻情况,换而言之,表示了点ρ附近近邻点云是 否沿点P的主曲率方向均勻分布;轴向分布密度C(p),定义为C(p) = L[U(p,S)]/h,轴向分布密度C(p)表示了所有投影覆盖区域并集的总长度在圆柱S的轴高度内 覆盖的比例。被称为点P的轴向分布密度。如果点ρ是位于树枝上的点云,即使树枝比较细或者由于形状不规则而导致附近 点主曲率方向不规则,只要点P的主方向与树枝轴向大致一致,也可以保证在点P构建的圆 柱S内包含一定数量沿轴向分布的点云,从而获得较大的轴向分布密度c(P)。另一方面,如 果点P是位于树叶上的点云,虽然点P附近点云可能与具有与点P相似的主方向,但很难实 现在的主方向上分布,所以轴向分布密度C(P)有效的表示了点P位于树枝上的可能性。在计算出每个点对应的轴向分布密度C(p)之后,我们手工选定一个阈值β,分布 密度值大于β被选定为种子点,首先计算没个种子点与最近邻种子点之间的距离,如果这 个距离大于一个手工选定的阈值ε,我们认为该种子点为孤立种子点,孤立种子点被去除, 随后我们将保留的种子点和种子点对应的圆柱S内所有点标记起来作为树枝上的点云,其 余点云被认为是位于树叶上的点云。图5a显示了整个点云按照不同点对应的轴向分布密 度C(p)用不同的灰度表示的模型。图5b显示了通过我们的方法确定的属于树枝上的点云, 从图中可以看到即使某些树枝比较细小或者被遮挡的比较严重,位于上面的点云仍然能被 我们的方法准确的区分出来。4. 2利用主曲率方向进行区域生长在属于不同树枝的点云分割分组过程中,我们将综合考虑点云的主方向与空间位 置关系。我们在区域生长中要保证属于不同树枝的点云不会被划分到同一分组中,尽管经常以过分割为代价,我们会在后一节的区域合并过程中解决过分割的问题。首先,我们给出本节中近邻点的定义,本节中我们定义点ρ的近邻点为点云模型P 中与点P的欧氏距离小于一定阈值λ的点。λ在本文中被设置为0. 2m。开始,点云模型P中的每个点都被给予单独的标记。首先P中一个随机选取的点 被作为种子点,对种子点的所有近邻点进行判断,如果近邻点的主方向与种子点的主方向 夹角小于一定的角度阈值Θ,此处θ被手工设置为15°,该近邻点会被划入种子点分组 Wseed。之后这些近邻点被选为新的种子点进行相同规则的区域生长,试图将更多周围的点云 划归到Wseed中,直到没有新点云会被Wseed吸收。之后在点云模型P中寻找未被划分的点作 为新的种子点,重复上面的区域生长直到所有的点实现划分。上述区域生长算法具体表示过程如下所示。步骤(1)随机在点云模型P中寻找为未划分点ρ作为种子点;步骤(2)寻找点ρ的近邻点点集B = {b0,. . .,bn},计算其中每个点h与点ρ的主 方向的夹角,如果夹角值小于给定的角度阈值θ,则点h被划分到与点ρ相同的分组Wsrad, 所有在该步骤中被划分到中的新点被记为点集Bin。如果点集Bin为空,则回到步骤(1)。如 果Bin为不为空,选取Bin中的点作为新的种子点重复步骤⑵。步骤(3)选择新的种子点,重新执行步骤(2)。步骤(4)当P中所有点完成划分后,算法结束。步骤⑵中角度阈值θ的选取非常重要,如果选取的过小,则点云之间难以被划 分到同一分组,形成大量只有一个点的分组,使整个区域生长过程无意义;如果选取的过大 又可能导致不同树枝的点云被划分到同一分组中,形成错误的结果。区域生长结果如图6所示,从图中我们可以看出,这是一个过分割的结果,相同的 树枝经常被分解为不同的部分,而且一些分组内只有较少的点,产生这种情况的原因与上 一节中提到的树枝形状不规则导致主方向杂乱相同。该结果能够保证不同树枝上的点云不 被划分到同一分组中。4. 3区域合并区域合并的过程中受到下面两个约束的影响相邻组对于两个点云分组W1和W2.我们使用Hausdorff距离h (W1,W2)= min{ Il P-Q Il ;点P e W1,点q e ff2}来衡量两组之间的距离,当该距离小于一定的阈值时, 我们称W1和W2为相邻组。组方向我们定义组W的组角度为ζχ ^) = [Ed1(Pi)Vj ,其中为组内的点的
主曲率方向,j为组内点的数量,由于主方向具有180°的随机性,所以我们首先随机从组 内选择一个点的主方向D,保证组内每一个点的主曲率方向满足式O,)·Ζ)>0。在上节中我们知道,过分割导致很多分组点云数量少,而只有点云数量足够大的 组的组方向能够表示其所在树枝的轴向,可以指导区域合并,较少数量点云的组,其组方向 无法表示其所在树枝的轴向,对于区域合并没有帮助,所以首先我们无条件的将点云数量 小于一定阈值N的组合并到其所有相邻组中与之距离最近的组。经过这个过程,所有分组 都具有较多数量的点云。图7是将点云数量小的分组合并后的分割情况示意图。经过上一步处理,每个分组内都有足够的点来表示该组所在树枝的轴向,各个分 组的组方向被计算出来,任意两个相邻点云分组W1和W2.夹角用下式计算出来。 θ (W1, ff2) = cos—1 ([ (2-D (W1) · D (W2)) /2])其中θ (WijW2)是两个相邻点云分组WjPW2.的组方向的夹角,夹角θ (W1,W2.)是 指导区域合并的重要约束,但是并不是唯一的约束,如果我们简单的把具有较小夹角θ的 相邻组合并的话,合并结果将难以保证准确度,图8a是两个属于不同树枝的点云分组,点 云组P和点云组Q是相邻组并且具有较小的夹角,但是两组显然不属于同一树枝。为了避免上述的错误合并,我们引入了一个新的限制条件,点P1和点P2(P1 e ρ 和P2 e Q,)是点云分组P和点云分组Q中距离最近的两个点,店Pa是点云分组P中 使Il Pa-P1 Il (pa e P)最大化的点,点pb是点云分组Q中使Il pb-p2 Il (pb e Q)最大化的点。 由点P1和点P2以及点Pa和点Pb确定两个方向fi = Pa-P1, g2 = Pb-P2,新的限制条件为仅 当方向fi和方向f2的夹角α大于一定的阈值,此处阈值设为140°,我们称这个限制为角 度限制。图8b显示了由点P1和点P2以及点Pa和点Pb确定的两个方向形成的角度限制。在获得了区域合并过程中的参考量和限制条件后,我们对分组进行区域合并,这 里我们首先计算任意两个近邻组之间的夹角并且将夹角存储在一张角度表中,从角度表中 寻找夹角最小并且满足角度限制的两个组进行合并。形成的新组的组方向被重新计算,角 度表格被更新。重复上面的过程指导组之间的夹角大于设定的阈值,此处阈值设定为22°。我们用不同的颜色表示不同的分组,结合点云数据显示出来。图9展示了经过区 域合并后的分割结果。5、计算树枝的主枝的骨架点和对应半径首先在属于每个树枝的点云分组中任选一点ρ作为根点,之后以P作为坐标原点, 以该点云分组的组方向作为ζ轴,以与ζ轴垂直平面上任意两个正交方向为χ轴和y轴建立 局部坐标系,将分组内的点按照其在局部坐标系内的ζ值进行进一步分离成若干小分组, 我们称每一个小分组为一个点云片。以各点云片中的所有点的空间位置的算术平均值作为 树枝的主枝的骨架点,以各点云片中的所有点到骨架点的欧氏距离的算术平均值作为树枝 的主枝的骨架点对应的半径。图10是局部坐标系的建立方式,图11是各树枝的点云沿轴 向进一步分割的结果,图12是求取的树枝的主枝的骨架点。6、利用树叶部分的点云引导生长树枝的细枝我们的思路为模拟树枝的细枝从树枝的主枝上长出的过程,我们通过控制树枝的 主枝长出树枝的细枝的位置、树枝的细枝与树枝的主枝的分叉角度,树枝的细枝的长度来 控制树冠的形状。生长过程中,属于树叶的点云被用于引导树枝的细枝。整个生长过程靠 设定的参数实现控制,不需要其他的手工交互。相邻树枝之间的夹角的分布情况是树木的主要特征之一,我们为了使生长的树枝 的细枝保持模型本身的生物特征,在树枝的生长过程中我们保证树枝的细枝与父枝的夹角 与相互连接的树枝的主枝之间的夹角具有相同的分布规律。首先计算相互连接的树枝的主枝的夹角。角度α为其中最小的夹角,角度β为 最大的夹角,记树枝的主枝的夹角所在的区间为η = [α,β],将Il划分为若干小角度区 间 Jlci= [α,ε ],Il1 = [ α + ε,α +2 ε ],· · ·,ηη = [ α +n ε,β ],记区间集合 X = { η0, H1, ...,nj, ε为角度,设置为5°,n是整数,为(β-α)/ε的整数部分,用概率θχ(χ = 0,l,...,n)表示角度位于角度区间ηχ(χ = 0,1,...,η)的概率,我们计算每一个概率 θ χ(Χ = 0,1,. . .,n),这些概率被用来指导后面的树枝的细枝的生长过程。
11
树枝的细枝的生长算法以位于树叶上的点云P和之前获得的树枝的主枝的骨架 点作为输入,通过以下步骤生成大量的树枝的细枝。对每个树枝的主枝的骨架点Pi,我们定义骨架Api的吸引点点集为T e p, T = {t。,t1; . . .,tn},其中点集P为属于树叶的点云。点tx(x = {0,1,. . η})满足下列条件点 tx和点Pi的欧氏距离小于一定的阈值Ω,此处Ω被设置为十倍于扫描间距。我们假Spi 的每一个吸引点都可以从点Pi处以朝向点tx的方向牵引出一个树枝的细枝,该树枝的细 枝以点tx为第一个骨架点,试图向前继续生长,我们在点、位置以点tx为下底面中心,以 h为高,以r为半径,以点Pi朝向点tx的方向为轴向构建圆柱S,在我们的粒子中,高h被 设置为10倍于扫描间距,半径r被设置为1. 5倍的扫描间距,当满足下列两个条件的时候, 生成下一个骨架点1、在圆柱S内存在属于树叶上的点云;2、圆柱S内不存在其他已有的 树枝的主枝的骨架点。圆柱S的中心点被作为树枝的细枝生长的下一个骨架点,该过程反 复运行直到不再满足树枝的细枝生长的条件。为模拟植物的形态学特点,我们假设每个树 枝的主枝的骨架点只能生长出最多一个树枝的细枝,而每个骨架点都可能有若干吸引点, 每个吸引点都可以引出一个树枝的细枝完成生长过程,其中只有骨架数量大于一定阈值ξ 的树枝的细枝才会被考虑,在这里ξ阈值被设为4,我们依靠下列规则从被考虑的树枝的 细枝中寻找最合适的一枝进行保留记骨架Api处牵引出的树枝的细枝的列表为Bi= {b0, b1 bn},其中Bi为树枝的细枝的集合,h U = 0,. . .,η}为树枝的细枝。首先计算每 个树枝的细枝与骨架点PiK在的树枝的主枝的夹角,判断该夹角是否位于夹角区间n = [α, β],其中角度α为相互连接的树枝的主枝之间的最小的夹角,角度β为相互连接的 树枝的主枝之间的最大的夹角;如果该夹角位于区间内,找到该夹角在X内所对应的小区 间nx对应的概率θ x,令该树枝的细枝对应的概率Qi = θ χ,如果该夹角不在区间内,令该 树枝的细枝对应的概率θ i = 0,之后计算每个树枝的细枝的骨架点数量IiG = 0,1,..., η);我们通过比较各树枝的细枝对应的权值S i = Ii* θ i来保留各树枝的细枝中对应权值 \最大的一个。反复执行上面的树枝的细枝的生长过程,在第一轮生长中,在树枝的主枝的骨架 点上进行树枝的细枝生长,在后面的步骤中,在上一轮生成的树枝的细枝上进行新的树枝 的细枝的生长,直到没有新的树枝的细枝可以生成。最后所有的树枝的细枝随机弯曲以使
重建结果更加真实。7、三维网格模型的重建与树叶模型的添加树枝的的主枝的骨架点对应的半径从深度图像直接获得,树枝的细枝的骨架点的 半径被简单的设置为其父枝半径的70%,在树枝的细枝的末端添加树叶后,实现了完整的 树木模型重建。图13展示了没有添加树叶的树枝模型,图14展示了完整的重建模型。8、实验结果与结论我们在OpenGL的基础上,用C语言实现了本章介绍的树木点云分割的算法,我们 的实验都是在一台Dual Core 3. 0G,4GB内存,GeForce9600gso,操作系统为Windows XP的 pc机上实现完成。我们在一个树木点云模型上验证了算法,该模型为一棵8米高的油松,为单侧扫 描数据,该模型共有119796个点从实验结果可以看到,虽然重建树枝的细枝的数量不大, 但是仍然完整的保留了树冠的形状,而且树枝的细枝具有跟树枝的主枝相似的生长规律,树枝在分叉处形状准确。本发明的方法的特色和创新在于在点云中依靠二次曲面拟合计算每个点对应的 主曲率方向,按照树枝的形态特征定义判断点位于树枝可能性的轴向分布密度,通过该轴 向分布密度树枝点云与树叶点云被区分开。不同树枝上的点云按照其所对应的主曲率方向 进行区域生长和区域合并,实现不同树枝上点云的分离将各个树枝的点云沿树枝轴向进行 进一步分组,利用分组中心计算树枝的主枝的骨架点,之后在树枝的主枝上生长树枝的细 枝,通过控制树枝的主枝生长树枝的细枝的位置、树枝的细枝与树枝的主枝的分叉角度、树 枝的细枝的长度来控制树冠的形状。与已有算法相比,该算法能够在保持树冠外形的同时 使树冠内树枝的细枝具有与树枝的主枝相同的形态特征。以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任 何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在 本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
一种树木点云数据基于分割和自动生长的三维模型重建方法,其特征在于,该三维模型重建步骤包括步骤S1利用激光扫描仪扫描直接采集树木的扫描点云数据并对点云数据预处理,按照点云数据中每个点的坐标进行空间划分,实现三维空间的数据存储结构称为kd树(k-dimensional tree);步骤S2对于点云数据的每一个点,利用点云数据的kd树查找多个近邻点,根据最小二乘方法把这些点拟合出一个平面,以这个平面的法向量作为点云法向量的初始估计值,利用其法向量、切平面构造局部三维直角坐标系,利用点云数据的kd树查找多个近邻点;利用这些近邻点拟合二次曲面;利用这些近邻点拟合出的二次曲面计算主曲率;步骤S3对于点云数据的每一个点,利用主曲率方向计算轴向分布密度,利用轴向分布密度将属于树枝上的点云与属于树叶上的点云区分;对于属于树枝上的点云,利用主曲率方向进行区域生长,产生过分割的分割结果;对于过分割的树枝上的点云,依照相邻组内的点云数量以及依照分组中所有点云的主曲率方向的平均值所确定的组角度进行区域合并,得到符合树木树枝器官分布的分割结果;步骤S4对于分割得到的属于树枝部分的点云,将每一个树枝的点云沿其组方向进一步分割成较小的点云分组,利用较小的点云分组中心获得树枝的主枝的骨架点和对应的半径;步骤S5统计不同树枝的主枝的骨架之间的夹角分布规律,利用分割得到的属于树叶部分的点云从树枝的主枝的骨架上引导生长树枝的细枝,通过控制树枝的主枝长出树枝的细枝的位置、树枝的细枝的骨架与树枝的主枝的骨架的夹角,树枝的细枝的长度来控制树冠的形状;步骤S6利用各个骨架点和对应的半径建立树木的三维网格模型,在树枝的细枝的末端添加树叶模型完成重建。
2.按权利要求1所述的树木点云数据基于分割和自动生长的三维模型重建方法,其特 征在于,所述沿其组方向进一步分割成较小的点云分组,通过下面方法实现首先在属于每 个树枝的点云分组中任选一点P作为根点,之后以P作为坐标原点,以该点云分组的组方向 作为ζ轴,以与ζ轴垂直平面上任意两个正交方向为χ轴和1轴建立局部坐标系,将分组内 的点按照其在局部坐标系内的ζ值进行进一步分离成若干小分组,称每一个小分组为一个 点云片。
3.按权利要求1所述的树木点云数据基于分割和自动生长的三维模型重建方法,其特 征在于,所述利用较小的点云分组中心获得树枝的主枝的骨架点,其中较小的点云分组中 心是该组中的所有点的空间位置的算术平均值。
4.按权利要求1所述的树木点云数据基于分割和自动生长的三维模型重建方法,其特 征在于,所述统计不同树枝的主枝的骨架之间的夹角分布规律,是通过下述方法进行的,计 算相互连接的树枝的主枝之间的夹角;角度α为其中最小的夹角,角度β为最大的夹角, 记树枝的主枝的夹角所在的区间为η = [α,β],将η划分为若干小角度区间Ilci= [α, ε ],Ii1 = [ α + ε,α +2 ε ],· · ·,ηη = [ α +n ε,β ]记区间集合 X = { η 0, η · · · , η J ; ε为角度,设置为5°,n是整数,为(β-α)/ε的整数部分,用概率θ χ(χ = 0,1,. . .,n) 表示角度位于角度区间ηχ(χ = 0,1,... , n)的概率,计算每一个概率θχ(χ = 0,1,...,η),这些概率被用来指导后面的树枝的细枝的生长过程。
5.按权利要求1所述的树木点云数据基于分割和自动生长的三维模型重建方法,其特 征在于,所述树枝的细枝的长度,通过下述方法确定,对每个树枝的主枝的骨架点Pi,定义 骨架点Pi的吸引点点集为T e P,T = {t0, ti; ... , tn},其中点集P为属于树叶的点云;点 tx(x= {0,1,. .η})满足下列条件点、和点Pi的欧氏距离小于一定的阈值Ω,此处Ω被 设置为十倍于扫描间距;假设Pi的每一个吸引点都能从点Pi处以朝向点tx的方向牵引出 一个树枝的细枝,该树枝的细枝以点、为第一个骨架点,试图向前继续生长,在点、位置以 点tx为下底面中心,以h为高,以r为半径,以点Pi朝向点tx的方向为轴向构建圆柱S,在 粒子中,高h被设置为10倍于扫描间距,半径r被设置为1.5倍的扫描间距,当满足下列两 个条件为在圆柱S内存在属于树叶上的点云和圆柱S内不存在其他已有的树枝的主枝的骨 架点时,生成下一个骨架点;圆柱S的中心点被作为树枝的细枝的生长的下一个骨架点,该 过程反复运行直到不再满足树枝的细枝的生长的条件。
6.按权利要求1所述的树木点云数据基于分割和自动生长的三维模型重建方法,其特 征在于,所述控制树枝的主枝长出树枝的细枝的位置、树枝的细枝的骨架与树枝的主枝的 骨架的夹角,是通过下述方法进行的,为模拟植物的形态学特点,假设每个树枝的主枝的骨 架点只能生长出最多一个树枝的细枝,而每个骨架点都可能有若干吸引点,每个吸引点都 能引出一个树枝的细枝完成生长过程,其中只有骨架数量大于一定阈值ξ的树枝的细枝 才会被考虑,在这里ξ阈值被设为4,依靠下列规则从被考虑的树枝的细枝中寻找最合适 的一个进行保留记骨架点Pi处牵引出的树枝的细枝的列表为Bi = {b0, b1; . . .,bn},其中 Bi为树枝的细枝的集合,h U = 0,. . .,n}为树枝的细枝;首先计算每个树枝的细枝与骨架 点PiK在的树枝的主枝的夹角,判断该夹角是否位于夹角区间η = [α,β],其中角度α 为相互连接的树枝的主枝之间的最小的夹角,角度β为相互连接的树枝的主枝之间的最 大的夹角;如果该夹角位于区间内,找到该夹角在χ内所对应的小区间nx对应的概率θχ, 令该树枝的细枝对应的概率Qi= Θ χ,如果该夹角不在区间内,令该树枝的细枝对应的概 率Qi = 0,之后计算每个树枝的细枝的骨架点数量li(i= 0,1,...,η);通过比较各树枝 的细枝对应的权值δ i = Ii* θ i来保留各树枝的细枝中对应权值δ i最大的一个。
全文摘要
本发明涉及一种树木点云数据基于分割和自动生长的三维模型重建方法步骤包括预处理,点云主曲率估计,通过主曲率进行数据分割,利用分割得到的属于树枝部分的点云计算树枝的主枝的骨架,利用分割得到的属于树叶部分的点云从树枝的主枝的骨架上引导生成树枝的细枝,生成树枝网格模型并在在树枝的细枝的末端添加树叶模型。本发明仅利用激光扫描仪的扫描数据,得到忠实于原始实物的三维重建模型。该方法通过数据分割和树枝的细枝的生长获得树木点云数据的重建模型,算法简单,计算结果准确。其计算结果在虚拟现实、电脑游戏、自然场景模拟、城市景观设计、电影制作、树木3D重建、农林业测量等领域具有重要的应用价值。
文档编号G06T17/00GK101887596SQ20101018829
公开日2010年11月17日 申请日期2010年6月1日 优先权日2010年6月1日
发明者代明睿, 张晓鹏, 李红军 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1