SURF,全称是Speed Up Robust Features.是一种尺度旋转不变的特征检测方法。主要思想与SIFT类似。但是,运算速度比SIFT提高了5至10倍。
相对于SIFT,SURF能够大幅提升运算速度主要体现在三方面:
*使用了积分图像完成图像卷积,极大的加快了运算速度。
*将特征向量为64维,而SIFT为128维。
*SIFT用图像金字塔和尺寸不变的卷积核来实现尺度不变性,而SURF则使用相 同的图像和尺寸改变的卷积核来实现尺度不变性。(因为SURF使用了积分图技术, 对于尺寸改变的卷积核只需要三步加减法运算即可得到结果)
我们目标是找到两幅图像中相同的部分或物体。而且这种匹配要对尺度和旋转具有不变性,而且对于光照和噪声也有很好的鲁棒性。
SURF算法主要分为三步:
(1)选出兴趣点并分别标注在图像上,例如拐角、斑块和T型连接处。
(2)用特征向量描述兴趣点的邻域。
(3)在不同的图片之间匹配特征向量。
积分图IΣ(X)在位置X = (x, y)处代表I在X之前的矩形区域像素值的和。
例如,我们要计算图中Σ区域的值,Σ=A-B-C+D,注意,这里的A其实是代表从A点到原点O矩形区域的值,同理,B和C也是一个矩形区域的值。之后减去D,是因为区域B和C都包含了区域D,用A减时,多减了一次区域D,所以要加上。所以,我们用大小可变的箱型卷积时,计算复杂度不会随着卷积核尺寸的大小改变而变化,因为都是三次简单的加减法运算即可。
黑塞矩阵(Hessian Matrix),是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。
对于一个图像中的点X = (x, y),尺度为σ的Hessian矩阵H(X, σ)定义为:
其中Lxx(X, σ)为点X处的高斯二阶倒数的卷积。Lxy(X, σ)和Lyy(X, σ)与之类似。我们要求黑塞矩阵行列式的值。
以9*9滤波器为例,如上图所示,左边两幅图分别为灰度图像在中心点(黑色点)处的二阶导数d2f(x)/dx2和d2f(x)/dxdy的模板对应的值, 近似后变成右边的两幅图,图中灰色部分像素值为0。可是这样的计算太麻烦,所以我们就用积分图来加速上述计算过程。
因为我们近似了函数模板,所以这里修改特征值α求解公式
用Dxx来表示Lxx,其它同理。0.9是一个平衡因子,原论文作者已经根据实验验证过,我们只需用就可以了,这里不做详细阐述。
非极大值抑制,顾名思义,就是不是极大值的不要。如上图所示,我们将一组大小相同的图像(按照大小不同的高斯滤波二阶导模板)得到平滑后的图像沿Z轴排列,以某特征点为中心,若该点的特征值α比其它26个点的都大,我们就认为该点为特征点。
我们统计特征点邻域(半径为6s的圆内,s为该点所在的尺度)内的harr小波特征。如下图,统计60度范围内的所有点的水平Harr小波特征值和垂直Harr小波特征值的和,Harr小波的尺寸为4s。扇形按照一定间隔在园内旋转,每个扇形得到一个值,最后,将最大值那个扇形的主方向作为该特征点的主方向。
我们以特征点为中心取一个20*20的框,这个框的方向就是上一步计算出的主方向。然后,将此框划分为4*4个子区域,在每个子区域中统计5*5点的水平(相对于主方向)和垂直Harr小波特征之和。为了增加密度改变的极性信息,我们增加了水平方向和垂直方向的绝对值之和。如下图:
至此,我们得到了关于特征点4*4*4=64维的描述算子。
生成两幅图像的特征描述算子,将两幅图像中对应的特征点进行匹配。为了加速匹配过程,作者借助Laplacian(比如Hessian矩阵的迹)的符号使匹配过程索引加快。这样可以将下面两种情况区分开:
http://download.csdn.net/detail/bright_geek/8164005
Herbert Bay, Tinne Tuytelaars, and Luc Van Gool: SURF:Speded Up Robust Features