CN104794747B - 一种基于射线原理的三维点云数据精简方法 - Google Patents
一种基于射线原理的三维点云数据精简方法 Download PDFInfo
- Publication number
- CN104794747B CN104794747B CN201410360056.8A CN201410360056A CN104794747B CN 104794747 B CN104794747 B CN 104794747B CN 201410360056 A CN201410360056 A CN 201410360056A CN 104794747 B CN104794747 B CN 104794747B
- Authority
- CN
- China
- Prior art keywords
- point
- ray
- max
- cube
- point cloud
- 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
Abstract
本发明涉及一种基于射线原理的三维点云数据精简方法,本发明首先假设由三维点云模型的中心位置点向各个方向均匀产生射线,使得射线充满整个三维空间,对于该空间中的点云模型,若模型中某点与其最近射线的距离小于一个给定的阈值,该点则被视为需要被精简的点,容易得知:射线越密集、阈值越大,三维点云模型中的数据点就越容易被精简,因此可以通过控制射线的数量及其他阈值,以达到不同程度的精简效果。本发明提出了一种不基于曲率计算的三维点云数据精简算法,在一定的精简程度范围内,该算法具有良好的精简效果及效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种基于射线原理的三维点云数据精简方法。
背景技术
近年来,随着三维扫描仪成本的降低以及精度的提高,三维点云数据已经成为图形学、逆向工程和工业领域中一种重要的数据表现形式。然而原始采集的三维点云数据量非常大,这对后期的三维重建带来很大的困难,因此三维点云的去噪和简化工作是点云处理中至关重要的一个环节。
目前三维点云数据精简的算法有基于聚类的简化、基于曲率的简化等,这些方法虽然能够在一定程度上精简点云数量,保留点云模型的特征,提高模型的重建效果,但是由于大多需要进行递归操作或者曲率估算,所以对于点云数据量较大的模型,此类算法显得非常耗时。
鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本创作。
发明内容
本发明的目的在于提供一种基于射线原理的三维点云数据精简方法,用以克服上述技术缺陷。
为实现上述目的,本发明提供一种基于射线原理的三维点云数据精简方法,具体步骤为:
步骤a,输入点云数据,建立k-d树以形成散乱点云之间的拓扑关系;
步骤b,利用点云数据生成包围三维点云模型的立方体Vm,并将该立方体依据点云模型的中心点分为8个子立方体Vi,i=0,1,...,7,将所有的数据点依据其空间所在位置进行归类,归入各自的子立方体中;
在步骤b中,根据两点确定一条直线的原理,以三维点云模型的中心点作为所有射线的公共点,则只需要按一定规则生成射线另一点的坐标,就可以生成所有的射线;
步骤b1,生成一个最小的能够包围点云模型的立方体Vm,设该立方体的边长为L,散乱点云在X、Y、Z轴方向的最大值和最小值分别为:Xmax、Ymax、Zmax、Xmin、Ymin、Zmin,则立方体边长的计算方法如下:
L=Max((X(max-Xmin),(Ymax-Ymin),(Zmax-Zmin)) (1)
L为边长,(Xmin,Ymin,Zmin)为一顶点,作立方体,并使其能够完全包围点云模型;
步骤b2,在立方体的6个平面上生成所需要的点,其中设某一与XOY面平行的平面分别平行于X轴和Y轴的两边为L1、L2,并且已知两边的端点分别为P1(x1,y1,z1)、P2(x2,y2,z2)和P2、P3(x3,y3,z3);
在步骤b2中,设阈值D,假设生成的点为Pl(xl,yl,zl),则生成点坐标计算方法如下:
xl=(l/D)×(x1-x2)+x2,l=0,1,2,...,D-1,D (2)
yl=(l/D)×(y3-y2)+y2,l=0,1,2,...,D-1,D (3)
zl=z1=z2=z3,l=0,1,2,...,d-1,d (4)
则每个平面上生成点的数量为(D-1)2,可生成(D-1)2+4条射线,由此可以通过调节阈值D的大小,以控制射线的数量,从而控制点云模型的精简程度;
步骤c,依据点云模型子立方体,将立方体Vm的每一个面分为4个子平面,根据上述步骤b中的射线生成方法生成射线;
步骤d,利用公式计算出子立方体Vi中每个数据点到通过该立方体的每条射线之间的距离dj,j=0,1,...,Max,并由数据点到中心点Mid之间的距离得出每个数据点相应的判断阈值disj,j=0,1,...,Max;若dj<disj,则视为数据点需要被精简。
在上述步骤d中,
设射线R的方向向量为s=(n,m,q),设射线上一点为M,射线外一点p,则点p到射线R的距离为阈值dis作为判断距离,控制精简程度;如果点p到射线R的距离d<dis,则点p被精简,否则保留;其中射线R的方向向量为s=(n,m,q),Max为点云数量。
在上述步骤d中,
设中心点为Mid,数据点为pj;设阈值为disj,用于表示每个数据点进行精简操作时的判断距离;设另一阈值为x,用于控制disj的值;设点云数量为Max,令
disj=x×Dis tan ce(Mid,pj)2,j=0,1,2,...,Max (5)
其中,Dis tan ce(Mid,pj)表示Mid与pj之间的距离。
与现有技术相比较本发明的有益效果在于:本发明提出了一种不基于曲率计算的三维点云数据精简算法,在一定的精简程度范围内,该算法具有良好的精简效果及效率。
本发明特别适合类球类模型和对称模型,为了提高算法的适应性,更好地解决模型中心点位置的不合理进而影响精简效果的问题;从而避免了耗时的递归操作和曲率计算,其时间消耗随点云数据的增加呈线性增长,而非指数级增长。
附图说明
图1为本发明基于射线原理的三维点云数据精简方法的流程图;
图2为本发明立方体Vm的XOY平面示意图;
图3为本发明子立方体的一个平面射线生成示意图;
图4为本发明精简效果的示意图;
图5为本发明模型一精简效果对比示意图;
图6为本发明模型二精简效果对比示意图;
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
本发明首先假设由三维点云模型的中心位置点向各个方向均匀产生射线,使得射线充满整个三维空间。对于该空间中的点云模型,若模型中某点与其最近射线的距离小于一个给定的阈值,该点则被视为需要被精简的点,容易得知:射线越密集、阈值越大,三维点云模型中的数据点就越容易被精简,因此可以通过控制射线的数量及其他阈值,以达到不同程度的精简效果。
请参阅图1所示,其为本发明基于射线原理的三维点云数据精简方法的流程图,该发明的具体过程为:
步骤a,输入点云数据,建立k_d树以形成散乱点云之间的拓扑关系;
为了快速进行数据点领域检索,本发明采用k_d树进行点云数据拓扑关系的建立;k_d树是在k维欧几里德空间组织点的数据结构,是一种特殊的二叉树,具有良好的k邻域搜索特性,在搜索速度上有较大的优势。
建立k_d树的基本思想是:对于每一个非叶子节点,利用k维中的某一维坐标,将以该非叶子节点为根的子树划分为两部分。拓扑结构建立的具体过程如下:设非叶子节点划分后的空间称为该非叶子节点的子空间,对于某非叶子节点S所划分的某一个子空间S1,利用在其中的数据点求每个维的方差,进而选择方差最大的维作为该非叶子节点的划分依据split维。依据在split维上的大小关系,将该空间中所有的数据点进行排序,选择出位于中间的点Mid,并将在split维上小于Mid的点归入S的左子树中;将在split维上大于的点Mid归入S的右子树中。由此递归建立k_d树,直至所有数据点输入k_d树中。
步骤b,利用点云数据生成包围三维点云模型的立方体Vm,并将该立方体依据点云模型的中心点分为8个子立方体Vi(i=0,1,...,7),将所有的数据点依据其空间所在位置进行归类,归入各自的子立方体中;
根据两点确定一条直线的原理,以三维点云模型的中心点作为所有射线的公共点,则只需要按一定规则生成射线另一点的坐标,就可以生成所有的射线。
为了方便坐标点的生成,首先需要生成一个最小的能够包围点云模型的立方体Vm,设该立方体的边长为L,散乱点云在X、Y、Z轴方向的最大值和最小值分别为:Xmax、Ymax、Zmax、Xmin、Ymin、Zmin,则立方体边长的计算方法如下:
L=Max((Xmax-Xmin),(Ymax-Ymin),(Zmax-Zmin)) (1)
L为边长,(Xmin,Ymin,Zmin)为一顶点,作立方体,并使其能够完全包围点云模型。接着在立方体的6个平面上生成所需要的点,以某一与XOY面平行的平面为例,设该平面分别平行于X轴和Y轴的两边为L1、L2,并且已知两边的端点分别为P1(x1,y1,z1)、P2(x2,y2,z2)和P2、P3(x3,y3,z3),如图2所示。设阈值D,假设生成的点为Pl(xl,yl,zl),则生成点坐标计算方法如下:
xl=(l/D)×(x1-x2)+x2,l=0,1,2,...,D-1,D (2)
yl=(l/D)×(y3-y2)+y2,l=0,1,2,...,D-1,D (3)
zl=z1=z2=z3,l=0,1,2,...,d-1,d (4)
则每个平面上生成点的数量为(D-1)2,可生成(D-1)2+4条射线,由此可以通过调节阈值D的大小,以控制射线的数量,从而控制点云模型的精简程度。
步骤c,依据点云模型子立方体,将立方体Vm的每一个面分为4个子平面,根据上述步骤b中的射线生成方法生成射线;
步骤d,利用公式计算出子立方体Vi(i=0,1,...,7)中每个数据点到通过该立方体的每条射线之间的距离dj(j=0,1,...,Max),并由数据点到中心点Mid之间的距离得出每个数据点相应的判断阈值disj(j=0,1,...,Max),若dj<disj,则视为数据点需要被精简。
设射线R的方向向量为s=(n,m,q),设射线上一点为M,射线外一点p,则点p到射线R的距离为阈值dis作为判断距离,控制精简程度,例:如果点P到射线R的距离d<dis,则点P被精简,否则保留。
在本发明中,由于离中心点越远,射线越稀疏,使得精简程度越小,所以阈值dis需要随数据点到中心点距离的大小的变化而变化,距离越大,dis的值越大。
本发明设中心点为Mid,数据点为pj;设阈值为disj,用于表示每个数据点进行精简操作时的判断距离;设另一阈值为x,用于控制disj的值;设点云数量为Max,令
disj=x×Dis tan ce(Mid,pj)2(j=0,1,2,...,Max) (5)
其中Dis tan ce(Mid,pj)表示Mid与pj之间的距离,通过控制阈值x的值可以间接控制精简程度的大小,而且其大小对精简效率的影响非常小,所以在精简效果允许的情况下,可以尽量增大x的值,以提高数据精简的整体效率。
本发明首先对数据点进行空间上的划分,根据其所在位置的不同将其归纳入不同的子空间,接着根据射线方向的不同判断射线会经过哪些子空间,最后计算子空间中的数据点与经过该子空间的射线之间的距离。
为使射线经过的子空间更易确定,本发明将包含三维点云模型的立方体Vm分为八个子立方体Vi(i=0,1,...,7),八个子立方体都以点云模型的中心点Mid为公共点,大立方体Vm的每一个平面都依据子立方体分为了4个小平面,每个平面都利用上述步骤b中的方法进行射线的生成,图3为其中一个子空间的某一面生成射线的示意图,生成射线Midp的点p所在的平面T所属于的子立方体就是该射线所经过的子立方体,这样无需任何计算就可以确定射线的位置,算法实现简单。
步骤f,精简完毕,输出精简后的三维点云模型。
下面通过实验对上述过程及结果进行说明。
本发明所有精简测试均在intel CORE i5-3210M,2.50Hz处理器,4.00GB(2.91GB可用)内存的条件下进行。表1为不同参数作用下的数据精简测试数据,图4为相应的精简结果,其中,a为原始模型。
表1 不同参数作用下的数据精简结果
由表1和图4可知:编号1、2、3可知阈值D的变化,即通过生成射线的数量控制精简程度时,阈值D越大,程序所消耗的时间越多;
编号1、4、5可知阈值x的变化,即通过控制disj的值以控制精简程度时,随着精简程度的不同,所需时间的变化并不明显,所以控制阈值x与控制阈值D相比,在时间上具有其优势,但是当x的值过大时,模型容易出现“穿孔”现象,所以在不影响精简效果的前提下,可以尽可能地增大阈值x以提高数据精简的效率。
表2为在使用不同模型的情况下,传统的包含曲率估计及递归操作的数据精简算法与本发明算法的测试结果,通过调整相关阈值,使得输出点数相近。
表2 本文算法与传统曲率估算算法效率对比
图5和图6分别为模型一和模型二的精简效果,其中,图5中a为原始模型;b为本文算法精简结果;c为包含曲率估计及递归操作的精简结果;图6中,a为原始模型;b为本文算法精简结果;c为包含曲率估计及递归操作的精简结果。
由表2和图5、图6可知本发明算法节约了大量的时间,并且时间消耗不随点云数据量呈指数级增长,同时能够保证具有良好的精简效果;并且,模型二相比模型一曲率变化较大,由于包含曲率计算的算法对于曲率的变化非常敏感,所以导致虽然模型二的点云数据量比模型一更小,而且精简程度更小,但是模型二的精简比模型一的精简所需时间更多,而本发明算法则不会出现此类问题。
本发明提出了一种不基于曲率计算的三维点云数据精简算法。实验证明,在一定的精简程度范围内,该算法具有良好的精简效果及效率。
本发明特别适合类球类模型和对称模型,为了提高算法的适应性,更好地解决模型中心点位置的不合理进而影响精简效果的问题;从而避免了耗时的递归操作和曲率计算,其时间消耗随点云数据的增加呈线性增长,而非指数级增长。
以上所述仅为本发明的较佳实施例,对发明而言仅仅是说明性的,而非限制性的。本专业技术人员理解,在发明权利要求所限定的精神和范围内可对其进行许多改变,修改,甚至等效,但都将落入本发明的保护范围内。
Claims (2)
1.一种基于射线原理的三维点云数据精简方法,其特征在于,具体步骤为:
步骤a,输入点云数据,建立k-d树以形成散乱点云之间的拓扑关系;
步骤b,利用点云数据生成包围三维点云模型的立方体Vm,并将该立方体依据点云模型的中心点分为8个子立方体Vi,i=0,1,...,7,将所有的数据点依据其空间所在位置进行归类,归入各自的子立方体中;
在步骤b中,根据两点确定一条直线的原理,以三维点云模型的中心点作为所有射线的公共点,则只需要按一定规则生成射线另一点的坐标,就可以生成所有的射线;
步骤b1,生成一个最小的能够包围点云模型的立方体Vm,设该立方体的边长为L,散乱点云在X、Y、Z轴方向的最大值和最小值分别为:Xmax、Ymax、Zmax、Xmin、Ymin、Zmin,则立方体边长的计算方法如下:
L=Max((Xmax-Xmin),(Ymax-Ymin),(Zmax-Zmin)) (1)
L为边长,(Xmin,Ymin,Zmin)为一顶点,作立方体,并使其能够完全包围点云模型;
步骤b2,在立方体的6个平面上生成所需要的点,其中设某一与XOY面平行的平面分别平行于X轴和Y轴的两边为L1、L2,并且已知两边的端点分别为P1(x1,y1,z1)、P2(x2,y2,z2)和P2、P3(x3,y3,z3);
在步骤b2中,设阈值D,假设生成的点为Pl(xl,yl,zl),则生成点坐标计算方法如下:
xl=(l/D)×(x1-x2)+x2,l=0,1,2,...,D-1,D (2)
yl=(l/D)×(y3-y2)+y2,l=0,1,2,...,D-1,D (3)
zl=z1=z2=z3,l=0,1,2,...,D-1,D (4)
则每个平面上生成点的数量为(D-1)2,可生成(D-1)2+4条射线,由此可以通过调节阈值D的大小,以控制射线的数量,从而控制点云模型的精简程度;
步骤c,依据点云模型子立方体,将立方体Vm的每一个面分为4个子平面,根据上述步骤b中的射线生成方法生成射线;
步骤d,利用公式计算出子立方体Vi中每个数据点到通过该立方体的每条射线之间的距离dj,j=0,1,...,Max,并由数据点到中心点Mid之间的距离得出每个数据点相应的判断阈值disj,j=0,1,...,Max;若dj<disj,则视为数据点需要被精简;
设射线R的方向向量为设射线上一点为M,射线外一点p,则点p到射线R的距离为阈值dis作为判断距离,控制精简程度;如果点p到射线R的距离d<dis,则点p被精简,否则保留;其中Max为点云数量。
2.根据权利要求1所述的基于射线原理的三维点云数据精简方法,其特征在于,在上述步骤d中,
设中心点为Mid,数据点为pj;设阈值为disj,用于表示每个数据点进行精简操作时的判断距离;设另一阈值为x,用于控制disj的值;设点云数量为Max,令
disj=x×Dis tan ce(Mid,pj)2,j=0,1,2,...,Max (5)
其中,Dis tan ce(Mid,pj)表示Mid与pj之间的距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410360056.8A CN104794747B (zh) | 2014-07-24 | 2014-07-24 | 一种基于射线原理的三维点云数据精简方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410360056.8A CN104794747B (zh) | 2014-07-24 | 2014-07-24 | 一种基于射线原理的三维点云数据精简方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794747A CN104794747A (zh) | 2015-07-22 |
CN104794747B true CN104794747B (zh) | 2017-11-21 |
Family
ID=53559526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410360056.8A Expired - Fee Related CN104794747B (zh) | 2014-07-24 | 2014-07-24 | 一种基于射线原理的三维点云数据精简方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794747B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106856011A (zh) * | 2015-12-09 | 2017-06-16 | 上海渤元信息科技有限公司 | 一种新的试验设计算法 |
CN105804187A (zh) * | 2016-03-16 | 2016-07-27 | 宁波市江东精诚自动化设备有限公司 | 一种太阳能环保厕所 |
CN106067193B (zh) * | 2016-06-06 | 2019-02-19 | 中国人民解放军信息工程大学 | 一种点云数据的体素化方法和体素的遮挡裁剪方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021954A (zh) * | 2007-03-23 | 2007-08-22 | 东南大学 | 三维扫描的点云精简方法 |
KR20080044221A (ko) * | 2007-04-30 | 2008-05-20 | (주) 코이시스 | 컴퓨터를 이용한 3차원 이미지의 형상화 처리방법 |
CN103310481A (zh) * | 2013-05-20 | 2013-09-18 | 东南大学 | 一种基于模糊熵迭代的点云精简方法 |
CN103886555A (zh) * | 2014-03-12 | 2014-06-25 | 北京昊峰东方科技有限公司 | 一种基于海量三维激光扫描点云数据的处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7995054B2 (en) * | 2005-11-21 | 2011-08-09 | Leica Geosystems Ag | Identification of edge regions from 3D point data |
-
2014
- 2014-07-24 CN CN201410360056.8A patent/CN104794747B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021954A (zh) * | 2007-03-23 | 2007-08-22 | 东南大学 | 三维扫描的点云精简方法 |
KR20080044221A (ko) * | 2007-04-30 | 2008-05-20 | (주) 코이시스 | 컴퓨터를 이용한 3차원 이미지의 형상화 처리방법 |
CN103310481A (zh) * | 2013-05-20 | 2013-09-18 | 东南大学 | 一种基于模糊熵迭代的点云精简方法 |
CN103886555A (zh) * | 2014-03-12 | 2014-06-25 | 北京昊峰东方科技有限公司 | 一种基于海量三维激光扫描点云数据的处理方法 |
Non-Patent Citations (3)
Title |
---|
"A progressive point cloud simplification algorithm A progressive point cloud simplification algorithm";Hao Song et al.;《Int J Adv Manuf Technol》;20090305;1414-1419 * |
"Kd-tree Based Nonuniform Simplification of 3D Point Cloud";Xiao Zhaoxia et al.;《2009 Third International Conference on Genetic and Evolutionary Computing》;20091017;339-342 * |
"基于径向基函数的残缺点云数据修复";陈飞舟等;《计算机辅助设计与图形学学报》;20060930;第18卷(第9期);583–592 * |
Also Published As
Publication number | Publication date |
---|---|
CN104794747A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104361625B (zh) | 一种基于射线原理的带边界保留的云数据精简算法 | |
Zhang et al. | Shellnet: Efficient point cloud convolutional neural networks using concentric shells statistics | |
Yu et al. | Hierarchical streamline bundles | |
KR20120095869A (ko) | 메시 모델을 인코딩하는 방법 및 장치, 인코딩된 메시 모델, 그리고 메시 모델을 디코딩하는 방법 및 장치 | |
CN110111430B (zh) | 一种从三维点云中提取二次曲面的方法 | |
CN104794747B (zh) | 一种基于射线原理的三维点云数据精简方法 | |
CN104794687A (zh) | 点云精简系统及方法 | |
CN108763827B (zh) | 一种输电塔有限元模型建立方法及装置 | |
CN103744935A (zh) | 一种计算机快速海量数据聚类处理方法 | |
CN106485766A (zh) | 一种约束Delaunay三角网的并行构建方法 | |
Morozov et al. | Efficient delaunay tessellation through KD tree decomposition | |
Chen et al. | Real-time semantic scene completion via feature aggregation and conditioned prediction | |
CN106815447A (zh) | 基于历史数据的复杂结构件加工特征智能定义与分类方法 | |
JP2011180866A (ja) | 自動設計支援プログラム、方法及び装置 | |
Juliati et al. | Openmp architecture to simulate 2d water oscillation on paraboloid | |
US10943037B2 (en) | Generating a CAD model from a finite element mesh | |
CN107480096B (zh) | 一种大规模群体仿真中的高速并行计算方法 | |
CN105653881A (zh) | 基于多密度层次的流场可视化方法 | |
CN107315902A (zh) | 基于维度区分的团队进步算法改进方案 | |
WO2023005195A1 (zh) | 地图数据的处理方法、装置、家用电器和可读存储介质 | |
CN113034343B (zh) | 参数自适应的高光谱图像分类gpu并行方法 | |
CN108805886A (zh) | 一种多融合物理签名的持久性聚类分割方法 | |
Liao et al. | Simplification of 3D point cloud data based on ray theory | |
CN112634399A (zh) | 封闭曲线生成方法、装置、电子设备及可读存储介质 | |
Zhou et al. | An improved algorithm to convert CAD model to MCNP geometry model based on STEP file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171121 Termination date: 20180724 |