一种特征保持的点云数据精简方法

文档序号:6371674阅读:1532来源:国知局
专利名称:一种特征保持的点云数据精简方法
技术领域
本发明涉及一种特征保持的点云数据精简方法,属于计算机三维建模技术领域。
背景技术
在逆向工程中,三维扫描仪作为一种主要的工具被广泛使用,利用它可以在获取模型的三维点云数据后,从而完成实物模型的重建。点云(point cloud)又可称作无组织数据集,数据点之间没有任何关系,它 是单纯的三维点的集合,这些点由x,y, z坐标定义。当前通过扫描测量方法获得的点云数据是密集散乱数据,数据量极大,而且测点数据之间没有相应的、显式的几何拓扑关系。传统的三维扫描仪为光学三维扫描仪,这种三维扫描仪比较适用于对小型物体进行三维精确建模,具有很高的扫描精度,价格相对低廉。获得的点集规模一般在十万级左右。相较而言,激光三维扫描仪的主要应用对城市、街道等大场景进行扫描,构建全景三维数据及模型,一般配合惯性导航、GPS定位系统等构成LIDAR扫描系统,获得的点集规模可以达到千万级甚至亿级。激光三维扫描仪获得的点云数据除包含数据点坐标外,通常还包含反射强度,法线方向等信息。由于近些年来三维扫描技术的不断发展,获得的点云数据规模也日益庞大。存储、处理或显示这些数据都将消耗大量的时间和计算机资源,因此需要对点云数据进行精简。点云精简的目的是通过特定的方法,降低原始点云的规模,同时在简化过程中尽量保持原始点云的拓扑结构和特征。目前已有点云数据精简方法按照是否构建点云数据的三角网格分为两大类基于三角网格的点云精简方法和直接对点云进行精简的方法。其中直接对点云进行精简省去了三角网格化的操作,精简过程更为简单,时间复杂度也更低。传统直接对点云进行精简的方法包括①随机采样法;②包围盒法;③均匀网格法曲率精简法等。①随机采样法是最简单且容易实现的方法,该方法每次产生一个不大于总点数的随机整数,并删除随机数对应的点,直到剩余点数满足指定的精简程度。这种方法精简速度最快但随机性大,精简效果差。②包围盒法首先对点云数据建立一个最小的立方体包围盒,之后将这个包围盒分割成大小相等的小立方体,将点云数据的每个点按照三维坐标归入到一个小立方体中。对每个小立方体找出其中最接近立方体中心的点,并移除立方体内的其余点。③均匀网格法是对包围盒法的改进。均匀网格法在将所有点归入到小立方体后,利用中值滤波计算立方体内Z坐标的中值点,并用该点代替立方体内所有点。包围盒法和均匀网格法由于空间划分均匀,没有考虑到点云的局部特性,在点云密集区域和点云稀少区域采用相同的划分方法容易造成细节特征的丢失,使用于点云分布均匀且表面特征变化不大的点云数据。总的来讲,随机采样法、包围盒法和均匀网格法都没有考虑到点云数据的局部特性,因此无法保留原始点云的细节特征。要在点云精简的同时尽量保持原始点云的细节信息,就需要获得点云在局部区域的弯曲程度等信息。目前,能够做到特征保持的点云精简算法主要是曲率精简法。曲率精简法首先确定各个散乱点的k阶邻域和法线方向,通过邻近点拟合出局部区域的最小二乘曲面,通过曲面的曲率表示该点的弯曲程度。在曲率较高的地方保留较多点,曲率较低的平坦区域则保留较少点。搜索k阶邻域即为搜索点集中每个点的最近k个点,当前大多采用八叉树的存储结构加快搜索速度。八叉树的定义是若不为空树的话,树中任一节点的子节点恰好只会有八个或零个,也就是子节点不会有0与8以外的数目。八叉树是一种基于规则八分原则,采用递归分解方式形成的分层树型结构,是二维空间中的四叉树结构在三维立体空间中的拓展。常用的八叉树主要有指针八叉树,线性八叉树等。八叉树的原理与数据结构中的二叉树、四叉树基本相同。建立八叉树时,首先建立一个根节点,该节点表示能够包围所有点云数据的最小立方体的空间范围,之后将该空间平均分为8份,每一份对应一个子节点,按此规则一直分 割到不再需要分割或达到规定的层次为止。八叉树中的每一个叶子节点代表一个空间最小划分,将点云中的所有点插入到对应的叶子节点中。搜索某一点(用符号Pi表示)的k阶邻域时,只需在Pi所在的叶子节点和与该节点相邻的叶子节点中搜索最近的k个点即可,若这些叶子节点中的点云数不足k个,则向上一层搜索,直到找到k个最近节点。k的值由人为确定,k的取值为正整数,一般以6 10
为宜。 三维激光扫描仪获取的点云数据,除包含空间坐标值外,通常还包含法向量及反射强度等信息。而普通光学扫描仪获取的点云数据,一般只包含空间坐标值,对于不包含法向量信息的点云数据需要在程序中计算点云的单位法向量。法向量的计算可以采用主元分析法,假设点云的采样曲面是处处光滑的,因此,任何点的局部邻域都可以用平面进行很好的拟合,对于点云中的任意数据点Pi,获取与之最近的k个点后,利用最小二乘法为这些点计算出一个局部平面,此局部平面可以表述如下
广(/ ,(J) = arg min(////) (n' 产~d)2、1)其中,P(n,d)为包含点Pi的局部平面;n为局部平面P(n,d)的法向量;d为局部平面P(n, d)到坐标原点的距离;argmin(n,d)()是使取得最小值的关于n和d的函数;P'为k个最近点的质心。令平面P (n, d)经过k个最近点的质心P',同时局部平面的法向量n满足n=l,因此,问题可以转化为对公式(2)中半正定的协方差矩阵M进行特征值分解。
M = 丨(/)/ - P')(/)/ - P'f Ik(夕其中,对于M的最小特征值对应的特征向量可当做点Pi的法向量。利用上述方法计算出的法向量方向与真实的法向量可能相反,因此需要对法向量方向进行调整。曲率精简法在求出法向量之后,利用每一点的k阶邻域和法向量等信息,建立该点所在局部区域的二次曲面方程,求出曲面的平均曲率作为该点曲率的估值。最后按照曲率准则对点云数据采样。建立曲面方程需要使用最小二乘法逼近拟合曲面,曲面的曲率估算需要大量的矩阵运算,因此,曲率精简法比较耗时,尤其在处理大规模点云数据时,这一缺陷更加明显。

发明内容
本发明的目的是为了克服已有点云精简方法存在的不足,提出一种特征保持的点云数据精简方法。本发明的目的是通过下述技术方案实现的。一种特征保持的点云数据精简方法,其具体操作步骤为
步骤一、对原始点云数据进行第一次精简,其操作过程包括步骤I. I至步骤I. 7,具体为步骤I. I :读取原始点云数据。步骤I. 2 :获取每个数据点的k阶邻域,并计算每个数据点的单位法向量。所述获取每个数据点的k阶邻域的方法为八叉树法。所述计算每个数据点的单位法向量的方法为主元分析法。步骤I. 3 :获取每个数据点的法向量与该数据点的k个邻近点法向量点积的均值(用符号V表不)。对于不同区域的数据点,若表面较平坦,则数据点的法向量方向大致相同,而在弯曲程度较大区域,数据点的法方向差别很大。两个单位向量夹角的余弦值可以用这两个单位向量的点积表示。本发明中使用数据点法向量与该数据点的k个邻近点法向量点积的均值V作为判断该点是否保留的依据。点云中的任一数据点(用符号Pi表示)的单位法向量用(Xi,Yi, Zi)表示,数据点Pi的k个邻近点法向量分别用(XlJ1, Z1),(X2, Y2, Z2),……,(Xk, Yk, Zk)表示。每个数据点Pi的法向量与该数据点的k个邻近点法向量点积的均值V通过公式
(3)得到
v=(LkjJxi -xJ+yfYj+zi .zAVku)其中,k的值由人为确定,k的取值为正整数,k取6 10中的任意一个值。公式(3)计算出的V值在0和I之间,V值越小表示该区域法向量方向变化大,该区域弯曲程度大,因此该区域被精简的数据点数量要少。步骤I. 4:获取每个数据点所在局部区域的弯曲度(用符号V'表示)。每个数据点的所在局部区域的弯曲度V'越小表示该点所在局部区域越平坦,V'越大表示该点所在局部区域弯曲程度越大。每个数据点的所在局部区域的弯曲度V'通过公式(4)得到。V,= I-V(4)步骤I. 5 :对点云中的所有数据点进行分类。根据每个数据点所在局部区域的弯曲度V'将点云中的所有数据点分为F个类另ij,F为人为设定值,F取正整数。用符号E(V')表示所有的数据点所在局部区域的弯曲度V'的均值,然后将[O,I]分成F个区间,F个区间分别用
,fse (0, 1),1 ^ s ^F-I0数据点所在局部区域的弯曲度V'在[OJ1)范围内的数据点分在第I类别;数据点所在局部区域的弯曲度V'在[f\,f2)范围内的数据点分在第2类别;……;以此类推,数据点所在局部区域的弯曲度V'在[fF_i,l]范围内的数据点分在第F类别。步骤I. 6 :确定第一次精简时每个类别的采样比,具体为第I. 6. I步对第F类别采用公式(5)计算 该类别的采样比。
RKM1-x[^Jji!(C;x(2x.v-l)/(2x V-1)) + CJ, ] = COliNTall x小-SIMali 、>、其中,REMf为第F类别的采样比;CS为第s类别数据点的数量,I ^ s ^ F-I ;CF为第F类别的数据点数量;C0UNTall为原始点云的总点数;SMan为人为指定的点云数据的总精简率,SIMall G (0, I)。第I. 6. 2步对第I至第(F-I)类别采用公式(6)计算该类别的采样比。REMs=REMfX ((2X s-1)/(2XF-I))(6)其中,REMs为第s类别的采样比;1彡s彡F-1。此时得到的F个类别的采样率满足REM1 ( REM2 (……(REMF。第I. 6. 3步依次判断REMt是否不大于I,REMt为第t类别的采样比;1彡t彡F,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REMpREMf+……,REMu表示采样比大于I的类别,Ku ( F,然后执行第I. 6. 4步的操作。第I. 6. 4步通过公式(7)计算第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差。
Am)=EL(、x ㈨m(7)其中,ADD表示第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差,Cv为第V类别数据点的数量;REMV为第V类别的采样比。第I. 6. 5步通过公式(8)将ADD个点分配到采样率小于I的第I到第(u_l)个类别中。
add,,' = ADI) x [(Cw- x REM/ REMr) i y"~\ {Cw x REMw / REMf )]
14^—1其中,add/表示第u'类新分配到的点数,I彡u' <u ;C/为第u'类别数据点的数量;CW为第w类别数据点的数量AEMw为第w类别的采样比。第I. 6. 6步根据公式(9)调整第I到第F个类别的采样率,然后执行第I. 6. 3步
的操作。
fI(REM, > I)
REM t = \1(9)
1 [ RKMI + add, / C,(REMt < I)
其中,addt表示第t类新分配到的点数;Ct为第t类别数据点的数量。经过上述步骤的操作,即可确定第一次精简时F个类别的采样比。步骤I. 7 :对点云数据进行第一次精简。根据步骤I. 6得到的F个类别的采样比REMt,利用随机采样法对每个类别的点集进行精简。步骤二、根据当前剩余数据点的所属类别以及该点的k阶邻域中被移除点的个数(用a表示),使用公式(10)依次调整剩余数据点的所属类别。
权利要求
1.一种特征保持的点云数据精简方法,其特征在于其具体操作步骤为 步骤一、对原始点云数据进行第一次精简,其操作过程包括步骤I. I至步骤I. 7,具体为 步骤I. I :读取原始点云数据; 步骤I. 2 :获取每个数据点的k阶邻域,并计算每个数据点的单位法向量; 步骤I. 3 :获取每个数据点的法向量与该数据点的k个邻近点法向量点积的均值V ;对于不同区域的数据点,若表面较平坦,则数据点的法向量方向大致相同,而在弯曲程度较大区域,数据点的法方向差别很大;两个单位向量夹角的余弦值可以用这两个单位向量的点积表示;本发明中使用数据点法向量与该数据点的k个邻近点法向量点积的均值V作为判断该点是否保留的依据;点云中的任一数据点Pi的单位法向量用O^ypzi)表示,数据点Pi的k个邻近点法向量分别用(X1, Y1, Z1),(X2, Y2, Z2),……,(Xk,Yk, Zk)表示;每个数据点Pi的法向量与该数据点的k个邻近点法向量点积的均值V通过公式(3)得到
2.如权利要求I所述的一种特征保持的点云数据精简方法,其特征在于其步骤一步骤I. 2中所述获取每个数据点的k阶邻域的方法为八叉树法。
3.如权利要求I或2所述的一种特征保持的点云数据精简方法,其特征在于其步骤一步骤I. 2中所述计算每个数据点的单位法向量的方法为主元分析法。
4.如权利要求I至3之一所述的一种特征保持的点云数据精简方法,其特征在于其步骤一步骤I. 7中所述对每个类别的点集进行第一次精简的方法为随机采样法。
5.如权利要求I至4之一所述的一种特征保持的点云数据精简方法,其特征在于其步骤一第3. 2步中所述对剩余点云中每个类别的点集进行第二次精简的方法为随机采样法。
全文摘要
本发明涉及一种特征保持的点云数据精简方法,属于计算机三维建模技术领域。本发明提出的精简方法,首先按照采样率为对原始点云数据进行第一次精简;然后根据当前剩余数据点的所属类别以及该点的k阶邻域中被移除点的个数,调整剩余数据点的所属类别;再对剩余点云按照采样率为进行第二次精简。本方法对比传统方法,具有以下优点①能够保留原始点云的细节特征;②避免繁琐的二次曲面拟合与曲率估算的时间代价;③能够有效的避免精简后的点云出现孔洞。
文档编号G06T17/00GK102750730SQ20121020186
公开日2012年10月24日 申请日期2012年6月15日 优先权日2012年6月15日
发明者李凤霞, 王青云, 谢宝娣, 饶永辉 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1