author:catcher_liu
时间:2014/7/29-------
参考学习资料:
1.http://blog.csdn.net/abcjennifer/article/details/7639681
2.http://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
3.http://en.wikipedia.org/wiki/Scale-invariant_feature_transform#David_Lowe.27s_method
4.http://wenku.baidu.com/link?url=G3ODclQqtAtFUbcXiNoI7yNybnEmerHwpGoJ7MiV2mt72OJr97y3GuLbU7FGyZmB7NklUpSM3i964UYEhabPDBzW5xf1vTxojqN60GVPqE3
5.http://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html(lowe的译文)
1.定义
Scale-invariant feature transform (or SIFT) is an algorithm in computer vision to detect and describe local features in images. The algorithm was published by David Lowe in 1999.
2.特性:
a.尺度不变性( scale-invariant);b.平移不变性(invariant to image translation)c.旋转不变性(rotation)d.光照不变性(illumination);e.affine or 3D projection
3.SIFT特征的求解(分四步)
a.尺度空间的建立
尺度空间的建立是为了使得SIFT特征具有尺度不变性。其实质是通过尺度连续可变的高斯函数与图像做卷积运算,从而生成几组模糊图像(一组是一个子八度octave)。下一组图像的尺度大小是上一组长宽的一半。组内之间的图像大小是一样的,他们的不同在于模糊度不一样。
根据(Scale-space theory: A basic tool for analysing structures at different scales)可知,高斯核是唯一可以产生多尺度空间的核, 一副图像的尺度空间可以定义为原始图像与一个尺度可变的2维高斯函数卷积运算:
sigma的大小决定图像的平滑程度,sigma越大,图像越模糊,体现出图像的概貌特征;sigma越小,细节特征越突出。由变换的尺度构建的高斯金字塔如图:
用一幅图像逐渐生成一组模糊后的图像,然后将原始图像的尺寸缩小一半,再逐渐生成下一组模糊后的图像,以此类推。如下图所示
这里S=3,因此高斯尺度空间每组有6副图像
一般要生成S个可以计算特征点的DOG尺度空间,DOG空间的图像层数应该有s+2层,那么高斯空间的图像层数就应该是S+3层。Lowe中S=3.
尺度是自然存在的,不是人为创造的!高斯卷积只是表现尺度空间的一种形式
建议
1. 组数和尺度数依赖于原始图像的大小,SIFT算法发明者建议将组数设为4,尺度数设为5是比较理想的。在实现中我们采用作者的建议。
2. 第一组的图像并不是直接使用原始图像,而是使用大小放大两倍并稍微模糊后的图像,这样可以多产生4倍的特征点。
3. 数学上,模糊指的是图像与高斯核的卷积,卷积后的图像是一个模糊的图像。
4.
每个图像的模糊量是很重要的,假设一幅图像的模糊量是σ,那么下一幅图像的模糊量是k*σ,这里的k是一个常量。
在SIFT算法的第一阶段,我们生成了原始图像的多组尺度空间,每个组的图像大小是前者的一半。在一组尺度空间中,图像使用高斯模糊操作被逐渐模糊。这个过程可以模拟人在距离目标由近到远时目标在视网膜上的形成过程。
生成DOG
为了有效地在尺度空间检测到稳定的关键点位置,引入the difference-of-Gaussian function
选择他的理由:计算成本不高;是Laplacian of Gaussian的近似;
构建DOG的方法:
b.在DOG空间寻找关键点(detect the local maxima and minima)
前面两个步骤就是为寻找关键点做备准备的,Detecting locations that are invariant to scale change of the image can be accomplished by searching for stable features
across all possible scales, using a continuous function of scale known as scale space(这里体现出了尺度空间的作用)
关键点的确定有三个方面:位置和尺度和方向。为了找到关键点,在DOG空间中对每个点,将其与当前层图像中的8点邻域和上下两层的9点邻域比较(共26个点),当其比这26个点都大或者都小的时候,确定为当前层的一个特征点。并记录下当前尺度与位置。
值得说明的是,这个过程计算量是相当小的,因为在比较的过程当中,很多点都很容易在少量的比较当中消灭掉。
补充:基本概念
1.scale space(尺度空间) (Witkin,1983).
2.所谓关键点,就是在不同尺度空间的图像下检测出的具有方向信息的局部极值点