SURF算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SURF算法

SURF是一种尺度、旋转不变的detector和descriptor。最大的特点是快!在快的基础上保证性能(repeatability,distinctiveness 和robustness)。

SURF采用有效策略的主要有:1)积分图像(用于对图像卷积)2)detector 是基于Hessian矩阵,descriptor是基于分布的。

下面是SURF算法的具体实现:

1.兴趣点检测

SURF对于兴趣点的检测是基于最基本的Hessian近似矩阵。

1.1积分图像

1.2 用于检测兴趣点的Hessian矩阵

中得到启发,采用了盒子型滤波器(box filter)对上面的滤波器进行近似。盒子型滤波器见图1.3.

再根据filter的大小做一个归一化。这对于尺度不变性是有必要的。

有了前面的着一些准备工作,就可以对一幅图像I计算每个点的近似Hessian矩阵的行列式值,将这些值存储,备用!

1.3尺度空间表示

算法的尺度不变性主要靠不同尺度下寻找感兴趣点。谈到不同尺度就不得不说‘金字塔’。Lowe在其SIFT大作中是这样构造尺度空间的:对原图像不断地进行Gauss平滑+降采样。得到金字塔图像后,又进一步得到了DOG图,边和斑状结构就是通过DOG图得到其在原图的位置。SURF中的做法与SIFT是有所不同的。SIFT算法在构造金字塔图层时Gauss滤波器大小不变,改变的是图像的大小;而SURF则恰恰相反:图像大小保持不变,改变的是滤波器的大小。

之所以这么做的目的考虑的主要目的还是效率问题(这样可以利用积分图有关的快速计算,用不同size的Mask进行卷积运算,复杂度是一样的,仅仅是三个加减法而已)。而且,由于没有对图像进行降采样,所以不存在混叠现象。

与SIFT类似,SURF的尺度空间也是按组(Octaves)划分的。每一个Octave 里是对输入图像用size不断增加的filter进行滤波后得到的一系列响应。总的来说,一组包含了一个缩放因子。每一组内的层数是一个常量。

(3)、精确定位特征点

所有小于预设极值的取值都被丢弃,增加预设极值使检测到的特征点数量减少,最终只有几个特征最强点会被检测出来。检测过程中使用与该尺度层图像解析度相对应大小的滤波器进行检测,以3×3的滤波器为例,该尺度层图像中9个像素点之一图2检测特征点与自身尺度层中其余8个点和在其之上及之下的两个尺度层9个点进行比较,共26个点,图2中标记‘x’的像素点的特征值若大于周围像素则可确定该点为该区域的特征点。

(4)、主方向确定

为保证旋转不变性,首先以特征点为中心,计算半径为6s(S为特征点所在的尺度值)的邻域内的点在z、y方向的Haar小波(Haar小波边长取4s)响应,并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小。其次将6s范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。

(5)特征点描述子生成

首先将坐标轴旋转为关键点的方向,以确保旋转不变性。为了增加鲁棒性,可对dx,dy,进行高斯滤波(sigma=3.3s),滤波器中心为兴趣点。

Fig. 2.4

通过图2.4进一步解释:左边大的方框即图2.3中的方框,将该大方框分成16块,每一小块如右图,又分为4个小快,这里的小块就是实际中descriptor的基本元,2.1节所提到的加法求和就是对这些元进行的,形式如图2.4右上角。

Fig.2.5的例子只是说采用四个量描述区域更加的具有区分度(more distinctive),置于有没有更好的表示形式呢?可以好好考虑一下(不过要结合算法的速度,复杂性综合考虑)。作者在这方面也是做了很多的实验,包括更多的和更少的小波

特征,二阶偏导,高阶小波,PCA,中值,均值等等。总的来考虑上面的矢量表示形式得到的结果最好。同时,将大块区域分成16块也是最好的选择。分成9块的话结果差一些,但是在匹配时速度会更快,而且跟其它的descriptor也是有可比性的。

优点:Surf除了具有SIFT算法稳定高效的特点外,还极大的降低了SIFT 算法复杂度,其计算速度是SIFT的3倍左右,大大提高了特征检测和匹配的实时性。

缺点:Surf算法在求主方向阶段太过于依赖局部区域像素的梯度方向,有可能使得找到的主方向不准确,后面的特征向量提取以及匹配都严重依赖于主方向,即使不大偏差角度也可以造成后面特征匹配的放大误差,从而匹配不成功;另外图像金字塔的层取得不足够紧密也会使得尺度有误差。

相关文档
最新文档