SURF与SIFT比较

最近在搞SIFT特征提取的原理,明白之后发现SIFT的加速版:SURF,文章对SURF与SIFT进行比较详细,mark一下方便以后学习使用。
原文链接:http://blog.163.com/sn404417391@126/blog/static/126688605201111623714283/
/****************************我是可爱的分割线*******************************/

共同点:

SIFT/SURF为了实现不同图像中相同场景的匹配,主要包括三个步骤:

1、尺度空间的建立;

2、特征点的提取;

3、利用特征点周围邻域的信息生成特征描述子

4、特征点匹配。

从博客上看到一片文章,http://blog.csdn.net/cy513/archive/2009/08/05/4414352.aspx,这一段的大部分内容源于这篇文章,推荐大家去看看。

如果两幅图像中的物体一般只是旋转和缩放的关系,加上图像的亮度及对比度的不同,要在这些条件下要实现物体之间的匹配,SIFT算法的先驱及其发明者想到只要找到多于三对物体间的匹配点就可以通过射影几何的理论建立它们的一一对应。

如何找到这样的匹配点呢?SIFT/SURF作者的想法是首先找到图像中的一些“稳定点”,这些点是一些特殊的点,不会因为视角的改变、光照的变化、噪音的干扰而消失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点。这样如果两幅图像中有相同的景物,那么这些稳定点就会在两幅图像的相同景物上同时出现,这样就能实现匹配。因此,SIFT/SURF算法的基础是稳定点。

SIFT/SURF提取的稳定点,首先都要求是局部极值。但是,当两个物体的大小比例不一样时,大图像的局部极值点在小图像的对应位置上有可能不是极值点。于是SIFT/SURF都采用图像金字塔的方法,每一个截面与原图像相似,这样两个金字塔中就有可能包含大小最近似的两个截面了。

这样找到的特征点会比较多,经过一些处理后滤掉一些相对不稳定的点。

接下来如何去匹配相同物体上对应的点呢?SIFT/SURF的作者都想到以特征点为中心,在周围邻域内统计特征,将特征附加到稳定点上,生成特征描述子。在遇到旋转的情况下,作者们都决定找出一个主方向,然后以这个方向为参考坐标进行后面的特征统计,就解决了旋转的问题。

共同的大问题有以下几个:

1、为什么选用高斯金字塔来作特征提取?

为什么是DOG的金字塔?因为它接近LOG,而LOG的极值点提供了最稳定的特征,而且DOG方便计算(只要做减法。)

为什么LOG的极值点提供的特征最稳定,有参考文献,未看。

但是直观上怎么理解?如果相邻Octave的sigma不是两倍关系还好理解:如果两幅图像只是缩放的关系,那么假设第一个Octave找到了小一倍图像的极值点,那么大一倍图像的极值点会在下一个Octave找到相似的。但是现在,如果把大一倍图像进行一次下采样(这样和小的图像就完全一样了),进行Gauss滤波时,两个图像滤波系数(sigma)是不一样的,不就找不到一样的极值点了么?不理解。

2、Hessian矩阵为什么能用来筛选极值点?

SIFT先利用非极大抑制,再用到Hessian矩阵进行滤除。SURF先用Hessian矩阵,再进行非极大抑制。SURF的顺序可以加快筛选速度么?(Hessian矩阵滤除的点更多?)

3、为什么采用梯度特征作为局部不变特征?

这与人的视觉神经相关。采用梯度作为描述子的原因是,人的视觉皮层上的神经元对特定方向和空间频率的梯度相应很敏感,经过SIFT作者的一些实验验证,用梯度的方法进行匹配效果很好。

4、为什么可以采用某些特征点的局部不变特征进行整幅图像的匹配?

我在一份博客上找到这样一句话:(http://apps.hi.baidu.com/share/detail/32318290,大家可以看看这篇文章。)

从直观的人类视觉印象来看,人类视觉对物体的描述也是局部化的,基于局部不变特征的图像识别方法十分接近于人类视觉机理,通过局部化的特征组合,形成对目标物体的整体印象,这就为局部不变特征提取方法提供了生物学上的解释,因此局部不变特征也得到了广泛应用。

还有:

图像中的每个局部区域的重要性和影响范围并非同等重要,即特征不是同等显著的,其主要理论来源是Marr的计算机视觉理论和Treisman的特征整合理论,一般也称为“原子论”。该理论认为视觉的过程开始于对物体的特征性质和简单组成部分的分析,是从局部性质到大范围性质。

SIFT/SURF都是对特征点的局部区域的描述,这些特征点应该是影响重要的点,对这些点的分析更加重要。所以在局部不变特征的提取和描述时也遵循与人眼视觉注意选择原理相类似的机制,所以SIFT/SURF用于匹配有效果。

不同点的比较:

从博客上看到一个总结,我修改了一些内容。大家可以参看以下链接:

http://blog.csdn.net/ijuliet/archive/2009/10/07/4640624.aspx

SIFT

SURF

尺度空间

DOG与不同尺度的图片卷积

不同尺度的box filters与原图片卷积

特征点检测

先进行非极大抑制,再去除低对比度的点。再通过Hessian矩阵去除边缘的点

先利用Hessian矩阵确定候选点,然后进行非极大抑制

方向

在正方形区域内统计梯度的幅值的直方图,找max对应的方向。可以有多个方向。

在圆形区域内,计算各个扇形范围内x、y方向的haar小波响应,找模最大的扇形方向

特征描述子

16*16的采样点划分为4*4的区域,计算每个区域的采样点的梯度方向和幅值,统计成8bin直方图,一共4*4*8=128维

20*20s的区域划分为4*4的子区域,每个子区域找5*5个采样点,计算采样点的haar小波响应,记录∑dx, ∑dy, ∑|dx|,∑|dy|,一共4*4*4=64维

性能的比较:

论文:A comparison of SIFT, PCA-SIFT and SURF 对三种方法给出了性能上的比较,源图片来源于Graffiti dataset,对原图像进行尺度、旋转、模糊、亮度变化、仿射变换等变化后,再与原图像进行匹配,统计匹配的效果。效果以可重复出现性为评价指标。

比较的结果如下:

method

Time

Scale

Rotation

Blur

Illumination

Affine

Sift

common

best

best

common

common

good

Pca-sift

good

good

good

best

good

best

Surf

best

common

common

good

best

good

由此可见,SIFT在尺度和旋转变换的情况下效果最好,SURF在亮度变化下匹配效果最好,在模糊方面优于SIFT,而尺度和旋转的变化不及SIFT,旋转不变上比SIFT差很多。速度上看,SURF是SIFT速度的3倍。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SIFT (Scale-Invariant Feature Transform)算法和SURF (Speeded Up Robust Features)算法都是图像兴趣点检测及描述子算法。它们都可以用于在图像中检测关键点并生成描述子,用于图像匹配、物体识别等任务。 然而,SIFTSURF在实现原理和步骤上有一些区别。首先,在构造图像金字塔尺度空间方面,SIFT使用高斯金字塔来检测不同尺度下的兴趣点,而SURF使用盒子滤波器(box filter)来近似高斯模糊,从而加快计算速度。 其次,在兴趣点检测方面,SIFT使用Difference of Gaussians (DoG)来寻找局部极值点作为兴趣点,而SURF使用Hessian矩阵的行列式来确定兴趣点位置。SURF算法的兴趣点检测速度更快,但可能会导致一些小的兴趣点被忽略。 最后,在生成描述子方面,SIFT使用兴趣点周围的梯度信息来构建描述子,描述子的维度为128维。而SURF则使用兴趣点邻域点的Haar小波响应来构建描述子,描述子的维度可以是64维或128维。SURF的描述子维度较小,计算速度更快,但可能对一些细节信息不敏感。 总的来说,SIFTSURF都是优秀的兴趣点检测算法,它们在计算速度、描述子维度和对细节信息的敏感性等方面有所不同。选择使用哪个算法取决于具体应用的需求和对速度与准确性的权衡。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SURF算法详解及同SIFT算法的比较](https://blog.csdn.net/tostq/article/details/49472709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SiftSurf的区别](https://blog.csdn.net/eternity1118_/article/details/51152162)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于SIFT改进的SURF算法,matlab调用C++](https://download.csdn.net/download/qq_35008007/10379140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值