SIFT

SIFT算法:尺度不变特征变换

参考文章

一、算法实质:在不同的尺度空间上查找关键点,并计算出关键点的方向

SIFT

 二、特征匹配的流程

  1. 提取关键点:关键点是一些十分突出的不会因光照、尺度、旋转等因素而消失的点,比如角点、边缘点、暗区域的亮点以及亮区域的暗点。此步骤是搜索所有尺度空间上的图像位置。通过高斯微分函数来识别潜在的具有尺度和旋转不变的兴趣点。
  2. 定位关键点并确定特征方向:在每个候选位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于他们的稳定程度。然后基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
  3. 通过各关键点的特征向量,进行两两比较找出相互匹配的若干对特征点,建立景物间的对应关系。

 三、尺度空间

      1. 概念 

尺度空间即试图在图像领域中模拟人眼观察物体的概念与方法。例如:观察一颗树,关键在于我们想要观察是树叶子还是整棵树:如果是一整棵树(相当于大尺度情况下观察),那么就应该去除图像的细节部分。如果是树叶(小尺度情况下观察),那么就该观察局部细节特征。
SIFT算法在构建尺度空间时候采取高斯核函数进行滤波,使原始图像保存最多的细节特征,经过高斯滤波后细节特征逐渐减少来模拟大尺度情况下的特征表示。
利用高斯核函数进行滤波的主要原因有两个:
(1)高斯核函数是唯一的尺度不变核函数。
(2)DoG核函数可以近似为LoG函数,这样可以使特征提取更加简单。同时,David. Lowe作者在论文中提出将原始图像进行2倍上采样后滤波能够保留更多的信息便于后续特征提取与匹配。其实尺度空间图像生成就是当前图像与不同尺度核参数σ进行卷积运算后产生的图像。

      2. 表示

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

SIFT

*表示卷积运算,(x,y)代表图像的像素位置。是尺度空间因子,值越小表示图像被平滑的越少,相应的尺度也就越小。

大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。

      ​​​​四、总结

1、DoG尺度空间的极值检测。
2、删除不稳定的极值点。
3、确定特征点的主方向
4、生成特征点的描述子进行关键点匹配。