OpenCV特征点提取算法orb、surf、sift对比

特征点检测数量:surf > orb > sift

检测特征点时间:orb < surf < sift

 

sift:特征提取技术的里程碑,消除了特征点提取不稳定、特征不足的弱点,对旋转平移缩放也具有鲁棒性。

特征检测方法:

1、构建尺度空间

2、在高斯差分空间(Difference of Gaussian,DOG)计算极值点,二次曲线插值获得亚像素精度的特征点

3、去除地对比度点,通过计算Hessian矩阵消除边缘响应点

/*

tip1:

不同模糊度的高斯滤波图像相减,得到的高斯差分空间,实质上就是不同尺度的Laplace边缘检测,但计算速度要比逐个进行Laplace滤波要快。

tip2:

①为一维f(x)时,

此时其一阶导数构成的向量为梯度向量g(x);

此时其二阶导数构成的矩阵为Hessian矩阵;

②为多维f(x)=(f1(x), f2(x),…,fm(x))T时,

此时其一阶导数构成的矩阵为Jacobian矩阵。

*/

特征描述方法:

1、统计特征点16*16邻域内的直方图,选择直方图峰值作为特征点的主方向

2、将坐标轴旋转至主方向,保证旋转不变性,根据梯度计算128维特征描述子

 

surf:speeded-up robust feature,是sift算法的重要改进,解决了sift计算复杂度高、耗时长的缺点,提高了三倍速度,但在光照和形变方面的鲁棒性要逊色于sift。

特征检测方法:

1、计算积分图(为了加速Box滤波和Harr小波的计算)

2、改变Box滤波器的尺度来得到不同的尺度空间

3、用Hessian矩阵行列式的特征值的符号来确定极值

特征描述方法:

1、根据像素在x、y方向上的Harr小波响应来确定极值点方向

2、采用扇形区域扫描来得到64维或128维的特征描述

 

fast、orb:fast是近年来最成功的特征点提取算法之一,orb也是采用fast作为特征点检测算法。(fast只是角点检测方法,而orb采用fast作为特征点检测方法,采用改进brief作为特征点描述方法)

fast特征检测方法:

1、选取图像中的某个像素点p。其像素值(亮度)为lp

2、以3像素为半径画圆,覆盖p点周围16个像素点

3、设定阈值t,若这16个像素点中有连续n个像素点的值小于lp-t或有连续n个像素点的值大于lp+t则认为是角点,OpenCV中n的取值为12(16周长的3/4)

(改进:检测1、5、9、13这4个像素点中是否有3个满足条件,如果没有则直接跳过,如果有则采用步骤3检测所有的点)

brief特征描述方法:

特征点附近随机选取点对,将这些点对的灰度值的大小,组合成一个二进制串,将这个二进制串作为特征点的描述子。

优点:速度快

缺点:1、不具备旋转不变性;2、不具备尺度不变性;3、对噪声敏感

orb中改进brief特征描述方法:

1、特征点主方向通过矩(moments)来实现,并根据该主方向计算brief描述子。然而由于主方向会变化,导致随机点对的相关性变大,从而降低描述子的判别性,因此采取穷举的方法,暴力找到相关性最低的随机点对,以实现旋转不变性;

2、fast算子本身就具有尺度不变性,因此orb算子中没有试图解决尺度不变性;

3、brief采用点对(pixel-pair)的大小来构成描述子中的每一位,orb中采用9*9的块对(patch-pair)构成描述子,对比像素值之和,通过积分图快速计算,以降低噪声干扰。

转自:

http://www.p-chao.com/2017-06-14/opencv%E7%89%B9%E5%BE%81%E7%82%B9%E6%8F%90%E5%8F%96%E7%AE%97%E6%B3%95%E5%AF%B9%E6%AF%94/

https://blog.csdn.net/wangyaninglm/article/details/44805709

  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值