当前位置: 首页 > news >正文

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就是结果了。

—————————————————————————————————————————————

就这样,可能哪里理解的不对,以后再改吧。目前来看,效果还是不错的。

 

转载于:https://www.cnblogs.com/xy123001/p/6145180.html

相关文章:

  • OpenLDAP在LINUX下的安装说明
  • 快速搭建企业subversion
  • asp.net 2.0 导出DataTable到Excel中
  • PAT 大数运算
  • UVA 11991 - Easy Problem from Rujia Liu?
  • Hadoop概念学习系列之关于hadoop-2.2.0和hadoop2.6.0的winutils.exe、hadoop.dll版本混用(易出错)(四十三)...
  • 蒙哥玛利模幂算法
  • angularjs的$on、$emit、$broadcast
  • Java项目相关监控与调优
  • 非对称加密(RSA、DH密钥交换算法、数字签名)
  • EFM32外设模块—USART V1.00
  • 我的第一篇博客 Javascript继承
  • manila nfs 删除 share 分析
  • atl中控件头文件所在位置
  • input标签的type为select、radio、checkbox的使用
  • .pyc 想到的一些问题
  • [deviceone开发]-do_Webview的基本示例
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 【知识碎片】第三方登录弹窗效果
  • CSS3 变换
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • java2019面试题北京
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • rc-form之最单纯情况
  • yii2权限控制rbac之rule详细讲解
  • 构建二叉树进行数值数组的去重及优化
  • 关于springcloud Gateway中的限流
  • 简单易用的leetcode开发测试工具(npm)
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 硬币翻转问题,区间操作
  • 如何用纯 CSS 创作一个货车 loader
  • ​【已解决】npm install​卡主不动的情况
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)EOS中账户、钱包和密钥的关系
  • (转)VC++中ondraw在什么时候调用的
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .bat文件调用java类的main方法
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net 设置默认首页
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .Net各种迷惑命名解释
  • .NET企业级应用架构设计系列之开场白
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @Pointcut 使用
  • @RequestParam详解
  • @RunWith注解作用
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [CSS]盒子模型