尺度不变特征变换匹配算法详解Scale Invariant Feature Transform(SIFT)
参考博客网址:https://blog.csdn.net/u010440456/article/details/81483145
一、SIFT算法分解为如下四步:
1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。
二、高斯模糊
参考文章https://www.jianshu.com/p/8d2d93c4229b
三、尺度空间极值检测
1. 尺度空间理论的基本思想是:在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。
2. 一个图像的尺度空间:
3.图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。为了让尺度体现其连续性,高斯金字塔在简单降采样的基础上加上了高斯滤波。
4. 在实际计算时,使用高斯金字塔每组中相邻上下两层图像相减,得到高斯差分图像。
5.空间极值点检测:中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
四、关键点定位
1. 利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值(Sub-pixel Interpolation)。
2.关键点/极值点提取
- 关键点位置初步探查:生成DOG金字塔后,要找到DOG空间中的局部极值点。
- 关键点位置修正及去除低响应:
通过拟合三维二次函数(二阶的泰勒展开式)来精确确定关键点的位置和尺度。为了提高关键点的稳定性,需要对尺度空间DoG函数进行曲线拟合。
-
关键点方向分配:
-
关键点特征描述:为每个关键点建立一个描述符,用一组向量将这个关键点描述出来,使其不随各种变化而改变,比如光照变化、视角变化等等。这个描述子不但包括关键点,也包含关键点周围对其有贡献的像素点,并且描述符应该有较高的独特性,以便于提高特征点正确匹配的概率。