CN105405162B - 基于局部结构和方向感知的树点云三维重建方法 - Google Patents
基于局部结构和方向感知的树点云三维重建方法 Download PDFInfo
- Publication number
- CN105405162B CN105405162B CN201510664854.4A CN201510664854A CN105405162B CN 105405162 B CN105405162 B CN 105405162B CN 201510664854 A CN201510664854 A CN 201510664854A CN 105405162 B CN105405162 B CN 105405162B
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- point
- point cloud
- skeleton
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明实现了基于局部结构和方向感知的树点云三维重建方法,属于空间信息技术领域。考虑到局部结构内树枝方向和点云密度具有连续性的特点,该方法推演出了数据缺失处树枝的连接关系,设计了点云修复的优化方程和迭代过程,利用骨架点云驱使点云数据中的点沿着骨架线方向边收缩边扩散,使得优化后的点云不会产生额外的噪声,不依赖于优化后的点云而采用收缩的骨架继承相邻迭代之间的空间关联,充分保留了原始点云的结构信息。采用植物生长模型计算树骨架上每一节点的半径,根据每个节点的半径,将骨架膨胀成三维树模型。与已有树木三维重建方法相比,该方法更能精确的修复缺失区域的点云,获得更好的建模结果。
Description
一、技术领域
涉及基于局部结构和方向感知的树点云重建方法,属于空间信息技术领域。
二、背景技术
近年来激光雷达技术得到了快速发展,它通过高速激光扫描测量,高精度的快速获取大面积被测对象表面的三维坐标数据,成为快速获取精细的、大规模三维城市场景数据的重要手段。地面激光雷达是一种非破坏性的高分辨率三维测量手段,可弥补现有观测手段的不足,实现植被等几何结构参数的自动获取,为重建树木的三维真实结构提供了可能。
由于测量条件的限制导致测量数据经常存在较高噪声,同时周围场景地物的复杂性也决定了测量过程中的遮挡不可避免,所以测量得到的数据通常是不完整的,存在部分点云缺失,再加上,树木一般具有复杂的三维结构、拓扑关系和丰富的细节,这就决定了基于单方向扫描的地面激光雷达树木点云的重建具有极大的挑战性,有许多关键技术问题需要解决。
在数据缺失区域的点云修复和枝干结构连接方式上,预先无法确定树枝相互间的连接关系是否正确,传统的树木建模方法通常使云中的每点向着树枝两端运动,进行数据修复,造成树的骨架几何拓扑关联产生较大畸变。事实上,树枝之间在局部结构上存在一定的规律性,在树点云三维重建中,可以借助树的局部结构表达树枝的延伸和逻辑关系,基于此,申请人给出了一种能描述树枝的角度以及每段树枝点密度的树枝局部结构的表达方法,让每段树枝局部结构点云中的点沿着主方向向该树枝两端移动,由缺失处两端点云共同负责其修复,并且点的移动方式是依据局部结构中点云的分布,不受周围其它树枝点云是否缺失的影响,所以减少了周围点云噪声、点密度不均一或点云缺失对该树枝提取的影响,极大提高了树三维重建的精度。提出的方法在植被遥感、林业调查、数字城市等方面具有广阔的应用前景。
三、发明内容
1、目的:树木作为自然界中最普遍存在的景观之一,构造其三维模型已成为现实世界三维数字化工作中不可或缺的一部分。由于树木普遍具有复杂的几何形状和拓扑形态,构建树木三维模型一直以来具有很大的挑战性,尤其是重建真实的三维树木模型。申请人基于局部结构内树枝方向和点云密度具有连续性的特点,推演出缺失处树枝的连接关系,设计了点云修复的优化方程和迭代过程,充分保留了原始点云的结构信息,获得了精确的三维建模结果,满足树木三维建模在植被遥感、林业调查、数字城市等方面的需求。
2、技术方案:
基于局部结构和方向感知的树点云重建方法,其特征在于,包括如下步骤:
步骤一:初步提取树的骨架
用K最邻近结点算法将树点云中每个点与其周围的k个点连接起来形成一个权重图G (V,E),V表示顶点集合,E表示边的集合。G中各个联通分量之间最近的两个点依次连接起来,以此提取初始树骨架、每一点的主方向以及每一段树枝上包含的点。
步骤二:树点云收缩形成点云骨架,获取骨架上点的主方向
由于树木点云中部分区域往往存在着数据缺失,所以会造成权重图G构建的树骨架在这些区域存在着错误的连接关系,但是在没有数据缺失的区域里,树枝连接方式还是相似于真实的树枝形状,利用这些正确的树枝连接方式对数据缺失区域的枝干进行修复。基于已有的骨架以及原始点云中每一点的主方向,采用拉普拉斯算法对点云收缩,形成骨架点云,减弱原始点对树枝方向的干扰。为了确保收缩后的点云真实反映原始骨架,点云应向着已知的骨架进行收缩,并且收缩到骨架线上。采用的拉普拉斯算子如方程(1)所示。
在(1)式中,Lij是拉普拉斯算子L的一个元素,ωij是一个变量,点i、j、k分别是树上的三个点,θ是i点与其在骨架线段上投影的连线和边d(i,j)的夹角,d(i,j)是点i、j之间的欧式距离,E是边的集合。
Wij中加入tgθ后,点云中的点会朝着骨架线的方向进行收缩。求解拉普拉斯方程(2),获得收缩后的骨架点云。
在(2)式中,WL和WH是对角矩阵,WL控制平滑的程度,WH控制和原始点相似的程度,WL中第i个对角元素的值定义成WL,i,WH中第i个对角元素的值定义成WH,i。V’是收缩后的点云,V是原始的点云。
点云收缩以后,尖端的树枝结构也会收缩消失,所以需要增加尖端的权重。因为尖端的点突出于周围的点,使得尖端点和周围点的夹角比较小,而非尖端的点和周围点的夹角会比尖端点大。基于这个原因,WL的值由下式(3)定义。
在(3)式中,θ2是边d(i,j)和i点主方向的夹角,Ωi是与E中点i相邻点的集合。
经过拉普拉斯方程收缩后,骨架点云和骨架的连接方式非常相似,并且数据缺失区域没有点,保证了骨架点云不会添加入额外的噪声。
步骤三:基于树局部结构的点密度的修复
虽然骨架点云提供了良好的方向特性,但是通过骨架上每一段包含的点数量来确定点密度并不准确。这一步设计局部结构,利用树本身存在的重复性结构对点密度进行估算,获得更加精确的点密度。初始点密度由初始骨架获得,表示一段骨架之间包含的点云数量。首先定义和描述树木的局部结构,使得该结构尽可能真实的表达不同形态局部树枝空间几何拓扑关系;接下去,采用稀疏编码学习和重建该局部结构,实现点密度的修复,使得点密度更加精确,以此进行精确点云修复。
通过有向树结构描述一棵树的骨架,树形结构上每一条边的方向表示枝条方向。有向树一条边的两端点中,靠近根节点的端点称之为前向点,远离根节点的端点作为后向点,该边的方向是从前向点指向后向点,骨架上每一条边与其首尾相连的边作为该边的局部结构。定义了边的局部结构后,就需要表达每一个局部结构的特征,过程如下:
(1)树枝之间的角度具有一定的规律性,这些角度用来作为局部结构的特征。
计算每个局部结构中衔接边与所有承接边之间的夹角。因为夹角在0-180°之间,所以每10°作为一个采样间隔,相邻两个采样间隔围成一个区域,在每个间隔记录夹角所对应区域的边,通过这种方法构造这个局部结构的特征向量。为了统计每个树枝局部结构前向和后向的树枝分布,需要区分前向和后向的树枝,分开进行编码记录。这个特征向量是一个36维的向量,前18维存储了前向的承接边和衔接边的关系,后18维存储了后向的承接边和衔接边的关系。
(2)一个局部结构的向量除了记录角度关系外,也记录与树枝半径相关的信息,而在点云中相关量为局部点密度,每一维中记录这个方向间隔中所有枝的平均点数量。
这样一个局部结构就被编码成一个特征向量,通过这个特征向量来描述该特征。此特征向量跟该结构衔接边树枝的角度及其旋转是无关的,可以描述树上不同方向以及不同旋转过后的局部结构。
由于获得了树上每一条边对应的局部结构,通过这些局部结构训练计算过冗余字典。为了让字典结果稳定,连接叶节点以及根节点的边,即前18个向量或者后18个向量均为0的特征向量,不进行字典训练,采用k-SVD方法从这些向量中获得自适应过冗余字典。
获得过冗余字典以后,任意的一个局部结构的特征向量α1,可以被过冗余字典重构获得一个新的特征向量α2,用α2中对应的值代替α1中的值,作为重建后的点密度。为了让点密度具有连续性和减少初始点归属的影响,在进行稀疏字典训练和重建前,采用拉普拉斯算法平滑点密度。
步骤四:修复缺失的树点云
把上一步收缩得到的点云和原始的点云合并起来,形成一个新的点云P。为了防止点云修复过程中造成点的扩散,每一点在沿着主方向运动的同时,沿着轴向进行收缩。最小化下式(4)和(5),对缺失点云进行修复。
如果点i不在骨架上,
如果该点在骨架上,
Oi是点i的主方向,Ui是原始点云中i点的位置,Pi、Pj分别表示优化后点i、j的坐标,Psi表示收缩后的点在优化点云中的坐标,ρj表示点j的点密度,λ表示向着轴向和原始点收缩的系数,φ表示向着轴向收缩和向着原始点收缩的比例。力是从点j指向点i的,所以力的大小和j处的点密度有关,ρmax表示点i周围点最大的那个点密度。采用ρmax后会压制点密度小处的点运动,防止了末端点的扩散,并且鼓励点密度高处的点运动。在优化中加入了骨架点云,使每一个点在优化过程中沿着骨架点云进行运动,可以达到轴向收缩的效果。在优化过程中,骨架上的点较为密集,这些点在优化后延伸较大,通过这些点再拉动与其对应的原始点云,会让整个点云沿着各自的骨架线方向进行扩散,完成点云的修复过程。
为了防止点云沿着骨架方向收缩过大或者沿着不正确的骨架方向移动,在优化过程中控制点云移动的步长,每次只移动一小段,迭代进行修复和重建过程,直到获得良好的树模型,所以点云缺失的修复需要迭代进行。由于骨架点云是从点云沿着骨架线的收缩得到的,用以描述树木主要结构的骨架点云保留了大量的原始点云位置和结构信息,充分利用骨架点云的这个特点设计了迭代过程。
(1)当点云经过一次修复后,把原始输入点云、上一步的骨架点云叠加到优化后的点云上,形成新的树木点云。
(2)利用前一步获得的树骨架,对优化后的点云进行收缩,得到新的骨架点云。
(3)把第(2)步产生的骨架点云、原始点云叠加起来,获得这些点的连接关系,进行点云修复。修复后的点云包括了两部分:一部分是骨架点云运动后的点集,另一部分是原始点云运动后的点集。
(4)依据第(3)步获得的连接关系,对原始点云运动后的点进行收缩,得到新的骨架点云。
由第(3)步得到的连接关系可获得第(2)步骨架点云中存在的边e1,即e1的两端点连接的是第(2)步骨架点的边,计算e1的两个端点和这一步骨架点以及原始点中任两点的距离之和,搜索距离最邻近的两个点,这两个点形成边e2,将边e2的权重we2变成下式(6)。
we2=we2(1-cosθ3/(de1/de2+de2/de1)) (6)
在(6)式中,de1是边e1在边e2上的投影长度,de2是边e2的长度,we2是边e2的权重,θ3是边e1和e2之间的夹角。
(5)当修改完所有相关边的权重后,提取新骨架,然后转到第(2)步,比较相邻两次迭代的骨架点云末端点的移动情况,当所有末端点的运动小于阈值δ时,整个迭代结束。
步骤五:重建树的三维模型
当获得树骨架以后,采用植物生长模型计算每一个节点的半径,根据每个节点的半径,将骨架膨胀成三维树模型。
3、优点及功效:提出了树局部结构平滑点云密度的方法,基于点云密度和点的主方向,设计了数据缺失区域点云修复的优化方程和迭代过程,利用骨架点云驱使点云中的点沿着骨架线方向边收缩边扩散,使得优化后的点云不会产生额外的噪声,不依赖于优化后的点云而采用收缩的骨架继承相邻迭代之间的几何拓扑关联关系,充分保留了原始点云的结构信息。采用植物生长模型计算树骨架上每一节点的半径,根据每个节点的半径,将骨架膨胀成三维树模型。与已有树三维重建方法相比,提出的方法能更精确的修复缺失区域的点云,获得精确的三维建模结果。
四、附图说明
图1方法的流程示意图
图2存在自遮挡的树点云建模
图2(a)原始点云
图2(b)数据修复后的点云
图2(c)重建的三维树模型。
图3存在较大数据缺失的树点云建模
图3(a)原始点云
图3(b)数据修复后的点云
图3(c)重建的三维树模型。
图4树冠处点较为密集的多棵树的三维重建
图4(a)原始点云
图4(b)数据修复后的点云
图4(c)重建的三维树模型
图5手工删去部分点后的树建模和原始点云建模结果的比较
图5(a)原始树点云
图5(b)原始树点云的三维建模结果
图5(c)手工删除一部分点后的点云数据
图5(d)数据修复后的树点云
图5(e)数据缺失修复后树点云的三维建模结果。
五、具体实施方式
基于局部结构和方向感知的树点云重建方法,其特征在于,包括如下步骤:
步骤一:初步提取树的骨架
用K最邻近结点算法将树点云中每个点与其周围的k个点连接起来形成一个权重图G (V,E),V表示顶点集合,E表示边的集合。G中各个联通分量之间最近的两个点依次连接起来,以此提取初始树骨架、每一点的主方向以及每一段树枝上包含的点。
步骤二:树点云收缩形成点云骨架,获取骨架上点的主方向
由于树木点云中部分区域往往存在着数据缺失,所以会造成权重图G构建的树骨架在这些区域存在着错误的连接关系,但是在没有数据缺失的区域里,树枝连接方式还是相似于真实的树枝形状,利用这些正确的树枝连接方式对数据缺失区域的枝干进行修复。基于已有的骨架以及原始点云中每一点的主方向,采用拉普拉斯算法对点云收缩,形成骨架点云,减弱原始点对树枝方向的干扰。为了确保收缩后的点云真实反映原始骨架,点云应向着已知的骨架进行收缩,并且收缩到骨架线上。采用的拉普拉斯算子如方程(1)所示。
在(1)式中,Lij是拉普拉斯算子L的一个元素,ωij是一个变量,点i、j、k分别是树上的三个点,θ是i点与其在骨架线段上投影的连线和边d(i,j)的夹角,d(i,j)是点i、j之间的欧式距离,E是边的集合。
Wij中加入tgθ后,点云中的点会朝着骨架线的方向进行收缩。求解拉普拉斯方程(2),获得收缩后的骨架点云。
在(2)式中,WL和WH是对角矩阵,WL控制平滑的程度,WH控制和原始点相似的程度,WL中第i个对角元素的的值定义成WL,i,WH中第i个对角元素的值定义成WH,i。V’是收缩后的点云,V是原始的点云。
点云收缩以后,尖端的树枝结构也会收缩消失,所以需要增加尖端的权重。因为尖端的点突出于周围的点,使得尖端点和周围点的夹角比较小,而非尖端的点和周围点的夹角会比尖端点大。基于这个原因,WL的值由下式(3)定义。
在(3)式中,θ2是边d(i,j)和i点主方向的夹角,Ωi是与E中点i相邻点的集合。
经过拉普拉斯方程收缩后,骨架点云和骨架的连接方式非常相似,并且数据缺失区域没有点,保证了骨架点云不会添加入额外的噪声。
步骤三:基于树局部结构的点密度的修复
虽然骨架点云提供了良好的方向特性,但是通过骨架上每一段包含的点数量来确定点密度并不准确。这一步设计局部结构,利用树本身存在的重复性结构对点密度进行估算,获得更加精确的点密度。初始点密度由初始骨架获得,表示一段骨架之间包含的点云数量。首先定义和描述树木的局部结构,使得该结构尽可能真实的表达不同形态局部树枝空间几何拓扑关系;接下去,采用稀疏编码学习和重建该局部结构,实现点密度的修复,使得点密度更加精确,以此进行精确点云修复。
通过有向树结构描述一棵树的骨架,树形结构上每一条边的方向表示枝条方向。有向树一条边的两端点中,靠近根节点的端点称之为前向点,远离根节点的端点作为后向点,该边的方向是从前向点指向后向点,骨架上每一条边与其首尾相连的边作为该边的局部结构。定义了边的局部结构后,就需要表达每一个局部结构的特征,过程如下:
(1)树枝之间的角度具有一定的规律性,这些角度用来作为局部结构的特征。
计算每个局部结构中衔接边与所有承接边之间的夹角。因为夹角在0-180°之间,所以每10°作为一个采样间隔,相邻两个采样间隔围成一个区域,在每个间隔记录夹角所对应区域的边,通过这种方法构造这个局部结构的特征向量。为了统计每个树枝局部结构前向和后向的树枝分布,需要区分前向和后向的树枝,分开进行编码记录。这个特征向量是一个36维的向量,前18维存储了前向的承接边和衔接边的关系,后18维存储了后向的承接边和衔接边的关系。
(2)一个局部结构的向量除了记录角度关系外,也记录与树枝半径相关的信息,而在点云中相关量为局部点密度,每一维中记录这个方向间隔中所有枝的平均点数量。
这样一个局部结构就被编码成一个特征向量,通过这个特征向量来描述该特征。此特征向量跟该结构衔接边树枝的角度及其旋转是无关的,可以描述树上不同方向以及不同旋转过后的局部结构。
由于获得了树上每一条边对应的局部结构,通过这些局部结构训练计算过冗余字典。为了让字典结果稳定,连接叶节点以及根节点的边,即前18个向量或者后18个向量均为0的特征向量,不进行字典训练,采用k-SVD方法从这些向量中获得自适应过冗余字典。
获得过冗余字典以后,任意的一个局部结构的特征向量α1,可以被过冗余字典重构获得一个新的特征向量α2,用α2中对应的值代替α1中的值,作为重建后的点密度。为了让点密度具有连续性和减少初始点归属的影响,在进行稀疏字典训练和重建前,采用拉普拉斯算法平滑点密度。
步骤四:修复缺失的树点云
把上一步收缩得到的点云和原始的点云合并起来,形成一个新的点云P。为了防止点云修复过程中造成点的扩散,每一点在沿着主方向运动的同时,沿着轴向进行收缩。最小化下式(4)和(5),对缺失点云进行修复。
如果点i不在骨架上,
如果该点在骨架上,
Oi是点i的主方向,Ui是原始点云中i点的位置,Pi、Pj分别表示优化后点i、j的坐标,Psi表示收缩后的点在优化点云中的坐标,ρj表示点j的点密度,λ表示向着轴向和原始点收缩的系数,φ表示向着轴向收缩和向着原始点收缩的比例。力是从点j指向点i的,所以力的大小和j处的点密度有关,ρmax表示点i周围点最大的那个点密度。采用ρmax后会压制点密度小处的点运动,防止了末端点的扩散,并且鼓励点密度高处的点运动。在优化中加入了骨架点云,使每一个点在优化过程中沿着骨架点云进行运动,可以达到轴向收缩的效果。在优化过程中,骨架上的点较为密集,这些点在优化后延伸较大,通过这些点再拉动与其对应的原始点云,会让整个点云沿着各自的骨架线方向进行扩散,完成点云的修复过程。
为了防止点云沿着骨架方向收缩过大或者沿着不正确的骨架方向移动,在优化过程中控制点云移动的步长,每次只移动一小段,迭代进行修复和重建过程,直到获得良好的树模型,所以点云缺失的修复需要迭代进行。由于骨架点云是从点云沿着骨架线的收缩得到的,用以描述树木主要结构的骨架点云保留了大量的原始点云位置和结构信息,充分利用骨架点云的这个特点设计了迭代过程。
(1)当点云经过一次修复后,把原始输入点云、上一步的骨架点云叠加到优化后的点云上,形成新的树木点云。
(2)利用前一步获得的树骨架,对优化后的点云进行收缩,得到新的骨架点云。
(3)把第(2)步产生的骨架点云、原始点云叠加起来,获得这些点的连接关系,进行点云修复。修复后的点云包括了两部分:一部分是骨架点云运动后的点集,另一部分是原始点云运动后的点集。
(4)依据第(3)步获得的连接关系,对原始点云运动后的点进行收缩,得到新的骨架点云。
由第(3)步得到的连接关系可获得第(2)步骨架点云中存在的边e1,即e1的两端点连接的是第(2)步骨架点的边,计算e1的两个端点和这一步骨架点以及原始点中任两点的距离之和,搜索距离最邻近的两个点,这两个点形成边e2,将边e2的权重we2变成下式(6)。
we2=we2(1-cosθ3/(de1/de2+de2/de1)) (6)
在(6)式中,de1是边e1在边e2上的投影长度,de2是边e2的长度,we2是边e2的权重,θ3是边e1和e2之间的夹角。
(5)当修改完所有相关边的权重后,提取新骨架,然后转到第(2)步,比较相邻两次迭代的骨架点云末端点的移动情况,当所有末端点的运动小于阈值δ时,整个迭代结束。
步骤五:重建树的三维模型
当获得树骨架以后,采用植物生长模型计算每一个节点的半径,根据每个节点的半径,将骨架膨胀成三维树模型。
实施例1:
采用RIEGL LMS-Z620地面激光雷达扫描仪单站式扫描获得树点云,扫描时的垂直分辨率和水平分辨率都是0.057°,场景树木距离扫描仪的距离远近不同,远处的树被前面的地物遮挡,造成数据缺失和点密度不均一。在一台Inter Core(TM)i7-4790 3.6GHZ、内存4GB的计算机上对上述树点云进行三维建模。
图2(a)是距离扫描仪较近的一棵树的点云数据,树的点密度较高,但是树冠部分树枝较多且细长,自遮挡造成了局部区域点密度的跳变,并且背向扫描仪的一面点云极为稀疏。图2(b)是对原始点云修复后的新点云数据,从该数据中重建了该树的三维模型(图2c)。从图2(c)可以看出,重建后的树干形状得到较好的保持,没有受到自遮挡的影响。
如图3(a)给出了数据缺失严重的树点云。红框内树枝点云缺失了,这棵树距离扫描仪较远,整棵树的点密度不高。因为迭代的进行修复,收缩得到骨架点云,很好的保持了原始点云中较明显的主干结构,点云修复后(图3b)可以实现较好的建模结果(图3c)。
图4(a)是相互间距离较近的三棵树点云,由于每颗树冠覆盖面积较大,所以在树冠部分处点云数据相互重叠,并且树冠处点较为密集,因为扫描仪前面地物以及自身相互遮挡,造成树冠具有条带状的缺失区域。采用提出的方法,数据缺失区域的点云能够较好的恢复(图4b),重建后的三维树模型的树枝形状保持的十分完好(图4c)。
图5(b)是基于图5(a)所示的完整树点云的三维重建结果,在图5(a)的红框中树枝延伸和彼此间的连接关系较为复杂,为了验证申请人的方法,申请人删除了红框内的点(如图5c),通过点云修复最终得到了图5(d)所示的点云,红框区域处的数据得到了较好的修复,图5(e)是利用该点云数据重建的三维模型,两种数据的建模结果具有很好的相似性。
Claims (1)
1.基于局部结构和方向感知的树点云重建方法,其特征在于,包括如下步骤:
步骤一:初步提取树的骨架
用K最邻近结点算法将树点云中每个点与其周围的k个点连接起来形成一个权重图G(V,E),V表示顶点集合,E表示边的集合,G中各个联通分量之间最近的两个点依次连接起来,以此提取初始树骨架、每一点的主方向以及每一段树枝上包含的点;
步骤二:树点云收缩形成点云骨架,获取骨架上点的主方向
基于已有的骨架以及原始点云中每一点的主方向,采用拉普拉斯算法对点云收缩,形成骨架点云;点云向着已知的骨架进行收缩,并且收缩到骨架线上,采用的拉普拉斯算子如方程(1)所示:
<mrow>
<msub>
<mi>L</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mi>d</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>&times;</mo>
<mi>t</mi>
<mi>g</mi>
<mi>&theta;</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
<mo>&Element;</mo>
<mi>E</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>,</mo>
<mi>k</mi>
<mo>)</mo>
<mo>&Element;</mo>
<mi>E</mi>
</mrow>
<mi>k</mi>
</msubsup>
<mo>-</mo>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mi> </mi>
<mi>i</mi>
<mo>=</mo>
<mi>j</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>o</mi>
<mi>t</mi>
<mi>h</mi>
<mi>e</mi>
<mi>r</mi>
<mi>w</mi>
<mi>i</mi>
<mi>s</mi>
<mi>e</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
在方程(1)中,Lij是拉普拉斯算子L的一个元素,ωij是一个变量,点i、j、k分别是树上的三个点,θ是i点与其在骨架线段上投影的连线和边d(i,j)的夹角,d(i,j)是点i、j之间的欧式距离,E是边的集合;
Wij中加入tgθ后,点云中的点会朝着骨架线的方向进行收缩;求解拉普拉斯方程(2),获得收缩后的骨架点云;
<mrow>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>W</mi>
<mi>L</mi>
</msub>
<mi>L</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>W</mi>
<mi>H</mi>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
<msup>
<mi>V</mi>
<mo>&prime;</mo>
</msup>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>W</mi>
<mi>H</mi>
</msub>
<mi>V</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
在方程(2)中,WL和WH是对角矩阵,WL控制平滑的程度,WH控制和原始点相似的程度;WL中第i个对角元素的的值定义成WL,i;WH中第i个对角元素的值定义成WH,i;V’是收缩后的点云,V是原始的点云;
WL的值由下式(3)定义;
<mrow>
<msub>
<mi>W</mi>
<mrow>
<mi>L</mi>
<mo>,</mo>
<mi>i</mi>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>&Sigma;</mi>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<msub>
<mi>&Omega;</mi>
<mi>i</mi>
</msub>
</mrow>
</msub>
<msub>
<mi>sin&theta;</mi>
<mn>2</mn>
</msub>
<mo>&times;</mo>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mi>d</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>/</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<msub>
<mi>&Omega;</mi>
<mi>i</mi>
</msub>
</mrow>
</munder>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mi>d</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
在方程(3)中,θ2是边d(i,j)和i点主方向的夹角,Ωi是与E中点i相邻点的集合;步骤三:基于树局部结构的点密度的修复
通过有向树结构描述一棵树的骨架,树形结构上每一条边的方向表示枝条方向;有向树一条边的两端点中,靠近根节点的端点称之为前向点,远离根节点的端点作为后向点,该边的方向是从前向点指向后向点;骨架上每一条边与其首尾相连的边作为该边的局部结构,表达每一个局部结构的特征,过程如下:
(1)树枝之间的角度具有一定的规律性,这些角度用来作为局部结构的特征;
计算每个局部结构中衔接边与所有承接边之间的夹角,每10°作为一个采样间隔,相邻两个采样间隔围成一个区域,在每个间隔记录夹角所对应区域的边,通过这种方法构造这个局部结构的特征向量;为了统计每个树枝局部结构前向和后向的树枝分布,需要区分前向和后向的树枝,分开进行编码记录;这个特征向量是一个36维的向量,前18维存储了前向的承接边和衔接边的关系,后18维存储了后向的承接边和衔接边的关系;
(2)一个局部结构的向量除了记录角度关系外,也记录与树枝半径相关的信息,而在点云中相关量为局部点密度,每一维中记录这个方向间隔中所有枝的平均点数量;
这样一个局部结构就被编码成一个特征向量,通过这个特征向量来描述该特征,采用k-SVD方法从这些向量中获得自适应过冗余字典;获得过冗余字典以后,任意的一个局部结构的特征向量α1,可以被过冗余字典重构获得一个新的特征向量α2,用α2中对应的值代替α1中的值,在进行稀疏字典训练和重建前,采用拉普拉斯算法平滑点密度;
步骤四:修复缺失的树点云
把步骤三收缩得到的点云和原始的点云合并起来,形成一个新的点云P;为了防止点云修复过程中造成点的扩散,每一点在沿着主方向运动的同时,沿着轴向进行收缩;最小化下式(4)和(5),对缺失点云进行修复;
如果点i不在骨架上,
<mrow>
<mo>|</mo>
<mo>|</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<msub>
<mi>&Omega;</mi>
<mi>i</mi>
</msub>
</mrow>
</munder>
<msup>
<msub>
<mi>O</mi>
<mi>i</mi>
</msub>
<mi>T</mi>
</msup>
<mo>&times;</mo>
<mfrac>
<mrow>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
</mrow>
<mrow>
<mo>|</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</mfrac>
<mo>&times;</mo>
<msub>
<mi>O</mi>
<mi>i</mi>
</msub>
<mo>&times;</mo>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mo>|</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</msup>
<mo>&times;</mo>
<msub>
<mi>&rho;</mi>
<mi>j</mi>
</msub>
<mo>/</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<msub>
<mi>&Omega;</mi>
<mi>i</mi>
</msub>
</mrow>
</munder>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mo>|</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</msup>
<mo>+</mo>
<mi>&lambda;</mi>
<mo>&times;</mo>
<msub>
<mi>&rho;</mi>
<mi>max</mi>
</msub>
<mrow>
<mo>(</mo>
<mo>(</mo>
<mrow>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>+</mo>
<mi>&phi;</mi>
<mo>&times;</mo>
<mo>(</mo>
<mrow>
<msub>
<mi>P</mi>
<mrow>
<mi>s</mi>
<mi>i</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
</mrow>
<mo>)</mo>
<mo>)</mo>
</mrow>
<mo>|</mo>
<msup>
<mo>|</mo>
<mn>2</mn>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
如果该点在骨架上,
<mrow>
<mo>|</mo>
<mo>|</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>i</mi>
<mo>&Element;</mo>
<mi>&Omega;</mi>
</mrow>
</munder>
<msup>
<msub>
<mi>O</mi>
<mi>i</mi>
</msub>
<mi>T</mi>
</msup>
<mo>&times;</mo>
<mfrac>
<mrow>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
</mrow>
<mrow>
<mo>|</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</mfrac>
<mo>&times;</mo>
<msub>
<mi>O</mi>
<mi>i</mi>
</msub>
<mo>&times;</mo>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mo>|</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</msup>
<mo>/</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>j</mi>
<mo>&Element;</mo>
<msub>
<mi>&Omega;</mi>
<mi>i</mi>
</msub>
</mrow>
</munder>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<mo>|</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</msup>
<mo>+</mo>
<mi>&lambda;</mi>
<mo>&times;</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>U</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>|</mo>
<msup>
<mo>|</mo>
<mn>2</mn>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
Oi是点i的主方向,Ui是原始点云中i点的位置,Pi、Pj分别表示优化后点i、j的坐标,Psi表示收缩后的点在优化点云中的坐标,ρj表示点j的点密度,ρmax表示点i周围点最大的那个点密度;λ表示向着轴向和原始点收缩的系数,φ表示向着轴向收缩和向着原始点收缩的比例;
在优化过程中控制点云移动的步长,每次只移动一小段,迭代进行修复和重建过程,直到获得良好的树模型,充分利用骨架点云的这个特点设计了迭代过程:
(1)当点云经过一次修复后,把原始输入点云、上一步的骨架点云叠加到优化后的点云上,形成新的树木点云;
(2)利用前一步获得的树骨架,对优化后的点云进行收缩,得到新的骨架点云;
(3)把第(2)步产生的骨架点云、原始点云叠加起来,获得这些点的连接关系;
(4)依据第(3)步获得的连接关系,对原始点云运动后的点进行收缩,得到新的骨架点云;
从第(3)步得到的连接关系中,可获得第(2)步骨架点云中存在的边e1,计算e1的两个端点和这一步骨架点以及原始点中任两点的距离之和,搜索距离最邻近的两个点,这两个点形成边e2,将边e2的权重we2变成下式(6);
we2=we2(1-cosθ3/(de1/de2+de2/de1)) (6)
在方程(6)中,de1是边e1在边e2上的投影长度,de2是边e2的长度,we2是边e2的权重,θ3是边e1和e2之间的夹角;
(5)当修改完所有相关边的权重后,提取新骨架,然后转到第(2)步;当所有末端点的运动小于阈值δ时,整个迭代结束;
步骤五:重建树的三维模型
当获得树骨架以后,采用植物生长模型计算每一个节点的半径,根据每个节点的半径,将骨架膨胀成三维树模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510664854.4A CN105405162B (zh) | 2015-10-16 | 2015-10-16 | 基于局部结构和方向感知的树点云三维重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510664854.4A CN105405162B (zh) | 2015-10-16 | 2015-10-16 | 基于局部结构和方向感知的树点云三维重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105405162A CN105405162A (zh) | 2016-03-16 |
CN105405162B true CN105405162B (zh) | 2017-12-05 |
Family
ID=55470627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510664854.4A Expired - Fee Related CN105405162B (zh) | 2015-10-16 | 2015-10-16 | 基于局部结构和方向感知的树点云三维重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105405162B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485676B (zh) * | 2016-09-29 | 2019-10-11 | 天津大学 | 一种基于稀疏编码的LiDAR点云数据修复方法 |
CN108198145B (zh) * | 2017-12-29 | 2020-08-28 | 百度在线网络技术(北京)有限公司 | 用于点云数据修复的方法和装置 |
CN109285217B (zh) * | 2018-09-10 | 2021-01-29 | 中国科学院自动化研究所 | 基于多视角图像的过程式植物模型重建方法 |
CN109829941B (zh) * | 2019-01-04 | 2021-02-19 | 华南农业大学 | 一种基于中心线提取的植物根系三维构型测量方法 |
CN109872394B (zh) * | 2019-01-10 | 2021-04-27 | 重庆大学 | 基于最小二乘支持向量机的狭长三角形网格优化方法 |
CN109934928B (zh) * | 2019-03-18 | 2023-04-14 | 江西博微新技术有限公司 | 基于骨架化的三维模型简化方法 |
CN110827391B (zh) * | 2019-11-12 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN112712509B (zh) * | 2020-12-31 | 2023-09-01 | 重庆大学 | 基于点云的树木参数获取方法、生长评估方法、装置及系统 |
WO2022096944A1 (en) * | 2021-04-15 | 2022-05-12 | Sensetime International Pte. Ltd. | Method and apparatus for point cloud completion, network training method and apparatus, device, and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008063510A1 (en) * | 2006-11-13 | 2008-05-29 | Siemens Medical Solutions Usa, Inc. | Generalized rigid alignment of 3d ear impression models |
CN102163342A (zh) * | 2011-04-07 | 2011-08-24 | 北京农业信息技术研究中心 | 基于多尺度测量数据的果树形态结构三维重建方法 |
CN102682475A (zh) * | 2012-05-11 | 2012-09-19 | 北京师范大学 | 一种基于地面激光雷达点云数据自适应构建三维树木骨架的方法 |
CN103065352A (zh) * | 2012-12-20 | 2013-04-24 | 北京农业信息技术研究中心 | 一种基于图像和扫描数据的植株三维重建方法 |
CN103268631A (zh) * | 2013-05-23 | 2013-08-28 | 中国科学院深圳先进技术研究院 | 点云骨架提取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289802B2 (en) * | 2010-12-27 | 2019-05-14 | The Board Of Trustees Of The Leland Stanford Junior University | Spanning-tree progression analysis of density-normalized events (SPADE) |
-
2015
- 2015-10-16 CN CN201510664854.4A patent/CN105405162B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008063510A1 (en) * | 2006-11-13 | 2008-05-29 | Siemens Medical Solutions Usa, Inc. | Generalized rigid alignment of 3d ear impression models |
CN102163342A (zh) * | 2011-04-07 | 2011-08-24 | 北京农业信息技术研究中心 | 基于多尺度测量数据的果树形态结构三维重建方法 |
CN102682475A (zh) * | 2012-05-11 | 2012-09-19 | 北京师范大学 | 一种基于地面激光雷达点云数据自适应构建三维树木骨架的方法 |
CN103065352A (zh) * | 2012-12-20 | 2013-04-24 | 北京农业信息技术研究中心 | 一种基于图像和扫描数据的植株三维重建方法 |
CN103268631A (zh) * | 2013-05-23 | 2013-08-28 | 中国科学院深圳先进技术研究院 | 点云骨架提取方法及装置 |
Non-Patent Citations (4)
Title |
---|
"A Structure-Aware Global Optimization Method for Reconstructing 3-D Tree Models From Terrestrial Laser Scanning Data";Zhen Wang et al;《IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING》;20140930;第52卷(第9期);5653-5669 * |
"Creation of Tree Models from Freehand Sketches by Building 3D Skeleton Point Cloud";Jia Liu et al;《Springer-Verlag Berlin Heidelberg 2010》;20101231;621-632 * |
"基于地面激光雷达点云数据的单木三维建模综述";黄洪宇;《林业科学》;20130430;第49卷(第4期);123-130 * |
"基于点云数据构建树木骨架的方法";周广宇 等;《测绘与空间地理信息》;20150930;第38卷(第9期);174-176 * |
Also Published As
Publication number | Publication date |
---|---|
CN105405162A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105405162B (zh) | 基于局部结构和方向感知的树点云三维重建方法 | |
CN103258345B (zh) | 一种基于地面激光雷达三维扫描的树木枝干参数提取方法 | |
CN104392486B (zh) | 一种点云场景重建方法 | |
KR101165534B1 (ko) | 수관 식물점 그룹에 대해 시뮬레이트된 나무 줄기 및 나무 가지를 제공하는 지리공간 모델링 시스템 | |
Livny et al. | Automatic reconstruction of tree skeletal structures from point clouds | |
CN106600690B (zh) | 基于点云数据的复杂建筑体三维建模方法 | |
CN103065352B (zh) | 一种基于图像和扫描数据的植株三维重建方法 | |
CN107016725A (zh) | 一种顾及LiDAR点云数据分布差异的植被三维实景建模方法 | |
CN107330903B (zh) | 一种人体点云模型的骨架提取方法 | |
CN101866495B (zh) | 基于骨架点云的树木建模方法 | |
CN102855663A (zh) | 一种根据激光雷达栅格点云构建csg模型的方法 | |
CN107146280A (zh) | 一种基于切分的点云建筑物重建方法 | |
CN105574929A (zh) | 一种基于地面LiDAR点云数据的单株植被三维建模方法 | |
Zhang et al. | Data-driven synthetic modeling of trees | |
CN103646421B (zh) | 基于增强型PyrLK光流法的树木轻量化3D重建方法 | |
CN105654543B (zh) | 面向激光点云数据的阔叶树真实叶片建模与形变方法 | |
CN107590825A (zh) | 一种基于sfm的点云孔洞修补方法 | |
CN102467753A (zh) | 基于骨架配准的时变点云重建方法及系统 | |
CN106503060A (zh) | 一种输电线路三维点云数据处理及交跨物获取方法 | |
CN100383823C (zh) | 三维扫描的点云孔洞填补方法 | |
CN112102494B (zh) | 骨架线引导的树状点云表面重建方法及装置 | |
CN104751479A (zh) | 基于tin数据的建筑物提取方法和装置 | |
CN108256218A (zh) | 一种基于实测腰线数据的地下连通巷道精细建模方法 | |
CN110132168A (zh) | 一种三维激光点云数据处理系统 | |
CN101847267A (zh) | 基于深度检索的树木建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171205 Termination date: 20181016 |
|
CF01 | Termination of patent right due to non-payment of annual fee |