随机采样一致 RANSNC算法

参考博客
PCL笔记九:采样一致性
最小二乘法和随机抽样一致性

随机抽样一致算法(Random Sample Consensus,RANSAC)

定义

采用迭代的方式从一组包含离群的被观测数据中估算出数学模型的参数。RANSAC算法假设数据中包含正确数据和异常数据(或称为噪声)。正确数据记为内点(inliers),异常数据记为外点(outliers)。同时RANSAC也假设,给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。该算法核心思想就是随机性和假设性,随机性是根据正确数据出现概率去随机选取抽样数据,根据大数定律,随机性模拟可以近似得到正确结果。假设性是假设选取出的抽样数据都是正确数据,然后用这些正确数据通过问题满足的模型,去计算其他点,然后对这次结果进行一个评分。
RANSAC算法被广泛应用在计算机视觉领域和数学领域,例如直线拟合、平面拟合、计算图像或点云间的变换矩阵、计算基础矩阵等方面,使用的非常多。

算法流程

随机采样一致 RANSNC算法_第1张图片

二维简单模型

  1. 要得到一个直线模型,需要两个点唯一确定一个直线方程。所以第一步随机选择两个点。
  2. 通过这两个点,可以计算出这两个点所表示的模型方程y=ax+b。
  3. 将所有的数据点套到这个模型中计算误差。
  4. 找到所有满足误差阈值的点。
  5. 然后我们再重复1~4这个过程,直到达到一定迭代次数后,选出那个被支持的最多的模型,作为问题的解。

三维复杂模型

把这个算法扩展到更复杂的模型,那就是
随机采样一致 RANSNC算法_第2张图片
(注:本图片截取自参考博客:最小二乘法和随机抽样一致性)
这里ransac的问题也就凸显出来了,如果原始数据(点云)中存在不止一个模型,那么ransac算法就显得很无力了.
内点和外点,其实就是内点是正确的点,我们可以用一个合理的模型来描述他,外点,其实就理解为噪声,我们直接排除掉就可以了.当创建的模型包含点的,也就是内点最多的时候,我们就称这个模型是最接近真实情况的模型或最佳模型

RANSAC与最小二乘区别

采样一致性算法与最小二乘法其实有些相似,不同在于一个是直接针对全局的,另一个则只针对抽样出来的局部进行计算,通过局部逆推整体.假设有很多噪声存在,那么最小二乘法对噪声的敏感程度很高,受影响很大,ransac对噪声的敏感程度就没有那么大.
最小二乘法尽量去适应包括局外点在内的所有点。相反,RANSAC能得出一个仅仅用局内点计算出模型,并且概率还足够高。但是,RANSAC并不能保证结果一定正确,为了保证算法有足够高的合理概率,必须小心的选择算法的参数(参数配置)。经实验验证,对于包含80%误差的数据集,RANSAC的效果远优于直接的最小二乘法。

随机采样一致 RANSNC算法_第3张图片

你可能感兴趣的:(点云库pcl从入门到精通,算法,机器学习,计算机视觉)