基于RANSAC算法PCL点云拟合平面整理

前言

这个项目,跟我专业不大相关,准确的说,是帮助学姐的做一做毕业设计的实际工作(平时有点闲,找点事做)。个人比较喜欢算法一类的,喜欢看别人的算法,改进、完善,研究如何应用到自己的功能中,精简前人的成果中对我冗余的部分。
也就是优化

首先讲一下PCL是什么

PCL(Point Cloud Library,点云库),是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
只要是涉及到三维点云的项目,都可以借鉴其中的做法,来完善自己的功能。
这个不用太细说,可以理解为一个开源的工具包。

接下来是RANSAC算法

RANSAC为Random Sample Consensus的缩写,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。
RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(outliers,偏离正常范围很远、无法适应数学模型的数据),即数据集中含有噪声。这些异常数据可能是由于错误的测量、错误的假设、错误的计算等产生的。同时RANSAC也假设,给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。

解决思路

我的理解
在拟合平面(地面)这一需求上,平面的凹凸点(小的坑洼)是有效数据,但对所需平面来说有一定的偏移。
而大的凹凸,比如地面上的障碍物、地面的深坑,这些都是偏移量过大的无效数据。
最小二乘拟合,旨在照顾所有人的想法,对所有数据进行拟合,在无效数据多且偏移量大的情况下,拟合效果不好。
而RANSAC拟合,旨在照顾多数人的意愿,对主体数据进行拟合,手动设置一个阈值,同拟合平面的距离超过阈值的点,就被判定为无效数据。
随机拟合多个平面,选取平面内数据点最多的平面,或者说,无效数据最少的平面,作为拟合出的结果。

根据如上思路,RANSAC在拟合平面这一需求上,可以得到更准确的结果。
在这里插入图片描述
图片是以前做PPT,留下的,应该是网图…如有需要,可以删除…

PCL拟合平面

一开始选用PCL工具,对三维点云进行平面拟合,让自己对这方面有个了解,大概采用了如下代码:

  //创建一个模型参数对象,用于记录结果
  pcl::ModelCoefficients::Ptr coefficients (new pcl
  • 26
    点赞
  • 268
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值