现在的位置: 首页 > 综合 > 正文

理一下sift算法思路

2013年01月25日 ⁄ 综合 ⁄ 共 1099字 ⁄ 字号 评论关闭

 sift算法,尺度不变特征转换,图像中的局部特征,在空间尺度中寻找极值点,并提取其位置、尺度、旋转不变性。

步骤:1.空间极值点的检测

2.关键点的定位

3.关键点方向的确定

4.关键点描述

纠结的一些问题:提取的特征是什么呢?边缘?轮廓?局部特征,极值点,不同的尺度空间有同样的极值点?这样才能尺度不变。开始的理解就是一些边缘的东西但是后来看到要剔除到边缘响应的关键点。理解,剔除的是一些不稳定的边缘响应的关键点,稳定的边缘响应是留下的。邻域内的尺度空间极值点,检测出来的也是比较显眼的点,变化比较大的点。我的理解,待进一步考证。

分步来说吧:

空间极值点的检测

首先用高斯模糊的方法将获得图像的不同尺度空间,获得高斯金字塔(其中二维高斯模糊的时候才用分离的高斯模糊,XY方向上分别进行一维的高斯模糊,优势:减少计算量和消除二维高斯矩阵产生的边缘(为什么呢,7*7的高斯模板会产生半径为3的边缘))。

尺度空间用高斯金字塔来表示。但是有高人指出尺度规范化的LOG(拉普拉斯高斯算子)具有真正的尺度不变性,sift算法里使用高斯差分金字塔近似LOG算子。DOG只要将两个相邻的高斯图像相减就可以了。

空间极值点的检测,关键点是由DOG空间的局部极值点组成的。通过同一组内相邻两个高斯图像之间进行比较完成的,上下两个尺度和自己尺度里的相邻点进行比较8+9+9=26次比较。

关键点的定位

上面检测到的极值点是,是在离散空间里的极值点。

1.关键点的精确定位,离散空间的极值点不一定是真正的极值点。

上图所示。需要对尺度空间的DOG函数进行曲线拟合,来提高关键点的稳定性。反复拟合,在此过程中获取特征点的精确位置(原位置加上拟合的偏移位量)以及尺度。在这个过程中还剔除了一些对比度低的关键点,不稳定因为。DOG函数绝对值小于一定值的时候算是对比度低的关键点,剔除。

2.消除边缘响应:检测算子的极值的主曲率,设置一个阈值,低于这个阈值的保留反之删除该关键点,阈值是一个经验值选取r=10.剔除的就是比较大的边缘响应的极值点。这些点不稳定。

关键点方向的确定:使之后面可以保持旋转不变性

使用图像梯度的方法确定局部区域的稳定方向。对于在DOG金字塔中检测出来的关键点,采集其所在的高斯金字塔图像中3σ范围内的像素点的梯度和方向来表征关键点的方向。具体方法采用直方图统计,选取主方向的方法。

关键点的描述

我觉得这是一个比较苦逼的问题。每个关键点都有三个参量:位置,方向和尺度。让我再理解理解

http://blog.csdn.net/zddmail/article/details/7521424

很多内容都是参考这篇文章,总结分析的很不错~~

抱歉!评论已关闭.