摘要
针对随机采样一致性(random sample consensus,RANSAC)算法对含有噪声的点云数据进行平面拟合时效果不佳和容易产生误识别的问题,对算法进行改进. 通过基于密度的噪声应用空间聚类(density-based spatial clustering of applications with noise,DBSCAN)算法改变RANSAC算法初始点集合的选择策略,并使用主成分分析法(principal component analysis,PCA)计算点云各点法向量,以点到平面距离以及点的法向量与平面法向量夹角两个约束条件同时作为RANSAC算法平面拟合模型内点判定的准则. 采用无噪声与分别含有300个噪声点和500个噪声点的点云仿真数据进行测试,本文算法拟合结果均接近理论值且内点距离标准差分别为1.007×1
随着人工智能的不断发展,三维空间信息的获取与处理显得越来越重
点云场景中常包含大量平面特征,故点云平面拟合作为一项基础的任务,在实际应用中意义重大. 例如,在机器人导航与定位中,通过拟合地面点云平面,可以帮助机器人实现精准的定位和路径规划;在无人驾驶和智能车辆领域,点云平面拟合也被广泛应用于道路和交通场景的建模和理解,为自动驾驶系统提供重要的环境感知能力;在工业制造中,通过对工件表面进行点云数据采集和平面拟合,可以实现对工件表面的几何特征和质量状态进行检测和分析,为工业制造提供了高效、精准的质量控制解决方案. 综上,由于点云平面拟合对于场景理解、物体识别和机器人感知等应用起着至关重要的作用,故实现精准的点云平面拟合非常必要. 点云平面拟合的办法包括特征值法、最小二乘法、霍夫变换法、随机采样一致性(random sample consensus,RANSAC)等,其中,由于RANSAC算法较其他算法具有一定鲁棒性,故应用较广. 但RANSAC算法的鲁棒性并不是绝对的,在点云数据含有较多噪声点时,仍然容易导致平面拟合精度下降. Zheng
本文基于DBSCAN,在经过预处理的点云数据中搜索RANSAC平面拟合算法所需要的初始点集合,并使用主成分分析法计算点云数据中各点的法向量,增加法向量夹角这一约束条件,将其与点到平面的距离一同作为内点判定准则. 与其他改进算法相比,本文算法避免了高成本的计算,方便算法后续的硬件实现,且完善了内点判定准则,进一步降低误识别概率. 仿真试验与实物实验分析表明,本文算法较常规RANSAC算法,具有更好的拟合效果.
1 RANSAC算法
RANSAC算法是一种鲁棒性的估计分析方法,通过不断迭代的方式,估算拟合数据集的模型参数. 使用RANSAC算法可以将数据集划分为内点(inliers)和外点(outliers),内点即分布在所求模型上的点,外点即模型之外的点.
RANSAC算法原理本质上可概括如下:首先,从数据集中随机选取最小样本集,这个样本集的大小通常取决于所要拟合模型的参数个数,使用所选的样本集对模型进行拟合,求出模型的初始参数. 接着,给定一个合适的阈值,计算所有数据点到此前求出的拟合模型的误差,确定数据集中所有符合模型要求的数据点,拟合误差小于或等于阈值的点,被认为是内点,而其余点,则被认为是外点. 多次重复上述两个步骤,选择拥有最多内点或最小内点误差的模型作为最终估计.
当RANSAC算法具体应用到拟合空间点云平面时,其平面拟合示意图如

图1 RANSAC算法平面拟合示意图
Fig.1 Schematic diagram of RANSAC algorithm fitting plane
基本步骤如下:
1)由于至少3个点才能确定一个平面,所以拟合平面时,需要从数据集中随机选取3个点作为初始的最小样本集,针对这3个点计算平面模型参数.
2)设置合适的距离阈值dt,计算所有剩下的点到该平面的距离di,将符合的点视作内点,将其余点视作外点. 当内点数量满足要求时,保留此平面模型.
3)继续重复上述两步,如果当前模型的内点数量大于此前保存的最大内点数量,则更新模型参数. 不断迭代,直到达到迭代阈值,将内点个数最多的模型作为最终的平面模型.
2 改进的RANSAC算法
使用RANSAC算法进行点云平面拟合时,由于对原始点云数据集中3个初始样本点的选取完全随机,极大增加了取到数据集中平面外的点的可能性,由此得到的模型参数往往无法满足要求,当采样次数一定时,初始点选取平面外的点的次数越多,符合要求的模型集就越少,最后得到最优模型的概率就越小,平面拟合的准确度也将越低. 同时,RANSAC算法对内点的判定仅仅以数据集中的点到平面模型的距离为依据,只要符合距离要求的点就被视为内点,这也有可能导致误识别. 针对以上问题,本文提出一种基于DBSCAN的改进RANSAC算法,通过改变初始点的选择策略以及内点的判定方式,提高RANSAC算法的准确度. 改进RANSAC点云平面拟合算法流程图如

图2 改进RANSAC点云平面拟合算法流程图
Fig.2 Flow chart of improved RANSAC point cloud plane fitting algorithm
2.1 点云滤波与下采样
一般来说,3D点云原始数据往往包含较多的噪声以及离群点,且数据量庞大,为了进一步提高平面拟合的准确度和算法效率,需要对点云进行预处理.
基于统计学原理利用统计滤波去除大部分噪声
(1) |
(2) |
(3) |
式中:为点云中第个点与其个近邻点之间的平均距离;为点云中第j个点到其第个近邻点的距离;为平均距离的均值;为标准差;为点云中点的个数. 设s为标准差倍数,当某个点与其个近邻点之间的平均距离在区间内时,将此点保留,否则,将其视为噪声点,予以剔除.
统计滤波示意图如

图3 统计滤波示意图
Fig.3 Statistical filtering diagram
通过创建三维体素栅格的方法,简化点云数
(4) |
由所得的点云最小包围盒边长计算体素栅格的尺寸,计算过程如下:
(5) |
式中:为本文所设置的体素单元边长;分别为3个坐标轴方向上体素栅格的尺寸;符号表示向下取整. 计算点云中每个体素单元内的索引编号,计算过程如下:
(6) |
对索引里的元素按从小到大排列,求出每一个体素单元的重心点,用重心点代替体素单元内的所有点,若体素单元的重心点不存在,则使用体素单元内距离重心最近的数据点代替重心点. 通过使用体素降采样,达到简化缩小点云数据且保留点云形状结构特点的目的. 体素降采样原理图如

图4 体素降采样原理图
Fig.4 Schematic diagram of voxel downsampling
2.2 点云法向量估计
为了估计点云的法向量,采用基于邻域的近似计算方法,该方法的主要思想如下.
对于点云中的每一个点,通过KD,再次搜索与其距离最近的个近邻点,用最小二乘法拟合这些最近邻域点的局部平面,表示如下:
(7) |
式中:为局部平面的单位法向量;为坐标轴原点到局部平面的距离;为当前点局部邻域中的第个点,坐标为.
把由此拟合出的局部平面的单位法向量称作当前点的法向

图5 主成分分析法求平面法向量
Fig.5 Principal component analysis method for finding plane normal vectors
由分析可知,局部平面经过当前点个最近邻域点的三维质心,其坐标值如下:
(8) |
通过当前点的个最近邻域点构建协方差矩阵M:
(9) |
式中:上标T代表转置运算. 展开可得:
(10) |
式中:. 对协方差矩阵进行特征值分析,即:
(11) |
式中:为协方差矩阵的第个特征向量;为协方差矩阵的第个特征值. 协方差矩阵的最小特征值所对应的特征向量即为局部平面的单位法向量,即当前点的法向量. 由于所求点的法向量通常具有二义性,所以需要指定视点对法向量进行定向,过程如下:
(12) |
式中:为当前点的法向量;为当前点坐标.
2.3 DBSCAN求初始点集合
DBSCAN是一种基于密度的空间聚类算法,通过分析邻域进而分析样本集的紧密程
1)核心对象:对于点云数据中的任意一点,如果在其以为邻域半径的邻域范围内,至少包含个样本点(包括当前点自身),则称点为核心对象.
2)密度直达:如果点是核心对象,当点位于点以为邻域半径的邻域范围内时,则称点由点密度直达.
3)密度可达:如果在点云样本中,存在序列点,满足点由点密度直达,且,则称点由点密度可达.
4)密度相连:如果对于点和点,存在核心对象点,使得点和点均可由点密度可达,则称点和点密度相连. 将密度相连的点的最大集合定义为簇.
DBSCAN示意图如

图6 DBSCAN示意图
Fig.6 Schematic diagram of DBSCAN
运用DBSCAN,寻找初始点集合的步骤如下:在平面的密度紧密区域,根据事先设置的,随机选择一个核心对象点,将其标记为已处理,通过KD树,搜索可由其密度直达的点,将这些点加入队列,在队列中,继续寻找未处理的核心对象点,并重复上述步骤直到队列中找不到未处理的核心对象点为止,由此得到的队列集合,便构成一个点云簇. 经过DBSCAN后,得到的这个点云簇,由于是在平面密度紧密区域计算的密度相连点的最大集合,簇内点为平面内点的概率将大大增加,所以,这个点云簇便是本文所求的初始点集合.
2.4 平面模型拟合及内点判定
在所求的初始点集合内,随机抽取3个点,根据这3个点的坐标,计算求得平面模型参数. 空间平面方程如下:
(13) |
式中:、、为平面单位法向量的3个坐标分量值,即满足;为坐标原点到平面的距离. 使用点云数据集中余下的所有点对平面模型进行验证.
计算所有剩余点到拟合平面的距离:
(14) |
设置距离阈值,将的点直接归为外点,对的点进行进一步判断.
计算的点法向量与拟合平面的法向量夹角:
(15) |
式中:为拟合平面的法向量;为满足距离要求的点的法向量;为法向量的模,其值均为1.
点与拟合平面法向量夹角如

图7 点与拟合平面法向量夹角
Fig.7 The angle between the normal vector of a point and the normal vector of the fitting plane
记录内点个数满足要求的模型,重复上述步骤,直到采样次数达到迭代次数阈值,结束迭代. 迭代结束后,从记录的模型中选出内点个数最多的平面模型作为最终平面拟合的结果.
RANSAC算法的迭代次数阈值与抽取到合格样本概率的关系为:
(16) |
式中:为采样过程中选取的3个初始点均为平面点的概率;为从初始点集合中选取到一个平面点的概率;为迭代次数阈值. 由
3 实 验
为了验证本文算法的效果,基于系统和处理器,在Visual Studio2017上用C++语言进行算法程序的编写.
3.1 仿真分析
使用仿真数据进行试验分析. 令待拟合的点云空间平面方程为:
(17) |
含不同数量异常噪声的仿真数据如

(a) 无异常噪声

(b) 含300个异常噪声

(c) 含500个异常噪声
图8 含不同数量异常噪声的仿真数据
Fig.8 Simulation data with different amounts of abnormal noise
算法 | A | B | C | D | |
---|---|---|---|---|---|
理论值 | -0.200 | 0 | 0.980 | -0.490 | — |
传统RANSAC算法 | -0.200 |
-4.338×1 | 0.980 | -0.490 |
1.613×1 |
最小二乘法 | -0.200 |
5.144×1 | 0.980 | -0.490 |
1.680×1 |
特征RANSAC算法 | -0.200 |
7.347×1 | 0.980 | -0.490 |
5.231×1 |
本文算法 | -0.200 |
2.039×1 | 0.980 | -0.490 |
1.007×1 |
算法 | A | B | C | D | |
---|---|---|---|---|---|
理论值 | -0.200 | 0 | 0.980 | -0.490 | — |
传统RANSAC算法 | -0.189 | 0.002 | 0.993 | -0.483 | 0.241 |
最小二乘法 | -0.242 | -0.005 | 0.955 | -0.466 | 0.532 |
特征RANSAC算法 | -0.215 |
5.382×1 | 0.984 | -0.492 | 0.087 |
本文算法 | -0.200 |
-4.382×1 | 0.980 | -0.490 | 0.003 |
算法 | A | B | C | D | |
---|---|---|---|---|---|
理论值 | -0.200 | 0 | 0.980 | -0.490 | — |
传统RANSAC算法 | -0.231 | -0.006 | 0.971 | -0.471 | 0.347 |
最小二乘法 | -0.256 | 0.011 | 0.962 | -0.463 | 0.611 |
特征RANSAC算法 | -0.223 |
8.382×1 | 0.988 | -0.484 | 0.098 |
本文算法 | -0.200 |
6.154×1 | 0.981 | -0.489 | 0.007 |

(a) 传统RANSAC算法
(b) 最小二乘法

(c) 特征RANSAC算法
(d) 本文算法
图9 含300个异常噪声点时各算法平面拟合效果
Fig.9 Plane fitting effect of each algorithm with 300 abnormal noise points

(a) 传统RANSAC算法
(b) 最小二乘法

(c) 特征RANSAC算法
(d) 本文算法
图10 含500个异常噪声点时各算法平面拟合效果
Fig.10 Plane fitting effect of each algorithm with 500 abnormal noise points
(18) |
式中:为内点个数;为第j个内点到拟合平面的距离. 由
3.2 实例验证
为了更好地验证本文算法的效果,对实际工件点云进行实验分析. 通过RVCX3D结构光相机,在水平放置工件以及竖直放置工件两种工况下,扫描并获取带V形槽矩形工件的点云数据.带V形槽的矩形工件如

图11 带V形槽的矩形工件
Fig.11 Rectangular workpiece with V-shaped groove
(a)水平放置 (b)竖直放置
RVCX3D结构光相机的测量工作距离为200~ 3 000 mm,Z向精度最高可达0.005 mm,点云合成频率最高可达15 Hz. 从获取到的点云数据中提取工件点云,并进行滤波与体素降采样,由此得到的矩形工件点云如

(a) 水平放置

(b) 竖直放置
图12 带V形槽的矩形工件点云
Fig.12 Point cloud of rectangular workpiece with V-shaped groove
分别采用传统RANSAC算法、最小二乘法、特征RANSAC算法和本文算法,在两种工况下,对工件上表面的平面点云进行拟合,并利用拟合结果,分割提取平面点云. 工件上不属于上表面的点以及工件外的点均为噪声点. 水平放置和竖直放置工件时各算法的拟合效果分别如

(a) 传统RANSAC算法

(b) 最小二乘法

(c) 特征RANSAC算法

(d) 本文算法
图13 水平放置工件时各算法拟合效果
Fig.13 The fitting effects of each algorithm when placing the workpiece horizontally

(a) 传统RANSAC算法

(b) 最小二乘法

(c) 特征RANSAC算法

(d) 本文算法
图14 竖直放置工件时各算法拟合效果
Fig.14 The fitting effects of each algorithm when placing the workpiece vertically

(a) 传统RANSAC算法
(b) 最小二乘法

(c) 特征RANSAC算法
(d) 本文算法
图15 水平放置工件时各算法分割工件上表面点云效果
Fig.15 The effects of surface point cloud segmentation on workpieces using each algorithm when placing the workpiece horizontally

(a) 传统RANSAC算法
(b) 最小二乘法

(c) 特征RANSAC算法
(d) 本文算法
图16 竖直放置工件时各算法分割工件上表面点云效果
Fig.16 The effects of surface point cloud segmentation on workpieces using each algorithm when placing the workpiece vertically
算法 | A | B | C | D | 内点比率/% | |
---|---|---|---|---|---|---|
传统RANSAC算法 | 0.048 | -0.781 | -0.623 | 301.940 | 0.173 | 63.6 |
最小二乘法 | 0.057 | -0.774 | -0.632 | 302.452 | 0.505 | 39.5 |
特征RANSAC算法 | 0.042 | -0.784 | -0.619 | 298.241 | 0.036 | 71.5 |
本文算法 | 0.037 | -0.782 | -0.622 | 299.518 | 0.007 | 79.3 |
算法 | A | B | C | D | 内点比率/% | |
---|---|---|---|---|---|---|
传统RANSAC算法 | -0.036 | 0.302 | 0.953 | -360.100 | 0.137 | 67.1 |
最小二乘法 | -0.041 | 0.299 | 0.953 | -359.110 | 0.465 | 55.5 |
特征RANSAC算法 | -0.027 | 0.294 | 0.956 | -360.632 | 0.051 | 76.4 |
本文算法 | -0.030 | 0.298 | 0.954 | -360.466 | 0.004 | 83.6 |
由
4 结 论
本文基于DBSCAN,改变传统RANSAC算法完全随机的初始点选点策略,并使用PCA法计算点云各点法向量,增加法向量夹角这一内点判定条件,来提高RANSAC算法拟合点云平面的准确性. 仿真试验与实例分析结果均表明,本文所提算法相较传统RANSAC算法以及结合特征值的改进RANSAC算法,具有更为可靠的拟合效果,在点云平面拟合方面具有一定的实际意义. 但本文算法也存在局限性,需要人为设置法向量夹角阈值以及点到平面距离阈值,这将是未来需要完善以及深入研究的地方.
参考文献
李明磊,李广云,王力,等.采用八叉树体素生长的点云平面提取[J].光学精密工程,2018,26(1): 172-183. [百度学术]
LI M L,LI G Y,WANG L,et al.Planar feature extraction from unorganized point clouds using octree voxel-based region growing[J]. Optics and Precision Engineering,2018,26(1):172-183.(in Chinese) [百度学术]
官云兰, 程效军, 施贵刚. 一种稳健的点云数据平面拟合方 法[J].同济大学学报(自然科学版),2008,36(7):981-984. [百度学术]
GUAN Y L,CHENG X J,SHI G G.A robust method for fitting a plane to point clouds[J].Journal of Tongji University (Natural Science),2008,36(7): 981-984.(in Chinese) [百度学术]
李宗民,姚纯纯,刘玉杰,等.点云场景下基于结构感知的车辆检测[J].计算机辅助设计与图形学学报,2021,33(3):405-412. [百度学术]
LI Z M,YAO C C,LIU Y J,et al.Vehicle detection based on structure perception in point cloud[J].Journal of Computer-Aided Design & Computer Graphics,2021,33(3):405-412.(in Chinese) [百度学术]
ZHENG L M,WANG R D,WANG S Y,et al.Point cloud plane fitting based on RANSAC and robust eigenvalue method[C]//2022 IEEE 8th International Conference on Computer and Communica- tions (ICCC), December 9-12,2022.Chengdu,China: IEEE,2022:1368-1372. [百度学术]
KANG Z Z,LI Z. Primitive fitting based on the efficient multiBaySAC algorithm[J]. PLoS One, 2015, 10(3): e0117341. [百度学术]
CHEN D,ZHANG L Q,MATHIOPOULOS P T,et al.A methodology for automated segmentation and reconstruction of urban 3-D buildings from ALS point clouds[J].IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2014, 7(10): 4199-4217. [百度学术]
OEHLER B,STUECKLER J,WELLE J,et al.Efficient multi-resolution plane segmentation of 3D point clouds[M]//Lecture Notes in Computer Science.Berlin,Heidelberg:Springer Berlin Heidelberg,2011:145-156. [百度学术]
LI L,YANG F,ZHU H H,et al.An improved RANSAC for 3D point cloud plane segmentation based on normal distribution transformation cells[J].Remote Sensing,2017,9(5):433. [百度学术]
YANG L N,LI Y C,LI X C,et al.Efficient plane extraction using normal estimation and RANSAC from 3D point cloud[J].Computer Standards & Interfaces,2022,82:103608. [百度学术]
李茂月,赵伟翔,马康盛,等.结构光检测点云精简与重构参数自动调节方法[J].仪器仪表学报,2022,43(8):122-130. [百度学术]
LI M Y,ZHAO W X,MA K S,et al.Point cloud simplification and reconstruction parameters’ automatic adjustment method of structured light detection[J].Chinese Journal of Scientific Instrument,2022,43(8):122-130.(in Chinese) [百度学术]
OUYANG Q,LIN Y H,ZHANG X L,et al.Application of 3D reconstruction technology based on an improved MC algorithm in a shotcreting robot[J].Applied Optics,2022,61(29):8649-8656. [百度学术]
SHI W J,XU J W,ZHU D C,et al.RGB-D semantic segmentation and label-oriented voxelgrid fusion for accurate 3D semantic mapping[J]. IEEE Transactions on Circuits and Systems for Video Technology,2022,32(1):183-197. [百度学术]
尹佳琪,王世勇,李范鸣.基于改进主成分分析的分焦平面偏振图像去噪算法[J].光学学报,2021,41(7): 64-73. [百度学术]
YIN J Q,WANG S Y,LI F M.Division-of-focal-plane polarization image denoising algorithm based on improved principal component analysis[J].Acta Optica Sinica,2021, 41(7): 64-73.(in Chinese) [百度学术]
冯林,李斌兵.一种基于最小广义方差估计的TLS点云抗差法向量求解方法[J].武汉大学学报(信息科学版),2018, 43(11): 1647-1653. [百度学术]
FENG L,LI B B.A robust normal estimation method for terrestrial laser scanning point cloud based on minimum covariance determinant[J].Geomatics and Information Science of Wuhan University,2018,43(11):1647-1653.(in Chinese) [百度学术]
白创,陈立,闫昱.一种基于PVDAC描述子的RGB-D三维点云配准方法[J].湖南大学学报(自然科学版),2023,50(2):95-101. [百度学术]
BAI C,CHEN L,YAN Y.A RGB-D 3D point cloud registration method based on PVDAC descriptor[J].Journal of Hunan University (Natural Sciences),2023,50(2):95-101.(in Chinese) [百度学术]
QIU Z B,MA Y,FAN F,et al.Improved DBSCAN for infrared cluster small target detection[J].IEEE Geoscience and Remote Sensing Letters,2023,20:5511905. [百度学术]
CHOWDHURY S,NA H L,CORDEIRO DE AMORIM R.Feature weighting in DBSCAN using reverse nearest neighbours[J].Pattern Recognition, 2023,137:109314. [百度学术]
ROS F,GUILLAUME S,RIAD R,et al.Detection of natural clusters via S-DBSCAN a self-tuning version of DBSCAN[J].Knowledge-Based Systems,2022,241:108288. [百度学术]
LIU Y T,ZHANG L,LI P J,et al.Laser radar data registration algorithm based on DBSCAN clustering[J].Electronics,2023, 12(6):1373. [百度学术]