为什么提取块上的 SIFT 特征而不是整个图像?

Why extract SIFT features on patches instead of the whole image?

有些人从图像的补丁中提取 SIFT 特征,例如“128 维 SIFT 描述符是在 16×16 像素的补丁上计算的,在水平和方向上都以 8 像素的规则间距采样的网格上密集采样垂直方向。

他们为什么不直接从原始图像中提取 SIFT?像这样从原始图像的补丁中提取 SIFT 有什么好处?

谢谢!

首先我想说一个SIFT特征是一个128维的描述符。 128 个维度是使用包含实际兴趣点(从 DoG 获得的极值)的 16x16 邻域计算的。这很具体(more information and links to Lowes papers)

objective 部分是为什么他们会在具有常规 8x8 间距的网格上采样?我能想到的唯一原因是真正减少计算时间

  1. 创建已知数量的描述符。如果图像是 MxN,则描述符数量 = (M/8) x (N/8) 运行 对整个图像进行 SIFT 可能会产生许多聚集在一起的描述符。并且可能是无限的。由于每个描述符的计算成本很高,因此减少数量会减少计算时间。即使是 100x100 的小图像也可能有数百个描述符。这种方法会将其减少到 ~144

  2. 寻找关键点本身就是一项艰巨的任务。它涉及检查 DoG 金字塔的每个体素并检查以体素为中心的极值(最大值或最小值)(对于 DoG 的每个八度音阶和每 3 个尺度)。如果您可以跳过此步骤并假设每个 8x8 网格间距,您将消除遍历整个 DoG 和所有八度音阶和音阶的昂贵操作。

再次声明,这些只是我的意见,但希望对您有所帮助

在我的图像处理问题中,我还需要算法忽略的那些图像区域中的 SIFT 特征。所以我强制 SIFT 算法从图像的每个补丁中给我特征。