RANSAC 剔除错误匹配 估计模型
随机抽样一致,这个算法,我以前一直都没有理解透彻。只知道可以用来直线拟合,网上大多数中文博客也都是写直线拟合的,但是用来匹配二维特征的时候,总还是没弄明白。
基本概念参考 http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html
写得已经够清楚了。
现在我来说说它在匹配特征时候的应用。
————————————————————————————————————————————
假如我有两组数据,M和T,其中T是由M经过一个旋转和一个平移得来的。
T=R*T+t
R=[cos(sita) -sin(sita); sin(sita) cos(sita)]
t=[tx;ty]
我现在已经大概知道了M的每组数与T的每组数据的对应关系 match,
match=[1 2; 3 4;5 6;……]
意思是:M的第1个 对应T的第2个;
M的第3个 对应T的第4个;
其中有一些对应错了。并且我不知道这个模型是啥。
我现在要做的,就是对这些东东进行ransac算法,找出这些错误的对应 outlier ,找到其中正确的对应,并求出这个模型 R 、t

————————————————————————————————————————————
算法如下
1. 从match 里面,随机找出n组(n>=2,因为是三个未知数 sita tx ty,每组数可以列俩方程,所以四个方程已经够求三个未知数了)
2. 对这n组,求出R t, 具体方法可以使用svd法求刚体最小二乘转置 http://blog.csdn.net/kfqcome/article/details/9358853
3. 对这个求出来的R t,应用到T上,得到T';结合match,找出T’中,不靠谱的(自己设一个阈值),就是outliers,靠谱的inliers
4. 对inliers的点,如2一样,求出新的R t
5. 评价这个模型,比如再进行一下3,求出inlier,inlier数目作为评价标准;或者inlier对M的误差作为标准。如果这个模型好 R_best=R t_best=t
6.重复以上过程k次,最后的R_best t_best就是结果了。
—————————————————————————————————————————————
就这样,可能哪里理解的不对,以后再改吧。目前来看,效果还是不错的。
RANSAC 剔除错误匹配 估计模型的更多相关文章
- 文献名:Repeat-Preserving Decoy Database for False Discovery Rate Estimation in Peptide Identication (用于肽段鉴定中错误发生率估计的能体现重复性的诱饵数据库)
文献名:Repeat-Preserving Decoy Database for False Discovery Rate Estimation in Peptide Identication (用于 ...
- 错误之thinkphp模型使用发生的错误
刚接触thinkphp模型的创建,在创建model类时在这里边声明了类的对象.唉,这是不理解的错误啊.什么叫做实例化模型对象,在控制器里边使用才创建. 模型这里写各种用到的函数. 这里我也体会到了查询 ...
- webpack配置别名alias出现的错误匹配
@(webpack) webpack是一款功能强大的前端构建工具,不仅仅是针对js,它也可通过各种loader来构建相关的less,html,image等各种资源,将webpack配合流程制定工具gu ...
- 使用经验风险最小化ERM方法来估计模型误差 开坑
虽然已经学习了许多机器学习的方法,可只有我们必须知道何时何处使用哪种方法,才能将他们正确运用起来. 那不妨使用经验最小化ERM方法来估计 . 首先: 其中, δ代表训练出错的概率 k代表假设类的个数 ...
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
解决方案: 禁止上下创建. 修改.删除,默认为true public DataDbContext() : base("name=DataDbContext") { this.Da ...
- SALM入门笔记(1):特征点的匹配
SLAM 主要分为两个部分:前端和后端,前端也就是视觉里程计(VO),它根据相邻图像的信息粗略的估计出相机的运动,给后端提供较好的初始值.VO的实现方法可以根据是否需要提取特征分为两类:基于特征点的方 ...
- SLAM入门之视觉里程计(1):特征点的匹配
SLAM 主要分为两个部分:前端和后端,前端也就是视觉里程计(VO),它根据相邻图像的信息粗略的估计出相机的运动,给后端提供较好的初始值.VO的实现方法可以根据是否需要提取特征分为两类:基于特征点的方 ...
- (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍
首页 视界智尚 算法技术 每日技术 来打我呀 注册 SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...
- 视觉SLAM漫淡
视觉SLAM漫谈 1. 前言 开始做SLAM(机器人同时定位与建图)研究已经近一年了.从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解.然而越了解,越觉得这个方向难度很 ...
随机推荐
- 通过代码获取res里生成R.java中的值
引用:http://my.eoe.cn/blue_rain/archive/552.html 有的时候我们生成库文件,需要在里面加入一些UI,并提供出一些xml的资源,那如何在其他项目中使用呢? 我们 ...
- 夺命雷公狗-----React_native---3---react-native-cli的安装
我们用npm安装下react-native-cli,并用-g来全局安装,我们用命令 npm install -g react-native-cli 如果和下图一样即表示已安装成功:
- git config 配置
1. git config简介 我们知道config是配置的意思,那么git config命令就是对git进行一些配置.而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大 ...
- Nginx:轻量级高性能的Web服务器
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...
- 一周试用yii开发一个带各种该有功能的web程序(二)
上篇随笔写完的是yii能使用简单的命令创建出一个基本的架构,我们只需要在这个架构上进行代码编写,扩展功能.而生成的一个小型系统是可以操作的,但是不是我们想要的,所以,这篇结合源码讲如何创建出我们自己的 ...
- http错误码大全?
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行.响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受.理解和采纳3 ...
- BUG等级和严重等级关系
- java语言的I/O操作预习
一些概念: 流:计算机的输入输出之间流动的数据序列,也是类的对象.java中的流方式就像是建立在数据交换源和目的之间的一条通信路径. 数据源:计算机中的数据源是指可以提供数据的地方,包括键盘,磁盘文件 ...
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- IBM WebSphere MQ的oracle的jdbc
一.IBM WebSphere MQ7.0的jdbc支持数据库有: DB2 Informix Informix_With_Date_Format Microsoft_SQL_Server Oracle ...