RANSAC算法原理
RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法,有一定的概率得出一个合理的结果。为了提高得出合理结果的概率必须提高迭代次数。
1、基本思想:
RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:
有一个模型适用于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
最后,通过估计局内点与模型的错误率来评估模型。
这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为它比现有的模型更好而被选用。
2、对上述步骤,进行简单总结如下:
N:样本点个数,K:求解模型需要的最少的点的个数
- 随机采样K个点
- 针对该K个点拟合模型
- 计算其它点到该拟合模型的距离,小于一定阈值当做内点,统计内点个数
- 重复M次,选择内点数最多的模型
- 利用所有的内点重新估计模型(可选)
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算法原理相关推荐
- RANSAC算法原理与应用(1)
文章目录 前言 案例(直线RANSAC) RANSAC 抽样次数 距离阈值 终止阈值 最终估计 参考文献 前言 随机采样一致性(random sample consensus,RANSAC)是一种对带 ...
- RANSAC算法原理与实现
参考原文: RANSAC算法学习笔记 重点内容: 算法流程: 1.在可以有(也可以没有,主要看应用场景)条件限制(比如选的子集里的点不能过远等)的情况下,随机选取子集,并假设为局内点.子集的大小,主要 ...
- RANSAC算法注记
今天学习了一下RANSAC随机样本一致性算法,其在图像融合.特征点匹配方面有很强大的应用.网上已经有很多人写了关于这方面的文档,就不再造轮子了.特此罗列出来,以供后续参考. 我的数学之美(一)--RA ...
- 自适应采样次数的Ransac算法
自适应采样次数的Ransac算法 Ransac基本思想 自适应采样次数的Ransac算法原理 对数据进行拟合操作的同学肯定对Ransac算法不陌生,之前接触过一段时间,最近有空才把这么经典的一个算法分 ...
- 改进的RANSAC算法实现点云粗配准
目录 前言 一.RANSAC算法原理 参考文献 二.代码示例 1.计算FPFH特征描述子 2.RANSAC算法
- RANSAC算法实现 + 直线拟合
一.RANSAC算法 1.参考资料 [1]题目来源与解析:商汤科技SLAM算法岗的RANSAC编程题 [2]牛客网题目:[编程题]线性回归 [3]牛客网解答参考:商汤科技某算法岗的编程题有点过分了啊 ...
- 把计算机视觉算法应用遥感,RANSAC算法及其在遥感图像处理中的应用
摘要: 在计算机视觉,工程设计等领域都需要根据相关数据集确定模型参数,但是所得到的数据中往往存在大量不符合模型的异常数据(又被称为野点),这些野点对模型参数稳健性有很大的干扰.经典的参数估计算法如最小 ...
- RANSAC(随机采样一致算法)原理及openCV代码实现
<RANSAC(随机采样一致算法)原理及openCV代码实现> 原文: http://www.lai18.com/content/1046939.html 本文转自:http://b ...
- RANSAC算法(2):(拟合平面)本文以地面为基础以及源码分布解读
本章代码是本人根据一个未曾谋面的好人学习的(要怀抱希望,世界上好人真的是很多的,我要做一个去给别人带去正能量积极态度的人,加油喽),如需转载学习请注明.谢谢 ---------------基于rans ...
- RANSAC算法做直线拟合
RANSAC算法之前了解过相关的原理,这两天利用晚上闲暇的时间,看了一下RANSAC算法的Python代码实现,这方面的资料很多了,这里就不在重复.在分析该RANSAC.py代码之前,想用自己的对RA ...
最新文章
- Windows脚本初探之PowerShell流程控制if
- 计算机更新80072f76,win10系统出现错误代码0x80072f76的解决方法
- vue修改html片段的样式无效,vue 组件中添加样式不生效的解决方法
- View-屏幕坐标 Content-网页(内容)坐标 mScrollX和mScrollY-屏幕坐标偏移
- redis缓存雪崩和缓存穿透
- 结合源码看nginx-1.4.0之nginx内存管理详解
- P3723-[AH2017/HNOI2017]礼物【FFT】
- android字体单位sp,Android中的常用尺寸单位(dp、sp)快速入门教程
- win10计算机扫描,Win10系统下如何使用扫描仪
- 北京调频(FM)无线广播发射频率/频道表 (转载)
- 【PyTorch】深度学习实战之PyTorch实现线性回归
- html自由变换图形,ps自由变换的快捷键是什么?
- 震动活塞式柱状取样器的使用
- Composing Programs 2.2 Data Abstraction
- 超级计算机浪漫展览,这是最独特的“中国式浪漫”
- opencv 涂抹区域得方法
- Python数据分析与处理(例题)
- 让美容院业绩翻番,您只差一套软多共享股东系统
- Ceph学习笔记1-Mimic版本多节点部署
- selenium 与浏览器 以及浏览器驱动版本问题