您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 基于曲率的点云数据简化方法
基于曲率的点云数据简化方法摘要:作为一种非接触型设备,它可以快速高精度的采集部分曲面数据,它变成最常用的设备,对于刻画部分曲面数据。然而,它产生大量的点云数据,为了减少计算时间和降低内存需求必须对这些点云数据进行精简。针对以往点云数据精简方法的局限性,本文提出一种基于曲率的新的精简方法。它包括搜索K个近临为了重建数据拓扑结构,计算和调整切平面法线,通过使用抛物线拟合的方法来估计曲率,并且给出数据精简原则。实验结果表明新的方法明显的减少了点云的数量,而且完好的保留了物体的几何特征。关键字:数据精简、K个近邻、逆向工程、曲率1简介在逆向工程中,一种非接触式测量设备可以非常快速、高精度的扫描部件,它变成刻画部分曲面数据的主流设备。然而,获取的数据是稠密无序的,以至于难于直接给表面模型着色。这些数据需要大量的存储空间、并且大大的增加了计算的时间。因此,如何大量的精简点云数据的数量,并完美的保留数据的几何特征是点云数据精简的关键。两个主要的趋势可以被观测到在这个实验尝试中。一个是格网简化。正如一个一般的缺点,它首先必须建立并维持网格数据结构,然后根据一些原则来减少数据,这个过程是很复杂和花费时间的。另一种是基于点的精简方法,这种方法减少点云数据通过使用部分几何信息。在文献3中,作者使用包围盒去构建分割面来将数据分割成线结构,然后根据弦角偏差法精简点云数据。在文献4中,作者使用基于局部曲面的点的法线值,这个局部曲面来自使用法线标准差生成的不规则三角网。数据精简是通过在每个网格中选择一个代表性的点,删除其他的点来完成的。基于曲率减少点云是另一种基于点精简的方法。在参考文献5中,作者根据计算出来的每个点的曲率将点进行划分,并且不同的区间设立不同的误差值ξ,然后保留误差值大于ξ的点。然而,这种方法并没有明确指出每个误差值ξ的标准值。在参考文献6中,作者将点云划分成两种类型高曲率点和低曲率点通过使用阈值T,那些低曲率的点根据需要被提取,而那些高曲率的点是根据预先设置的比分比被提取的,阈值T的选择主要是根据经验。在这篇文章中,一种可以消除以前方法局限性的新的点云数据精简方法被提出。这个方法将点的曲率作为点云数据精简的标准,并且提前设置阈值。它将点云空间划分到几个局部的区域中,并且根据每一个局部区域的曲率变化来提取数据点。2.点云数据(PCD)基于曲率精简在图片1中的流程图展示了在本文章中点云数据精简的主要的过程,它包括:●为了构建点云拓扑结构搜索K个近邻;●根据K个紧邻的搜索结果估计每个点的切平面法线,并且调整法线使之与切平面方向一致;●通过一个密切的抛物面来逐步逼近在每个点周围表面的一个小的邻域,并且估计每一个点的曲率;●建立点云数据精简原则,并保留提取出来的点;2.1k个近邻搜索通过没接触性测量设备获得的数据是稠密无序的,并且必须通过所搜K个近邻的来建立点云数据的拓扑结构。因此,每个点和它的k个最近邻可以很容易的反应目标物的几何性质。一种简单的搜索k个近邻的方法是计算每个与其他点的欧式距离,然后按照升序将距离排序并且选择最前面的k个近邻点。然而,它是非常耗时和低效的,尤其是对于大量的点云数据。在这项工作中,一种基于空间分割的改进的搜索K个近邻的方法被采用。首先,计算出点集的最大值和最小值[Min_x,Min_x]*[Min_y,Min_y]*[Min_z,Min_z],并且估计子包围盒的边长L如下:B是比例因子用于调整包围盒的尺寸,k是K个近邻的个数,n是点云数据的总数。在x,y,z方向上计算尺寸通过下面的公式:一旦小包围盒的尺寸和分辨率是有效的,子包围盒的结构如下:被铺设在这些点上。在将点云数据分配到几个子包围盒之后(如图2所示),这些被放入适当子包围盒中的点云,也就是他们的索引与子包围盒相匹配。被放入相同子包围盒中的点云数据被储存在一个链表中。这些被放入包围盒中的点被用于搜索k个最近邻按照如下步骤:1.对于每一个候选点Pi,得到它属于的子包围盒的索引,并且设置这个子包围盒为初始搜索区域;2.设置N1为子包围盒中所有点云的个数,ds为到子包围盒六个面的最短距离;3.如果N1k,然后计算并且对点Pi到其他点的距离排序,将第k个最短距离记为dk,如果dkds,那么之前的k个点就是点Pi的k个最近邻,否则,转到第五步;4.如果N1=k,则直接转到第五步;5.扩展搜索区域到周围的子包围盒并且重新搜索。当k个最近邻的小于候选点到扩展包围盒六个面的最近距离时,停止搜索。重复上面的五个步骤直到所有点的K个近邻都被找到为止。2.2法线估计法向量估计被许多学科研究,例如:计算机制图、图像处理和数学,但是大多数情况下是曲面的多样化表示。法向量估计的结果对逆向工程中后续的工作有很大的影响,例如:隐式曲面重建和模型渲染。目前许多算法计算法向量作为曲面重建的一部分,或者一旦曲面重建完成,法向量也就可以被简单的计算出来。因为这些算法需要输入的数没有噪声的、原始点云数据,所以在应用算法前这些数据需要通过平滑处理。Hoppe等人提出了一种算法,这种算法每个点的法向量被估计通过计算对K个近邻点进行总体最小二乘估计获得的拟合平面的法向量来得到的。这种方法是稳健的对于因为内在的低通滤波而存在噪声的点云数据。在这个算法中,K的值是一个参数而且是基于法向量的估计目测手动得到的,并且在一个好的K值被选出之前需要实验不同的K值。此外,相同的K值被用于点云数据中的所有点的法向量估计。第一步是计算每一个数据点的定向的切平面。一个数据点Xi和它的k个最近邻被定义为Nbhd(Xi)。Xi作为切平面Tp(Xi)的中心,并且用最小二乘最优拟合法去近似这个主要的切平面,然后这个切平面的法线就被认为是这个点Xi的法向量ni。为了计算这个法向量,要计算K个近邻的协方差矩阵。如果λ表示与特征向量Vi相关的CV的最小特征值的绝对值,那么ni就可能是Vi或者-Vi。2.3法向量调整因为任意点的法向量是基于它的K个近邻被估计的,它有两个方向:正方向和反方向。法向量方向选择的目的是决定曲率估计的结果和渲染模型是否正确,因此,法向的方向必须被统一调整,以至于临近的平面具有同样的方向。假设两个点Xi,Xj是相邻的,当数据是稠密的,并且平面是平滑的,相应的切平面Ti=(oi,ni)、Tj=(oj,nj)是近似平行的,也就是说ni*nj=+-1,如果平面的方向一致的,那么ni*nj=+1,否则ni或者nj应该被翻转。在图三中,两个平面T1和T5是相反的,那么n1*n5=-1,n1或者n5应该被翻转。找到全局统一的方向的困难是在所有部分中数据点“充分接近”这个条件应该被满足。调整法线方向的一个简单的想法是设置方向从一个点到与它几何上最近的点作为传播的秩序。然而,这也许会产生错误的结果,当试图传播方向经过尖锐的边界时,例如,在图四中,oi与oj是一对最接近的点,用上述方法调整他们的法线的方向会产生错误的结果(见图4b)。为了避免上述的错误,周等人[11]设置传播规则通过黎曼图的最小生成树(MST)。这个规则是有益的,因为它试图在数据中沿着最小曲率的方向传播法向,因此大大避免了出现歧义的情况。但是它首先必须构建里曼图的最小生成树,并且需要来回移动每一个已经被调整的点当传播方向的时候,因此,它的时间复杂度是O(n+n^2),随着n的增大,他将会花费更多的时间。刘等人[12]根据法线的长度阈值将散乱的点云分为平坦的和非平坦的。依据k个最近邻是否是平坦的点,他们决定法线方向的传递方式,因此它使得建立数据点法线的黎曼图是没有必要的。他们提出了二阶最近距离和以阶k个近邻的方法,为了加快方向量的传递。在这篇文章中,采用文献[12]中的传播法线方向的方法,调整所有切平面法线方向的主要步骤是:●找到Z坐标最大的点作为起始点,并且调节法线方向使(0,0,1)点与起始点的内积的结果大于0;●根据给定的法线距离阈值将点云数据分为平坦的点云和非平坦的点云,然后根据K个最近邻调整法线,并且统计被调整点的个数;●如果被调整点的数量等于点云数据的总数,统一切平面方向结束,否则表示在点云数据中存在“孤立的点”(点云数据是超级分散的),使用三阶最近距离的方法传递方向。图5显示的是鼠标点云数据法线调整的过程。点云数据的法线方向在法线估计之前不是统一的,如图5(b)所示。在使用我们提出的方法调整法线方向之后,正确的结果如图5(c)所示。2.4曲率估计让S(r,t)成为一个常规的C^2连续的三维自由参数曲面,S上在S(r0,t0)处主曲率k1(r0,t0)和k2(r0,t0)被定义为在S(r0,t0)处法线曲率的最大值与最小值。根据欧拉的理论,曲面S(r,t)切平面方向上法线曲率等于(见参考文献[13]):θ是第一主方向与切线方向的夹角。总(高斯)曲率K与平均曲率H是由曲面的主曲率唯一确定的:为了估计曲率,有五个主要流行的算法:抛物面拟合、圆拟合、Gauss-Bonnet规划、Wantanabe-Belyaev方法和Taubin方法。在参考文献[14]中,以上五种不同方法的比较,并且他们总结了高斯曲率估计最好的算法是Gauss-Bonnet规划,而平均曲率估计最好的算法是抛物面拟合法。他们也证明最稳定算法也具有收敛性的算法是密切抛物线拟合算法。在这次实验中,为了估计曲率使用抛物面拟合算法。这个算法近似顶点周围的最小邻域通过密切抛物面。曲面的主曲率被考虑与抛物面的主曲率是完全相同的。这个密切抛物面为:系数a,b,c可以在最小二乘拟合算法中被找到,包括三个步骤:(1)让顶点Xi作为Xi与k个最近邻点建立的局部坐标系的原点,Xi的法线作为z轴,然后将k个最近邻点的坐标系转换为局部坐标系,并且将新的坐标系放入等式(6)中。建立了一个线性的超定系统:(2)使用奇异值分解(SVD)的方法去解等式(7),然后找出系数a,b,c。(3)高斯曲率和平均曲率计算如下:重复后三步,直到所有点的曲率被估计完。在最后点云的平均曲率的平均值MC倍计算。2.5点云精简的原则和步骤曲率是曲面固有的几何特性。它可以反应模型的几何细节。在试验中,使用抛物线拟合算法来估计曲率,这是估计平均曲率最好的方法。因此,平均曲率作为数据精简的基本准则。点云数据精简的核心准则是:根据空间划分将点云数据分为几个子包围盒,每一个子包围盒包含一定数量的点,这些点代表局部几何特性。根据意识形态的不同,点云数据的精简通过每个子立方体中分别提取点云。根据原则,点云数据精简分为以下四个步骤:(1)基于2.1中空间划分的结果,计算每个子包围盒的平均值Hi;(2)如果HiMC,它表示子包围盒周围局部区域的部分几何结构发生很大的改变,提取比MC有更高平均曲率的点,因此在局部区域中更多的点被保留,并且局部几何特性被尽可能的、保留;(3)如后Hi=MC,它表明在子包围盒中局部的几何结构改变很小,平均曲率最接近H的点被选择,并且这个被选择的点被视为是子包围盒中所有点的代表。结果是其他多余的点被删除。(4)重复上述三个步骤,直到所有的子包围盒都被精简为止,然后保存所有提取出来的点。3实验结果本文提出点云数据精简方法被应用于样品零件,两个模型的结果被讨论。因为曲率估计是基于每个数据点的K个邻域,对于K值比较小,点的噪声处于支配地位,特征值很小,并且特征向量不能显示曲面的切平面。另一个极端,K值很大,K个紧邻的范围变得很大,并且表面曲率趋向于增加“厚度”。实验结果表明K的取值范围在9-20之间是一个在计算时间和有充足的数据对于表面合理的差值之间的有效权衡对于底层表面形式。在本次实验中,K值取10。图6展示使用不同方法处理的发动机罩点云数据。在图6(b)中展示的基于曲率法精简的发动机罩模型相比于图6(c)中所示的均匀采样法在发动机罩中间尖锐的边缘周边表留了更多的点而在平缓的区域保留较少的点。对于点云数据采用适合的方法精简,尖锐的边界保留较好,如图6(d)所示,保留点的数量对于之后的曲面拟合并不是很好。上面的图显示本文所使用的方法在平缓的地方保留更少的点,而在曲率高的区域保留更多的点。4结论在这篇文章中提取基于曲率的点云数据
本文标题:基于曲率的点云数据简化方法
链接地址:https://www.777doc.com/doc-2536637 .html