当前位置:首页 期刊杂志

基于代数曲面的残缺点云数据迭代修复算法

时间:2024-07-28

胡少乾,周来水,闫杰琼,文思扬,穆冬梅

(南京航空航天大学 机电学院,江苏 南京 210016)

0 引言

随着数字化测量技术的发展,通过三维激光扫描仪获取的实物外形点云数据在逆向工程[1]领域有着广泛的应用。但由于扫描过程中光线遮挡、实物外表反射率不一致、实物残缺等原因,获取的点云数据表面难免存在着孔洞,残缺的点云数据直接用于模型重建会丢失模型原有几何信息,因此需要先修复残缺点云数据,为后续逆向工程中点云数据的模型重建提供基础。

相关学者对残缺点云数据的修复算法进行了大量研究。该方法主要分为两类:一类基于三角网格[2-4]对点云残缺孔洞进行修补,该方法是在点云三角化过程中对出现的孔洞进行填补,该算法的复杂度较高,当点云数据量较大时,运算量较大,难以取得理想的效果。另一类直接对点云模型进行残缺孔洞修复。晏海平等[5]以残缺孔洞边界点和边界周围的散乱点为依据在残缺区域拟合曲面片,并在曲面片上采样相应的点,从而完成点云残缺孔洞的修复,孔洞修复结果很大程度上受拟合曲面片的函数影响。YUMER M E等[6]基于前馈神经网络完成对残缺孔洞的修补,该方法的效果受限于神经网络的训练集,且训练集的制作是极为复杂的工作。上述现有算法适合对曲率变化小、残缺孔洞面积较小的点云数据修复,但对缺失面积较大、曲率变化大的点云表面修复效果较差。

针对上述问题,提出了一种通过迭代修复残缺点云数据的算法,能对缺失十分严重且曲率变化较大的残缺点云进行有效修复。本文以三维激光扫描仪获取的航空发动机外形点云数据为对象,进行了相关实验,验证了该方法的有效性。

1 算法流程

图1 本文算法流程图

该算法采取迭代的方式自适应修复残缺孔洞区域,最终得到残缺数据修复的点集P′。在上述算法中对整个点集P和稀疏点集X重复应用下采样和上采样,然而通过实验发现,在将点集X推向数据残缺区域时,只有临近残缺区域边界的点被推向了残缺孔洞,对整个点集进行上述处理增加了算法的复杂度。因此,为了减少冗余计算,除第一次迭代对整个点集进行处理外,之后每次迭代只对新增区域的点集进行处理,后续章节中介绍了自适应选择新增点集的办法。该算法伪代码如下所示。

伪代码:残缺点云数据的迭代修复算法1:输入原始点云P,令i=0,p⇒pi2:对点云pi下采样m个粒子,得到点集X,令X⇒X0;3:while未达残缺修复条件do;4:令X⇐X∪Xi;5:使用WLOP算子使X均匀分布;6:基于APSS曲面,将点集Xi中的点推向数据残缺区域;7:基于Voronoi图对点集Xi进行点插值得到上采样点集γi;8:选择点集γi中新增区域的点为活动点集,令其为pi+1;9:令i⇐i+1,p⇐p∪pi;10:对点集pi下采样mi个粒子,得到点集Xi(其中mi=2m |pi|/|p0|,|…|表示点集中点的数量);11:end while12:return输出修复点云P′,结束。

2 算法实现

2.1 下采样和均匀分布

2.2 基于点集代数曲面的排斥分布

为了完成残缺区域的修复,本文引入了一个排斥算子将点移动到点云残缺的区域。从已知区域向外平滑扩展是用来填补数据缺失区域的很好方式,即:从已知表面沿其切向外扩展原有点集所定义的表面。为保证残缺孔洞处的修补点能很好拟合原残缺孔洞的几何信息,将点沿点集的代数曲面推向残缺孔洞区域。点集的排斥分布示意如图2所示(本刊黑白印刷,相关疑问请咨询作者)。

图2 点集排斥分布示意图

在∀xi∈Xi上定义的APSS曲面,通过排斥的方式将点沿着APSS曲面移动。移动方向由切向分量和投影分量两部分组成。点xi的切向分量由通过APSS曲面的半径r沿其过球心的轴rxi向外旋转来确定的。为保证排斥后的点集能均匀分布,切向分量的公式类似WLOP算子的均匀项,定义如下:

(1)

式中:xi为当前点;X为稀疏点集;wp为点集的类似于WLOP算子中的密度权重项;μ为平衡系数。

(2)

θ(r)=e-r2/(h/4)2

(3)

通常l并不垂直于在xi处的法向量nxi,因此通过计算nxi的正交向量,最终确定其切向分量为

l′=l-(l·nxi)nxi

(4)

可得旋转角度为

(5)

在对粒子xi施加切向分量后,对其施加投影分量,将其向点集定义的APSS曲面投影,以确保点沿着APSS曲面移动,投影分量定义为

(6)

对点施加切向分量和投影分量移动后,完成排斥分布,点云粒子将分布于数据残缺区域,但需要注意的是,只使用一次排斥并不能填补整个残缺数据,这是因为由APSS定义的曲面并不能完全表示残缺区域。因此在后续步骤完成后需要继续将点集推向残缺区域,以完成残缺数据的修复。

2.3 上采样及点集合并

点集Xi为稀疏的点集,被排斥分布到残缺区域后,需对其进行上采样,从而得到分布于残缺区域的稠密点集。Voronoi图的顶点位于近邻点的中心,因此基于Voronoi图的上采样点能均匀分布在Xi定义的光滑表面上并且保持原有数据结构。上采样步骤如图3所示,上采样点是其近邻3个点的外接圆的圆心,即:点集Voronoi图的顶点。不断重复计算新增点位置,得到稠密的点集。

图3 基于Voronoi图的上采样

上采样后点集为γi,选择γi中位于新增区域的点为Pi+1,将其合并到点集P中,形成新的点集,令其为P,令i⟸i+1。由于在将点集排斥分布时,只有临近残缺区域边界附近的点集被移动到了残缺孔洞处,新增区域点位于残缺孔洞周围。因此在计算下一次迭代时,只对新增区域的点进行处理可以提高算法运算效率并将满足以下条件的点视为新增区域的点,合并到点集P中:

3 综合实验

为了证明本文算法的有效性,本节对航空发动机外形实测点云数据进行了实验。如图4所示,为航空发动机机匣表面残缺孔洞,对其进行20次迭代后,完成了该区域数据的修复。随着迭代的进行,点集被不断排斥分布到残缺区域,残缺区域面积逐渐缩小直到完成修复。

图4 机匣表面数据迭代修复结果

图5所示为航空发动机的管路点云数据。由于管路紧紧依附于发动机表面,只能获取管路一侧的测量数据,管路数据残缺十分严重。该算法对管路点云模型进行了15次迭代,获得了较为理想的完整点云模型。

图5 管路数据迭代修复结果

图6展示了管路的原始数据和使用本文算法修复后的数据进行泊松重建的结果,并放大了局部细节。直接使用原始数据进行泊松重建后模型表面发生了塌陷,而重采样后的数据再进行泊松重建后,模型较好地保持了管路原有特征结构。说明本文算法修复能够有效修复残缺数据,对修复后的数据进行重建保留了实物更完整的信息。

图6 管路数据修复前后重建结果

图7为对比了航空发动机外形点云数据使用上述算法处理的前后效果。结果显示,该算法修复了发动机表面残缺区域。对原始数据和使用该算法修复后的数据进行了泊松重建。结果显示,原始数据泊松重建后,残缺区域模型塌陷严重;对修复后的数据进行重建,重建结果保持了发动机表面的轮廓几何特征。

上述实验说明本文算法可以有效修复残缺点云数据,恢复原有几何信息,获得一个完整的高质量点云数据。

图7 航空发动机外形点云数据修复前后对比

4 结语

本文提出了基于代数曲面的残缺点云数据迭代修复算法。通过迭代的方式不断缩小点云残缺区域的面积,直到修复残缺点云数据。本文以航空发动机外形点云数据为对象进行了实验,实验表明该算法对曲率连续点云表面的有效性。该方法不仅能修复曲率变化不大的机匣点云残缺孔洞,还对曲率变化较大的航空发动机管路模型十分有效。使用本文方法修复的航空发动机实测外形点云数据,较好地恢复了残缺区域的几何信息,为逆向工程中发动机数字样机的构建提供了基础。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!