RANSAC(随机抽样一致算法)

匿名 (未验证) 提交于 2019-12-02 23:59:01

1. 算法介绍

  • 可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法――它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。

  • 最小二乘法不能找到有局外点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点。

2.概述

RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:

1.首先我们先随机假设一小组局内点为初始值。然后用此局内点拟合一个模型,此模型适应于假设的局内点,所有的未知参数都能从假设的局内点计算得出。

2.用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点,将局内点扩充。

3.如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。

4.然后,用所有假设的局内点去重新估计模型,因为此模型仅仅是在初始的假设的局内点估计的,后续有扩充后,需要更新。

5.最后,通过估计局内点与模型的错误率来评估模型。

整个这个过程为迭代一次,此过程被重复执行固定的次数,每次产生的模型有两个结局:

1、要么因为局内点太少,还不如上一次的模型,而被舍弃。

2、要么因为比现有的模型更好而被选用。

4.算法优缺点

  • 其实核心就是随机性和假设性。随机性用于减少计算了,那个循环次数就是利用正确数据出现的概率。所谓的假设性,就是说随机抽出来的数据我都认为是正确的,并以此去计算其他点,获得其他满足变换关系的点,然后利用投票机制,选出获票最多的那一个变换。

  • RANSAC的优点是它能鲁棒的估计模型参数。

  • RANSAC的缺点是它计算参数的迭代次数没有上限

  • RANSAC的另一个缺点是它要求设置跟问题相关的阀值。

  • RANSAC只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,不能找到别的模型。

5.应用

  • RANSAC算法用于求解立体摄像机的基础矩阵
  • 在SLAM中,经常被用于虑除误匹配
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!