浙江大学学报(工学版), 2025, 59(10): 2045-2055 doi: 10.3785/j.issn.1008-973X.2025.10.005

机械工程

无序点云模型的多孔洞修补方法

侯月桥,, 王承彦, 怀思然, 李勇航, 陈嘉琳, 谭大鹏,

1. 浙江工业大学 机械工程学院,浙江 杭州 310023

2. 中国航空工业集团有限公司 北京长城航空测控技术研究所,北京 101111

Multi-hole repair method for unordered point cloud models

HOU Yueqiao,, WANG Chengyan, HUAI Siran, LI Yonghang, CHEN Jialin, TAN Dapeng,

1. College of Mechanical Engineering, Zhejiang University of Technology, Hangzhou 310023, China

2. Beijing Changcheng Aeronautical Measurement and Control Technology Research Institute, Aviation Industry Corporation of China, Limited , Beijing 101111, China

通讯作者: 谭大鹏,男,教授,博士. orcid.org/0000-0002-7855-6776. E-mail:tandapeng@zjut.edu.cn

收稿日期: 2024-09-28  

Received: 2024-09-28  

作者简介 About authors

侯月桥(1999—),男,博士生,从事激光测量中点云误差补偿研究.orcid.org/0009-0006-7861-3140.E-mail:student_qiao@163.com , E-mail:student_qiao@163.com

摘要

针对数据处理产生的点云模型孔洞,提出无序点云的多孔洞修补方法. 推导出不均匀数据点的密度公式得到邻域投影范围,使用角判别法以整体拟合平面为投影面进行边界识别. 定义边界形心,以形心、边界和边界邻域三者之间的位置关系提取孔洞边界. 在规则化与均匀化投影边界内以三角片法插值点,基于边界邻域拟合曲面还原孔洞特征,推导出参数方程进行点云孔洞填充,设计多维循环算法实现多孔洞自动修补. 利用CAD点云模型与激光雷达测量数据分别进行算法分析与实验验证. 结果表明,所提方法有效减少了以微切面为投影面时边界点的错误识别,实现了多个不同孔同时存在时无序点云模型的修补;在针对不同对象的实验中,所提方法的修复误差达到毫米级.

关键词: 无序点云 ; 孔洞识别 ; 非均匀数据 ; 参数映射方程 ; 多孔洞修补

Abstract

To address the holes of point cloud models generated by data processing, a multi-hole repair method for unordered point clouds was proposed. A density formula for nonuniform data points was proposed to obtain the range of neighborhoods to be projected, and the boundaries were identified by the angular discrimination method using the overall fitting plane as the projection surface. The boundary centers were defined, and the hole boundaries were extracted with the positional relationship among the boundary centers, the boundary, and the boundary neighbors. Points were interpolated using the triangular patch method within the regularized and homogenized projection boundary, and surface reduction hole features were fitted based on the boundary neighborhood. A parametric equation was proposed to fill the point cloud holes, and a multidimensional loop algorithm was designed to realize the automatic repair of multiple holes. The algorithm was analyzed and experimentally validated by a CAD point cloud model and LiDAR measurement data, respectively. Results show that the proposed method leads to an effective reduction of misidentified points at the boundary when the microtome is used as the projection plane, and the repair of unordered point cloud models with multiple holes has been achieved. In experiments for point clouds of different objects, the proposed method achieves a restoration error in the millimeter range.

Keywords: unordered point cloud ; hole identification ; nonuniform data ; parameter mapping equations ; multi-hole repair

PDF (4599KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

侯月桥, 王承彦, 怀思然, 李勇航, 陈嘉琳, 谭大鹏. 无序点云模型的多孔洞修补方法. 浙江大学学报(工学版)[J], 2025, 59(10): 2045-2055 doi:10.3785/j.issn.1008-973X.2025.10.005

HOU Yueqiao, WANG Chengyan, HUAI Siran, LI Yonghang, CHEN Jialin, TAN Dapeng. Multi-hole repair method for unordered point cloud models. Journal of Zhejiang University(Engineering Science)[J], 2025, 59(10): 2045-2055 doi:10.3785/j.issn.1008-973X.2025.10.005

随着三维传感技术的快速发展,测量设备可以高精度地采集物体表面的大量点云数据,三维点云模型的应用邻域得到不断拓展,如目标识别、缺陷检测[1-4]. 在三维数据处理和建模过程中,探测盲区、表面反射或者尖锐区域错误噪点的去除、多源数据重合区域的拼接等操作会导致待测目标的表面点云模型出现孔洞. 这不仅影响点云的显示效果,还会对后续的点云数据处理和分析产生较大的影响[5-11]. 基于三维点云上的孔洞特征研究表面模型的多孔洞修补方法,对点云模型的下游应用尤为重要.

现有点云孔洞修复算法主要分为2个类别:基于网格点的方法和基于无序点的方法. 基于网格的点云孔修复算法采用泊松(Poisson)法或德劳内(Delaunay)法生成三角网格,标记处于单个三角网格中的边界线得到孔洞轮廓,通过三角网格的几何或特征信息完成点云孔洞的修复[12-17]. 该类方法简单易行,但严重依赖三角网格精度,鲁棒性差、计算时间长. 崔文等[13]针对激光点云中的孔洞,遍历三角网格得到孔洞边界,融合最小二乘网格与径向函数隐式曲面完成孔洞修复. Chen等[15]为了提高基于三角网格的孔洞修复的效率,提出保留特征的网格简化方法,结果显示该方法虽然提升了修复效率,但牺牲了修复精度. 基于无序点的方法无需拓扑重建的预处理,储存效率和执行效率得到提升. 这类方法主要基于局部微切面识别孔洞边界,结合边界及其邻域点的几何特征信息,使用不同的点插值方法完成孔洞修补[18-23]. Lin等[18]针对具有尖锐特征的孔洞提出基于张量投票填充方法,通过恢复特征曲线将特征孔划分为非特征孔后分别填充. 该方法修复能力较好,但文献没有给出如何利用特征线分割孔的方法. Zhang等[21]针对有边界曲面点云孔洞提出基于模糊推理系统的修复方法,该方法对点云上小孔的修复效率高于样条曲线算法,而且2种方法的修复精度相当;该方法的模糊系统采用经验性参数,只能通过不断试错达成较好的修复效果. 随着人工智能的发展,神经网络被用于孔洞修复[24-28]. 王春香等[25]提出基于遗传算法(genetic algorithm,GA)-反向传播(back propagation, BP)神经网络的无序点云孔洞自动修补方法,以鼠标表面上的小孔修复为例,展示了该方法较高的修复精度;当修复目标表面增大时,该方法的修复误差会增加. Duan等[26]提出基于径向基函数(radial basis function, RBF)神经网络映射的点云孔洞修复算法,以Matlab生成的曲面孔洞模型为例,证明该方法的修复精度高于样条曲面拟合插值算法,但修复时间较长. 可以看出,基于神经网络的修复方法修复较小孔洞的精度较高,但模型训练过程大大降低了方法效率.

基于无序点云的研究大多集中在单一孔洞的识别与修复上,本研究提出无序点云多孔洞自动修补方法. 1)针对基于微切面的边界识别方法在复杂曲面处的误识别问题,以整体点云数据拟合的平面为投影面,采用角度判别法提取边界点. 2)推导出点云密度公式,使所提方法适用不同分辨率的点云和非均匀分布的数据点. 3)构建曲面方程,还原大小、点云测量精度与所在表面形状不同的孔洞的几何信息. 4)设计迭代求解映射点方法,减小计算机截断误差与舍入误差.

1. 无序点云孔洞边界识别

为了方便描述,约定孔洞边界点和点云轮廓点均为边界点,孔洞边界和点云轮廓均为边界. 约定通过整体点云数据拟合的平面称为整体拟合平面,以边界点拟合的平面称为边界拟合平面. 采用2个循环算法分别实现边界点的识别与孔洞边界的提取:循环1)遍历原始点云中所有点,采用角度阈值法判定边界点,得到边界集合点集;循环2)遍历集合点集中所有点,分割点集得到独立边界点集并判断边界是否为孔洞边界. 循环2)是实现多孔洞修复的重要环节;当原始点云数据存在轮廓且因点云缺失存在多个点云孔洞时,该循环实现多个边界的分割并识别出真正的孔洞边界. 由如图1所示的多孔洞上边界识别流程得到若干独立孔洞边界点集.

图 1

图 1   孔洞边界识别流程图

Fig.1   Flow chart of hole boundary identification


1.1. 边界点识别

判别点及其邻域点是否投影在同一平面,这是判断能否使用邻域点角法进行孔洞点判别的前提. 设平面方程

$ {{A}}x+{{B}}y+{C}z+{{D}} = 0. $

构建目标函数

$ s\left( {a,b,c} \right){\text{ = }}\sum\limits_{i = 0}^n {{{\left( {a{x_i}+b{y_i}+c - {z_i}} \right)}^2}} . $

式中:n为点数,当基于整体点云数据拟合平面时,n表示曲面所有点数;当以边界点拟合平面时,n表示边界点数. s(a, b, c)分别对abc求偏导并等于零,得到系数方程组

$ \left. \begin{gathered} \sum\limits_{i = 1}^n {\left( {a{x_i}+b{y_i}+c - {z_i}} \right){x_i} = 0,} \\ \sum\limits_{i = 1}^n {\left( {a{x_i}+b{y_i}+c - {z_i}} \right){y_i} = 0,} \\ \sum\limits_{i = 1}^n {\left( {a{x_i}+b{y_i}+c - {z_i}} \right) = 0.} \\ \end{gathered} \right\} $

求解式(3)得到拟合平面系数. 以判别点在拟合平面上的投影点为起点,该判别点的邻域投影点为终点,在投影面上形成若干向量. 角度判别法的原理是求解2个相邻向量夹角,当该夹角超过阈值时,判定该判别点为边界点. 通过点云密度选择邻域范围,考虑到不同原始点云数据的分辨率可能相差较大,推导点云密度求解公式为

$ \rho {\text{ = }}\frac{1}{{m{n_1}}}\sum\limits_{i = 1}^{{n_1}} {\sum\limits_{j = 1}^m {{d_{ij}}} } . $

式中:n1为整体点云数量,$ {d}_{ij} $为点云中第i个点与第j相近点之间的距离. 由式(4)可知,密度ρ随着m逐渐增大而增大,当密度较上次密度小于0.1时,将该密度确定为原始点云数据密度. 式(4)通过引入每个点与其多个相近点的距离求平均值,不仅能够反映点与点之间的平均距离,还可以改善数据点分布不均匀带来的点云密度求解误差. 在应用中为了再次降低点云不均匀带来的影响,取点云密度的3倍作为邻域半径. 选择阈值时,计算所有点的邻域相邻向量夹角的平均值,阈值应大于平均值且使边界相对光滑,以利于孔洞填充时的点插值.

为了提高算法效率,构建K维树(Kd-Tree)算法来查找判别点的邻域点. Kd-Tree算法的核心:通过递归的方式将三维空间划分为嵌套的子空间,每个子空间对应树中的1个节点. 在搜索邻域点时从Kd-Tree的根节点开始,通过比较查询点与当前节点的切分维度值,确定搜索方向(左子树或右子树),递归地在所选子树中记录已找到的邻域点及其距离. 如图2所示,将采用Kd-Tree算法得到的判别点的邻域点投影到整体拟合平面上,为了在确定相邻向量时根据邻域点之间形成的向量确定单一的搜索方向,对点p与其邻域点形成的向量进行归一化处理,归一化公式为

图 2

图 2   角判别法示意图

Fig.2   Illustration of angle discrimination method


$ \left. \begin{gathered} {x^{(2)}} = {{h}}\frac{{{x^{(1)}} - x_{p}^{(1)}}}{M}, \\ {y^{(2)}} = {{h}}\frac{{{y^{(1)}} - y_{p}^{(1)}}}{M}, \\ {z^{(2)}} = {{h}}\frac{{{z^{(1)}} - z_{p}^{(1)}}}{M}. \\ \end{gathered} \right\} $

式中:M为邻域投影点与点p之间的距离,h为归一化后的向量长度,取h=10 mm,上标(1)表示投影点坐标分量,上标(2)表示投影点归一化后的坐标分量. 归一化的目的是使向量的长度一致以便于计算相邻向量的夹角. 归一化的长度可以任意确定,不会影响最终结果. 1)从归一化点云中任选一点作为初始点,将其标记为已处理;2)通过Kd-Tree查找初始点的最近邻点,将该点也标记为已处理. 这2个点分别与点p构成的向量称为相邻向量,将从初始点指向其最近邻点的向量记为该步的指向向量;3)在未标记的点中,查找当前被搜索点(上一步的最近邻点)的2个最近邻点,分别生成2个新的指向向量;4)计算这2个新向量与上一轮指向向量之间的夹角,选择夹角较小的向量所对应的点作为本轮的搜索目标,标记该点并记录其对应的相邻向量;5)重复步骤3)和4),依次迭代搜索与标记,直到最终回到初始点. 计算各相邻向量之间的夹角,

$ \theta = {\mathrm{arccos}}\frac{{{\boldsymbol{pq}}}}{{|{\boldsymbol{p}}||{\boldsymbol{q}}|}}. $

式中:pq为相邻向量. 将这些夹角排序,得到夹角的最大值记为а.

图3所示为使用基于点云密度的边界识别效果图. 数据点的xy坐标落在区间[0, 300]内,以π/3为阈值,а≥π/3的判别点为边界点,识别出的边界点包括孔洞边界点和点云轮廓点.

图 3

图 3   边界识别效果图

Fig.3   Visualization of boundary identification


1.2. 边界分割与孔洞边界提取

导出的边界点集还不能描述单一孔洞的边界,为此进行边界分割. 分割后的边界中包含点云轮廓,基于边界形心、边界、边界邻域三者之间的位置关系提取出孔洞边界,实现不同孔洞的定位与修复. 采用距离法分割边界,以图4(a)所示边界点集为例:1)从边界点集中任选一点作为起始搜索点,将其复制至新集合(如U1)中,并对其进行标记;2)在剩余未处理的边界点中,使用Kd-Tree查找当前搜索点的最近点(被搜索点);3)判断搜索点与被搜索点之间的距离是否小于或等于云密度ρcut(点云密度ρ的3倍):若满足条件,则将被搜索点复制到当前搜索点所在的同一集合(如U1);否则,创建新集合(如U2U3),并将被搜索点复制至该集合;4)标记当前被搜索点,以避免重复访问,并将其作为下一步的搜索点;5)重复步骤2)~4),依次处理每个新确定的被搜索点,直到边界集中所有点都被复制完毕;6)不同的边界区域将被存储于多个子集中. 点云的边界分割效果如图4(b)和(c)所示.

图 4

图 4   边界分割效果图

Fig.4   Visualization of boundary segmentation


子集中的点构成点云轮廓或孔洞边界,考虑孔洞边界和点云轮廓的位置关系,以边界形心为参考点提出边界判别方法:将边界及其邻域点(边界中所有点的邻域点的并集)投影到边界拟合平面上. 计算投影边界的形心:

$ {\boldsymbol{c}} = \frac{1}{{{m_1}}}\sum\limits_{i = 1}^{{m_1}} {{{\boldsymbol{b}}_i}} . $

式中:c为形心坐标向量,m1为投影边界点总数,bi为投影边界点坐标向量. 计算边界点到形心的平均距离:

$ {l_{\text{1}}} = \frac{1}{{{m_1}}}\sum\limits_{i = 1}^{{m_1}} {{\text{ }}|{{\boldsymbol{b}}_i} - {\boldsymbol{c}}|} . $

邻域投影点到形心的平均距离:

$ {l_2} = \frac{1}{{{m_2}}}\sum\limits_{j = 1}^{{m_2}} {{\text{ |}}{{\boldsymbol{n}}_j} - {\boldsymbol{c}}|} . $

式中:nj为边界邻域点坐标向量,m2为边界邻域投影点总数. 当l1l2时,进行判别的子集中的边界为孔洞边界,否则为点云轮廓. 如图5所示为使用边界判别方法区分并排除点云轮廓后的效果,图中的深色边界定位了单一孔洞.

图 5

图 5   孔洞边界识别与定位

Fig.5   Hole boundary identification and location


2. 无序点云的孔洞修补

在提取出各独立孔洞边界后,通过循环依次处理每个孔洞:利用Kd-Tree在原始点云中搜索当前边界的邻近点以确定拟合邻域;通过邻域点拟合曲面方程,并将插值点映射至该曲面,生成孔洞填充点. 处理完所有孔洞后,将填充点集成至原始点云,实现自动修复. 单一孔洞修补的循环执行流程为多孔洞修补的关键环节,如图6所示.

图 6

图 6   点云孔洞修补流程图

Fig.6   Flowchart of hole repair for point cloud


2.1. 投影边界预处理

当原始点云的不同区域点云分辨率、位置孔洞的形状不同时,存在边界点漏识别与错误识别的问题. 漏识别会加大孔洞边界上点与点间距离的不均匀性,错误识别会使孔洞边界上出现边界邻域点. 在填充孔洞之前须进行边界规则化与均匀化预处理. 规则化方法:1)从投影边界点集中依次取3个点,以第2个点为基准,计算该点与第1和第3个点形成的向量,称2个向量为边界相邻向量;2)计算边界相邻向量夹角,当夹角大于π/2时,删除中间点. 3)后退1个点重新开始检查,直到边界任意相邻向量夹角都在区间[0, π/2]内. 规则化后的投影边界在平面点插值时不会出现局部稠密问题,保证了再次依次取点时,所有相邻的3个点均按顺序单向环绕. 均匀化方法:从投影边界中依次取点,计算相邻2个点的间距,当间距大于局部投影点云密度时,插入点计算式为

$ {{\boldsymbol{\kappa}} _i} = {{\boldsymbol{n}}_u}+i\frac{{{{\boldsymbol{n}}_v} - {{\boldsymbol{n}}_u}}}{\eta };\;1 \leqslant i < \eta ,i \in N. $

式中:η=[L/ρn]+1,L为相邻点的间距,ρn为边界邻域投影点云密度,[L/ρn]为不大于L/ρn的整数. nunv为2个相邻投影点的坐标,${{\boldsymbol{\kappa}} _i} $为2个坐标之间插入的点. 均匀化后的边界避免了孔洞填充点的点云不均与密度不一致(相比边界邻域点云密度)问题,减小了边界邻域与填充点的间隙,减轻了孔洞的修复痕迹. 边界预处理过程中各阶段的处理结果如图7所示.

图 7

图 7   投影边界预处理过程

Fig.7   Preprocessing of projected boundaries


2.2. 投影边界内点插值

基于三角片的点插值方法最初被直接用于还原三维孔洞,由于新的孔洞边界点形成在微切面上,当点云密度较大或者表面有噪点时修复质量较差[29]. 虽然在曲面上基于三角片法的点插值效果不佳,但在平面边界内可以形成均匀的填充点. 使用三角片法在投影边界插入点,形成缩小的新边界,当最新的边界中的点小于6个时,插值结束. 如图8所示为孔洞边界缩小与孔洞填充的过程.

图 8

图 8   基于三角片法的点插值过程

Fig.8   Point interpolation process using triangular patch method


图9所示为平面内基于三角片方法的点插值原理. 点O1O2O3为边界点上的3个相邻点;点TW是2条边的中垂线和圆心为O1、半径为边界点及其邻域点的密度ρcn的圆的交点,被称为候补填充点. 当点间距小于ρcn时,以点TW的中点为新的边界点,且在新的边界中不保留点O1;当间距大于ρcn小于2ρcn时,以点TW为新的边界点,不保留点O1;当间距大于2ρcn时,以点TW为新的边界点,并在新的边界点中保留点O1. 实际上,中垂线与圆的交点有4个,在孔洞内的交点才被称为候补填充点,基于边界相邻向量叉积模判断候补填充点. 对依次从点集中取点的环绕方向使用右手定则,得到的方向定义为边界的特征方向. 假设特征方向为Г,依次取点计算边界相邻向量的叉积与叉积模,当叉积的方向与Г相同时,叉积模为正,反之为负. 对所有叉积模求和,当总值大于零时,Г便为边界实际特征方向,反之实际特征方向为−Г. 当$ \overrightarrow{{O}_{2}{O}_{1}}\times \overrightarrow{{O}_{1}T} $$ \overrightarrow{{O}_{1}{O}_{3}}\times \overrightarrow{{O}_{1}W} $的方向与特征方向相同时,TW在边界内部,为候补填充点.

图 9

图 9   三角片法的点插值原理

Fig.9   Point interpolation principle of triangular patch method


2.3. 曲面方程拟合与点映射

在孔洞边界投影面内得到平面填充点后,建立曲面模型还原孔洞的几何特征;计算机存在截断误差与舍入误差,直线与高次曲面方程的联立求解存在较大误差,为此设计基于参数方程的方法,将平面点映射到曲面上,完成无序点云模型的孔洞填充. 考虑不同孔洞大小、点云测量精度与孔洞所在表面形状等条件下多孔洞修复方法的适用性,以曲面方程拟合修复,参数方程为

$ \varOmega \left( {x,y} \right) = {\boldsymbol{\lambda}} {{\boldsymbol{\beta}} ^{\mathrm{T}}}. $

其中λ=[λ0, λ1, ···, λg]为系数矩阵,β=[1, x, y, x2, xy, y2, ···, x2yh−2, xyh−1, yh],g=(h+1)(h+2)/2−1. h越大,曲面方程所能拟合的曲面越复杂,拟合曲面也越容易受到点云噪点的干扰. 取g=14、h=4,既能够拟合修复复杂形状表面上的孔洞,也能够在激光雷达点云测量不光滑的条件下使几何还原不受干扰. 采用最小二乘法拟合曲面方程,

$ f\left( {\boldsymbol{\lambda}} \right) = \sum\limits_{i = 0}^{{n_2}} {{{\left( {{\boldsymbol{\lambda}} {{\boldsymbol{\beta}} ^{\mathrm{T}}} - \varOmega \left( {x,y} \right)} \right)}^2}} , $

$ \frac{{\partial \left[ {f\left( {\boldsymbol{\lambda}} \right)} \right]}}{{\partial {\boldsymbol{\lambda}} }} = 0. $

式中:n2为孔洞边界及其邻域中点的总数. 系数方程组式(13)常因出现奇异性而无法按照矩阵运算求解,本研究选择Levenberg-Marquardt算法[30]求解系数方程组. 平面点到曲面的映射方法采用参数方程:

$ {{\boldsymbol{x}}_t} = {\boldsymbol{x}}+t\cos {\boldsymbol{\gamma}}. $

式中:${\boldsymbol{x}_t}=[x_t, y_t, z_t]^{\mathrm{T}}, $x为边界拟合平面上的插值点坐标向量,${\boldsymbol{\gamma}} $各分量分别为投影面法向量与$ {x}\mathrm{、}{y}\mathrm{、}{z} $轴之间的夹角. 参数t以步长为0.0001从0开始等值增大或减小,利用式(14)求解得到xtytzt,将xt、yt代入式(11)得到Ω(xt, yt),设

$ w = {z_t} - \varOmega \left( {{x_t},{\text{ }}{y_t}} \right). $

随着t的变化,当w=0或w变号时,xtytzt即为平面坐标x映射到曲面上的坐标.

图10所示为采用曲面拟合及点映射方法修复的孔洞以及绝对修复误差δ(x, y)的分布云图.

图 10

图 10   孔洞修补结果与绝对修复误差

Fig.10   Hole-repair results and absolute error


$ \delta \left( {x,y} \right) = z\left( {x,y} \right) - {z_t}. $

式中:z(x, y)与zt分别为xy坐标下的真实z坐标和拟合插值坐标. 图10(b)中的孔洞区域通过人工删除原始点云数据构建,因此该区域的真实点坐标(x, y, z(x, y))已知,将已有真实点的xy代入拟合曲面方程得到zt. 由云图可知最大误差为0.15 mm.

3. 算法分析与对比

通过绘制带孔洞CAD模型验证本研究所提方法对多孔洞自动识别与修补的能力. CAD模型的xyz坐标范围分别为0~600、 0~600、 −100~30 mm,该模型上有凸起、沟槽、放样曲面、凹陷和沉孔等特征. 在模型的不同位置人为删除部分点,构建不同大小、不同边界形状的孔洞,不同孔洞所在的点云表面形状也不同. 采用所提方法对模型的孔洞识别与修补情况分别如图11图12所示. 可以看出,经过孔洞预处理后的三维填充点分布均匀,密度与邻域点云密度相近,在填充点云与邻域点云之间没有缝隙. 不同形状点云表面上的孔洞修复效果不同,平面与弧面上的孔洞填充点云准确还原了原始点云的几何与特征信息(如凸起、平面十字形、沉孔和凹陷);复杂曲面的孔洞填充点云与周围点云相比,仅在大曲率过渡处有微小的偏移,但仍能恢复原始模型的形状(如沟槽和放样曲面). 验证结果表明了多孔洞修复流程与算法的有效性.

图 11

图 11   多孔洞边界识别效果图

Fig.11   Visualization of multi-hole boundary identification


图 12

图 12   多孔洞修补效果图

Fig.12   Visualization of multi-hole repair


在整体拟合平面上识别孔洞边界点,有效减少了以微切面为投影面的错误识别问题,点云中的微切面通过某个点及其邻域点拟合平面得到. 由于实际传感设备测得的点云表面存在噪声,微切面容易受到邻域点分布的影响. 当经过边界点的微切面法线在邻域范围内时,会使边界点成为平面投影数据的内部点,内部点成为边界点,最终产生错误识别点,如图13(a)所示. 如图13(b)所示,基于整体点云数据拟合平面可以有效减少上述原因产生的错误识别点,但当某局部点云所在面与整体拟合平面的法线的交点多于1个时,该局部区域上的孔洞边界识别将产生误差.

图 13

图 13   不同孔洞识别方法对比

Fig.13   Comparison of different hole recognition methods


采用本研究所提方法对Duan等[26]提出的点云模型进行修复,并与文中的样条曲面拟合修复结果进行对比,结果如图14所示. 孔洞模型xyz坐标范围分别为−10~10、−10~10、−100~0 mm,其中孔洞区xy坐标范围为−4~4 mm. 样条曲面拟合是孔洞修复中常用的方法,其以孔洞边界及其邻域点云为控制点,具有修复复杂曲面上孔洞的优势. 但当点云有噪点时,拟合曲面不稳定,孔洞修复精度较差. 由于拟合曲面与控制点发生偏移,样条曲面拟合方法对于简单表面上的孔洞修复也存在较大误差. 基于曲面方程拟合的孔洞修复算法受点云噪声的干扰较小,对于简单表面上的孔洞修复精度也很高.

图 14

图 14   不同孔洞修补方法对比

Fig.14   Comparison of different hole repair methods


图15所示为曲面方程拟合方法绝对修复误差. 在计算修复误差时,z轴真实值由孔洞区域填充点的xy坐标代入模型方程得到,z轴修复值则由拟合点坐标直接获得. 可以发现,绝对误差范围为−0.190~0.025 mm.

图 15

图 15   曲面方程拟合方法的绝对修复误差

Fig.15   Absolute repair error of surface-equation fitting method


4. 无序点云孔洞修补实验

现场采集无序点云开展无序点云孔洞修复实验,验证无序点云孔洞识别与修补方法的实际应用效果. 实验平台主要由具有1.60GHz i5-8250U CPU、8.00GB内存和QT、Visual Studio软件的PC机,LIVOX Mid-40激光雷达,R4A路由器,Livox转换器和待测目标物等组成,如图16所示. Livox Mid-40激光雷达发射905 nm激光波长、采用非重复式扫描方式,每秒获得1.0×105个点,20 m内距离精度为2 cm、角度精度小于0.1°,当雷达与被测物体小于1 m时测量失效.

图 16

图 16   激光雷达测量平台

Fig.16   LiDAR measurement platform


汽车是生活中常见的目标物,镜面反射使汽车的三维成像测量容易因点云缺失产生孔洞. 以汽车为扫描对象,采用激光雷达从3个角度且每个角度固定扫描3 s得到汽车表面点云图,如图17所示. 可以看到,激光雷达在一些角度下测不到玻璃表面点云,孔洞由此产生. 由于激光雷达的局限与车辆周围环境因素的干扰,原始点云数据存在大量体外孤点、离群点缺陷. 对原始点云数据进行点云降采样、平滑降噪与体外孤点去除等相关操作后[31-32],采用本研究提出的孔洞识别与修补方法对孔洞进行修复,结果如图18所示. 其中中浅色点为数据处理后得到的汽车表面点云,深色点为孔洞三维修复点. 结果表明,基于无序点云的孔洞修补方法在实际应用中具有较为稳定的多孔洞自动修补能力,能够较高精度还原汽车的原始外表面.

图 17

图 17   汽车点云图

Fig.17   Car point cloud image


图 18

图 18   汽车点云的孔洞修补效果图

Fig.18   Hole-repair visualization for car point clouds


图19所示,以管道为扫描对象,通过在处理后的数据上切割出孔洞并修补,验证所提方法的实际点云的修复精度. 采用所提方法修复孔洞后得到如图20(a)所示的完整点云图,从整体上看,修补点云与周围点云的几何特征无异. 根据误差求解方法,孔洞区域z轴真实值由激光雷达扫描得到,z轴修复值由已有扫描点坐标xy代入拟合曲面方程得到. 近似方形孔的①处和近似圆形孔的②处的修复误差范围分别为0.64~1.33和−0.45~0.36 mm,平均误差值分别为0.16和−0.03 mm.

图 19

图 19   管道原貌及其点云图

Fig.19   Original appearance of pipeline and its point cloud image


图 20

图 20   管道点云的孔洞修补结果与绝对修复误差

Fig.20   Hole-repair results and absolute error of pipeline point clouds


5. 结 语

三维传感点云数据的孔洞修复对于如缺陷检测、目标识别的下游应用具有重要科研价值和工程意义. 本研究提出基于无序点云的孔洞自动修补方法,基于CAD点云模型进行方法分析和对比,通过激光雷达扫描得到的点云数据对所提方法进行实验验证,主要结论如下. 1)在整体拟合平面上采用角度判别法识别边界,避免了传统方法在复杂曲面处的误识别问题. 对投影边界规则和均匀化处理,采用三角片法在边界内实现点插值,基于参数方程方法完成点映射,得到与原始点云密度特征相同的三维插值点. 2)构建四次曲面方程模型,以孔洞边界及其邻域点拟合方程,有效还原了不同孔洞的原始几何信息. 以大曲率曲面上的孔洞为例,该方法的修复精度高于样条曲面插值拟合算法,且具有较高的修复效率. 3)考虑数据点分布不均匀,推导出点云密度公式,有效反映了原始数据的分辨率. 定义边界形心公式,基于边界形心、边界、边界邻域的位置关系提取孔洞边界. 设计基于边界分割、孔洞提取、曲面拟合等算法的多维循环流程,实现无序点云上多孔洞的自动修补. 4)采用激光雷达并以汽车和管道为扫描对象进行方法性能验证实验,结果表明所提方法在测量数据不光滑的情况下仍然具备多孔洞的自动修补能力,方法的修复精度可以达到毫米级. 确定不同大小和形状的孔洞边界邻域范围,才能使无序点云多孔洞修复方法达到最佳的孔洞识别和修复效精度,如何让所提方法根据孔洞的特征自动调整Kd-Tree搜索参数以确定对应邻域范围是今后工作的重点.

参考文献

HE Y, MA W, LI Y, et al

An octree-based two-step method of surface defects detection for remanufacture

[J]. International Journal of Precision Engineering and Manufacturing-Green Technology, 2023, 10 (2): 311- 326

DOI:10.1007/s40684-022-00433-z      [本文引用: 1]

WANG R, AN M, SHAO S, et al

Lidar sensor-based object recognition using machine learning

[J]. Journal of Russian Laser Research, 2021, 42 (4): 484- 493

DOI:10.1007/s10946-021-09986-x     

PRÜNTE P, SCHOEPFLIN D, SCHÜPPSTUHL T

A comparative study of visual identification methods for highly similar engine tubes in aircraft maintenance, repair and overhaul

[J]. Sensors, 2023, 23 (15): 6779

DOI:10.3390/s23156779     

WU B, BAI Y, LV K, et al

Accurately identifying the defects of bubbles and foreign objects under the protective films of electric vehicle batteries by using 3D point clouds

[J]. Measurement Science and Technology, 2024, 35 (9): 095015

DOI:10.1088/1361-6501/ad57e1      [本文引用: 1]

HUANG Y, DA F

Three-dimensional face point cloud hole-filling algorithm based on binocular stereo matching and a B-spline

[J]. Frontiers of Information Technology and Electronic Engineering, 2022, 23 (3): 398- 408

DOI:10.1631/FITEE.2000508      [本文引用: 1]

CUI L, ZHANG G, WANG J

Hole repairing algorithm for 3D point cloud model of symmetrical objects grasped by the manipulator

[J]. Sensors, 2021, 21 (22): 7558

DOI:10.3390/s21227558     

KIM Y, NGUYEN C H P, CHOI Y

Automatic pipe and elbow recognition from three-dimensional point cloud model of industrial plant piping system using convolutional neural network-based primitive classification

[J]. Automation in Construction, 2020, 116: 103236

DOI:10.1016/j.autcon.2020.103236     

ZHANG Q, HOU Z, HUANG L, et al

Reparation with moving least squares sampling and extraction of body sizes of beef cattle from unilateral point clouds

[J]. Computers and Electronics in Agriculture, 2024, 224: 109208

DOI:10.1016/j.compag.2024.109208     

ATIK M E, DURAN Z

3D facial recognition using local feature-based methods and accuracy assessment

[J]. Journal of the Faculty of Engineering and Architecture of Gazi University, 2021, 36 (1): 359- 371

STRAKOVÁ E, LUKÁŠ D, BOBOVSKÝ Z, et al

Matching point clouds with STL models by using the principle component analysis and a decomposition into geometric primitives

[J]. Applied Sciences, 2021, 11 (5): 2268

DOI:10.3390/app11052268     

MENG Y, JIANG Y, LI Y, et al

Research on point cloud processing and grinding trajectory planning of steel helmet based on 3D scanner

[J]. IEEE Access, 2023, 12: 3085- 3097

[本文引用: 1]

YAU H T, YANG T J, JIAN H Z

A region-growing algorithm using parallel computing for surface reconstruction from unorganized points

[J]. Advances in Engineering Software, 2013, 59: 29- 37

DOI:10.1016/j.advengsoft.2013.03.002      [本文引用: 1]

崔文, 陈辉, 刘万泉

激光三角网格点云孔洞曲面修补方法

[J]. 激光与光电子学进展, 2021, 58 (20): 2014002

[本文引用: 1]

CUI Wen, CHEN Hui, LIU Wanquan

Hole surface repairing for laser triangular mesh point cloud

[J]. Laser and Optoelectronics Progress, 2021, 58 (20): 2014002

[本文引用: 1]

李松, 马聪聪, 陆帆, 等

基于多向波前法的岛屿孔洞修补

[J]. 中国机械工程, 2019, 30 (20): 2473- 2479

LI Song, MA Congcong, LU Fan, et al

Island hole repairing based on multi-directional advancing method

[J]. China Mechanical Engineering, 2019, 30 (20): 2473- 2479

CHEN H, CUI W

Holes filling of scattered point cloud based on simplification

[J]. Multimedia Tools and Applications, 2022, 81 (11): 14641- 14661

DOI:10.1007/s11042-021-11019-3      [本文引用: 1]

罗年猛, 郑凌锋, 朱林, 等

结合间接邻域的散乱点云三角网格曲面重构

[J]. 计算机工程与应用, 2014, 50 (20): 144- 148

LUO Nianmeng, ZHENG Lingfeng, ZHU Lin, et al

Surface reconstruction algorithm with indirect neighborhood point set from scattered point cloud

[J]. Computer Engineering and Applications, 2014, 50 (20): 144- 148

LUO N, WANG Q

Fast self-repairing region growing surface reconstruction algorithm for unorganised point cloud data

[J]. International Journal of Computer Applications in Technology, 2017, 56 (2): 121

DOI:10.1504/IJCAT.2017.087330      [本文引用: 1]

LIN H, WANG W. Feature preserving holes filling of scattered point cloud based on tensor voting [C]// Proceedings of the IEEE International Conference on Signal and Image Processing. Beijing: IEEE, 2016: 402–406.

[本文引用: 2]

兰猗令, 康传利, 王宁, 等

附加增值条件的移动最小二乘法的点云孔洞修补

[J]. 红外与激光工程, 2023, 52 (2): 414- 423

LAN Yiling, KANG Chuanli, WANG Ning, et al

Additional value-added conditional moving least squares method for point cloud hole repair

[J]. Infrared and Laser Engineering, 2023, 52 (2): 414- 423

张炎, 刘立龙, 何广焕, 等

改进哈里斯鹰优化算法在匹配地面点云孔洞修补中的应用

[J]. 测绘通报, 2023, (6): 82- 87

ZHANG Yan, LIU Lilong, HE Guanghuan, et al

Application of improved Harris Hawks optimization algorithm in patching cloud holes at matching ground points

[J]. Bulletin of Surveying and Mapping, 2023, (6): 82- 87

ZHANG C, ZHOU H, DUAN J A

A method for identifying and repairing holes on the surface of unorganized point cloud

[J]. Measurement, 2023, 210: 112575

DOI:10.1016/j.measurement.2023.112575      [本文引用: 1]

DONG T, ZHANG Y, LI M, et al

Point cloud repair method via convex set theory

[J]. Applied Sciences, 2023, 13 (3): 1830

DOI:10.3390/app13031830     

WEN Z, YU J, YIN L, et al

Improved hole repairing algorithm for livestock point clouds based on cubic B-spline for region defining

[J]. Measurement, 2022, 190: 110668

DOI:10.1016/j.measurement.2021.110668      [本文引用: 1]

吕富强, 唐诗华, 张炎, 等

SSA-BP神经网络在无人机点云孔洞修补的应用

[J]. 测绘通报, 2023, (5): 130- 134

[本文引用: 1]

LÜ Fuqiang, TANG Shihua, ZHANG Yan, et al

Application of SSA-BP neural network in UAV point cloud hole repair

[J]. Bulletin of Surveying and Mapping, 2023, (5): 130- 134

[本文引用: 1]

王春香, 郝林文, 王耀, 等

基于GA-BP神经网络的散乱点云孔洞自动修补

[J]. 工程设计学报, 2021, 28 (2): 155- 162

[本文引用: 1]

WANG Chunxiang, HAO Linwen, WANG Yao, et al

Automatic repair of scattered point cloud hole based on GA-BP neural network

[J]. Chinese Journal of Engineering Design, 2021, 28 (2): 155- 162

[本文引用: 1]

DUAN W, ZHANG P, HUANG L, et al

Ship hull surface reconstruction from scattered points cloud using an RBF neural network mapping technology

[J]. Computers and Structures, 2023, 281: 107012

[本文引用: 2]

FU S

Point cloud data hole repair aggregation algorithm based on optimized neural network

[J]. Wireless Communications and Mobile Computing, 2022, 2022 (1): 7875422

DOI:10.1155/2022/7875422     

VAN NGUYEN S, LE S T, TRAN M K, et al

Filling the holes on 3D heritage object surface based on automatic segmentation algorithm

[J]. Expert Systems, 2025, 42 (2): e13749

DOI:10.1111/exsy.13749      [本文引用: 1]

张丽艳, 周儒荣, 周来水

三角网格模型孔洞修补算法研究

[J]. 应用科学学报, 2002, 20 (3): 221- 224

[本文引用: 1]

ZHANG Liyan, ZHOU Rurong, ZHOU Laishui

Research on the algorithm of hole repairing in mesh surfaces

[J]. Journal of Applied Sciences, 2002, 20 (3): 221- 224

[本文引用: 1]

FAN J, ZENG J

A Levenberg–Marquardt algorithm with correction for singular system of nonlinear equations

[J]. Applied Mathematics and Computation, 2013, 219 (17): 9438- 9446

DOI:10.1016/j.amc.2013.03.026      [本文引用: 1]

李绕波, 袁希平, 甘淑, 等

综合多种算法的点云精简优化策略与实验研究

[J]. 激光与光电子学进展, 2020, 57 (23): 231402

DOI:10.3788/LOP57.231402      [本文引用: 1]

LI Raobo, YUAN Xiping, GAN Shu, et al

Point cloud simplification optimization strategy and experimental research based on multiple algorithms

[J]. Laser and Optoelectronics Progress, 2020, 57 (23): 231402

DOI:10.3788/LOP57.231402      [本文引用: 1]

ZOU B, QIU H, LU Y

Point cloud reduction and denoising based on optimized downsampling and bilateral filtering

[J]. IEEE Access, 2020, 8: 136316- 136326

DOI:10.1109/ACCESS.2020.3011989      [本文引用: 1]

/