一种基于Poisson-disk采样的数据点云精简方法
技术领域
本发明涉及逆向工程领域,特别涉及一种基于Poisson-disk采样的数据点云精简方法。
背景技术
当前,逆向工程中最普遍的应用模式是利用基于光学原理的扫描设备快速测量零件或模具外表面形成点云数据,从中提取几何特征进而重建多边形或NURBS曲面。原始扫描点云通常由多次测量的单片数据拼合而成,接合处存在区域重叠,数据规模大、分布不均匀,普通计算机的计算及内存资源很难直接对其进行高效、高质量的曲面重建。针对这一问题,点云精简算法的主要目标是减少数据量并使采样点依几何特征自适应均匀分布。点云精简通常有两种定义:给定容许误差阈值计算最小采样数分布;给定目标采样点数目搜索最小误差分布。对于工业产品设计,后者相对合理,用户通常希望点云精简算法能够任意指定目标采样点数目;不改变原有采样点位置以维持扫描精度;尽可能保留尖锐几何特征,点云依曲面曲率自适应均匀分布。
随着基于点的绘制与造型技术的发展,已经存在许多算法直接简化点云数据。根据精简点云采样分布形成的方式可将现有方法分为三类:迭代最优剔除、层次聚类、曲面重采样。不同的方法分别侧重减少原始点云与精简后点云之间的距离、曲率自适应、分布均匀性等方面。迭代最优剔除方法的优点在于采样前后的点云距离误差小,缺点在于随着点云规模的增加由于全局排序、属性更新需要大量的内存与计算消耗,不适合逆向工程中海量点云高效精简,且不容易保留尖锐边特征与边界。层次聚类方法具有计算效率高的优点,其缺点是不容易控制采样点分布与误差。现存曲面重采样方法直接从分布特性角度出发,能够获得理论上最优采样点分布,但由于其通常需求解流形上的距离或维持局部动态平衡,其所消耗的计算资源也是最大的。
发明内容
本发明的目的是提供了一种基于泊松碟Poisson-disk采样的数据点云精简方法,以解决的现有采样技术中的问题,以尽可能的保留尖锐边特征与边界数据,防止采样点局部聚集。
一种基于Poisson-disk采样的数据点云精简方法,用于对初始取得的数据点云进行精简处理,包括步骤:
(1)估计初始点云法向;
(2)对得到的初始点云法向进行双边滤波;
(3)对初始点云进行Poisson-disk采样;
(4)调整采样后的点云数到指定的精简数目。
所述步骤(1)进一步包括:
(1.1)对初始点云中每一个采样点pi,列出pi的邻域的协方差矩阵:
式中
是p
i的邻域采样点,
是位置均值,p
i的邻域有K个邻域采样点,j∈[1,K];
(1.2)对邻域的协方差矩阵进行特征值分解并以其最小特征值向量作为所述pi的初始法向ni。
进一步地,对得到的初始点云法向ni进行双边滤波得到法向n′i:
式中
是p
i的邻域采样点,
是
与p
i相之间的距离,
是采样点
的法向,W
c和W
s均是高斯滤波函数,
σ
s和σ
c是高斯分布参数,所述σ
c为邻域的半径,σ
s为邻域内高斯分布的方差。对初始点云法向进行双边滤波,使得尖锐边特征两侧法向数据分区域平滑,经过滤波后的法向所定义的切平面更加真实的逼近了实际被测曲面。
所述对初始点云进行Poisson-disk采样包括步骤:
(3.1)、根据原始点云近似面积估计采样半径r,随机选择一个初始采样点,生成初始可用采样边界;
(3.2)、对每个已有采样点的采样边界赋予一概率值,从当前所有采样点邻域球内可用采样边界的集合中,选取采样边界概率最大的采样边界,从中随机选取新的备选点,查找该点在点云中的最近点作为新的采样点;
(3.3)、利用邻域球布尔交运算更新可用采样边界,降低当前更新的可用采样边界的概率值;
(3.4)、迭代步骤(3.2),步骤(3.3)步直到所有邻域球内采样边界最大概率值低于预先指定值Qτ。
进一步地,所述根据原始点云近似面积估计采样半径r,是按照下面的公式估计:
其中N是目标精简数目,ρ是疏密控制参数,一般取为0.7,S是原始点云近似面积,ρ可以根据需要进行调节,以使采样的点疏密均匀。
进一步地,对初始采样点定义半径为2r的邻域球,其可用采样边界为与所述初始采样点法向垂直的切平面与邻域球的交集。
进一步地,所述对每个已有采样点的采样边界赋予一概率值,所述概率qi按照下面公式赋予:
其中l
i为第i个采样点邻域球上的可采样边界,w
i为采样次数参数。
所述调整采样后的点云数到指定的精简数目是指对初步采样结果依采样点Voronoi邻域面积进行排序,迭代向稀疏区域添加以及从拥挤区域移除采样点,最终达到目标精简数目。
本发明的数据点云精简方法属于曲面重采样,基于Poisson-disk采样均匀分布采样点、防止过度拥挤,并利用邻域球布尔交运算扩展可用采样边界。在保持了尖锐边特征与边界数据的同时防止采样点局部聚集,获得了更加均衡的分布,因而更加有利于后续的高质量三角化、基于点的绘制以及形状约束动画等应用。同时能够通过调整采样半径调整点云分布且计算效率比模糊聚类高。
附图说明
图1为本发明基于Poisson-disk采样的点云精简方法流程示意图;
图2为本发明基于Poisson-disk采样的点云精简方法中点云球影响图示意图;
图3为本发明基于Poisson-disk采样的点云精简方法中初始采样边界示意图;
图4为本发明基于Poisson-disk采样的点云精简方法中邻域球布尔求交运算示意图;
图5、为本发明基于Poisson-disk采样的点云精简方法中点云模型的Voronoi多边形示意图;
图6、为本发明基于Poisson-disk采样的点云精简方法中Poisson-disk采样流程示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本发明基于泊松盘(Poisson-disk)采样,对初始取得的数据点云进行精简处理,具体流程如图1所示,包括步骤:
步骤101、估计初始点云法向。
原始点云来源于不同的扫描技术,可分为带有法向与缺失法向两种情况,对于不具备法向信息的每一个采样点pi利用局部协方差分析计算其法向ni,pi邻域的协方差矩阵为:
式中
是p
i的邻域采样点,
是位置均值,p
i的邻域有k个邻域采样点,j∈[1,K]。
然后进行特征值分解并以其最小特征值向量作为pi的初始法向ni:
C·v=λ·v,
式中λ是特征值,v是特征向量。
步骤102、对步骤101中得到的初始点云法向进行双边滤波,重新计算点云法向使其满足:
式中
是p
i的邻域采样点,
是
与p
i相之间的距离,
是采样点
的法向,W
c和W
s均是高斯滤波函数,即
σ
s和σ
c是高斯分布参数,σ
c,σ
s的取值和网格密度有关,一般,σ
c取为邻域的半径,σ
s取为邻域内高斯分布的方差,通常法向双边滤波需重复执行多次,一般为几十次。
采用(2)式计算的法向对于光滑点云数据能够较好地逼近被测曲面法向,但不能良好表示逆向工程中常见的具有尖锐边特征的机械模型,而且增加采样分辨率并不能解决这一问题,因此本发明采用法向双边滤波,使得尖锐边特征两侧法向数据分区域平滑,经过滤波后的法向所定义的切平面更加真实的逼近了实际被测曲面。
步骤103、对初始点云进行Poisson-disk采样,其中采样半径通过原始点云的近似面积来估计,并利用邻域球布尔交运算来扩展可用采样边界。
Poisson-disk采样具有两种性质,即采样点符合随机分布、采样点之间的距离不小于2r,其中r是每个采样点所属圆盘的半径。本发明的Poisson-disk采样算法首先计算采样半径r根据原始点云的近似面积S按照下式计算:
其中N是目标精简数目,ρ是疏密控制参数一般取为0.7,近似面积S根据原始点云的球影响图计算。结合图2,球影响图实际上给出了曲面的一个逼近,整个曲面的面积由每个球邻域面积(邻域三角形逼近)之和组成。
对采样点pi定义半径为2r的邻域球Bi,如图3所示,将可用采样边界定义在采样点切平面与邻域球的交集上,其中采样点pi的切平面与该点的法向ni垂直,所有采样点邻域球的集合构成对点云曲面的覆盖。
结合图4,可用采样边界的扩展通过邻域球布尔交运算实现,在加入新的采样点后,pi的邻域球Bi内可用采样边界消去了新加入的采样点的邻域球沿pi的法向ni投影覆盖的部分,从而更新Bi内可用采样边界。
对每个已有采样点的采样边界赋予一概率值:
其中l
i为第i个采样点邻域球上的可采样边界,w
i为采样次数参数,N是目标精简数目。概率值随长度减少以及采样次数增加而减少。
采样边界更新后,从当前所有采样点邻域球内可用采样边界的集合中选取概率值最大的采样边界,在该采样边界上随机选取点p′,然后查找p′在点云中的最近点作为下一个采样点,直到所有邻域球内采样边界最大概率值低于预先指定值Qτ。
步骤104、对初步采样结果依采样点Voronoi邻域面积进行排序,迭代向稀疏区域添加以及从拥挤区域移除采样点,最终达到目标精简数目。
初步采样结果接近预先指定的采样点数目,但由于Poisson-disk采样的控制参数是采样半径因而不容易精确达到该数目,本发明对初步采样结果依采样点Voronoi邻域面积进行排序,迭代向稀疏区域添加以及从拥挤区域移除采样点,最终达到目标精简数目。若采样点多于指定精简数目,则移除排序序列末尾的多余采样点;若采样点少于指定精简数目,则在面积大的采样点邻域增加采样点,选择其周围三角形(通过Delaunay三角化)中重心离该采样点最远的那个点作为增加的采样点。按顺序增加或移除采样点直至最终达到目标精简数目。
建立Voronoi邻域面积方法如下:首先建立点云邻域,具体参见Proximity Graphs for Defining Surfaces over Point Clouds,M.Alexa,S.Rusinkiewicz,Eurographics Symposium on Point-Based Graphics,2004,然后建立voronoi邻域,结合图5,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成,最后voronoi邻域面积即为包含该点的多边形面积。
具体地,点云Poisson-disk采样算法流程图如图6所示,包括如下步骤:
步骤601、根据原始点云近似面积估计采样半径,随机选择一个初始采样点,生成初始可用采样边界。
步骤602、对每个已有采样点的采样边界赋予一概率值,从当前所有采样点邻域球内可用采样边界的集合中,选取采样边界概率最大的采样边界,从中随机选取新的备选点,查找该点在点云中的最近点作为新的采样点。
步骤603、利用邻域球布尔交运算更新可用采样边界,降低当前更新的可用采样边界的概率值。
步骤604、迭代步骤602,603步直到所有邻域球内采样边界最大概率值低于预先指定值Qτ,该值一般取为原始总采样长度(概率为1)的一定比例,例如千分之一。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。