java随机抽样算法_随机抽样一致性(RANSAC)算法详解
随机抽样一致性(RANSAC)算法能够有效的剔除特征匹配中的错误匹配点。
实际上,RANSAC能够有效拟合存在噪声模型下的拟合函数。实际上,RANSAC算法的核心在于将点划分为“内点”和“外点”。在一组包含“外点”的数据集中,采用不断迭代的方法,寻找最优参数模型,不符合最优模型的点,被定义为“外点”。这就是RANSAC的核心思想。
RANSAC原理
OpenCV中滤除误匹配对采用RANSAC算法寻找一个最佳单应性矩阵H,矩阵大小为3×3。RANSAC目的是找到最优的参数矩阵使得满足该矩阵的数据点个数最多,通常令h33=1来归一化矩阵。由于单应性矩阵有8个未知参数,至少需要8个线性方程求解,对应到点位置信息上,一组点对可以列出两个方程,则至少包含4组匹配点对。
RANSAC算法从匹配数据集中随机抽出4个样本并保证这4个样本之间不共线,计算出单应性矩阵,然后利用这个模型测试所有数据,并计算满足这个模型数据点的个数与投影误差(即代价函数),若此模型为最优模型,则对应的代价函数最小。
损失函数:
也就是通过随机抽样求解得到一个矩阵,然后验证其他的点是否符合模型,然后符合的点成为“内点”,不符合的点成为“外点”。下次依然从“新的内点集合”中抽取点构造新的矩阵,重新计算误差。最后误差最小,点数最多就是最终的模型。
RANSAC算法步骤:
RANSAC算法步骤:
1. 随机从数据集中随机抽出4个样本数据 (此4个样本之间不能共线),计算出变换矩阵H,记为模型M;
2. 计算数据集中所有数据与模型M的投影误差,若误差小于阈值,加入内点集 I ;
3. 如果当前内点集 I 元素个数大于最优内点集 I_best , 则更新 I_best = I,同时更新迭代次数k ;
4. 如果迭代次数大于k,则退出 ; 否则迭代次数加1,并重复上述步骤;
注:迭代次数k在不大于最大迭代次数的情况下,是在不断更新而不是固定的;
其中,p为置信度,一般取0.995;w为"内点"的比例 ; m为计算模型所需要的最少样本数=4;
关于RANSAC算法的思想,可以用下图表示
也就是RANSAC算法的本质是:在存在噪声的数据中,我们求解一个模型,使得非噪声数据可以用该模型表示,而噪声数据被排除在外。
分享三个讲解RANSAC算法的网址:
java随机抽样算法_随机抽样一致性(RANSAC)算法详解相关推荐
- java enum 父类_枚举基类Enum详解
本文主要是对枚举类型的基类Enum类做一个介绍: 首先,Enum类位于java.lang包下,根据类的介绍可以发现,Enum类是Java中所有枚举类的父类,将枚举作为一个set或者Map的keys来使 ...
- java udp 协议_网络协议 - UDP 协议详解
¶ 网络协议 - UDP 协议详解 基于TCP和UDP的协议非常广泛,所以也有必要对UDP协议进行详解.@pdai ¶ UDP概述 UDP(User Datagram Protocol)即用户数据报协 ...
- java cookie路径_路径问题以及cookie详解
1.路径问题: 注意 .代表执行程序的文件夹路径,在tomcat中也就是bin目录,所以要用this.getServletContext().getRealPath("/WEB-INF/cl ...
- java response 对象_常用response对象的详解
每一个程序语言或开发工具都有一定的函数与用户进行沟通,Asp同样如此.在Asp中负责将信息传递给用户的对象就是Response对象.Response对象用于动态响应客户端请求(Request),并将动 ...
- JAVA中希尔排序去的讲解_java 中基本算法之希尔排序的实例详解
java 中基本算法之希尔排序的实例详解 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shel ...
- 【JVM】对象存活判定算法、GC算法、STW、GC种类详解
[JVM]对象存活判定算法.GC算法.STW.GC种类详解 文章目录 [JVM]对象存活判定算法.GC算法.STW.GC种类详解 GC主要关注的区域 垃圾标记阶段:对象存活判断 标记阶段:引用计数算法 ...
- 大白话解析Apriori算法python实现(含源代码详解)
大白话解析Apriori算法python实现(含源代码详解) 一.专业名词解释 二.算法思路 三.python代码实现 四.Aprioir的优点.缺点及改进方法 本文为博主原创文章,转载请注明出处,并 ...
- EM算法(Expectation Maximization Algorithm)详解
EM算法(Expectation Maximization Algorithm)详解 主要内容 EM算法简介 预备知识 极大似然估计 Jensen不等式 EM算法详解 问题描述 EM算法推导 EM ...
- 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解
题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...
最新文章
- 让我们一起认识一下Nodejs
- 如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)
- php p3p跨域登录,php+ajax实现多域名跨域登录例子(基于P3P)
- C++中各种智能指针的实现及弊端(四)
- Linux 2.6中基于Sysenter的系统调用机制
- selenium 保持窗口一直开启_Python+selenium自动化测试
- Unity与 DLL文件 ☀️| 怎样使用 C# 类库 生成一个DLL文件 并 调用!
- elasticsearch 基础 —— Jion父子关系
- 可能是全网唯一Elastic/Kibana认证考试报名还有优惠的地方
- Chrome浏览器下调试和动态修改网页JavaScript
- 计算机开机后黑屏 只有鼠标,电脑黑屏只有鼠标箭头怎么办?最简单的解决方法告诉你...
- 看苹果出的面试难题!!!
- 无聊的apache错误(.htaccess pcfg_openfile)
- 新车提车验车步骤和细节
- Python IO编程详解
- VMware Harbor 开源的Docker Registry管理项目
- France beat Croatia 4-2 in World Cup final
- 通俗易懂的讲解二极管三极管工作原理
- Realsense D455/435内参标定以及手眼标定
- @media媒体手机平板电脑备用代码