RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法,有一定的概率得出一个合理的结果。为了提高得出合理结果的概率必须提高迭代次数。

1、基本思想:

RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:

  1. 有一个模型适用于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。

  2. 用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。

  3. 如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。

  4. 然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。

  5. 最后,通过估计局内点与模型的错误率来评估模型。

这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为它比现有的模型更好而被选用。

2、对上述步骤,进行简单总结如下:

N:样本点个数,K:求解模型需要的最少的点的个数

  1. 随机采样K个点
  2. 针对该K个点拟合模型
  3. 计算其它点到该拟合模型的距离,小于一定阈值当做内点,统计内点个数
  4. 重复M次,选择内点数最多的模型
  5. 利用所有的内点重新估计模型(可选)

3、举例:利用RANSAC算法拟合一条直线

4、计算需要的采样次数M

N:样本点个数,K:求解模型需要的最少的点的个数,P:该点为内点的概率

:K个点都是内点的概率

:K个点至少有一个外点的概率(采样失败)

:M次采样全部失败的概率

:M次采样至少有一次成功的概率

计算P=0.9,K=8,想要采样成功率达到Z>=0.99时,所需要的采样次数M

参考文章:https://blog.csdn.net/robinhjwy/article/details/79174914

RANSAC算法原理相关推荐

  1. RANSAC算法原理与应用(1)

    文章目录 前言 案例(直线RANSAC) RANSAC 抽样次数 距离阈值 终止阈值 最终估计 参考文献 前言 随机采样一致性(random sample consensus,RANSAC)是一种对带 ...

  2. RANSAC算法原理与实现

    参考原文: RANSAC算法学习笔记 重点内容: 算法流程: 1.在可以有(也可以没有,主要看应用场景)条件限制(比如选的子集里的点不能过远等)的情况下,随机选取子集,并假设为局内点.子集的大小,主要 ...

  3. RANSAC算法注记

    今天学习了一下RANSAC随机样本一致性算法,其在图像融合.特征点匹配方面有很强大的应用.网上已经有很多人写了关于这方面的文档,就不再造轮子了.特此罗列出来,以供后续参考. 我的数学之美(一)--RA ...

  4. 自适应采样次数的Ransac算法

    自适应采样次数的Ransac算法 Ransac基本思想 自适应采样次数的Ransac算法原理 对数据进行拟合操作的同学肯定对Ransac算法不陌生,之前接触过一段时间,最近有空才把这么经典的一个算法分 ...

  5. 改进的RANSAC算法实现点云粗配准

    目录 前言 一.RANSAC算法原理 参考文献 二.代码示例 1.计算FPFH特征描述子 2.RANSAC算法

  6. RANSAC算法实现 + 直线拟合

    一.RANSAC算法 1.参考资料 [1]题目来源与解析:商汤科技SLAM算法岗的RANSAC编程题 [2]牛客网题目:[编程题]线性回归 [3]牛客网解答参考:商汤科技某算法岗的编程题有点过分了啊 ...

  7. 把计算机视觉算法应用遥感,RANSAC算法及其在遥感图像处理中的应用

    摘要: 在计算机视觉,工程设计等领域都需要根据相关数据集确定模型参数,但是所得到的数据中往往存在大量不符合模型的异常数据(又被称为野点),这些野点对模型参数稳健性有很大的干扰.经典的参数估计算法如最小 ...

  8. RANSAC(随机采样一致算法)原理及openCV代码实现

    <RANSAC(随机采样一致算法)原理及openCV代码实现> 原文: http://www.lai18.com/content/1046939.html  本文转自:http://b ...

  9. RANSAC算法(2):(拟合平面)本文以地面为基础以及源码分布解读

    本章代码是本人根据一个未曾谋面的好人学习的(要怀抱希望,世界上好人真的是很多的,我要做一个去给别人带去正能量积极态度的人,加油喽),如需转载学习请注明.谢谢 ---------------基于rans ...

  10. RANSAC算法做直线拟合

    RANSAC算法之前了解过相关的原理,这两天利用晚上闲暇的时间,看了一下RANSAC算法的Python代码实现,这方面的资料很多了,这里就不在重复.在分析该RANSAC.py代码之前,想用自己的对RA ...

最新文章

  1. Windows脚本初探之PowerShell流程控制if
  2. 计算机更新80072f76,win10系统出现错误代码0x80072f76的解决方法
  3. vue修改html片段的样式无效,vue 组件中添加样式不生效的解决方法
  4. View-屏幕坐标 Content-网页(内容)坐标 mScrollX和mScrollY-屏幕坐标偏移
  5. redis缓存雪崩和缓存穿透
  6. 结合源码看nginx-1.4.0之nginx内存管理详解
  7. P3723-[AH2017/HNOI2017]礼物【FFT】
  8. android字体单位sp,Android中的常用尺寸单位(dp、sp)快速入门教程
  9. win10计算机扫描,Win10系统下如何使用扫描仪
  10. 北京调频(FM)无线广播发射频率/频道表 (转载)
  11. 【PyTorch】深度学习实战之PyTorch实现线性回归
  12. html自由变换图形,ps自由变换的快捷键是什么?
  13. 震动活塞式柱状取样器的使用
  14. Composing Programs 2.2 Data Abstraction
  15. 超级计算机浪漫展览,这是最独特的“中国式浪漫”
  16. opencv 涂抹区域得方法
  17. Python数据分析与处理(例题)
  18. 让美容院业绩翻番,您只差一套软多共享股东系统
  19. Ceph学习笔记1-Mimic版本多节点部署
  20. selenium 与浏览器 以及浏览器驱动版本问题

热门文章

  1. 【Java开发bug-011】excel设置自定义日期格式
  2. [java编程题]打印指定年指定月份的日历
  3. java编写九宫格拼图游戏_基于jquery实现九宫格拼图小游戏
  4. Linux基础(三)安装及管理程序
  5. django 一个项目多个App项目搭建
  6. 二元函数极限知识点总结
  7. Java打印正三角形
  8. Sketch56.1汉化
  9. 【OS】单道程序设计VS多道程序设计
  10. 连接服务器显示用户账户无效,发现MT4真实账户无效该怎么办?