SIFT算法
空间尺度中寻找极值点,并提取其位置、尺度、旋转尺度不变量。
SIFT算法步骤:
1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。
1.尺度空间:高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核
使用高斯模糊(图像滤波器)计算模板(不同尺度,5个或其他),然后与图像做卷积,然后对其降采样,得到高斯金字塔
2.高斯金字塔每组图中上下两层图像相减的到高斯差分金字塔,每个像素点与相邻的26个点相比较取得极值点,去掉低对比度和不稳定的点的到关键点,通过拟合三维二次函数来精确确定关键点的位置和尺度
3.完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向,直方图的峰值方向代表了关键点的主方向
4.描述关键点:(位置,方向,梯度值)常用:4*4窗口,8个方向,特征向量:4*4*8=128维