RANSAC算法介绍

模型参数估计方法,如经典的最小二乘法,可以根据某种给定的目标方程估计并优化模型参数以使其最大程度适应于所有给定的数据集。这些方法都没有包含 检测并排除异常数据的方法,他们都基于平滑假设:忽略给定的数据集的大小,总有足够多的准确数据值来消除异常数据的影响。但是在很多实际情况下,平滑假设 无法成立,数据中可能包含无法得到补偿的严重错误数据,这时候此类模型参数估计方法将无法使用。
例如如下情况:给定7个点(如图1所示),如何拟出一条最合适的直线段,使得所有的正确点到直线的距离不超过0.8。此时显然无法使用最小二 乘法等方法进行拟合。

ransac0
图1

       RANSAC为RANdom SAmple Consensus的缩写,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。它于1981年由 Fischler和Bolles最先提出[1]。
RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(Outliers,偏离正常范 围很远、无法适应数学模型的数据),即数据集中含有噪声。这些异常数据可能是由于错误的测量、错误的假设、错误的计算等产生的。同时RANSAC也假设, 给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。
RANSAC基本思想描述如下:
①考虑一个最小抽样集的势为n的模型(n为初始化模型参数所需的最小样本数)和一个样本集P,集合P的样本数#(P)>n,从P中随机 抽取包含n个样本的P的子集S初始化模型M;
②余集SC=P\S中与模型M的误差小于某一设定阈值t的样本集以及S构成S*。S*认为是内点集,它们构成S的一致集(Consensus Set);
③若#(S*)≥N,认为得到正确的模型参数,并利用集S*(内点inliers)采用最小二乘等方法重新计算新的模型M*;重新随机抽取新 的S,重复以上过程。
④在完成一定的抽样次数后,若为找到一致集则算法失败,否则选取抽样后得到的最大一致集判断内外点,算法结束。
由上可知存在两个可能的算法优化策略。①如果在选取子集S时可以根据某些已知的样本特性等采用特定的选取方案或有约束的随机选取来代替原来的 完全随机选取;②当通过一致集S*计算出模型M*后,可以将P中所有与模型M*的误差小于t的样本加入S*,然后重新计算M*。
RANSAC算法包括了3个输入的参数:①判断样本是否满足模型的误差容忍度t。t可以看作为对内点噪声均方差的假设,对于不同的输入数据需 要采用人工干预的方式预设合适的门限,且该参数对RANSAC性能有很大的影响;②随机抽取样本集S的次数。该参数直接影响SC中样本参与模型参数的检验 次数,从而影响算法的效率,因为大部分随机抽样都受到外点的影响;③表征得到正确模型时,一致集S*的大小N。为了确保得到表征数据集P的正确模型,一般 要求一致集足够大;另外,足够多的一致样本使得重新估计的模型参数更精确。
RANSAC算法经常用于计算机视觉中。例如,在立体视觉领域中同时解决一对相机的匹配点问题及基本矩阵的计算。

二、RANSAC在消除错配中的应用
在特征点配对中,模型即为从一个平面上的特征点到另外一平面上的特征点的射影关系,反应为射影矩阵H。H是一个包含8个自由度的3×3矩阵, 它最少可以由两平面中的4对匹配点计算出,但同一平面上的3个点必须不共面。
图2、图3为RANSAC消除错配实验结果,两幅图像中的匹配点是由人工选取加Harris角点定位选取而来,匹配点对选取完毕后人工修改点 集中的数据以产生外点。两图中绿色点为RANSAC认为正确匹配的点对,红色的点为错误匹配点对。

ransac1
图2
ransac2
图3

参考文献:
[1] Fischler, M.A. and Bolles, R.C. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography. Communications of the ACM , 24(6): 381–395, 1981.
[2] Richard Hartley and Andrew Zisserman. Multiple View Geometry in Computer Vision (2nd ed). Cambridge University Press .
[3] 程焱,周焰,林洪涛,潘恒辉. 基于SIFT特征遥感影像自动配准与拼接,遥感技术与应用,23(6):721–728,2008年12月

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RANSACRandom Sample Consensus)算法是一种经典的模型参数估计方法,用于从数据中识别出liers(噪声点)并拟合出一个最优的模型。该算法可以被用于许多领域,例如计算机视觉、机器人学、计算机图形学、地理信息系统等。 RANSAC算法的基本思想是:从样本数据中随机选择一小部分数据作为内点集合,根据这些内点拟合出一个模型,然后用这个模型来测试所有数据,将与模型拟合程度高的数据归为内点,低的归为外点。重复这个过程多次,最终选择内点数最多的模型作为最终模型。 RANSAC算法的具体步骤如下: 1. 随机从数据集中选取一小部分数据作为内点集合,根据这些内点拟合出一个模型。 2. 用这个模型来测试所有数据,将与模型拟合程度高的数据归为内点,低的归为外点。 3. 计算内点的数目,如果内点数目大于某个预设的阈值,则认为这个模型是好的,否则重新从数据集中随机选取一小部分数据,重复以上步骤。 4. 重复执行一定的次数,选择内点数目最多的模型作为最终模型。 需要注意的是,RANSAC算法的效果与内点数目的选择有关,选择的内点数目太小会导致模型拟合不准确,选择的内点数目太大会导致计算量增加,影响算法效率。因此,在实际应用中,需要进行多次试验,选择最优的内点数目和迭代次数。 RANSAC算法的优点是能够快速、准确地处理包含噪声的数据集,并且适用于多种模型拟合问题。但是,该算法也存在一些缺点,例如对于数据集中outliers较多的情况,算法的效果较差。此外,该算法也无法保证求得的模型是全局最优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值