近年来学者们不断在对经典算法RANSAC进行各种改进,本文想总结一下近年来RANSAC算法的各种改进优化。看到一个写得很好的博客系列,可惜博主没有继续写下去了,很希望博主哪天想起来继续写下去,我暂时在这里做一些简单补充吧(此处暂时只搜集到的一些相关文献,后续随着学习的增加会再继续完善~ :p)。

RANSAC简史
RANSAC简史(一)——RANSAC之初

Random Sample Consensus 随机抽样一致

RANSAC算法步骤

1) 从所有的数据中采样n个点,以能确定出模型;

2) 利用采样点计算模型;

3) 利用模型来确定其他点是否是内点;如果内点率达到指定值,算法终止,并用所有内点优化模型;否则,继续上述过程,直到达到指定的迭代次数,此时将最高内点率对应的模型作为最终模型。

核心思想:待求解的模型,应该是能同时使 最多数据点 符合模型。

可能存在的问题

  1. 如何选取能用来确定模型的最小数据量N?
  2. 采样策略?
  • 通常情况下,我们在所有数据中进行随机采样,且所有数据每次被采样的可能性是一样的,而且我们通常不考虑两次采样得到的样本是重复的。
  1. 在第一步中,我们要求采样点尽可能少,同时我们也知道,当数据点存在噪声(通常考虑为高斯噪声)时,样本点的数目越多,求解的模型越准确。这就意味着我们此刻求解的模型不够准确,那么这个不够准确的模型,是否能够用来判断其他点是否是内点?
  • 我们通常认为虽然模型存在误差,但是在后续内点判断中,我们设定一定的误差阈值,因此能够用该模型来近似最终模型。同时,一些RANSAC的改进,采用“局部优化”技术来一定程度解决这一问题。
  1. 如果我们待求解的问题,无法用一个模型,或者无法用一个仅包含若干个参数的模型进行表达,此时是否还能使用“最大一致性”的思路?
  • 涉及 无模型的“最大一致性估计”方法
  1. 如何判断其他点是否为内点?如果通过其他点与模型的符合程度,那么如何设置这样一个阈值?有时一个数据是否为内点还与其他数据相关,那么此时如何考虑数据间的关联?
    (例如两个数据点相冲突,不可能同时为内点。这种情况会发生在:根据两张图特征点匹配,求解其基础矩阵时,如果A图中的两个点,匹配到B图中的同一个点)
  2. 使算法终止的内点率阈值?
    (对于一组数据,通常情况下我们是无法知道其最大内点率,但或许我们可以事先求解出最优模型对应的内点率)
  • 现在已经不太使用这个阈值作为终止条件了。我们通常采用一定置信度下,达到能够保证至少一次所有的采样点都为内点的最少采样次数,作为终止条件。
  1. 如何确定迭代次数上限?
  • 原文[1]中给出了两种方案

RANSAC的改进

《Image Matching from Handcrafted to Deep Features: A Survey》中提到:

《主成分分析的匹配点对提纯方法》中提到:

(一)更有效的采样策略

1.PROSAC 渐近样本一致 [6]

PROgressive SAmple Consensus论文翻译

相比经典的 RANSAC 方法均匀地从整个集合中采样,PROSAC 方法是从不断增大的最佳对应点集合中进行采样的。所以这种方法可以节省计算量,提高运行速度。

该方法采用半随机方法,对所有点对进行质量评价计算Q值,然后根据Q值降序排列,每次只在高质量点对中经验模型假设与验证,这样就大大降低了计算量,在RANSAC无法收敛的情况下,PROSAC依然可以取得良好的结果。OpenCV中的RHO方法就是基于PROSAC估算。

2.USAC 全局RANSAC [7]

USAC论文翻译


stage1: 最小集采样方法采用2.2.2节中的PROSAC。

stage3: 模型(参数)验证采用2.4.3的SPRT测试。

stage4: 产生最终模型,采用2.5.1介绍的Lo-RANSAC。

在本文中,我们通过分析和比较多年来研究的各种方法,对基于RANSAC的鲁棒估计的最新研究进行了全面的综述。通过引入一个新的稳健估计框架,我们为这一分析提供了一个共同的背景,我们称之为全局RANSAC(USAC)。USAC扩展了标准RANSAC的简单假设和验证结构,纳入了许多重要的实际和计算考虑因素。

3.MLESAC [13]

4.NAPSAC [10]

(二)更准确的模型估计

5.LO-RANSAC 局部优化的ransac [2] [4]

(三)更可靠的模型评估

6.R-RANSAC 随机模型验证策略 [3] [11]

(四)深度学习方向的应用

7.DSAC [5]

8.NG-RANSAC [8]

9.Graph-Cut RANSAC [9]


P-RANSAC

参考文献

[1] Martin, A, Fischler, et al. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[J]. Communications of the ACM, 1981.
[2] Chum O , Jií Matas, Kittler J . Locally Optimized RANSAC. Lecture Notes in Computer Science, 2003.
[3] Matas J , Chum O . Randomized RANSAC with T(d, d) test. BMVC,2002,.
[4] Chum, O. & Matas, Jiri & Obdrzalek, S… (2004). Enhancing RANSAC by generalized model optimization.
[5] Brachmann E , Krull A , Nowozin S , et al. DSAC - Differentiable RANSAC for Camera Localization.CVPR, 2017.
[6] Chum O . Matching with PROSAC — Progressive Sample Consensus.CVPR,2005.
[7] Raguram, Rahul, Chum, et al. USAC: A Universal Framework for Random Sample Consensus.PAMI,2013.
[8] Brachmann E , Rother C . Neural-Guided RANSAC: Learning Where to Sample Model Hypotheses.ICCV, 2019.
[9] Barath D , Matas J . Graph-Cut RANSAC.CVPR, 2018.
[10] MYATT, D. & Torr, Philip & Bishop, John & CRADDOCK, R. & Nasuto, Slawomir. (2002). NAPSAC: HIGH NOISE, HIGH DIMENSIONAL MODEL PARAMETERISATION - IT’S IN THE BAG.
[11] Chum, Ondřej, Matas, Jiří. Optimal Randomized RANSAC. PAMI,2008.
[12] Ma J , Jiang X , Fan A , et al. Image Matching from Handcrafted to Deep Features: A Survey. IJCV, 2020.
[13] Torr, Philip & Zisserman, A… (2000). MLESAC: A New Robust Estimator with Application to Estimating Image Geometry. Computer Vision and Image Understanding.
[14] David Nistér. Preemptive RANSAC for live structure and motion estimation[C]// Springer-Verlag, 2005.
[15] 改进的匹配点提纯算法 mRANSAC

RANSAC及其经典变种相关推荐

  1. 【限时】21天学习挑战赛 - 经典算法

    ​学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰.各位小伙伴,如果您: 想系统/深入学习某技术知识点- 一个人摸索学习很难坚持,想组团高效学习- 想写博客但无从下手,急 ...

  2. 超参数优---贝叶斯优化及其改进(PBT优化)

    目录 参考文献: 简介 贝叶斯优化方法为什么好 贝叶斯优化的适用条件 贝叶斯优化的历史与在神经网络中的应用 贝叶斯优化基本原理与流程 贝叶斯优化的经典变种及其文章 Python中的贝叶斯优化库 贝叶斯 ...

  3. 第五周【任务1】范数惩罚正则化 (笔记)

    5.1 参数范数惩罚 正则化定义为"对学习算法的修改--旨在减少泛化误差而不是训练误差". 参数惩罚:向机器学习模型添加限制参数值的额外约束 约束惩罚:向目标函数增加额外项来对参数 ...

  4. Deep Learning读书笔记3---深度学习中的正则化

    1.概念 正则化定义为"对学习算法的修改--旨在减少泛化误差而不是训练误差". 目前有许多正则化策略. 有些策略向机器学习模型添加限制参数值的额外约束. 有些策略向目标函数增加额外 ...

  5. 【机器学习】生成对抗网络 GAN

    文章目录 GAN能干什么? GAN的设计初衷 GAN 的基本原理(大白话) 生成对抗网络(GAN)由2个重要的部分构成 训练过程 GAN的总结 GAN的提出:"Generative Adve ...

  6. DP动态规划企业级模板分析(数字三角,上升序列,背包,状态机,压缩DP)

    前言 经过基础的算法模型讲解和题海战术,将DP动态规划这个重点呢考纲进行细分题类型,此篇是上半章节的DP动态分析提升题.主要包括数字三角形,以及最大上升序列,背包问题,状态机的拆分以及优化状态机的压缩 ...

  7. SLAM之特征匹配(二)————RANSAC--------翻译以及经典RANSAC以及其相关的改进的算法小结

    本文翻译自维基百科,英文原文地址是:http://en.wikipedia.org/wiki/ransac     RANSAC是"RANdom SAmple Consensus(随机抽样一 ...

  8. 第三十三课.一些经典的优化策略与神经网络变种

    目录 全局最优与局部最优 Hebb学习规则 常用的三种优化技巧 补充内容:快照集成 补充内容:神经网络剪枝 经典网络变种 小波神经网络 RBF网络 ART网络 SOM网络 Hopfield网络 基于遗 ...

  9. dueling dqn 和 double dqn_强化学习(十一)--DQN三个经典的变种

    DQN三个经典的变种:Double DQN.Dueling DQN.Prioritized Replay Buffer. Double-DQN:将动作选择和价值估计分开,避免价值过高估计. Dueli ...

最新文章

  1. 图灵科普系列丛书封面有奖征集(贴图送书)
  2. python同时对文件进行读写操作-Python实现的读取文件内容并写入其他文件操作示例...
  3. 活动目录数据库授权恢复
  4. 动态创建 Plist 文件
  5. Spring-boot(一)
  6. mysql查询问题解答_mysql查询问题
  7. 关于vs2003调试时出错:“试图运行项目时出错:无法启动调试”解决
  8. 集群介绍 keepalived介绍 用keepalived配置高可用集群
  9. 网络安全联盟推进威胁情报共享的扩张
  10. 安装axios及其基础用法
  11. PS 批量导入图片制作 gif
  12. MinGW安装及介绍
  13. 【排序算法(三)】直接插入排序及其改进
  14. LDAP 中的 RDN
  15. Unity个人笔记之碰撞检测失效
  16. 2022-2027年中国互联网+香水行业市场全景评估及发展战略规划报告
  17. Android 沉浸式状态栏 一体化状态栏实现
  18. word 删除所有 ActiveX控件,重新启用word自动保存
  19. 海思3559kernel移植(一):一路next的默认模式
  20. x264参数介绍(帧类型和码率控制,分析和视频可用性信息)

热门文章

  1. fri什么意思_FRI
  2. rs232 距离_一文读懂RS232、RS422、RS485三者之间的特性与区别
  3. 一个好的网站设计如何影响内容营销
  4. 【英语单词2017 06 02 2】
  5. docker入门(利用docker部署web应用)
  6. 数据分析 第五讲 numpy
  7. 羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能?
  8. 工厂开展标准化班组管理建设的执行要点
  9. 计算机专业未来就业方向有哪些?
  10. 关于协议转换器的分类以及工作原理的详细介绍