计算机视觉 OpenCV Android | SURF特征检测(ing)

0. 特征检测定义、作用和使用相关
  • 特征检测是从图像中自动提取对象特征用以表述该对象
    同时还可以利用得到的特征数据 描述不同的图像中发现相同的对象
    (一旦得到两个对象的描述子,
    就可以使用它们实现特征数据的匹配与比对,
    从而分辨出它们是否具有相似性)


    而且特征对对象的旋转、缩放、光照等具有不变性。

  • 整个过程可以分为三个部分:检测、描述、匹配

  • OpenCV中是通过feature2dxfeature2d完成整个流程操作的,从而实现基于图像特征的对象检测与匹配。

1.SURF特征检测
  • SURF(Speeded Up Robust Feature)特征就是图像最常见的特征之一,
    该方法在2006年由几位作者联合提出,
    主要是用来克服SIFT(一种特征检测方法)计算量比较大,
    运行速度比较慢的缺点;

  • SURF具有以下的优点
    基于积分图计算,快速关键点提取;
    不同关键点描述;
    快速描述子匹配;
    同时具有旋转、尺度、光照不变性;

  • SURF通过建立不同尺度的级联算子来实现高斯图像的尺度不变性特征,
    计算LOG得到每个像素点的Hessian矩阵

  • 在建立级联算子实现Hessian矩阵的计算中,
    SURF使用了积分图来实现预计算
    通过积分图查找表实现Hessiam矩阵快速计算。
    离散高斯及其近似梯度算子如下图:

    9125154-e060e689c0709cac.png

算子级联实现尺度空间不变性,如下图:

9125154-175fc2fde62882dd.png

  • 最终把高斯核近似为一个盒子滤波
    这样就可以不用进行高斯核与浮点数计算,
    基于积分图,不断扩大盒子滤波核的大小,
    就可以在不同层数计算结果;

  • 第一层分别使用9×9、15×15、21×21、27×27
    扩大之后进行下层级计算
    每个层级之间的差值一般取值为12
    这时下个层级滤波核就是39×39
    再下一个层级就是51×51
    取值为24时,下个层级就是51×51
    再下个层级就是75×75

  • 为了在每一层之间定位图像的关键点
    (图像的关键点就是图像Hessian矩阵梯度最大值或者最小值所在点的附近),
    对同一层级的不同层3×3×3范围内寻找极大值或者极小值作为候选点,
    对满足条件的关键点,
    使用插值公式寻找亚像素级别的关键点的准确位置,
    最终得到SURF特征检测的关键点数据。

2.SURF特征描述子

特征描述子是用来描述每个关键点特征的唯一数据,它必须能够显著区分各个特征关键点的不同之处,SURF特征描述子是基于Haar小波响应理论的,可以通过积分图进行快速计算,描述子首先要选取关键点周围的像素块(ROI),通常ROI区域的大小为20个像素,分为4×4的网格区域,如下图:
9125154-b6bfe3e04f68dc5f.png

使用Haar在X方向与Y方向的2s×2s像素块响应,基于高斯权重分别计算dx、dy,最终可得到:
9125154-9291282ec14ed4db.png

对每个5×5的子区域都会得到一个向量v,对于4×4,整个子区域可得到16个相互连接的向量,它们就是该关键点的描述子,归一化之后就是具有光照不变性特征的描述子。这种方式没有考虑选择不变性,没有对每个描述子指派方向角度,称为U-SURF描述子,对上述描述子在0°~360°方向上使用滑动窗口60°大小计算滑动窗口的梯度和最大值,指派为该描述子的方向,0°~360°,60°滑动窗口如下图:
9125154-ca150470e5c55ce8.png

实验证明,在窗口较小的情况下,容易导致出现异常高峰的问题,在窗口比较大的情况下,容易出现向量过长,描述子描述不够准确的问题,所以一般情况下更趋向跳过方向指派步骤直接使用U-SURF,它在±15°范围内可以保证旋转不变性特征。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌川江雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值