数字图形处理【17】特征检测——SURF特征检测

一、引入SURF算法

在上一节中我们学习了使用 SIFT 算法进行关键点检测和描述。但是这种算法运算量及其大,执行速度慢,人们需要速度更快的算法。在 2006 年Bay,H.,Tuytelaars,T. 和 Van Gool,L 共同提出了 SURF(加速稳健特征)算法,并发表在ECCV大会上。SURF算法可以说是SIFT(尺度不变特征变换)算法的改进版。SURF它被设计为SIFT算法的优化改进版本,提供了更快的处理速度和更好的性能。SURF算法同样能够提取图像中的关键点,并生成对旋转、缩放和部分亮度变化具有不变性的描述符。

但SURF的专利期还没解除,因此OpenCV官方用 OPENCV_ENABLE_NONFREE 在源代码中对其编译进行了限制,但是其suft算法的具体源码在OpenCV 4中还是存在的,只是没有编译而已,因此如果实在需要在OpenCV 4中调用这些函数,只能重新自己编译,而不能直接使用Release已编译好的二进制文件。

具体方法可以参考如下两个链接:
[1]. https://github.com/skvark/opencv-python/issues/126
[2]. https://zhuanlan.zhihu.com/p/161990279
 

二、SURF算法优化了SIFT的哪些地方?

那么SURF与SIFT相比牛在哪里?接下来我们回顾SIFT的主体流程,看看SURF是如何将每一个步骤进行优化的。如果不了解熟悉SIFT的详细流程,可以参考我前一篇文章 SIFT特征检测 

1、图像金字塔的提速

SIFT的第一步是构建图像金字塔。计算金字塔的时候,在处理每个尺度的图像时需要多次计算高斯模糊和梯度,这产生了大量的复杂计算。SURF使用BoxFilter盒子滤波(也就是均值模糊)来取代高斯模糊的计算,下图显示了这种近似。在进行卷积计算时可以利用 积分图像 (积分图像的一大特点是:计算图像中某个窗口内所有像素和时,计算量的大小与窗口大小无关),是盒子滤波器的一大优点。而且这种计算可以在不同尺度空间同时进行。(也就是说可以并行!!!)

2、关键点定位的优化

接下来看看定位关键点这一步骤是如何进行优化。在原始SIFT的算法中是利用DoG金字塔,在上下相邻的两个尺度空间内,进行固定窗口大小的(9x9)的非极大信号抑制的处理。初步得到关键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr_Zzr

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

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

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

打赏作者

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

抵扣说明:

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

余额充值