SIFT Keypoints

The Scale-Invariant Feature Transform (SIFT) [4] algorithm provides a robust method for extracting distinctive features from images that are invariant to rotation, scale and distortion. In order to identify invariant keypoints that can be repeatably found in multiple views of varying scale and rotation, local extrema are detected in Gauss-filtered difference images.

SIFT算法的实质可以归为在不同尺度空间上查找关键点(特征点)的问题。所谓关键点,就是一些十分突出的点,这些点不会因光照条件的改变而消失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点,既然两幅图像中有相同的景物, 那么使用某种方法分别提取各自的稳定点,这些点之间就会有相互对应的匹配点。而在SIFT中,关键点是在不同尺度空间的图像下检测出的具有方向信息的局部极值点。涉及到的最重要的两步是:1.构建尺度空间 2.关键点检测

构建尺度空间

我们要精确表示的物体都是通过一定的尺度来反映的。现实世界的物体也总是通过不同尺度的观察而得到不同的变化。图像的尺度有多种表示方法(金字塔、八叉树等等),在SIFT中Lowe教授采用了尺度空间理论。

其主要思想是通过对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,并检测这个序列中的关键点。这样图片就被映射为多个尺度上的关键点信息,尽管两幅图片是处于不同的尺度,但却可以提取出在尺度变换中没有改变的关键点,从而进行关键点匹配,进而识别出物体。

实际上,在尺度空间理论中,是通过对图像进行模糊来模拟多尺度下的图像。直观上,图像的模糊程度逐渐变大,模拟了人在距离目标由近到远时目标在视网膜上的形成过程。文献《Scale-space theory: A basic tool for analysing structures at different scales》证明,高斯核是唯一可以产生多尺度空间的核(其它核会对图像造成模糊之外的其它影响)。

一个图像的尺度空间, L(x,y,σ) (σ 可以代表尺度的大小) ,定义为原始图像 I(x,y) 与一个可变尺度的2维高斯函数 G(x,y,σ)  卷积运算。高斯函数:

G(x,y,σ)=12πσ2e−(x2+y2)/(2σ2)
L(x,y,σ)=G(x,y,σ)∗I(x,y)
高斯金字塔
图像的尺度是自然存在的,不是人为创造的!高斯卷积只是表现尺度空间的一种形式。(在SIFT的代码中,进行高斯模糊时,用到了高斯模糊的“勾股定理”:例如,使用半径分别为 6 和 8 的两次高斯模糊变换得到的效果等同于一次半径为 10 的高斯模糊效果)。
在SIFT中,构建了高斯金字塔(如图1所示),即分为两步:
1)对图像做高斯平滑
2)对图像做降采样(减小计算量)。
一幅图像可以产生几组(octave)图像,一组图像包括几层(interval)图像。为了让尺度体现出连续性,相邻两层图像间的尺度为k倍的关系,同时相邻两组的同一层尺度为2倍的关系(在SIFT算法中,Lowe教授假设初始图片已经是以一定 σ 模糊过得了)。
关键点检测
文献《Scale-space theory: A basic tool for analysing structures at different scales》指出尺度规范化的LoG算子具有真正的尺度不变性。即我们可以在不同尺度的图像(已经经过高斯卷积)上进行拉普拉斯运算(二阶导数),并求极值点,从而求出关键点。
但这样做的运算量很大,于是SIFT中进行了近似处理:通过推导可以看出,LoG算子与高斯核函数的差有直接关系,由此引入一种新的算子DoG(Difference of Gaussians),即高斯差分算子
LoG算子和DoG算子only相差常数系数,而这并不会改变极值点的位置。因此我们在DoG算子中求得极值点就是LoG算子的极值点,也正是我们需要的关键点。而DoG在计算上只需相邻尺度高斯平滑后图像相减,因此简化了计算!
对应DOG算子,我们要构建DOG金字塔
DoG
通过高斯差分图像看出图像上的像素值变化情况。如果没有变化,也就没有特征。特征必须是变化尽可能多的点。本质上,DOG图像描绘的是目标的轮廓:

关键点是由DOG空间的局部极值点组成的。为了寻找DoG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。具体来说,中间的检测点和它同尺度的8个相邻点上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。

至此就可以检测出图像中尺度不变的关键点,然后我们为关键点赋予梯度方向,并利用关键点的周围的像素梯度方向直方图生成SIFT特征描述子。具体过程可以参考以下资料:

  1. SIFT的matlab程序,非常详细  http://www.vlfeat.org/~vedaldi/code/sift.html
  2. SIFT tutorial http://www.aishack.in/2010/05/sift-scale-invariant-feature-transform/
  3. 一个非常详细ppt教程,可用作教学http://wenku.baidu.com/view/53021cf24693daef5ef73daf.html
  4. D. Lowe, “Object recognition from local scale-invariant features,” in the proceedings of the Seventh IEEE International Conference on Computer Vision, vol. 2, pp. 1150–1157 (1999).
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

生活在西班牙

自己动手丰衣足食

BlueAsteroid

Just another WordPress.com site

Jing's Blog

Just another WordPress.com site

Start from here......

我的心情魔方

天才遠私廚

希望能做一個分享各種資訊的好地方

语义噪声

西瓜大丸子汤的博客

笑对人生,傲立寰宇

Just another WordPress.com site

Where On Earth Is Waldo?

A Project By Melanie Coles

the Serious Computer Vision Blog

A blog about computer vision and serious stuff

Cauthy's Blog

paper review...

Cornell Computer Vision Seminar Blog

Blog for CS 7670 - Special Topics in Computer Vision

datarazzi

Life through nerd-colored glasses

Luciana Haill

Brainwaves Augmenting Consciousness

槑烎

1,2,∞

Dr Paul Tennent

and the university of nottingham

turn off the lights, please

A bunch of random, thinned and stateless thoughts around the Web

%d bloggers like this: