SIFT

Posted 司马_羽鹤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SIFT相关的知识,希望对你有一定的参考价值。

计算机视觉课堂笔记

参考:David G. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, Vol. 60, Page 91-110, Nov 2004.

注:SIFT包括提取特征点,特征描述,特征匹配的方法,这里重点在前两个问题。

这篇论文的整体思路如下:

1.Detection of Scale-Space extrema

 在DoG(difference-of-Gaussian) 空间中进行极值点检测,首先讨论了局部区域的极值点检测方法,这里采用了近邻的26点进行局部极值点判断;然后分别讨论了尺度采样的频率和空间域采样的频率对极值点检测的效果,结论是增加尺度采样的频率对得到稳定关键点是有好处的,但是会增加计算成本;而加大空间域的采样则不是越大越好(the image doubling increases the number of stable keypoints by almost a factor of 4,but no significant further improvements were found with a larger expansion factor).

2.Accurate keypoint localization 

做了两件事,第一件事是通过类似于曲线拟合的方法,用前一步得到的关键点和高斯差分尺度空间方程拟合并求极值点,得到一个更精确的极值点位置(这个极值点的位置很有可能并不在像素点上,而有可能在两个像素点之间,这样提高精度);第二件事就是要去除边缘对点特征提取的影响(这个是在进行阈值限定之后的处理),这里与Harris 方法中剔除边缘的方法类似,建立了尺度差分的黑塞尔矩阵,通过矩阵的行列式和迹来表征其特征值之间的关系,进而得到了一个计算效率较高的方法来判断是否为想要的关键点(对计算结果小于某个阈值的进行保留)。

3.Orientation Assignment

这里开始对关键点进行描述,这是一个很重要的过程,直接决定了之后关键点匹配的效果。

建立了梯度直方图,用来统计关键点附近的梯度情况,然后用抛物线(why)拟合这个梯度直方图,然后求得一个方向极值点作为该关键点的主方向。这个做法可以避免旋转变换带来的影响。

4.The local image descriptor 

根据关键点周围的局部特征,建立一个特征描述子。

在关键点周围取一个邻域并对其中点的梯度做高斯加权,具体做法是把邻域分成4*4个子区域,每个子区域都用八个方向为横轴统计一个梯度直方图(是高斯加权之后的),形成了4*4*8=128维的描述子。(论文中所给的图是一个简化版的 )

还要做的工作就是把描述子进行归一化,以消除对比度的影响。另外,SIFT 还将归一化之后大于0.2的分量都限制在0.2,避免在后期进行相似度计算时某些过高的分量会占有过多的比例使得其他的分量不起作用。

 

至此,特征点的检测与描述部分完成了,我们为每一个关键点产生了一个128维的描述子

 

5.Application to Object Recognition

目标识别的应用

所用的匹配准则:Nearest Neighbor Distance Ratio(NNDR),这里的距离用的是欧式距离;

所用的搜索策略:Best Bin First(BBF).

 

sift的一个改进较大的版本SURF参见:Speeded-Up Robust Features (SURF),Herbert Bay , Andreas Ess

sift详尽的翻译见:http://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html

以上是关于SIFT的主要内容,如果未能解决你的问题,请参考以下文章