SURF算法与SIFT算法的性能比较——图像特征点检测与提取算法分析

图像特征点提取算法的算法研究(SURF和SIFT算法)

1. 摘要

    计算机视觉中,很大一部分研究集中在图像特征提取和特征生成算法上。对图像的优化,不同于一般数学问题的优化方法,图像的优化是对像素点,在某一个小的邻域内,进行特征的提取或者图像的分析,该优化主要是进行局部区域的优化,要寻找局部极值,而不像传统的优化算法那样进行全局的优化求解。

由于相同物体在不同状态下所产生的图像不同,使得不同图像具有不同亮度,不同旋转方向和不同尺度的差异。想要提取出具有代表性且性质鲁棒的特征点,一直是学术研究的焦点之一。为了引入尺度不变的特征,将检测到的每个特征点都计算其对应的尺寸因子,方便特征点匹配和图像拼接等后续图像应用,Bay于2006年提出了SURF(Speeded Up Robust Features)特征检测算法。该算法具有较好的尺度不变性和旋转不变性,并且具有快速的计算能力,一直是图像拼接、图像检测和恢复等应用采用的主流算法之一。

本文主要叙述SURF特征点提取的优化步骤,将其与SIFT特征点提取算法,进行分析和比较,最后给出了关于图像亮度,图像的旋转和图像的尺度等三个方面的性能比较,验证了SURF特征点检测算法优化性能。

SIFT(Scale invariant feature Transform)算法是由David Lowe提出的尺度不变特征转换算法,其目标是解决低层次特征提取及其图像匹配中的实际问题。该算法是一种基于尺度空间,对图像缩放变换保持不变性的图像局部特征描述子。其主要分为三部分进行图像的特征点提取和描述。

SIFT算法的优点是特征稳定,对旋转、尺度变换、亮度保持不变性,对视角变换、噪声也有一定程度的稳定性;缺点是实时性不高,并且对于边缘光滑目标的特征点提取能力较弱,不够优化。因此,更加鲁棒的快速特征提取算法SURF应运而生,由于SURF运算简单,效率高,特征计算时间短,到今天都还受欢迎。

SURF算法是对SIFT算法的加强版本,同时能够加速提取更加鲁棒的特征,是SIFT算子的速度的三倍以上,并且提取出的特征点更有代表性。同时也对描述子的生成以及特征点的匹配进行了优化。其主要采用了Harr特征以及积分图像,加快了程序搜索和运行的时间,优化了特征点提取的理论算法。

2. 优化过程

SURF算法的特征点检测优化过程如下:

2.1 构建积分图像,在图像每个像素点上,生成积分图像。

     其中,在一个特征点x=(x,y)的邻域上,计算其积分图像I(x,y):

在图像上,积分图像的意义如下图1所示。

                  

2.2 对当前的积分图像I,构建Hessian矩阵,进行逼近,提取特征点。

构建Hessian矩阵的目的是为了生成图像稳定的边缘点,描述图像的局部变化。给定点积分图像中一点,则关于X点在尺度因子 下的Hessian矩阵定义为:

其中,Lxx(x,sigma)表示在积分图像I的点X处的高斯二阶微分的卷积,同理,Lxy(x,sigma)表示对图像的卷积。

当Hessian矩阵的判别式取得局部极大值时,判定当前点是比周围邻域内其他点更亮或更暗的点,由此来定位关键点的位置。在离散数字图像中,x方向的一阶导数是相邻像素的灰度差:

                                    

x方向的二阶导数为:

          

由于在连续函数中,可以通过判断Hessian矩阵的特征值的符号来判断当前点是否为极值点,Hessian矩阵的判别式为:

                                 

在图像的处理中,由于要特征点的尺度不变性,就需要利用高斯滤波,让特征点与尺度无关,随后在进行Hessian 矩阵的构造。高斯滤波公式如下:

                             

为了加速处理,采用Box滤波器对高斯二阶微分模板进行近似处理。

图2:从左到右依次为y方向的二阶高斯微分模板;xy方向的二阶高斯微分模板;

对y方向近似的Box滤波器;对xy方向进行的Box滤波器。

通过近似后,我们可以得到图像的Hessian矩阵判别式:

                              

为了平衡使用Box滤波器带来的近似误差,我们在Dxy方向上乘以一个加权系数来抵消误差。因为我们使用的是9*9的高斯模板,标准差为1.2。所以有:

                     

按照上述的误差因子,在构建的矩阵中,通常不会改变,因此在接下来的特征点判断中,不改变w的值。最后有了判别式:

                           

通过计算的det(Happrox)值来得到像素点在尺度的响应图像。

2.3 构造尺度空间

由于SURF需要图像在不同的尺度空间下,具有尺度不变性,因此内部需要对图像进行处理,构建出不同尺度的图像,得到更加鲁棒的特征点。具体方法是:构造尺度空间传统的方法即构造一个高斯金字塔,原始图像作为最底层,然后对图像进行高斯模糊再降采样(2倍)作为下一层图像,循环迭代下去。高斯金字塔是对原图像的尺寸是在不断变化的,高斯模板尺寸不变。每一层的建立必须等到上一层构造完毕后才能进行处理,依赖性很强,这样造成速度上很慢。SURF构建尺度金字塔的方法采用原图像大小不变,变化的是模板大小,即采用变化的模板盒子尺寸对原图像进行滤波,构造出尺度空间。同时,SURF可以采用并行运算,对金字塔中的每层图像同时进行处理。通过逐渐增大的盒子尺寸滤波模板与积分图像卷积产生的Hessian矩阵行列式的响应图像,构造出金字塔。

图3:左图为高斯金字塔的构建方法;右图为SURF的尺度空间构建方法。

2.4 非极大值抑制

对每层图像上的每个像素与空间邻域内和尺度邻域内的响应值比较,同层上有8个邻域像元,向量尺度空间共有2×9=18个,共计26个像元的值进行比较,如果是极大值则保留下来,作为候选特征点。同时如果特征点的响应值小于Hessian行列式的阈值,也被排除。

2.5 特征点定位于提取

由于是离散空间的极值点,通过拟合方法,准确定位到特征点的位置,每个特征点包含三个参数H(x,y,sigma),即位置与尺度。

                          

对x求导,并令其为0,可以得到:

                                         

其中,两个因子的计算式为:

           ,            

求得的x_hat=(x,y,sigma),即获得在三个方向的偏移量,其中sigma表示特征点所在的尺度空间。

2.6 选取特征点主方向确定

为了保证旋转不变性,在SURF中,不统计其梯度直方图,而是统计特征点领域内的Harr小波特征。即以特征点为中心,计算半径为6s(s为特征点所在的尺度值)的邻域内,统计60°扇形内所有点在x(水平)和y(垂直)方向的Haar小波响应总和(Haar小波边长取4s),并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小,然后60°范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。该过程的示意图如下:

图4:对选取的特征点选取主方向,最右边的图为最终主方向。

2.7 生成特征点描述子

在SIFT中,是取特征点周围4×4个区域块,统计每小块内8个梯度方向,用着4×4×8=128维向量作为SIFT特征的描述子。

SURF算法中,也是在特征点周围取一个4×4的矩形区域块,但是所取得矩形区域方向是沿着特征点的主方向。每个子区域统计25个像素的水平方向和垂直方向的Haar小波特征,这里的水平和垂直方向都是相对主方向而言的。该Haar小波特征为水平方向值之和、垂直方向值之和、水平方向绝对值之和以及垂直方向绝对值之和4个方向。该过程示意图如下:

图5:特征点描述子的生成示意图。

把这4个值作为每个子块区域的特征向量,所以一共有4×4×4=64维向量作为SURF特征的描述子,比SIFT特征的描述子减少了2倍。

2.8 特征点匹配

与SIFT特征点匹配类似,SURF也是通过计算两个特征点间的欧式距离来确定匹配度,欧氏距离越短,代表两个特征点的匹配度越好。不同的是SURF还加入了Hessian矩阵迹的判断,如果两个特征点的矩阵迹正负号相同,代表这两个特征具有相同方向上的对比度变化,如果不同,说明这两个特征点的对比度变化方向是相反的,即使欧氏距离为0,直接予以排除。

3. 特征点检测算法实现效果比较

通过在Windows 7,64位操作系统,Intel Core i7-4790K 4GHz CPU,8GB运存进行实现。采用红色标出特征点,效果如下:

图6 :SURF算法特征点提取效果图

通过选取一副参考图像,再选取另外三种分别具有尺度,旋转和明暗改变的图像,对两种特征点检测算法进行测试。改变其中的参数,对其检测出的特征点个数,检测和匹配时间以及准确程度,进行仿真和评估。

3.1 强度变化下的匹配性能评估

本组图像对相同的物体,选取一张相对参考图像较阴暗的匹配图像。其中主要变量是像素的强度,图像的旋转和尺度保持不变。图像匹配的结果和性能参数比较展示在图7和表1中。

图7:图像强度变化的匹配效果图

其中,执行时间指的是特征点检测和匹配时间。从表1的实验结果可以看出,在图像强度变化的情况下, SIFT的匹配率较高,为59.0%。但从执行时间来看, SURF的速度是SIFT的4倍,说明SURF的检测和匹配速度较快。

表1 不同强度下的图像匹配结果

算法

执行时间

图1特点

个数

图2特征点

个数

匹配对数

匹配率(%)

SURF

0.3640s

304

286

153

53.5

SIFT

1.3213s

200

200

118

59.0

 

3.2 尺度变化的匹配性能评估

在本组实验中,对参考图像,选取目标相同但具有尺度变化的匹配图像,进行两种算法的评估。图像匹配的结果和性能参数比较展示在图8和表2中。

图8:图像尺度变化的匹配结果

从实验的执行时间可以看出,SURF的速度在尺度变换下,依然比SIFT快4倍左右。虽然SIFT的匹配率为41.0%,在不同尺度下的匹配率最高,但结合实验的效果图,可以看出SIFT存在较多的误匹配。相反,虽然SURF的匹配率为30.0%,但其实际匹配效果较SIFT算法好,特征点匹配的精确度高于SIFT算法。在尺度变化下,SIFT的性能已经开始大降。

表2 不同尺度下的图像匹配结果

算法

执行时间

图1特征点

个数

图2特征点

个数

匹配对数

匹配率(%)

SURF

0.3769s

200

200

60

30.0

SIFT

1.3000s

200

200

82

41.0

3..33 旋转变化的匹配性能评估

本组实验,对目标进行旋转,再进行匹配,可以检测出算法的旋转不变性。图像匹配的结果和性能参数比较展示在图9和表3中,其中目标旋转约为45°。

图9:图像尺度变化的匹配效果图

从表3可以看出,SURF算法相对于SIFT算法,匹配率在91.0%,说明对于旋转的目标,该算法具有较强的旋转不变性。而SIFT的匹配率最低,为51.0%。从图9的匹配结果可以看出,SIFT算法的匹配结果较差。不能准确的对旋转后的图像进行特征点匹配,且算法执行时间较长。

表3 不同角度下的图像匹配结果

算法

执行时间

图1特征点

个数

图2特征点

个数

匹配对数

匹配率(%)

SURF

0.1268s

200

200

182

91.0

SIFT

1.3386s

200

200

102

51.0

3.4 结论

通过对图像的特征点提取算法进行优化,引入了Hessian矩阵,在特征点的判断中,计算积分图像的2阶偏导数,组成Hessian矩阵。然后通过Hessian矩阵的行列式大小来进行判断。随后对Hessian矩阵求导,通过相关计算可以获得特征点的位置和尺度,这是优化的核心。

4. 参考文献

[1] H. Bay, T. Tuytelaars, and L.Van Gool. Surf: Speeded up robust features. InEuropean Conference onComputer Vision, May 2006. 1, 2

[2] E. Rosten and T. Drummond.Machine learning for highspeed corner detection. In European Conference onComputer Vision, volume 1, 2006. 1

[3] D. G. Lowe. Distinctive imagefeatures from scale-invarian keypoints. International Journal of ComputerVision, 60(2):91–110, 2004. 1, 2

猜你喜欢

转载自blog.csdn.net/qq_32998593/article/details/78680692