RANSAC笔记

RANSAC是一种随机采样一致性算法,用于在含有噪声数据中估计模型参数。它在计算机视觉、统计数学等领域都有应用。RANSAC通过随机选取数据点估计模型,通过内外点判断和迭代过程找到最优模型,对错误数据具有较强鲁棒性。算法关键参数包括内外点距离阈值、迭代次数和一致性集合大小阈值,这些参数的选择直接影响结果的准确性。
摘要由CSDN通过智能技术生成

刚来实验室那会儿,每周组会汇报,师兄报告时,和老板讨论,总听到“那就对数据RANSAC一下”……当时我怯生生的问了一下师兄,啥叫RANSAC?现在也不记得师兄咋解释的,后来自己也经常调用matlab里的ransac函数求解单应性矩阵,但是对其具体原理我还真没花时间去了解一下,今天就做一下笔记,理解理解什么叫RANSAC。

什么叫RANSAC?

直译过来随机采样一致性(random sample consensus)。具体什么意思,了解其算子过程和原理就很容易理解了。这里我想首先强调的一点就是,RANSAC是一种思想,一个求解已知模型的参数的框架。它不限定某一特定的问题,可以是计算机视觉的问题,同样也可以是统计数学,甚至可以是经济学领域的模型参数估计问题。

RANSAC的具体步骤?

谈算法的步骤之前,首先得说明这个算法的输入输出,然后才是是具体算法步骤。

输入:
1. 在RANSAC定义中,已经说过,它是一种求解已知模型的参数的框架。所以这个模型的形式,得给出。也就是说,你所求解的模型是一阶模型?二阶模型还是什么的…..你得给出来,这样模型需要求解的参数个数也就确定了。
2. 一堆数据。这一堆数据中是允许出现错误数据的(野点或者外点),也许你会纳闷为啥要给有错误的数据。这是因为在实际的数据采集中,难免受到噪声的污染,数据的准确性也就难以保证,所以存在错误数据是非常合理的情况。这也是RANSAC流行的原因,相比于最小二乘(线性回归),他对数据的错误的鲁棒性更好。有博文中写到,“对于包含80%误差的数据集,RANSAC的效果远优于直接的最小二乘法”,这个我没有证实,但是我相信应该是对的吧。
3. 迭代次数 k ,内外点距离阈值 t1 ,一致性集合大小阈值 t2 。这三个参数根据不同的问题,会有不同的值。现在也不介绍他们到底是什么意思,等算法步骤流程说完了再介绍他们,那样应该更加清晰明了。


算法流程
下面均已从一堆点中估计直线方程这个问题进行展开,其他比如单应性矩阵求解等问题可以类比。

  1. 从数据中随机选取模型参数估计的最少的数据(对于直线估计问题,两个点确定一条直线,当然就随机选取两个数据。),然后计算出直线方程。
  2. 然后计算数据集中其余点与已算出模型的距离 d ,当 d<t1 时就判定该点为内点(inlier),当 d>t1 就判定为外点(outlier)。然后统计内点个数 n ,当
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值