一.SIFT(Scale Invariant Feature Transform) 算法
1.图像尺度空间
- 要让计算机能够对物体在不同尺度下有一个统一的认知,就要需要考虑图像在不同尺度(远近,大小,颜色区别等)下存在的特点.
- 尺度空间的获取通常使用高斯模糊来实现.I(x,y)表示一幅图像,G(x,y,sigma)为高斯函数,对图像做高斯滤波.
- 选择不同大小的矩阵,做滤波;sigma主要控制矩阵中值的大小,不同的sigma的高斯函数决定了对图像的平滑程度,越大的sigma对应的图像月模糊;
2.多分辨率金字塔
- 对中不同大小的图像都做出多个高斯滤波;
3.高斯差分金字塔(DOG)
- 提取有价值的信息,可以对相同大小(一组)的图像作差(相邻间图像作差),可以消除相同的信息,提取出不同的信息(特征);
- 对结果图像组中的选择差分结果较大值,是比较重要的特征;
4.DoG空间极值检测
- 选取一个点,在本图像中和其8邻域点进行比较,还要和去相邻的上一幅图和下一幅图的8邻域内的所有点作比较,来确定该点的大小(总共26个点进行比较).
5.关键点的精确定位
- 这些候选关键点是 DOG空间的局部极值点,而且这些极值点均为离散的点,精确定位极值点的一种方法是:对尺度空间DOG函数进行曲线拟合,计算其极值点,从而实现关键点的精确定位;
- 对离散的点进行求导,可以利用原始函数求导公式;
- 对于图像数据,是一个三维的数据,用同样的方法来计算极值;
6.消除边界响应
7. 特征点的主方向
- 每个特征点可以得到三个信息(x,y,sigma,seta),即位置,尺度,和方向.具有多个方向的关键点可以被复制成多分,然后将方向值分别赋值给复制后的特征点,一个特征点就产生了多个坐标,尺度相等,但是方向不同的特征点;
8.生成特征描述
-
方向和大小;
-
梯度直方图;
-
在完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向(主方向);
-
为了保证特征矢量的旋转不变性,要以特征点为中心,在附近邻域内将坐标轴旋转seta角度,即将坐标轴旋转为特征点的主方向;
-
分为四个区域,进行统计;