RANSAC 剔除错误匹配 估计模型

本文介绍RANSAC算法如何应用于两组数据之间的特征匹配,通过随机选取样本并评估模型可靠性来排除错误匹配,进而求解旋转和平移参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随机抽样一致,这个算法,我以前一直都没有理解透彻。只知道可以用来直线拟合,网上大多数中文博客也都是写直线拟合的,但是用来匹配二维特征的时候,总还是没弄明白。

基本概念参考 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.youkuaiyun.com/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值