一、算法原理
1、Ransac介绍
RANSAC(RAndom SAmple Consensus,随机采样一致)算法是从一组含有“外点”(outliers)的数据中正确估计数学模型参数的迭代算法。“外点”一般指的是数据中的噪声,比如说匹配中的误匹配和估计曲线中的离群点。所以,RANSAC也是一种“外点”检测算法。RANSAC算法是一种不确定算法,它只能在一种概率下产生结果,并且这个概率会随着迭代次数的增加而加大(之后会解释为什么这个算法是这样的)。
RANSAC主要解决样本中的外点问题,最多可处理50%的外点情况。

范例
可以简单总结为以下步骤:
N:样本个数 K:求解模型需要的最少的点的个数(对于直线拟合来说就是两个点,对于计算Homography矩阵就是四个点)
随机采样K个点
对该K个点拟合模型
计算其他点到拟合模型的距离。如果小于一定阈值,该点被当作内点,统计内点个数
重复M次,选择内点数最多的模型
利用所有的内点重新估计模型(可选)
RANSAC用于拟合直线:
1.随机选取K = 2 ,2个点:

- 拟合一条直线:

- 统计内点个数,内点为绿色,此时的内点个数为9(小于一定阈值计算为内点):

- 重复上述过程M次,找到内点数最大的模型(继续随机选点根据k=数目进行选点):

- 利用所有的内点重新估计直线:

2、主要函数
plane_model

本文介绍了RANSAC算法的基本原理,如何在Open3D中使用segment_plane函数进行平面分割,以及在处理原点云数据时的效果。通过随机采样和距离阈值筛选内点,RANSAC在处理包含噪声数据的场景中非常有效。
1292

被折叠的 条评论
为什么被折叠?



