打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
RANSAC算法详解

RANSAC算法详解

(2015-04-23 18:57:50)

随机抽样一致算法(random sample consensus,RANSAC),采用迭代的方式从一组包含离群的被观测数据中估算出数学模型的参数。

数据分两种:有效数据(inliers)和无效数据(outliers)。偏差不大的数据称为有效数据,偏差大的数据是无效数据。如果有效数据占大多数,无效数据只是少量时,我们可以通过最小二乘法或类似的方法来确定模型的参数和误差;如果无效数据很多(比如超过了50%的数据都是无效数据),最小二乘法就失效了,我们需要新的算法

RANSAC的基本假设:

1、内群数据可以通过几组模型的参数来叙述其分别,而“离群”数据则是不适合模型化的数据

2、数据会受噪声影响,噪声指的是离群,例如从极端的噪声或错误解释有关数据的测量或不正确的假设

3、RANSAC假定,给定一组(通常很小)的内群,存在一个程序,这个程序可以估算最佳解释或最适用于这一数据模型的参数

概述:

1、在数据中随机选择几个点设定为内群

2、计算适合内群的模型

3、把其他刚才没有选到的点带入刚才建立的模型中,计算是否为内群

4、记下内群数量

5、重复以上步骤多次

6、比较哪次计算中内群数量最多,内群最多的那次所建的模型就是我们所要求的解

这里有几个问题:

1、一开始的时候我们要随机选择多少点

2、以及要重复多少次

 

算法:

伪代码的算法如下所示:

输入:

Data       一组观测数据

Model     适应于数据的模型

        适应于模型的最小数据个数

        算法的迭代次数

         用于决定数据是否适应于模型的阈值

         判定模型是否适用于数据集的数据数目

参考链接:http://blog.csdn.net/pi9nc/article/details/26596519

Best_model  与数据最匹配的模型参数(没有返回null)

Best_consensus_set 估计出模型的数据点

Best_error   跟数据相关的估计出的模型错误

iterations 0
best_model null
best_consensus_set null
best_error 无穷大
while iterations )
maybe_inliers 从数据集中随机选择n个点
maybe_model 适合于maybe_inliers的模型参数
consensus_set maybe_inliers

for 每个数据集中不属于maybe_inliers的点 
if 如果点适合于maybe_model,且错误小于t 
将点添加到consensus_set
if ( consensus_set中的元素数目大于d 
已经找到了好的模型,现在测试该模型到底有多好
better_model 适合于consensus_set中所有点的模型参数
this_error better_model究竟如何适合这些点的度量
if this_error best_error )
我们发现了比以前好的模型,保存该模型直到更好的模型出现
best_model  better_model
best_consensus_set consensus_set
best_error  this_error
增加迭代次数
返回 best_model, best_consensus_set, best_error

 

参数决定:

假设每个点是真正内群的概率是w真正内群的数目/数据总共的数量

通常我们不知道w是多少,wn次方是所选择的n个点都是内群的概率,1-w^n所选择的n个点至少有一个不是内群的概率,(1-w^n^k表示重复k次都没有全部的n个点都是内群的概率

这边定算法跑k次以后成功的概率是p,那么,

1-p (1 w^n)^k

w^n)^k

所以如果希望成功率提高,0.99,n不变时,k越大,p越大;当 不变时,n越大,所需的k就越大,通常,w位置,所以选小一点比较好

 

应用:RASAC常被用在电脑视觉,例如对应点问题和估算立体摄影机双眼相对点的基本矩阵

 

优缺点:

RANSAC 算法的优点是能鲁棒的估计模型参数。例如,他能从包含大量局外点的数据集中估计出高精度的参数。

缺点是它计算参数的迭代次数没有上限,如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。

RANSAC只有一定的概率得到的可信的模型,概率与迭代次数成正比。另一个缺点是它要求设置跟问题相关的阈值,

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
随机抽样一致性算法(RANSAC)
PCL采样一致性算法
利用RANSAC算法稳健估计平面模型参数和圆柱模型参数
机器视觉之 ICP算法和RANSAC算法
合成全景图中计算机视觉技术的知识和原理
Ransac算法代码分析和改进
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服