摘要
针对飞机零件几何模型多尺度特征检测问题,提出一种鲁棒的多尺度特征点检测算法。算法首先设计一种中值滤波算法获取无结构点云精准法线;然后基于计算得到的法线,计算各点的局部邻域波动,提取初始特征点;最后针对初始特征点数据冗余问题,提出一种收缩优化策略,计算最终特征数据点。试验结果表明,与传统的点云特征点检测方法相比,算法检测精度明显提升;其次,对于存在较大噪声的点云数据仍然能够有较好的提取效果,算法鲁棒性高。
随着数字化制造模式的全面推广应用,飞机制造中小应力、无余量装配已成为常态,零部件的制造精度直接关系到飞机产品的质量和寿命。如何保证每个零部件的制造精度越来越受到重
点云数据的特征可以反映模型的外形和基本结
对于基于曲率、法向量以及投影等几何特征的方法, Liu和Ji
针对基于主成分分析的方法,Gumhold
对于基于映像和模型构建的特征点提取方法,庞旭芳
由上述分析可知,第1类及第3类方法大多采用了局部曲面拟合或重建的策略,这类方法对噪声敏感,鲁棒性差并且计算复杂度较高。此外,由于模型中多尺度特征的曲率、法向量变化多样,采用此类方法检测是不准确的或者很难区分开非特征点与特征点。同时第2类基于PCA方法主要依靠协方差分析,然而协方差分析对模型微分性质的敏感度有限,无法提取细小的特征。综上所述,现有算法对于点云模型的轮廓线、棱线等(大尺度特征)提取效果较好,但是不能处理模型多尺度特征的情况。
为此,本文提出了基于邻域波动的点云多尺度特征提取方法。首先利用PCA的原理计算法线,并对法线进行中值法向量滤波,再根据滤波后的法线计算局部坐标系,基于局部坐标系计算各点的邻域波动,统计分析模型的波动性分布情况,提取初始特征点,最后对初始特征点进行收缩优化,得到清晰完整的特征点。该算法较之已有算法有以下优点:(1)利用中值原理,在去除噪声的同时,保持模型的多尺度特征;(2)针对初始特征点冗余问题,提出了一种迭代收缩优化策略,可以得到清晰完整的特征点;(3)算法计算复杂度小,处理效率高,对噪声鲁棒。
三维模型的特征点是指视觉上体现模型形状特性的点集,主要包含多尺度尖锐棱边点、谷脊点。多尺度在于特征的曲率范围和几何尺寸范围。给定的一个不含有法向信息的点云模型,为点云中数据点的个数。本文算法旨在检测输入模型的多尺度特征,提取清晰完整的特征点。
本文针对飞机零部件的点云模型提出一种多尺度特征检测算法,首先对点云模型进行中值法向量滤波,得到特征明显的法向量场;然后计算各点的邻域波动情况,统计分析整体模型的波动性分布,提取初始特征点集;最后对初始特征点进行收缩优化,得到最终的清晰完整的特征点。
在获取点云数据的过程中,受到周围环境因素的影响,例如物体遮挡,被测物体的细微震动等,或人为因素的影响,例如不正确的测量方法,都会给测量获取的点云数据带入噪声。这些噪声会使得点云模型的几何特征变得不明显。而法线是点云模型的一个重要的几何特征,准确的法线可以更精准地描绘模型的特征。因此,在进行特征提取前,本文算法首先对输入点云的法向量场进行滤波,使其恢复出不受噪声干扰、特征清晰的法向量场。
确定点云每个点的法线问题可以简化为估计过该点与点云表面相切的平面法线问题,因此估计点云每个点的法线问题就变成在一定邻域范围内估计最小二乘平面拟合的问题,Hoppe
(1) |
式中:,是的半径近邻点,即位于以为中心,为半径的球内。计算协方差矩阵的特征值,按从大到小排序,取最小特征值对应的特征向量作为求解的法向量,对每个点依此遍历,得到点云的法向量场。
但由于PCA算法的低通特性,计算出的法线在尖锐特征处过于光滑,不能保持模型的尖锐特征,从而增加了模型的特征提取难度。如

图1 PCA、双边滤波与L1中值滤波法向量对比图
Fig.1 Comparison of normal results computed by PCA, bilateral filtering, and L1 median filtering
一个点集的中值可理解为:对于任意一个点集,存在一点,使得该点到点集中所有点的欧式距离之和最小,即。通俗来讲,中值就是取一列有序数的中位数,相对于平均值来说更能剔除异常值,映射到点云中,也就是对噪声更鲁棒,可以使选取出的投影点不受异常值或噪声的影响,更能体现模型的特征。
为得到在特征区域有明显区分的法向量场,本章算法将中值原理应用于本文算法的法向量滤波任务中,通过衡量点以及其邻点之间的法线差异,中值法向量滤波可表示为
(2) |
式中:为点的半径邻域,为高斯权重函数,表示点与点的法线夹角,表示目标点到邻点的距离对点的影响因子,越大,点云越光顺,但保持特征的能力越差;表示与之间的夹角对的影响,越小,保持特征能力越好。
由于
(3) |
式中表示点在第次迭代得到的法线。
(4) |
当时,
(5) |
基于滤波后的法线,本文将对每个点局部波动性的计算方法进行详细介绍。首先,将目标点以及其邻域点投影到目标点的法向量上,即将目标点的法线作为基准向量,得到目标点及其邻域点在其基准向量上的局部坐标值,然后将目标点与其邻点的局部坐标值作差,得到两点之间的差异
(6) |
式中表示点与在基准向量上的距离。波动性计算如

图2 波动性计算示意图
Fig.2 Illustration of local surface variation
其次,找出的最大值,即找出点与其半径邻域内所有点中波动性最大的值;最后,将最大差异值作为目标点的局部波动性值,即
(7) |
遍历所有点,得到每个点的局部波动性。
与传统的提取特征方法如计算曲率、法线夹角等相比,本文选择通过在法向量上度量各点的波动性,其原因如下。
多尺度特征中的小尺度特征相比于整个模型的尺度非常小,而曲率计算的思路一般是对点与其邻域点组成的局部点云做最小二乘拟合,解得系数后根据空间曲面曲线的性质计算数据点的高斯曲率、平均曲率。局部邻域中某些点计算出的曲率可能会比较大,这些点会被认为是特征点。但是在整体模型的视角,一个目标点的邻域相对整个模型是非常小的,这些被误判的特征点的变化可能只是零件表面不光滑导致的,而并非是特征点。因此,通过计算曲率提取特征点的方法是不可行的。对于小尺度特征,因PCA算法不能捕捉细小的特征,所以通过该方法计算出来的法线并不准确,也就不能够通过法线的变化准确地判断出特征点的位置。在得到所有点的局部波动性后,统计分析波动性的分布区间,设定波动性阈值,若大于,则认为点为初始特征点;反之,则为非特征点。波动性阈值的取值与点云数据要提取的特征尺度密切相关,对于大尺度特征可以将波动性阈值取得大一些,这样保证能够很好地区分出初始特征点与非特征点;然而对于小尺度特征应该将波动性阈值取得小一些,确保能够识别细微特征处的特征点。而波动性阈值的取值需要综合考虑这两方面的因素。
由于通过设定阈值得到的初始特征点存在一定冗余数据(
(8) |
式中为优化后的特征点。

图3 收缩优化结果图
Fig.3 Feature points optimization
通过上述分析,本文的参数主要是邻域半径、波动性阈值、影响因子、。对于邻域半径,与模型特征尺度大小成正比,对于初始邻域半径的选择以1.0%的模型包围盒对角线长度为初始值,根据具体提取效果再进行调整。影响因子、大小对结果的影响已在1.1节进行叙述,这里不再赘述。是距离影响因子,根据经验通常设置为和邻域大小相同;是表征邻域内点的法线相似性,一般设置为15°。对于波动性阈值,既要保证能够去除非特征点,又要保证不会去除特征点,为了生动地展示对结果的影响,实验中分别取0.005,0.008,0.012,0.015和0.017,并统计了提取的特征点数量,实验结果如

图4 不同阈值下的特征点提取效果及特征点数统计
Fig.4 Feature extraction results and feature point statistics with different thresholds
为验证本文算法的可行性、有效性和优越性,在Intel Core i7‑8700K、3.70 GHz,RAM 16 GB的PC机上,VS2013的开发平台下实现本文的多尺度特征提取方法,并引入了对比试验,实验结果如

图5 机械模型不同算法特征点提取结果
Fig.5 Feature point detection results on mechanical part by different methods

图6 带有浅特征机械模型不同算法特征点提取结果
Fig.6 Feature point detection results on a mechanical part with shallow features by different methods
为了进一步验证该算法的通用性,本文加入了真实扫描数据的实验,

图7 飞机蒙皮实际扫描模型不同算法特征点检测结果
Fig.7 Feature point detection results on a real‑scanned aircraft skin by different methods
除了上文的定性可视化分析,本文还进行了特征点检测的量化分析。量化分析主要是对特征点检测结果进行量化的评估,包括特征点提取精度分析、算法效率分析和算法的抗噪性能分析。特征点提取精度通常定义为检测的特征点到真实特征点的平均距离。其中真实特征点是通过专业软件人工标注的结果,精度分析结果如
为讨论算法的时间效率,本文基于图
为测试算法的抗噪性,本文对3个模型分别加入不同尺度的噪声。具体的噪声尺度是指原始模型采样点相对于模型包围盒对角线长随机偏移百分比。在实验中,分别对模型施加1%,2%,3%的噪声。如

图8 不同噪声下的特征点提取效果
Fig.8 Feature extraction results with different noise levels
本文提出了一种针对飞机零部件散乱点云多特征的提取方法。首先,通过PCA计算、中值滤波这一系列处理,提高点云模型质量,突出模型特征;然后,基于滤波后的法线对各点的邻域波动性进行计算,再通过统计分析整个模型的波动性分布,设置波动性阈值,得到初始特征点;最后对得到的初始特征点进行收缩优化,生成清晰完整的特征点。实验结果表明,本文方法处理过程简单有效,且没有过多的参数需要调整,特征点提取较为完整,对噪声鲁棒,对飞机零部件的数字化检测以及特征的逆向重构具有重要意义,便捷了零件原始扫描点云的处理过程,提高了点云处理质量。
尽管本文方法可以处理具有不同特征的点云模型,但是也存在需要改进的地方。对于比较复杂的模型,在两个面之间距离很小的情况下,由于该算法是对半径邻域内的点进行波动性计算的,该方法不能够很好地区别两个面并提取其中的特征,因此,这也将是下一步的研究重点。
参考文献
张杰. 飞机蒙皮边缘特征的提取方法研究[D].南京:南京航空航天大学,2017. [百度学术]
ZHANG Jie. Research on method for extracting edge feature of aircraft skin[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2017. [百度学术]
张沅. 基于定位工艺几何特征的机械零件数字化检测方法研究[D].南京:南京航空航天大学,2017. [百度学术]
ZHANG Yuan. Digital inspection of mechanical parts based on positioning process features[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2017. [百度学术]
史建华,刘盼. 大尺寸航空发动机叶片的高效型面检测方法[J].计量学报,2018,39(5): 605‑608. [百度学术]
SHI Jianhua, LIU pan. High efficiency profile detection method for large size aero engine blades[J].Journal of Metrology,2018,39(5): 605‑608. [百度学术]
孙钰科. 三维激光点云数据的处理及应用研究[D].上海:上海师范大学,2018. [百度学术]
SUN Yuke. Research on 3D laser point cloud process and application [D]. Shanghai: Shanghai Normal University, 2018. [百度学术]
薛珊,吕南方,沈雨鹰,等. 基于激光三维点云的机械工件识别方法[J]. 红外与激光工程,2019,48(4):169‑176. [百度学术]
XUE Shan, LYU Nanfang, SHEN Yuying, et al. Mechanical workpiece recognition method based on laser three dimensional point cloud[J]. Infrared and Laser Engineering, 2019, 48(4):169‑176. [百度学术]
高如玉. 基于双目视觉的三维重建软件设计[D].沈阳:沈阳工业大学,2018. [百度学术]
GAO Ruyu. Design of 3D reconstruction software based on binocular vision [D]. Shenyan: Shenyang University of Technology, 2018. [百度学术]
任前程. 一种点云特征线提取方法[J]. 激光与光电子学进展,2019,56(6):229‑235. [百度学术]
REN Qiancheng. Method for extracting feature lines of point cloud[J].Progress in Laser and Optoelectronics,2019,56(6):229‑235. [百度学术]
胡佳贝,刘喆,张鹏飞,等. 基于离散Morse理论的散乱点云特征提取[J]. 光学学报,2019,39(6):232‑241. [百度学术]
HU Jiabei, LIU Zhe, ZHANG Pengfei, et al. Feature extraction of scattered point clouds based on discrete Morse theory[J]. Acta Optica Sinica, 2019,39(6):232‑241. [百度学术]
钱锦锋, 陈志杨, 张三元, 等. 点云数据压缩中的边界特征检测[J]. 中国图象图形学报, 2005,10(2): 164‑169. [百度学术]
QIAN Jinfeng, CHEN Zhiyang, ZHANG Sanyuan, et al. Boundary feature detection in point cloud data compression[J]. Chinese Journal of Image and Graphics, 2005,10(2): 164‑169. [百度学术]
陈朋,谭晔汶,李亮. 地面三维激光扫描建筑物点云特征线提取[J]. 激光杂志,2016,37(3):9‑11. [百度学术]
CHEN Peng, TAN Yewen, LI Liang. Feature line extraction of point clouds of buildings based on 3D ground laser scanning[J]. Laser Magazine,2016,37(3):9‑11. [百度学术]
Daniels J, Ha L K, Ochotta T,et al. Robust smooth feature extraction from point clouds[C]//Proceedings of IEEE Computer Society.[S.l.]: IEEE, 2007: 123‑136. [百度学术]
Ho H T, Gibbins D. Curvature‑based approach for multi‑scale feature extraction from 3D meshes and unstructured point clouds[J]. IET Computer Vision, 2009, 3(4): 201‑212. [百度学术]
JINHU W, RODERIK L, YUEQEAN S. Coarse point cloud registration by Egi matching of voxel clusters[J]. ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2016, 3(12): 98‑99. [百度学术]
DEMARSIN K,VANDERSTRAETEN D,VOLODI⁃NE T, et al. Detection of closed sharp edges in point clouds using normal estimation and graph theory[J]. Computer Aided Design, 2007, 39(4): 276‑283. [百度学术]
史皓良, 吴禄慎, 余喆琦,等. 散乱点云数据特征信息提取算法[J]. 计算机工程, 2017, 43(8): 279‑283. [百度学术]
SHI Haoliang,WU Lushen, YU Zheqi, et al. Algorithm for extracting feature information of scattered point cloud data[J]. Computer Engineering, 2017, 43(8): 279‑283. [百度学术]
邹万红, 陈志杨, 叶修梓,等. 一种新的点云数据特征骨架提取方法[J]. 浙江大学学报(工学版), 2008, 42(12): 2103‑2107. [百度学术]
Zou Wanhong, CHEN Zhiyang, Ye Xiuzi,et al. A new method for feature skeleton extraction of point cloud data[J]. Journal of Zhejiang University (Engineering Edition) , 2008, 42(12): 2103‑2107. [百度学术]
Liu X S, Jin C N. Feature line extraction from unorganized noisy point clouds[J]. Journal of Computational Information Systems, 2014, 10(8): 3503‑3510. [百度学术]
Kim S K. Extraction of ridge and valley lines from unorganized points[J]. Multimedia Tools and Applications, 2013, 63(1): 265‑279. [百度学术]
Gumhold S, Wang X, Macleod R. Feature extraction from point clouds [C]//Proceedings of 10th International Meshing Roundtable. Sandia :Sandia National Laboratories,2001:293‑305. [百度学术]
上官宁, 刘斌. 三角网格模型特征线提取方法[J]. 华侨大学学报(自然版), 2010, 31(5):487‑490. [百度学术]
SHANG Guanning, LIU Bing. Triangular grid model feature line extraction method[J]. Journal of Huaqiao University (Natural Edition), 2010, 31(5):487‑490. [百度学术]
Pauly M, Keiser R, Gross M. Multi‑scale feature extraction on point‑sampled surfaces[J]. Computer Graphics Forum,2003, 22(3): 281‑89. [百度学术]
庞旭芳,庞明勇,肖春霞,等.点云模型谷脊特征的提取与增强算法[J].自动化学报,2010,36(8):1073‑1083. [百度学术]
PANG Xufang, PANG Mingyong, XIAO Chunxia, et al. Algorithm for extracting and enhancing valley ridge features of point cloud model[J]. Journal of Automation,2010,36(8):1073‑1083. [百度学术]
Weber C, Hahmann S, Hagen H. Sharp feature detection in point clouds[C]∥Proceedings of IEEE International Conference on Shape Modeling and Applications. [S.l.]: IEEE, 2010: 175‑186. [百度学术]
Hoppe H, Derose T, Duchamp T, et al. Surface reconstruction from unorganized points[J]. ACM SIGGRAPH Computer Graphics, 1992, 26(2):71‑78. [百度学术]
Nie J. Extracting feature lines from point clouds based on smooth shrink and iterative thinning[J]. Graphical Models, 2016, 84: 38‑49. [百度学术]