返回

SIFT / SURF 尺度特征

Scale Invariant Features - 尺度不变的局部特征检测
第三章 / 特征点方法
参数面板

按 6 个步骤推进,观察 SIFT/SURF 关键点如何被检测、定向、描述和匹配。可在每步切换 SIFT/SURF/对比 标签。

课堂任务

沿着 6 个步骤观察 SIFT/SURF 关键点如何被检测、定向、描述和匹配。 SURF 是 SIFT 的加速版本,可以在每步切换标签对比差异。

1
3

算法会自动补充额外高斯层,保证 26 邻域跨尺度检测有足够中间层。

检测到的关键点
8 个(按响应值排序,显示前 10 个)。
Kp #0: (18,18) σ=1.3θ=0°
概念说明

尺度特征为什么重要

尺度空间让关键点在远近变化时仍能被稳定检测。图源:项目 SIFT/SURF 示例图
任务

当同一张图被拉近、拉远或旋转一定角度后,同一个角点在图像里占的像素大小和方向都会变。如果检测器只认固定大小的窗口,就可能在某些尺度上找不到同一个关键点。

思路

常用的处理办法是在多个尺度上同时观察图像:先用高斯模糊得到不同清晰程度的图层,再在相邻图层的差分里找极值点;给每个点分配一个主方向,让描述子对旋转也稳定;最后把周围梯度信息编码成固定长度的描述向量。

观察

切换 SIFT 和 SURF 视角,拖动缩放条或旋转图像,观察同一关键点是否在不同尺度下都能被检测到;再对比描述子网格,看看方向归一化后相似结构的向量是否接近。

原图64×64
点击原图选择关键点
SIFT 四步流程
结果64×64
结果图高亮当前选中的关键点
当前关键点
(18, 18) / octave 0 / σ=1.26DoG=-0.0550
当前证据
从概览进入任一步骤,检查关键点如何一路从候选点变成可匹配特征。每一步的证据都基于具体数值和判定结果。
当前结果
现在可以从概览进入任一步骤,检查这个关键点是如何一路从候选点变成可匹配特征的。
💡 SURF 用积分图加速 → 点击 SURF 标签查看
待检测图像
SIFT 四步流程
1. 尺度空间极值检测
2. 关键点定位
3. 方向分配
4. 描述子生成
检测结果

8 个关键点

SIFT 算法概述

SIFT(Scale Invariant Feature Transform)是一种经典的局部特征检测算法。 它将一幅图像映射为局部特征向量集,特征向量具有平移、缩放、旋转不变性, 同时对光照变化、仿射变换也有一定不变性。

总共包括四步:(1)检测尺度空间极值点;(2)精确确定关键点位置和尺度; (3)为关键点分配方向;(4)生成关键点描述子。

尺度空间链式代入
L(x,y,σ)=G(x,y,σ)*I(x,y)=[12πσ2e-x2+y22σ2]*I(x,y)
当前图像检测结果
关键点总数
8
当前 σ
1.0
每组层数
3