A Point Cloud Contour Extraction Method based on Plane Segmentation

一句话看懂为提取电路板点云中芯片的轮廓,先用 PCA 改进的 RANSAC 分割平面,再把平面展平为二维图像、沿梯度边缘提取边界;单个芯片的轮廓提取耗时 64.614 ms,alpha shapes 则需 745.253 ms。
问题背景
点云轮廓特征提取广泛应用于工业检测、机器人操作等领域。受设备和环境等因素影响,实际采集的点云含有噪声,且点与点之间没有拓扑关系,这给轮廓检测带来了困难。在平面检测方面,已有方法包括 Hough 变换、区域生长和迭代 RANSAC;在边界提取方面,有基于三角网格的方法、按断裂线排序再拟合 B 样条曲线的方法,以及 alpha shape 算法。alpha shape 可以提取多边形的内、外轮廓点,但面对数据量大的点云时,其时间复杂度较高。
RANSAC 本身也有短板:它能容忍明显的噪声;但紧贴平面的点(例如相邻平面上的点)会落在距离阈值之内,从而引入误差。本文关注物体各表面的轮廓,具体对象是电路板上各芯片的轮廓。

方法原理
方法分为两个阶段。平面分割阶段融合 RANSAC 与 PCA,把点云分成若干平面点集;轮廓提取阶段再把每个平面转换为二维图像,根据图像梯度求出边界,并将边界点映射回三维空间。

- RANSAC 提出候选平面。 随机选取三个相距较远的点拟合平面,到平面距离小于阈值 dth 的点归入该平面的点集。迭代 Niterate 次后,把点数最多的点集作为当前平面并从点云中移除,再继续搜索,直到剩余点数少于 Nminnum。
- PCA 精化并整理平面。 对每个点集用 PCA 重新拟合:平面经过质心,法向量取协方差矩阵最小特征值对应的特征向量。若两个平面法向量夹角小于 15°,且超过 90% 的点到另一平面的距离小于 dth,则将二者合并;点数过少的平面对被剔除。重复上述操作,直到没有平面可以合并或剔除。
- 把平面展平为图像。 先用旋转矩阵把平面点云调整到与 XOY 平面平行,再借助焦距和偏移量投影为二维图像:有物体点的像素置 0,其余像素置 1。
- 由梯度求边界。 先用高斯滤波平滑图像,再计算梯度幅值和方向。对于初步得到的边缘像素,只有当它沿梯度方向在相邻像素中取得最大值时,才保留为边界点。
- 映射回三维。 边界像素经投影逆变换和逆旋转,得到三维空间中的轮廓点。

实验结果
实验以电路板为对象提取芯片轮廓,运行平台为 Intel i7-12700 CPU、16 GB 内存。在平面分割上,本文方法与区域生长和传统 RANSAC 在同一数据上进行了对比。在下图所示的芯片上,区域生长额外并入了相邻区域,RANSAC 则多出芯片下方相连的一条,而 PCA-RANSAC 只保留了芯片表面本身;论文认为本文方法的结果受噪声影响最小。

在边界提取上,本文方法与 alpha shape 算法进行了对比。对单个芯片,alpha shapes 得到的轮廓稀疏且断续,本文方法得到的轮廓更稠密、更连续,耗时也更短。


引用
@article{lu2024point,
title={A Point Cloud Contour Extraction Method based on Plane Segmentation},
author={Lu, Lei and Gao, Ran and Pan, Wei and Tang, Wenming},
journal={Frontiers in Computing and Intelligent Systems},
volume={7},
number={2},
pages={21--25},
year={2024},
doi={10.54097/jfqs4b09}
}