计算机视觉-SIFT

一.SIFT(Scale Invariant Feature Transform) 算法

1.图像尺度空间

  • 要让计算机能够对物体在不同尺度下有一个统一的认知,就要需要考虑图像在不同尺度(远近,大小,颜色区别等)下存在的特点.
  • 尺度空间的获取通常使用高斯模糊来实现.I(x,y)表示一幅图像,G(x,y,sigma)为高斯函数,对图像做高斯滤波
    计算机视觉-SIFT_第1张图片
  • 选择不同大小的矩阵,做滤波;sigma主要控制矩阵中值的大小,不同的sigma的高斯函数决定了对图像的平滑程度,越大的sigma对应的图像月模糊;

2.多分辨率金字塔
计算机视觉-SIFT_第2张图片

  • 对中不同大小的图像都做出多个高斯滤波

3.高斯差分金字塔(DOG)
计算机视觉-SIFT_第3张图片

  • 提取有价值的信息,可以对相同大小(一组)图像作差(相邻间图像作差),可以消除相同的信息,提取出不同的信息(特征)
  • 对结果图像组中的选择差分结果较大值是比较重要的特征
    在这里插入图片描述

4.DoG空间极值检测

  • 选取一个点,在本图像中和其8邻域点进行比较,还要和去相邻的上一幅图和下一幅图的8邻域内的所有点作比较,来确定该点的大小(总共26个点进行比较).
    计算机视觉-SIFT_第4张图片

5.关键点的精确定位

  • 这些候选关键点是 DOG空间的局部极值点,而且这些极值点均为离散的点,精确定位极值点的一种方法是:对尺度空间DOG函数进行曲线拟合,计算其极值点,从而实现关键点的精确定位;
  • 对离散的点进行求导,可以利用原始函数求导公式
    计算机视觉-SIFT_第5张图片
  • 对于图像数据,是一个三维的数据,用同样的方法来计算极值;
    计算机视觉-SIFT_第6张图片

6.消除边界响应
计算机视觉-SIFT_第7张图片
7. 特征点的主方向

  • 每个特征点可以得到三个信息(x,y,sigma,seta),即位置,尺度,和方向.具有多个方向的关键点可以被复制成多分,然后将方向值分别赋值给复制后的特征点,一个特征点就产生了多个坐标,尺度相等,但是方向不同的特征点;计算机视觉-SIFT_第8张图片

计算机视觉-SIFT_第9张图片

8.生成特征描述

  • 方向和大小;

  • 梯度直方图

  • 在完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向(主方向);

  • 为了保证特征矢量的旋转不变性,要以特征点为中心,在附近邻域内将坐标轴旋转seta角度,即将坐标轴旋转为特征点的主方向;
    计算机视觉-SIFT_第10张图片
    计算机视觉-SIFT_第11张图片
    在这里插入图片描述

  • 分为四个区域,进行统计;
    计算机视觉-SIFT_第12张图片
    计算机视觉-SIFT_第13张图片

你可能感兴趣的:(计算机视觉)