很多人对论文以及源码作了详细的分析,这里只对论文中几个地方进行下解释
1.构建尺度空间
图像金字塔的建立:对于一幅图像I,建立其在不同尺度(scale)的图像,也成为子八度(octave),这是为了scale-invariant,也就是在任何尺度都能够有对应的特征点,第一个子八度的scale为原图大小,后面每个octave为上一个octave降采样的结果,即原图的1/4(长宽分别减半),构成下一个子八度(高一层金字塔)。
由上图可以直观看出来,每一层高斯图像的σ均在前一张图像基础上乘以k(k取),为了保证尺度连续性,下一组初始图像的高斯系数就为2σ(也即和上一组倒数第三张图像的高斯系数一致)。
尺度空间中o,s,σ三者间的关系:
o∈[0,1….O-1] s∈[0,1….S+2]
注意这个关系式均是以原始图像基础上得来的,这样生成全部高斯图像其实是不方便的,应该直接在上一层高斯图像基础上生成。
其中初始尺度,lowe取。
我们在源码上同时也没有看到组间的2倍的关系,实际在对每组的平滑因子都是一样的,2倍的关系是由于在降采样的过程中产生的,第二层的第一张图是由第一层的平滑因子为2σ的图像上(即倒数第三张)降采样得到,此时图像平滑因子为σ,所以继续采用以上的平滑因子。但在原图上看,形成了全部的空间尺度。
在最开始建立高斯金字塔时,要预先模糊输入图像来作为第0个组的第0层的图像,这时相当于丢弃了最高的空域的采样率。因此通常的做法是先将图像的尺度扩大一倍来生成第-1组。我们假定初始的输入图像为了抗击混淆现象,已经对其进行的高斯模糊,如果输入图像的尺寸用双线性插值扩大一倍,那么相当于
。
2. 对尺度空间DoG函数进行曲线拟合
参考资料:
Lowe SIFT 原文:http://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
译文:http://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html
对SIFT原理做比较详细的说明:
http://blog.csdn.net/zddblog/article/details/7521424
http://blog.csdn.net/abcjennifer/article/details/7639681/
http://www.cvvision.cn/6370.html
Rob Hess源码解析:
http://blog.csdn.net/luoshixian099/article/details/47377611
Hessian matrix矩阵:
http://blog.csdn.net/lwzkiller/article/details/55050275