SIFT
概述:算法大致流程为:
- 建立不同分辨率的图像金字塔以及不同尺度的高斯差分金字塔,经DoG算法得到每一族内大致特征点;
- 将特征点进行泰勒展开求得精确特征点,该步骤可以求得精确的图像尺度,该尺度下特征点有着最大或最小的DoG值。个人理解不同图像中相同特征点都可以在该尺度取得最大的DoG值,并且该尺度也被后几步用于特征区域的选取;
- 选取特征区域1.5并求得该特征点的主方向;
- 沿特征点主方向并根据确定特征区域,并根据特征区域内各点的多个方向梯度进行embedding,得到128维的向量;
- 对两幅图中的向量使用k近邻算法求得距离最近的特征向量。
Q&A:
Q:既然有了高斯差分金字塔,为何还要用不同分辨率的图像金字塔?
A:个人理解,若两幅图像中感兴趣的物体分辨率近似则图像金字塔作用不大;若感兴趣物体分辨率差距较大,则可能导致两幅图像中有计算出的特征区域有着较大的偏差。
笔记:高斯核是可以模拟相机失焦的唯一线性卷积核,高斯核是唯一可以产生多尺度空间的核(《Scale-space theory: A basic tool for analysing structures at different scales》)。
参考:尺度空间与图像金字塔(一)_Alin_Zhang-CSDN博客_尺度金字塔