三维扫描的点云精简方法

文档序号:6571758阅读:326来源:国知局
专利名称:三维扫描的点云精简方法
技术领域
本发明涉及一种对三维扫描的点云精简的方法,尤其涉及一种基于曲率的三维栅格法对点云精简的方法。
背景技术
3D扫描设备的精度越来越高,数据的捕获速度急剧增加,采用非接触式点云测绘方法获取点云速度较快,测量数据点多,每秒可产生成千上万个数据点,能清楚地表达物体,已得到越来越广泛的应用。虽然非接触式光学扫描仪能得到非常密集的点云,但并不是所有的数据点都能用于曲面重构。这些冗余的点云数据会导致计算机运行,存储和操作的低效率,生成曲面模型需要消耗更多的时间,程序算法的健壮性变差,因而其使用也受到了挑战,并且过于密集的点云会影响重构曲面的光顺性,而光顺是产品外形设计中非常重要的要求,同时通过多次拼接,点云的密集度变高,尤其是重叠区,为了避免上述问题,就需要删除部分数据点,即对数据点云进行精简处理。因此,对测量数据进行精简有助于提高建模效率和建模质量。本发明主要是涉及到对三维扫描系统(图1)获取的产品点云模型进行精简的一种方法。
近年来人们做了许多关于数据点云精简方法的研究,传统的点云数据精简主要是采用包围盒的方法,这种方法采用包围盒来约束点云,然后将大包围盒分解成若干个均匀大小的小包围盒,在每个包围盒中选取最靠近包围盒中心的点来代替整个包围盒中的点。这种方法简单,高效,但是由于包围盒的大小是由用户任意规定的,因此无法保证所构建的模型与原始点云数据之间的精度。2001年,Sun W,Bradley等通过使用局部曲面插值自动确定包围盒的大小,改善这种方法,但不足的是这种方法只能应用于简单的曲面数据且效率比较低,适用性不高。基于二元张量积Haar小波分解,构造误差驱动的曲面数据精简算法。该算法由误差驱动,无需事先指定数据点数,可以对未知曲面方程的测量数据直接进行精简,但是该算法不具有自组织特性,无法处理内部特征点,最后所得的精简数据也是一些散乱数据而非规则网格数据。一种用均匀网格(uniform grid)减少数据的方法,广泛用于图像处理过程的中值滤波。其原理是首先在垂直于扫描方向的平面上建立一系列均匀的小方格,每一个扫描得到的点都被分配给某一个方格,计算出这一点到方格的距离,按距离大小排列所有分配到同一方格的数据点,取距离位于中间值的数据点代表所有分配于这个方格中的数据点,其他点则被删除。见图2,E点被选中,其余A、B、C、D、F、G点则被删除。
与Martin等人提出的均匀网格方法一样,Lee也采用垂直于扫描方向(Z轴)的均匀网格来从点云数据中提取点,这种方法首先创建一个由大小相同并垂直于扫描方向的网格平面,网格尺寸的大小决定了数据精简比率的大小,网格的尺寸越小,就有越多的采样点,网格平面创建之后,将所有的点投影到网格平面上,每个网格都分配到相应点。根据每个网格内的所有点到网格平面的距离对这些点进行排序,选取位置处于中间的点。如果同一个网格内的点有n个,则当n为奇数的时候,将选取第(n+1)/2个点;当n为偶数的时候,将选取第n/2个点或者第(n+2)/2个点。Fujimoto和Kariye认为巨大的数据量对后续制造过程中使用产生了很多问题,在1993年提出一种面向2D数字化点云的改进顺序数据精简方法。这种方法保证了精简数据的误差范围处于给定的角度和距离公差之内。Chen和Ng提出了一种减少三角网格数目从而删除部分数据点的方法,首先将扫描获取的数据点云直接三角网格化,生成STL文件,尔后比较数据点所在三角面片的邻近三角面片法向量,根据一种向量加权算法,在平面或近似平面的较平坦区域用大的三角面片取代小的三角面片,删除多余点,从而实现数据精简。Hamann提出了一种根据三角面处的曲率值来决定此三角面的取舍,然后重新拟和的方法,适用于STL文件的自动生成。Hamann和Chen在构建不同平面曲线,压缩2D图像和可视化实体方面提出了精简数据点的方法。根据分段线性曲线逼近的局部绝对曲率估计来选取点,因此精简的程度不仅受被选取的点数的控制,还受误差水平的控制。
以上多数对点云数据精简方法研究的努力都集中在于操作多面模型,在实际的应用过程中,用三维扫描系统得到的通常是具有海量散乱点的点云原始模型,对这些散乱点进行精简是关键。为此,本发明中使用一种新算法对点云进行精简。如何对点云进行栅格化并提取最接近小栅格平均曲率的点来代替整个小栅格中的点是此类算法中的难点。本发明中提出的基于曲率的三维栅格法对点云精简的算法可以保证在不同的精简比例和精度下,达到更合理的精简效果。

发明内容
本发明提供一种基于曲率的三维栅格法对点云精简的方法,本发明具有方法简单的优点。
本发明采用如下技术方案一种基于曲率的三维栅格法对点云精简的方法第一步对三维点云进行栅格划分,该栅格划分为一个点云数据的最小外接正方体,其两两垂直的3条边分别与笛卡儿坐标系的3个坐标轴平行,沿三个坐标轴方向划分成边长为D空间六面体立方栅格。
根据点云中点的最大坐标(xmax,ymax,zmax)和最小坐标(xmin,ymin,zmin),得到点云数据的最小外接正方体边长LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一个小栅格的大小D则设定为D=αL3/n3]]>式中α为稀释比例,稀释比例α是指简化前后点数量的比值并由设计要求确定,n为整个点云中的数据点个数;第二步在点云每个数据点Pi(i=1……n)的上下,左右,前后共27个邻近子栅格内取出其k个邻近点,得到Pi的邻域点集KNB(Pi),并记为KNB(Pi)={X1,X2,…,Xn},此后,用邻域点集KNB(Pi)的最小二乘逼近平面并以此作为Pi的微切平面S(Pi),令 为KNB(Pi)的形心, 称为数据点集Pi的中心点P_i=1k+1(ΣX∈KNB(Pi)X+Pi)]]>设数据点集Pi的第j个邻近点到微切平面S(Pi)的距离为dj,到 的距离为λj。
那么对数据点集Pi的第j个点存在函数fj(Pi)fj(Pi)=djλj]]>那么数据点集Pi的曲率函数可以表示为f(Pi)=1kΣj=1kfj(Pi)]]>根据上式可以求得点云中每个数据点的曲率;第三步点云栅格化完成以后,求取每一个小栅格中点的平均曲率 C_=1mΣk=1mCk]]>式中Ck为小栅格中数据点的曲率,m为小栅格中点的数量,并得到每一个小栅格中点的曲率与平均曲率的差值,此差值小于设计要求中的精度的点将被选中作为该栅格的点,其余的点将被删除,最终实现对点云的精简。
本发明主要用于对三维扫描系统中各种具有复杂曲面形状的点云精简的应用场合。利用本发明中的基于曲率的三维栅格法即可实现对点云的合理精简。该方法主要有以下优点(1)点云的精简有助于提高建模效率和建模质量,精简的最佳效果是使精简后的数据点云具有较少的数据量。本发明中提出的算法使数据点在精简后的疏密随着曲面曲率的变化而变化,即曲面的曲率变化越大,数据点多一些,反之曲率变化越小,数据点就少一些,保证不丢失物体表面的细节特征。
(2)传统的点云数据精简主要是采用包围盒的方法,但是由于包围盒的大小是由用户任意规定的,因此无法保证所构建的模型与原始点云数据之间的精度,本发明中提出的三维栅格算法中小栅格的大小由稀释比例定义,更加合理,适用性强。
(3)在实际的应用过程中,用三维扫描系统得到的通常是具有海量散乱点的点云原始模型,本发明中提出算法简洁,速度快,效率高,适用于大量散乱三维数据点云,精简效果良好。
(4)可以根据实际需要,给出点云的稀释比例和精简精度。稀释比例决定了初始的栅格数目,精度定义为每一个小栅格中点的曲率与平均曲率的差值,精度是决定点提取率的主要因素精度越小,提取的点越少,反之亦然,而具体提取哪些点则由初始栅格的大小决定,因此,如果既想保证精度又要得到尽可能多的数据点,那么在进行点的提取时应选用较小的栅格和较大的精度。
(5)操作过程比较简单,只要给出稀释比例和精度,接下来的步骤都可自动完成,速度快。并且该方法具有很强的通用性。
(6)数据结构的实现有助于管理点的对象,点集的搜索,遍历,排序,快速有效的解决问题,提高计算的效率。


图1是三维扫描系统组成图。
图2是均匀网格法图。
图3是算法整体流程图。
图4是人脸点云图。
图5是删格化图。
图6是曲率与邻近点关系图。
图7是给定稀释比例为2和精度为0.15的人脸点云图。
图8是给定稀释比例为3和精度为0.1的人脸点云图。
具体实施例方式
一种基于曲率的三维栅格法对数据点云精简的方法第一步对三维点云进行栅格划分,该栅格划分为一个点云数据的最小外接正方体,其两两垂直的3条边分别与笛卡儿坐标系的3个坐标轴平行,沿三个坐标轴方向划分成边长为D空间六面体立方栅格。
根据点云中点的最大坐标(xmax,ymax,zmax)和最小坐标(xmin,ymin,zmin),得到点云数据的最小外接正方体边长LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一个小栅格的大小D则设定为D=αL3/n3]]>式中α为稀释比例,稀释比例α是指简化前后点数量的比值并由设计要求确定,n为整个点云中的数据点个数;第二步在点云每个数据点Pi(i=1……n)的上下,左右,前后共27个邻近子栅格内取出其k个邻近点,得到Pi的邻域点集KNB(Pi),并记为KNB(Pi)={X1,X2,…,Xn},此后,用邻域点集KNB(Pi)的最小二乘逼近平面并以此作为Pi的微切平面S(Pi),令 为KNB(Pi)的形心, 称为数据点集Pi的中心点
P_i=1k+1(ΣX∈KNB(Pi)X+Pi)]]>设数据点集Pi的第j个邻近点到微切平面S(Pi)的距离为dj,到 的距离为λj。
那么对数据点集Pi的第j个点存在函数fj(Pi)fj(Pi)=djλj]]>那么数据点集Pi的曲率函数可以表示为f(Pi)=1kΣj=1kfj(Pi)]]>根据上式可以求得点云中每个数据点的曲率;第三步点云栅格化完成以后,求取每一个小栅格中点的平均曲率 C_=1mΣk=1mCk]]>式中Ck为小栅格中数据点的曲率,m为小栅格中点的数量,并得到每一个小栅格中点的曲率与平均曲率的差值,此差值小于设计要求中的精度的点将被选中作为该栅格的点,其余的点将被删除,最终实现对点云的精简。
下面参照附图,对本发明加以详细描述在三维扫描系统中,面对的是密集的点云散乱数据。多数对点云数据精简方法研究的努力都集中在于操作多面模型或适用于扫描方向垂直扫描表面的单块数据,对捕捉零件的形状不够灵敏,因此本发明采用基于曲率的三维栅格法对数据点云精简的算法。总体算法流程图见图3。
本发明主要涉及以下三方面的内容1)三维点云的栅格化对人脸原始点云(图4)进行栅格划分,该栅格划分为一个点云数据的最小外接正方体,其两两垂直的3条边分别与笛卡儿坐标系的3个坐标轴平行,沿三个坐标轴方向划分成边长为D空间六面体立方栅格,见图5。
根据点云中点的最大坐标(xmax,ymax,zmax)和最小坐标(xmin,ymin,zmin),得到点云数据的最小外接正方体边长LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一个小栅格的大小D则设定为D=αL3/n3]]>
式中α为稀释比例,稀释比例α是指简化前后点数量的比值并由设计要求确定,n为整个点云中的数据点个数;2)微切平面的建立和曲率的计算在点云每个数据点Pi(i=1……n)的上下,左右,前后共27个邻近子栅格内取出其k个邻近点,得到Pi的邻域点集KNB(Pi),并记为KNB(Pi)={X1,X2,…,Xn},此后,用邻域点集KNB(Pi)的最小二乘逼近平面并以此作为Pi的微切平面S(Pi),令 为KNB(Pi)的形心, 称为数据点集Pi的中心点P_i=1k+1(ΣX∈KNB(Pi)X+Pi)]]>设数据点集Pi的第j个邻近点到微切平面S(Pi)的距离为dj,到 的距离为λj,见图6。
那么对数据点集Pi的第j个点存在函数fj(Pi)fj(Pi)=djλj]]>那么数据点集Pi的曲率函数可以表示为f(Pi)=1kΣj=1kfj(Pi)]]>根据上式可以求得点云中每个数据点的曲率;3)点的提取点云栅格化完成以后,求取每一个小栅格中点的平均曲率 C_=1mΣk=1mCk]]>式中Ck为小栅格中数据点的曲率,m为小栅格中点的数量,并得到每一个小栅格中点的曲率与平均曲率的差值,此差值小于设计要求中的精度的点将被选中作为该栅格的点,其余的点将被删除。通过这一策略对点进行提取,点的提取率取决于点的稀释比例和精度,这两个变量由设计要求决定。稀释比例为2,精度为0.015的点云精简图见图7,稀释比例为3,精度为0.01的点云精简图见图8,可见精简后的点云具有较少的数据量,图8的稀释比例较图7的大,但在精简后仍然能完整的再现点云的细小特征。
权利要求
1.一种三维扫描的点云精简方法,其特征在于第一步对三维点云进行栅格划分,该栅格划分为一个点云数据的最小外接正方体,其两两垂直的3条边分别与笛卡儿坐标系的3个坐标轴平行,沿三个坐标轴方向划分成边长为D空间六面体立方栅格,根据点云中点的最大坐标(xmax,ymax,zmax)和最小坐标(xmin,ymin,zmin),得到点云数据的最小外接正方体边长LL=max((xmax-xmin),(ymax-ymin),(zmax-zmin))那么每一个小栅格的大小D则设定为D=αL3/n3]]>式中α为稀释比例,稀释比例α是指简化前后点数量的比值并由设计要求确定,n为整个点云中的数据点个数;第二步在点云每个数据点Pi(i=1……n)的上下,左右,前后共27个邻近子栅格内取出其k个邻近点,得到Pi的邻域点集KNB(Pi),并记为KNB(Pi)={X1,X2,…,Xn},此后,用邻域点集KNB(Pi)的最小二乘逼近平面并以此作为Pi的微切平面S(Pi),令 为KNB(Pi)的形心, 称为数据点集Pi的中心点Pi-=1(k+1)(ΣX∈KNB(Pi)X+Pi)]]>设数据点集Pi的第j个邻近点到微切平面S(Pi)的距离为dj,,到 的距离为λi,那么对数据点集Pi的第j个点存在函数fj(Pi)fj(Pi)=djλj]]>那么数据点集Pi的曲率函数可以表示为f(Pi)=1kΣj=1kfj(Pi)]]>根据上式可以求得点云中每个数据点Pi的曲率;第三步点云栅格化完成以后,求取每一个小栅格中点的平均曲率 C-=1mΣk=1mCk]]>式中Ck为小栅格中数据点的曲率,m为小栅格中点的数量,并得到每一个小栅格中点的曲率与平均曲率的差值,此差值小于设计要求中的精度的点将被选中作为该栅格的点,其余的点将被删除,最终实现对点云的精简。
全文摘要
一种三维扫描的点云精简方法首先对三维点云进行栅格划分,该栅格划分为一个点云的最小外接正方体,边长为L,然后沿三个坐标轴方向划分成边长
文档编号G06T17/00GK101021954SQ20071002102
公开日2007年8月22日 申请日期2007年3月23日 优先权日2007年3月23日
发明者达飞鹏, 朱春红 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1