一种基于射线原理的带边界保留的云数据精简算法

文档序号:6621377阅读:401来源:国知局
一种基于射线原理的带边界保留的云数据精简算法
【专利摘要】本发明涉及一种基于射线原理的带边界保留的云数据精简算法,本发明首先假设由三维点云模型的中心位置点向各个方向均匀产生射线,使得射线充满整个三维空间,对于该空间中的点云模型,若模型中某点与其最近射线的距离小于一个给定的阈值,该点则被视为需要被精简的点,容易得知:射线越密集、阈值越大,三维点云模型中的数据点就越容易被精简,因此可以通过控制射线的数量及其他阈值,以达到不同程度的精简效果。为了有效的保持模型的完整性,本发明提出一种边界保留方法。本发明提出的一种不基于曲率计算的三维点云数据精简算法,在一定的精简程度范围内,该算法具有良好的精简效果及效率且能很好的保持模型的边界特征。
【专利说明】一种基于射线原理的带边界保留的云数据精简算法

【技术领域】
[0001] 本发明涉及数据处理领域,尤其涉及一种基于射线原理的带边界保留的云数据精 简算法。

【背景技术】
[0002] 近年来,随着三维扫描仪成本的降低以及精度的提高,三维点云数据已经成为图 形学、逆向工程和工业领域中一种重要的数据表现形式。然而原始采集的三维点云数据量 非常大,这对后期的三维重建带来很大的困难,因此三维点云的去噪和简化工作是点云处 理中至关重要的一个环节。
[0003] 目前三维点云数据精简的算法有基于聚类的简化、基于曲率的简化等,这些方法 虽然能够在一定程度上精简点云数量,保留点云模型的特征,提高模型的重建效果,但是由 于大多需要进行递归操作或者曲率估算,所以对于点云数据量较大的模型,此类算法显得 非常耗时。
[0004] 鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本创作。


【发明内容】

[0005] 本发明的目的在于提供一种基于射线原理的带边界保留的云数据精简算法,用以 克服上述技术缺陷。
[0006] 为实现上述目的,本发明提供一种基于射线原理的带边界保留的云数据精简算 法,该具体过程为:
[0007] 步骤a,输入点云数据,建立k_d树以形成散乱点云之间的拓扑关系;
[0008] 步骤b,利用点云数据生成包围三维点云模型的立方体Vm,并将该立方体依据点云 模型的中心点分为8个子立方体V iQ = 0,1,. . .,7),将所有的数据点依据其空间所在位置 进行归类,归入各自的子立方体中;
[0009] 步骤c,依据点云模型子立方体,将立方体每一个面分为4个子平面,根据上 述步骤b中的射线生成方法生成射线;
[0010] 步骤d,利用公式J = ,计算出子立方体ViQ = 0,1,...,7))中每个数据 S 点到通过该立方体的每条射线之间的距离(IiQ = 0,1,. .. ,Max),并由数据点到中心点Mid 之间的距离得出每个数据点相应的判断阈值diSi (i = 0,1,. . .,Max),若Cli < diSi,则视为 数据点需要被精简。
[0011] 进一步,设定阈值Num,表示当检测到某数据点为非边界点时,其邻近点中无需判 断便被视为非边界点的点云数量,阈值Num可随三维点云模型的数据量增大而增大,通过 对比例系数e和阈值Num的结合控制。
[0012] 进一步,在上述步骤b中,
[0013] 根据两点确定一条直线的原理,以三维点云模型的中心点作为所有射线的公共 点,则只需要按一定规则生成射线另一点的坐标,就可以生成所有的射线;
[0014] 步骤bl,生成一个最小的能够包围点云模型的立方体Vm,设该立方体的边长为L, 散乱点云在X、Y、Z轴方向的最大值和最小值分别为:X max、Ymax、Zmax、Xmin、Ymin、Z min,则立方体 边长的计算方法如下:
[0015] L = Max ((Xniax-Xniin),(Yniax-Yniin),(Z niax-Zniin)) (1)
[0016] L为边长,(Xmin,Ymin, Zmin)为一顶点,作立方体,并使其能够完全包围点云模型;
[0017] 步骤b2,在立方体的6个平面上生成所需要的点,以某一与xoy面平行的平面为 例,设该平面分别平行于X轴和Y轴的两边为L1、L2,并且已知两边的端点分别为Pl (Xl,yi, Z1)、P2 (x2, y2, z2)和 P2、P3 (x3, y3, z3)。
[0018] 进一步,在上述步骤b2中,设阈值d,假设生成的点为Pi (Xi,yi,Zi),则生成点坐标 计算方法如下:
[0019] Xi = (i/d) X (X1-X2)+x2 (i =0,1,2,..., d-1, d) (2)
[0020] Yi = (i/d) X (y3-y2)+y2 (i = 0,1,2, ... , d-1, d) (3)
[0021] Zi = Z1 = Z2 = Z3 (i = 0,1,2, . . . , d-1, d) (4)
[0022] 则每个平面上生成点的数量为(d-1)2,可生成(d_l)2+4条射线,由此可以通过调 节阈值d的大小,以控制射线的数量,从而控制点云模型的精简程度。
[0023] 进一步,在上述步骤d中,
[0024] 设直线L的方向向量为s = (n,m,q),设直线上一点为M,直线外一点P,则点p到 直线L的距离为d ,阈值dis作为判断距离,控制精简程度;如果点P到直线L的 距离d < dis,则点P被精简,否则保留。
[0025] 进一步,在上述步骤d中,
[0026] 设中心点为Mid,数据点为Pi ;设阈值为diSi,用于表示每个数据点进行精简操作 时的判断距离;设另一阈值为X,用于控制di Si的值;设点云数量为Max,令
[0027] Clisi = XXDistance(MicUpi)2 (i = 0,1,2, · · ·,Max) (5)
[0028] 其中,Distance (Mid, Pi)表示Mid与Pi之间的距离。
[0029] 与现有技术相比较本发明的有益效果在于:本发明提出了一种不基于曲率计算的 三维点云数据精简算法,在一定的精简程度范围内,该算法具有良好的精简效果及效率。
[0030] 本发明特别适合类球类模型和对称模型,为了提高算法的适应性,更好地解决模 型中心点位置的不合理进而影响精简效果的问题;从而避免了耗时的递归操作和曲率计 算,其时间消耗随点云数据的增加呈线性增长,而非指数级增长。

【专利附图】

【附图说明】
[0031] 图1为本发明基于射线原理的带边界保留的云数据精简算法的流程图;
[0032] 图2为本发明立方体VniXoy平面示意图;
[0033] 图3为本发明子立方体的一个平面射线生成示意图;
[0034] 图4为本发明未进行边界保留处理效果的示意图;
[0035] 图5为本发明进行边界保留处理效果的示意图;
[0036] 图6为本发明精简效果的示意图;
[0037] 图7为本发明模型一精简效果对比示意图;
[0038] 图8为本发明模型二精简效果对比示意图;
[0039] 图9为本发明算法应用于类球类模型和对称模型的效果示意图;
[0040] 图10为本发明某非对称模型的精简结果示意图。

【具体实施方式】
[0041] 以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
[0042] 本发明首先假设由三维点云模型的中心位置点向各个方向均匀产生射线,使得射 线充满整个三维空间。对于该空间中的点云模型,若模型中某点与其最近射线的距离小于 一个给定的阈值,该点则被视为需要被精简的点,容易得知:射线越密集、阈值越大,三维 点云模型中的数据点就越容易被精简,因此可以通过控制射线的数量及其他阈值,以达到 不同程度的精简效果。
[0043] 请参阅图1所示,其为本发明基于射线原理的带边界保留的云数据精简算法的流 程图,该发明的具体过程为:
[0044] 步骤a,输入点云数据,建立k_d树以形成散乱点云之间的拓扑关系;
[0045] 为了快速进行数据点领域检索,本发明采用k_d树进行点云数据拓扑关系的建 立;k_d树是在k维欧几里德空间组织点的数据结构,是一种特殊的二叉树,具有良好的k 邻域搜索特性,在搜索速度上有较大的优势。
[0046] 建立k_d树的基本思想是:对于每一个非叶子节点,利用k维中的某一维坐标,将 以该非叶子节点为根的子树划分为两部分。拓扑结构建立的具体过程如下:设非叶子节 点划分后的空间称为该非叶子节点的子空间,对于某非叶子节点S所划分的某一个子空间 S1,利用在其中的数据点求每个维的方差,进而选择方差最大的维作为该非叶子节点的划 分依据split维。依据在split维上的大小关系,将该空间中所有的数据点进行排序,选择 出位于中间的点mid,并将在split维上小于mid的点归入S的左子树中;将在split维上 大于mid的点归入S的右子树中。由此递归建立k_d树,直至所有数据点输入k_d树中。
[0047] 步骤b,利用点云数据生成包围三维点云模型的立方体Vm,并将该立方体依据点云 模型的中心点分为8个子立方体V iQ = 0,1,. . .,7),将所有的数据点依据其空间所在位置 进行归类,归入各自的子立方体中;
[0048] 根据两点确定一条直线的原理,以三维点云模型的中心点作为所有射线的公共 点,则只需要按一定规则生成射线另一点的坐标,就可以生成所有的射线。
[0049] 为了方便坐标点的生成,首先需要生成一个最小的能够包围点云模型的立方体 Vm,设该立方体的边长为L,散乱点云在X、Y、Z轴方向的最大值和最小值分别为:Xmax、Y max、 Z_、Xnin、Ynin、Zniin,则立方体边长的计算方法如下:
[0050] L = Max ((Xniax-Xniin),(Yniax-Yniin),(Z niax-Zniin)) (1)
[0051] L为边长,(Xmin,Ymin,Zmin)为一顶点,作立方体,并使其能够完全包围点云模型。接 着在立方体的6个平面上生成所需要的点,以某一与xoy面平行的平面为例,设该平面分别 平行于X轴和Y轴的两边为L1、L2,并且已知两边的端点分别为Pl (XpynZ1)、P2 (x2, y2, Z2) 和P2、P3(x3, y3, z3),如图2所示。设阈值d,假设生成的点为PiOci, yi,Zi),则生成点坐标 计算方法如下:
[0052] Xi = (i/d) X (X1-X2)+x2 (i = 0,1,2, · · ·,d_l,d) (2)
[0053] Yi = (i/d) X (y3-y2)+y2 (i = 0,1,2, · · ·,d_l,d) (3)
[0054] Zi = Z1 = Z2 = Z3 (i = 0,1,2, · · ·,d_l,d) (4)
[0055] 则每个平面上生成点的数量为(d-1)2,可生成(d_l)2+4条射线,由此可以通过调 节阈值d的大小,以控制射线的数量,从而控制点云模型的精简程度。
[0056] 步骤c,依据点云模型子立方体,将立方体Vm的每一个面分为4个子平面,根据上 述步骤b中的射线生成方法生成射线;
[0057] 步骤d,利用公式J = |MPX^,计算出子立方体\(1 = 0,1,...,7))中每个数据 点到通过该立方体的每条射线之间的距离(Ii (i = 0,1,. .. ,Max),并由数据点到中心点Mid 之间的距离得出每个数据点相应的判断阈值diSi (i = 0,1,. . .,Max),若Cli < diSi,则视为 数据点需要被精简。
[0058] 设直线L的方向向量为s = (n,m,q),设直线上一点为M,直线外一点p,则点p到 直线L的距离为d = 。阈值dis作为判断距离,控制精简程度,例:如果点P到直线 S L的距离d < dis,则点P被精简,否则保留。
[0059] 在本发明中,由于离中心点越远,直线越稀疏,使得精简程度越小,所以阈值dis 需要随数据点到中心点距离的大小的变化而变化,距离越大,dis的值越大。
[0060] 本发明设中心点为Mid,数据点为Pi ;设阈值为diSi,用于表示每个数据点进行精 简操作时的判断距离;设另一阈值为X,用于控制di Si的值;设点云数量为Max,令
[0061] Clisi = XXDistance(MicUpi)2 (i = 0,1,2, · · ·,Max) (5)
[0062] 其中Distance(Mic^pi)表示組(1与口1之间的距离,通过控制阈值X的值可以间接 控制精简程度的大小,而且其大小对精简效率的影响非常小,所以在精简效果允许的情况 下,可以尽量增大X的值,以提高数据精简的整体效率。
[0063] 本发明首先对数据点进行空间上的划分,根据其所在位置的不同将其归纳入不同 的子空间,接着根据射线方向的不同判断射线会经过哪些子空间,最后计算子空间中的数 据点与经过该子空间的射线之间的距离。
[0064] 为使射线经过的子空间更易确定,本发明将包含三维点云模型的立方体Vm分为八 个子立方体Vi (i = 0,1,. ..,7),八个子立方体都以点云模型的中心点Mid为公共点,大立 方体Vm的每一个平面都依据子立方体分为了 4个小平面,每个平面都利用上述步骤b中的 方法进行射线的生成,图3为其中一个子空间的某一面生成射线的示意图,生成射线Midp 的点P所在的平面T所属于的子立方体就是该射线所经过的子立方体,这样无需任何计算 就可以确定射线的位置,算法实现简单。
[0065] 本发明为了有效保留点云模型的边界特征,采取基于邻域数据点分布均匀性的边 界保留方法保留模型的边界。
[0066] 步骤e,将所有在上述步骤d中被视为需要被精简的数据点,进行边界点判断,若 不是边界点,则不作处理,否则将其视为不能被精简;
[0067] 在本发明中,采用一种改进的利用点云坐标值比较以达到边界点判断的方法,此 方法中,并不对每一个数据点都进行边界点判断,因为若某点为非边界点,则该点的若干邻 近点也极有可能不是边界点,设阈值Num,表示当检测到某数据点为非边界点时,其邻近点 中无需判断便被视为非边界点的点云数量,阈值Num可随三维点云模型的数据量增大而增 大,通过对比例系数e和阈值Num的结合控制,该方法对于边界保留结果的影响非常小。 [0068] 如图4和图5所示,图4为每个点都进行边界判断的结果,图5为本发明所采用的 方法,其中图4的比例系数e取0.9,图5中e取0.85,阈值Num取值为1,可以看到结果并 无明显差异,但是前者所用时间为3. 75s,而后者只用2. 70s,所以本发明方法有效地提高 了效率。
[0069] 步骤f,精简完毕,输出精简后的三维点云模型。
[0070] 下面通过实验对上述过程及结果进行说明。
[0071] 本发明所有精简测试均在 intel CORE i5-3210M,2. 50Hz 处理器,4. 00GB(2. 91GB 可用)内存的条件下进行。表1为不同参数作用下的数据精简测试数据,图6为相应的精 简结果,其中,a为原始模型。
[0072] 表1不同参数作用下的数据精简结果

【权利要求】
1. 一种基于射线原理的带边界保留的云数据精简算法,其特征在于,该具体过程为: 步骤a,输入点云数据,建立k-d树以形成散乱点云之间的拓扑关系; 步骤b,利用点云数据生成包围三维点云模型的立方体V111,并将该立方体依据点云模型 的中心点分为8个子立方体ViQ = 0,1,. . .,7),将所有的数据点依据其空间所在位置进行 归类,归入各自的子立方体中; 步骤c,依据点云模型子立方体,将立方体Vm的每一个面分为4个子平面,根据上述步 骤b中的射线生成方法生成射线;
,计算出子立方体ViQ = 0,1,...,7))中每个数据点到 通过该立方体的每条射线之间的距离Cli (i = 0,1,...,Max),并由数据点到中心点Mid之 间的距离得出每个数据点相应的判断阈值diSi (i = 0,1,. . .,Max),若Cli < diSi,则视为数 据点需要被精简; 步骤e,将所有在上述步骤d中被视为需要被精简的数据点,进行边界点判断,若不是 边界点,则不作处理,否则将其视为不能被精简; 步骤f,精简完毕,输出精简后的三维点云模型。
2. 根据权利要求1所述的基于射线原理的带边界保留的云数据精简算法,其特征在 于,设定阈值Num,表示当检测到某数据点为非边界点时,其邻近点中无需判断便被视为非 边界点的点云数量,阈值Num可随三维点云模型的数据量增大而增大,通过对比例系数e和 阈值Num的结合控制。
3. 根据权利要求1所述的基于射线原理的带边界保留的云数据精简算法,其特征在 于,在上述步骤b中, 根据两点确定一条直线的原理,以三维点云模型的中心点作为所有射线的公共点,则 只需要按一定规则生成射线另一点的坐标,就可以生成所有的射线; 步骤bl,生成一个最小的能够包围点云模型的立方体V111,设该立方体的边长为L,散乱 点云在X、Y、Z轴方向的最大值和最小值分别为:Xmax、Ymax、Zmax、X min、Ymin、Zmin,则立方体边长 的计算方法如下: L = Max ((Xmax-Xmin),(Ymax-Ymin),(Z max-Zmin)) (1) L为边长,(Xmin,Ymin,Zmin)为一顶点,作立方体,并使其能够完全包围点云模型; 步骤b2,在立方体的6个平面上生成所需要的点,以某一与xoy面平行的平面为例,设 该平面分别平行于X轴和Y轴的两边为L1、L2,并且已知两边的端点分别为Pl (Xl,yi,Z1)、 P2 (x2, y2, z2)和 P2、P3 (x3, y3, z3)。
4. 根据权利要求3所述的基于射线原理的带边界保留的云数据精简算法,其特征在 于,在上述步骤b2中,设阈值d,假设生成的点为Pi (Xi,yi,Zi),则生成点坐标计算方法如 下: Xi = (i/d) X (X1-X2) +x2 (i = 0,1,2, ? ? ?,d_l,d) (2) Yi = (i/d) X (y3-y2)+y2(i = 0,1,2, ? ? ?,d-1,d) (3) Zi = Z1 = z2 = z3 (i = 0,1,2, ? ? ?,d_l,d) (4) 则每个平面上生成点的数量为(d-1)2,可生成(d-l)2+4条射线,由此可以通过调节阈 值d的大小,以控制射线的数量,从而控制点云模型的精简程度。
5. 根据权利要求1或3所述的基于射线原理的带边界保留的云数据精简算法,其特征 在于,在上述步骤d中, 设直线L的方向向量为s = (n,m,q),设直线上一点为M,直线外一点p,则点p到直线
,阈值dis作为判断距离,控制精简程度;如果点P到直线L的距离 d< dis,则点P被精简,否则保留。
6. 根据权利要求5所述的基于射线原理的带边界保留的云数据精简算法,其特征在 于,在上述步骤d中, 设中心点为Mid,数据点为Pi ;设阈值为diSi,用于表示每个数据点进行精简操作时的 判断距离;设另一阈值为X,用于控制diSi的值;设点云数量为Max,令 Ciisi = xXDis tan ce(Mid,Pi)2(i = 0,1,2, ? ? ?,Max) (5) 其中,Dis tan ce (Mid,Pi)表示Mid与Pi之间的距离。
【文档编号】G06T17/00GK104361625SQ201410360076
【公开日】2015年2月18日 申请日期:2014年7月24日 优先权日:2014年7月24日
【发明者】王美丽, 廖昌粟, 张宏鸣, 胡少军, 何东健, 牛晓静 申请人:西北农林科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1