[关闭]
@xiaojian233 2016-08-20T23:50:05.000000Z 字数 1541 阅读 2300

SIFT 特征点识别

项目展示


SIFT 简述

SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。

该方法于1999年由 David Lowe 首先发表于计算机视觉国际会议(International Conference on Computer Vision,ICCV),2004年再次经David Lowe整理完善后发表于International journal of computer vision(IJCV) 。截止2014年8月,该论文单篇被引次数达25000余次。

以上摘自SIFT 百度百科【1】

局部影像特征的描述与侦测可以帮助辨识物体,SIFT 特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用 SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。【2】

总之,这个方法性能良好,应用广泛。

于是,我就领到了这个作业。

SIFT 的算法总共分为四步:

  1. 尺度空间极值检测。
  2. 关键点定位
  3. 方向确定
  4. 关键点描述

本项目只是完成到获得SIFT 特征点的地方。
理论部分大多雷同,作为项目的实现,本文侧重在于给出实验结果,理论部分仅供参考。

尺度空间极值检测

尺度空间理论的基本思想是:在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。【2】

在做这部分的时候,最关键的在于,理解尺度空间所反映出来的意义。
而实现,主要是依靠高斯金字塔。

高斯金字塔的建立

高斯金字塔的建立分为下面两步:

此处输入图片的描述

这部分的中间结果如下:
//高斯金字塔

仔细看这结果,就会明白,底层的塔描述了详细细节的信息
高层的塔描述了轮廓的信息。

看到DOG 的结果就能够明白这个差异了。

然后得到高斯金字塔后,就可以计算DOG 算子了。

高斯差分金字塔(DOG)算子

对相邻尺度的高斯图像做差分,能够看得不同尺度之间的细节差异。
//DOG 算子

构建过程:
此处输入图片的描述

*注: 图像来自于博客【2】,下面的实验结果图是自己做出来的。

这部分的结果如下:
此处输入图片的描述

仔细看的话,就会发现,越往后面,图像的轮廓就越清晰。
所以上,越高层的差分金字塔,保留了越“模糊”的信息。

空间极值点检测

关键点是由DOG空间的局部极值点组成的,关键点的初步探查是通过同一组内各DoG相邻两层图像之间比较完成的。

然后选取同尺度8 领域点与及上下尺度的9 领域点,一共26领域点,做极值分析。
//

这部分拿到的结果是:
此处输入图片的描述

最后我们要获取的特征点就在这些点之中。

消除边缘效应

分析上一部的结果,就会发现,拿到的点太多了。

所幸,论文也提供了一个方法,来消除对我们影响比较大的点。

然后由一个Hessian矩阵 的运算,消除边缘的点。
//TODO
*注:其实这部分有点难,最后参考了OpenCv 中的源码去实现这部分的。

结果是:
//TODO
对比上面的就能够发现少了很多点。

结果

到此,SIFT 算法的流程中获得特征点算是走了一遍了。
下面给出一些结果:
此处输入图片的描述
【图】计算机视觉女神的特征点检索结果

利用Opencv 中计算的实验结果:
此处输入图片的描述

参考资料

【1】SIFT -- 百度百科
【2】SIFT算法详解

END,感谢阅读

Email: li.xiaojian233@qq.com

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注