opencv特征点匹配_OPENCV特征点提取算法对比

本文对比了OpenCV中的多种特征点提取算法,包括SIFT、SURF、FAST、ORB、BRISK、KAZE等。SIFT提供稳定且鲁棒的特征点,而SURF则提高了速度。FAST以其高效著称,ORB作为SIFT和SURF的替代,具有速度快且免费的优点。BRISK和ORB类似,但在描述方式上有差异。KAZE在保持效果优秀的同时,比SIFT更快更稳定。此外,文章还提供了OpenCV中这些算法的代码实现。
摘要由CSDN通过智能技术生成

14de45f478cd03b16c59d6afe408fb51.gif

OPENCV特征点提取算法对比

除了我们熟知的SIFT、SURF、ORB等特征点提取算法,OpenCV中还提供了十余种特征点提取算法。最近在整理以往的ppt和报告,看到其中一页ppt,发现已经忘得差不多了,就再写篇博客复习下好了,这篇博客注重对比,技术方面的内容不会太过细致,希望能有帮助。当然,文章末尾会提供这些算法OpenCV调用的实例代码。

首先,引发内容的就是下面这张ppt:(不要注意Why Surf了,当时根据具体应用场景所做的选择)左边一栏是特征点的数目,右边一栏是检测的速度,数据是在博主自己的测试集(大概四五百张图片)上测试的。

f14f9c842a38b8f473155cdab2c5bfbd.png

SIFT

SIFT的论文在谷歌学术上单片引用超过四万次,算得上那个年代特征提取技术的里程碑了。一改以往特征点提取不稳定,特征不足的弱点,SIFT可以稳定的提取出特征点,并且对旋转平移缩放是鲁棒的。可以说是SIFT开启了鲁棒特征提取研究,下面是SIFT特征提取的主要步骤:

特征点检测:

  1. 构建尺度空间

  2. 在Dog高斯差分空间计算极值点,二次曲线插值获得亚像素精度的特征点

  3. 去除低对比度点,通过计算Hessian矩阵去除边缘响应点

特征描述:

  1. 统计特征点周围16*16区域的直方图,并选取直方图峰值作为改关键点的主方向

  2. 将坐标轴旋转为关键点的方向,保证旋转不变性,根据梯度计算128维特征描述子

SIFT的鲁棒性是有特征点检测和特征描述两个部分决定的,在这页最开始的PPT中,都是只统计了特征点检测算法,没有考虑特征描述(因为有许多算法不具备描述能力)。

这里额外解释下Dog,对不同模糊度的高斯滤波图像相减,得到的Dog,事实上就是不同尺度边缘的Laplace边缘检测,Dog计算比逐个进行Laplace滤波要快。数学推导参见Paper,在高斯滤波sigma计算时需要一定条件,才能近似的得到拉普拉斯滤波图像。

33d8e17a9af3d3cbd310b6654fa2429c.png

SURF

SURF算法可以看做是对SIFT算法的重要改进,全称Speeded-Up Robust Features,解决了SIFT计算复杂度高、耗时长的确定。SURF算法在光照和形变方面的鲁棒性要逊色于SIFT,但是带来了三倍的速度提升。

特征点检测:

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

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

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

特征点描述:

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

  2. 采用扇形区域扫描来统计得到64维或128维的直方图特征

FAST:BRISK/ORB/KAZE…

FAST是今年来最成功的特征点提取算法之一,其思想非常精妙。ORB算法、KAZE算法等都是使用FAST作为特征点检测算法,区别在于特征描述部分。

  1. 在图像中任选一点p, 假定其像素(亮度)值为 Ip

  2. 以3为半径画圆,覆盖p点周围的16个像素,如下图所示

  3. 设定阈值t,如果这周围的16个像素中有连续的n个像素的像素值都小于 Ip−t 或者有连续的n个像素都大于 Ip+t, 那么这个点就被判断为角点。 在OpenCV的实现中n取值为12(16个像素周长的 3/4).

  4. 一种更加快的改进是: 首先检测p点周围的四个点,即1, 5, 9, 12四个点中是否有三个点满足超过Ip+t, 如果不满足,则直接跳过,如果满足,则继续使用前面的算法,全部判断16个点中是否有12个满足条件。

e6e72571b43462c27b2474d87251bb60.png

在OpenCV中提供了一个参数,可以选取三种FAST计算方法。

Brisk、ORB、KAZE等算法都采用了FAST做特征点检测,BRIEF做特征描述,

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值