RANSAC算法理解

1、最小二乘法法,即,拟合 y= ax +b中的a和b

  • formula
  • formula

2、检测点是否在直线上,也就是计算点到直线的距离是否小于我们设置的阈值。

具体做法,取直线的法向量为n=\left ( -a,1 \right ),则距离s满足

                                                                   s=\frac{p\cdot n}{\left | p \right | \left | n \right |}

p为待测点到直线上任一点的向量

 

3、RANSAC匹配

(1)在所有的数据点中随机取m(m>2)个点,使用最小二乘法拟合一条直线;

(2)在剩余点中,检测到直线距离小于设置阈值的点的个数,如果个数多于之前记录的最优值,则替换直线参数,并记录此次的点数为最优值;

(3)是否达到设置的迭代次数,若是,则输出直线参数并结束,否则重新迭代,回到步骤(1);

 

4、图像匹配中滤除误匹配的应用

 图像匹配中,两幅图特征点的转换关系可以用单应性矩阵H表示,

s\left [ \begin{matrix} x{}'\\ y{}'\\ 1 \end{matrix} \right ]= \begin{bmatrix} h_{11} & h_{12} & h_{13}\\ h_{21} &h_{22} &h_{23} \\ h_{31} &h_{32} & h_{33} \end{bmatrix}\left\begin{bmatrix} x\\ y\\ 1 \end{bmatrix} \right

其中,(x,y)表示目标图像角点的位置,(x{}',y{}')表示场景图像角点位置,s为尺度参数

一个目标图像角点位置和其对应的场景图像角点位置代表一组点对。单应性矩阵有8个未知数,每组数据点对可以列2个方程,所以至少需要4组数据点对,则矩阵方程为

X'=\frac{1}{s}HX

H'=\frac{1}{s}H,则H'=X'X.Pinv。其中,Pinv表示伪逆矩阵。H'表示归一化的单应性矩阵。

计算出H‘后,则将剩下的点对进行投影误差计算

Err_{proj}=\sum_{i=0}^{n}(x'_{i}-\frac{h_{11}x_{i}+h_{12}y_{i}+h_{13}}{h_{31}x_{i}+h_{32}y_{i}+h_{33}})^{2}+(y'_{i}-\frac{h_{21}x_{i}+h_{22}y_{i}+h_{23}}{h_{31}x_{i}+h_{32}y_{i}+h_{33}})^{2}

 

RANSAC的作用就是找出最优的单应性矩阵。步骤

(1) 随机抽出m(m>4)个样本数据,计算出单应性矩阵H',记为模型M;

(2) 使用剩余的点对计算投影误差,检测误差小于设置阈值的点的个数,如果个数多于之前记录的最优值,则替换H',并记录此次的点数为最优值;

(3) 是否达到设置的迭代次数,若是,则输出H'并结束,否则重新迭代,回到步骤(1);

 

参考博客

https://blog.csdn.net/robinhjwy/article/details/79174914

https://www.iteye.com/blog/grunt1223-961063#

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值