RANSAC算法

经过ORB提取以及匹配特征点对后,再通过前面的快速最近邻算法、余弦相似度提纯操作对特征点对进行初步筛选,我们已经初步得到了一系列比较好的特征点对,这些是2D-2D的特征点匹配关系,然后我们需要从匹配成功的点中恢复帧间位姿,实现位姿估计。

我们利用RANSAC算法选出所有匹配成功特征点对中的内点,利用迭代思想估计最佳位姿。
在这里插入图片描述

例如,这是相邻两帧图片之间特征点匹配图,可以看到,仍然存在许多斜线点对,很乱,这种匹配情况一般出现在运动物体大幅运动过程,而相邻两帧图片中比较少出现这种大幅运动,一般都是略微的平移,所以,还需要最后使用RANSAC算法选出匹配成功特征点对中的内点,利用迭代的思想挑取最优数据估计最佳位姿。

一次RANSAC迭代过程:
1、随机在所有点对中选出一部分内点作为初值,拟合一个初始模型
这些点对中有正常的,也有错误的,但我们先选出一部分,先用它来拟合一个模型
2、用(1)中拟合的模型对所有的数据进行测试,若样本中的某些点适合模型,则扩充内点集合
把适合当前拟合模型的点认为是内点
3、当内点数目足够多的时候,认为估计的模型合理
这个多是相对于总数来说的
4、用当前所有内点重新估计模型,作为最终的模型
因为我们使用的模型仅仅是用一开始选定的点来估计的,现在需要用更新的内点集合重新估计一个新模型
5、对模型进行评价
这只是一次迭代过程,我们要继续选点重复如上操作,因为可能某次选到的正好都是不符合情况的误匹配的特征点,得到一个不断扩充外点的模型,这种是要淘汰的。重复执行指定次数,每次产生的模型要么因为局内点太少被舍弃,要么因为比现有的模型更好而被选用
假如内点数量不足,则重新选点进行迭代
假如模型的评价指标在所有迭代结果中最佳,则选用这个模型

这是经过RANSAC算法处理后的匹配情况:
在这里插入图片描述

原理浅析
假设P表示迭代过程中出现过好的模型的概率,好的意思就是抽到用来计算模型的点全都是局内点
假设W=局内点数目/数据点总数目 (W是未知的,不然我已经知道了哪些是局内点,何必迭代来找,此处假设局内点占比用来推导)
假设计算模型参数需要n个点
n 个点中至少有一个点为局外点的概率为:1-W^n

             1-p=(1-w^n)^k        

等式两边均是 k次迭代没有出现好的模型的概率

我们可以看出,当K 趋近无穷时,P会趋近于1,这说明只要迭代次数够大,那么一定会出现上面说的幸运情况

我们也可以用对数反解出迭代次数K:
假设需要P为0.99,n 易知,w可以估计一个

通过这个过程,我们不难发现其缺点,也就是算法随机性太高,必须加大迭代次数来提高精度,而为了使得算法有更好的效果,我们才在ORB提取匹配后加入一系列的预处理操作,增大局内点占比,使得在较底迭代次数下能有更高概率得到最佳筛选

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挥剑决浮云 -

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值