基于法向夹角的点云数据精简方法技术

技术编号:8241679 阅读:357 留言:0更新日期:2013-01-24 22:37
本发明专利技术涉及一种基于法向夹角的点云数据精简方法,属于计算机三维建模技术领域。本发明专利技术提出的精简方法的具体步骤为:①读取原始点云数据;②获取每个数据点的k阶邻域,并计算每个数据点的单位法向量;③获取每个数据点的法向量与该数据点的k个邻近点法向量点积的均值V;④获取每个数据点所在局部区域的曲率V′;⑤对点云中的所有数据点进行分类;⑥确定每个类别的采样比;⑦对点云数据进行精简。本方法对比传统方法,具有以下优点:能够保留原始点云的细节特征;避免繁琐的二次曲面拟合与曲率估算的时间代价的。

【技术实现步骤摘要】

本专利技术涉及一种,属于计算机三维建模

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

【技术保护点】
一种基于法向夹角的点云数据精简方法,其特征在于:其操作步骤包括步骤一至步骤七,具体为:步骤一、读取原始点云数据;步骤二、获取每个数据点的k阶邻域,并计算每个数据点的单位法向量;步骤三、获取每个数据点的法向量与该数据点的k个邻近点法向量点积的均值V;使用数据点法向量与该数据点的k个邻近点法向量点积的均值V作为判断该点是否保留的依据;点云中的任一数据点Pi的单位法向量用(xi,yi,zi)表示,数据点Pi的k个邻近点法向量分别用(X1,Y1,Z1),(X2,Y2,Z2),……,(Xk,Yk,Zk)表示;每个数据点Pi的法向量与该数据点的k个邻近点法向量点积的均值V通过公式(3)得到:V=(Σj=1k|xi·Xj+yi·Yj+zi·Zj|)/k---(3)其中,k的值由人为确定,k的取值为正整数,k取6~10中的任意一个值;步骤四、获取每个数据点所在局部区域的弯曲度V′;每个数据点的所在局部区域的弯曲度V′越小表示该点所在局部区域越平坦,V′越大表示该点所在局部区域弯曲程度越大;每个数据点的所在局部区域的弯曲度V′通过公式(4)得到;V“=1?V????????????????????????????????????????????????????(4)步骤五、对点云中的所有数据点进行分类;根据每个数据点所在局部区域的弯曲度V′将点云中的所有数据点分为F个类别,F为人为设定值,F取正整数;用符号E(V′)表示所有的数据点所在局部区域的弯曲度V′的均值,然后将[0,1]分成F个区间,F个区间分别用[0,f1)、[f1,f2)、……、[fF?1,1],fs(0,1),1≤s≤F?1;数据点所在局部区域的弯曲度V′ 在[0,f1)范围内的数据点分在第1类别;数据点所在局部区域的弯曲度V′在[f1,f2)范围内的数据点分在第2类别;……;以此类推,数据点所在局部区域的弯曲度V′在[fF?1,1]范围内的数据点分在第F类别;步骤六、确定每个类别的采样比;对步骤五得到的F个类别,确定每个类别的采样比;具体为:第6.1步:对第F类别采用公式(5)计算该类别的采样比;REMF×[Σs=1F-1(Cs×(2×s-1)/(2×F-1))+CF]=COUNTall×(1-SIMall)---(5)其中,REMF为第F类别的采样比;Cs为第s类别数据点的数量,1≤s≤F?1;CF为第F类别的数据点数量;COUNTall为原始点云的总点数;SIMall为人为指定的点云数据的总精简率,SIMall?∈(0,1);第6.2步:对第1至第(F?1)类别采用公式(6)计算该类别的采样比;REMs=REMF×((2×Fs?1)/(2×F?1))????????????????????????????(6)其中,REMS为第s类别的采样比;1≤s≤F?1;此时得到的F个类别的采样率满足REM1≤REM2≤……≤REMF;第6.3步:依次判断REMt是否不大于1,1≤t≤F,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REMF、REMF?1,……,REMu表示采样比大于1的类别,1ADD=Σv=uFCv×(REMv-1)---(7)其中,ADD表示用户期望采样点数与按当前采样率精简后的实际采样点数之差;Cv为第v类别数据点的数量;REMv为第v类别的采样比;第6.5步:通过公式(8)将ADD点分配到采样率小于1的第1到第(u?1) 个类别中;addu′=ADD×[(Cu′×REMu′/REMF)/Σw=1u-1(Cw×REMw/REMF)]---(8)其中,addu′表示第u′类新分配到的点数,1≤u′REMt=1(REMt>1)REMt+addt/Ct(REMt≤1)---(9)其中,addt表示第t类新分配到的点数;Ct为第t类别数据点的数量。经过上述步骤的操作,即可确定F个类别的采样比;步骤七、对点云数据进行精简;根据步骤六得到的F个类别的采样比REMt,对每个类别的点集进行精简。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李凤霞陈宇峰饶永辉李仲君赵三元谢宝娣
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1