当前位置: 代码迷 >> 综合 >> SIFT 尺度不变特征变换 简单易懂
  详细解决方案

SIFT 尺度不变特征变换 简单易懂

热度:20   发布时间:2024-01-24 09:52:19.0

很详细的一个英文博客:

http://aishack.in/tutorials/sift-scale-invariant-feature-transform-introduction/

 

SIFT (Scale-invariant feature transform, 尺度不变特征变换)

  • 局部特征描述子,尺度不变性
  1. 尺度空间:所有尺度上的图像位置,高斯微分函数来识别潜在对于尺度和旋转不变的兴趣点。
    1.1 构建高斯金字塔,先将图像放大一倍,每一组(Octave) a1a2a3an(不同blur level)是由不断高斯模糊通过卷积高斯核构成,下一组第一张是当前组最后一张降采样构成,组内不同层插值用于构建高斯金字塔。

  2. LoG估计。
    2.1 基于Difference of Gaussian 近似--> Laplacian of Gaussian 基于模糊后的二阶导, 相邻层相减构建差分高斯金字塔。

  3. 关键点检测。
    3.1 让候选点与周围如图26个点比较,如为极大值或极小值则初步认为是近似关键点。基于这些点结合**泰勒展开(拉格朗日定理)**和插值法找到极值subpixel位置作为关键点。

  4. 剔除低部分关键点通过对比度检测和边缘检测。
    4.1 通过指定阈值剔除低对比度点;基于Hessian Matrix通过梯度找到角点,两个方向梯度都小是flat region,一小一大是edge,两大是corner;

  5. 基于图像局部梯度方向,给每个关键点分配一个或多个方向。
    5.1 使用梯度方法计算出梯度值和梯度方向. 然后在1.5σ范围内计算梯度方向直方图。极大值为主方向,大于主方向80%的作为新关键点(跟主方向比除了方向都一样)。

  6. 关键点描述(特征是生成)。
    6.1 关键点可能不位于像素内,此时需要插值,周围16*16像素构成窗口计算特征向量; 每个4*4窗口像素根据梯度值和方向分为8个bins方向的直方图;最后以关键点为中心通过高斯核平滑每个窗口值,并生成8*16=128维特征向量;最终标准化除以平方和的根。为了达到旋转不变性,4*4 和 16*16窗口每个方向减去关键点的旋转使得以关键点为主方向。为了减少光照依赖性,任何大于0.2的数都设置为0.2。