【OpenCV-Python】教程:4-5 SURF (Speeded-Up Robust Features) 介绍

OpenCV Python SURF (Speeded-Up Robust Features) 介绍

【目标】

  • SURF的基础

【理论】

SURF 是 SIFT 的提速版本;

在SIFT中,Lowe用 DoG 近似 LoG;SURF 走的更远一点,用 box filter 近似 LoG 。下图显示了这种近似的演示。这种近似的一个很大的优点是,在积分图像的帮助下,可以很容易地计算 box filter 的卷积。它可以在不同的尺度上并行进行。此外,SURF还依赖于海森矩阵的行列式来确定尺度和位置。

在这里插入图片描述

SURF在水平方向和垂直方向上对大小为6的邻域使用小波响应进行方向分配。充分的高斯权值也应用于它。然后他们被绘制在一个空间,如下图所示。通过计算60度滑动方向窗口内所有响应的和来估计主方向。有趣的是,小波响应可以很容易地在任何尺度上用积分图像求出来。对于许多应用程序,旋转不变性是不需要的,因此不需要找到这个方向,这加快了过程。SURF提供了这样的功能,称为 Upright-SURF 或 U-SURF。它提高了速度,并且在±15最大限度下都是有效的。OpenCV支持这两种,取决于标志,upright。如果是0,则计算方向。如果是1,则不计算方向,速度更快。

在这里插入图片描述

对于特征描述,SURF使用水平和垂直方向上的小波响应(同样,使用积分图像使事情更容易)。大小为20sx20的邻域以关键点为中心,其中s为尺寸。它被分为4x4个子区域。对每个子区域分别取水平方向和垂直方向的小波响应,向量形式为 v = ( ∑ d x , ∑ d y , ∑ ∣ d x ∣ , ∑ ∣ d y ∣ ) v=(∑dx,∑dy,∑|dx|,∑|dy|) v=(dxdydxdy)。当表示为向量时,给出了总共64维的SURF特征描述符。降低了维数,提高了计算和匹配的速度,但提供了更好的特征显著性。

为了更加有区分性,SURF 特征描述符有一个扩展的128维版本。当 d y < 0 dy<0 dy<0 d y ≥ 0 dy≥0 dy0时, d x dx dx ∣ d x ∣ |dx| dx分别计算。类似地, d y dy dy ∣ d y ∣ |dy| dy的和根据 d x dx dx的符号被分割,从而使特征的数量翻倍。它不会增加太多的计算复杂度。OpenCV通过分别为 64-dim 和 128-dim 设置 0 和 1 扩展的标志值来支持这两种情况(默认是 128-dim )

另一个重要的改进是使用拉普拉斯符号(黑森矩阵迹)来表示潜在的兴趣点。它不会增加计算成本,因为它在检测时已经计算过了。拉普拉斯符号将黑暗背景上的明亮斑点与相反的情况区分开来。在匹配阶段,我们只比较具有相同类型对比度的特征(如下图所示)。这种最小的信息允许更快的匹配,而不会降低描述符的性能。

在这里插入图片描述

总之,SURF 在每一步中都增加了很多功能来提高速度。分析表明,它比SIFT快3倍,而性能与SIFT相当。SURF 擅长处理有模糊和旋转的图像但不擅长处理仿射变化和光照变化

【代码】

4.5.5 版本 暂不提供

【参考】

  1. OpenCV官方文档
  2. SURF: Speeded Up Robust Features
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄金旺铺

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

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

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

打赏作者

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

抵扣说明:

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

余额充值