为什么我们需要在每个八度音阶中有多个层,而在 SIFT 中需要多个八度音阶?

信息处理 特征提取
2022-02-21 00:52:00

我浏览了 SIFT 试卷我知道有多个八度音阶,它们由多层组成。k一个八度音阶的(顺便说一句,这个名字是从哪里来的?)对应于用高斯核过滤的图像,标准偏差为kσ,因此八度音阶中较高的层对应于原始图像的更模糊版本。从这些模糊图像中,您可以计算高斯差 (DoG),从中可以计算出局部较高的像素(与该像素周围的邻域相比)。局部高于其邻居的像素是潜在的关键点。完成此操作后,您可以在第一个八度音程中对经过高斯滤波的图像进行下采样以产生另一个八度音程,然后再次计算 DoG。这个过程可以重复(多次迭代)。

直观地说,我们应用具有逐渐更高标准偏差的高斯核,以便我们可以找到不同尺度(或分辨率)的关键点,但为什么我们需要在第一个八度音程中进一步对高斯滤波图像进行下采样并重复该过程?直观地说,这仍然有助于找到不同分辨率(或比例)的关键点,但我无法完全理解为什么这种方法是正确的。那么,为什么我们在 SIFT 中需要每个八度音阶和多个八度音阶的多个层?

2个回答

在音乐理论中,八度音程是频率的间隔,从频率f频率2f. 例如,“高一个八度”意味着“频率的两倍”。表示为与频率成反比的波长,λ1f, 一个八度音程是从 aλ12λ. 在 SIFT 论文的符号中,σ是尺度,类似于波长,因为它与高斯核的宽度成正比。

下采样只是为了减小图像大小,以便减少计算量。从论文(强调我的):

一旦处理了一个完整的八度音程,我们通过在每行和每列中每隔一个像素对具有两倍初始值的高斯图像(它将是堆栈顶部的 2 个图像)进行重新采样。相对于的采样精度与前一个八度音程的开始没有什么不同,而计算量大大减少σσ

什么能够做到这一点?高斯函数具有另一个高斯函数作为其傅里叶变换,并且该函数的衰减速度比任何微分算子(如拉普拉斯算子)所能抵消的要快。的近似值滤波的有限幅度低通信号在近似意义上具有与成比例的频带限制。通过增加比例常数,可以使高于频带限制的部分信号的均方功率任意小。成比例的采样频率对滤波后的信号进行重新采样σ1σ1σ同时保持混叠误差任意小。一种方便的方法是不通过采样频率 \frac{\sigma_0}{\sigma} 对以采样频率 \frac{\sigma_0}{\sigma} 过滤的每个信号采样其中以采样频率采样的一些参考比例,而是通过采样频率σσ0σσ012ceiling(log2(σ0σ))

在此处输入图像描述
图 1. 一个倍频程内所有频率的采样频率(红色)相同。缺点是对于某些尺度,采样频率高于该尺度的实际要求(蓝色)。是比例,是参考比例。σσ0

这将的值组合成多个八度音程,使得在每个八度音程内,采样频率是 2 的幂,确保每个空间样本的位置方便地与高一个八度音程的空间样本重合。缺点是一个八度音阶中所有音阶的采样频率必须基于八度音阶中包含的最低音阶来选择,以将混叠噪声保持在该音阶的可接受范围内。八度音阶中较高的音阶通常具有较少的混叠。σ

首先,Ives Rey Otero 和 Mauricio Delbracio 撰写的 2014 年IPOL论文Anatomy of the SIFT Method提供了对 SIFT 方法的很好的描述和解密,包括逐步的伪代码、警告和附加的 C 代码。

SIFT 旨在对平移、旋转和缩放/缩放以及轻度噪声/模糊、对比度变化具有鲁棒性。为此,作者构建了一个离散的尺度空间,以捕捉连续 3D 场景的不同采样版本。它主要由两个参数索引:

  • 不同的像素间距离,由δ
  • 不同的尺度,由σ

它们的互补性在上述论文中的这张图中进行了描述:

SIFT 尺度空间构建和配置

从初始图像开始,获得平滑和重新采样的图像(红点)并添加额外的图像,特别是在所有尺度上获得差异(高斯差异)。八度这个词来源于一个被分成 8 个音符的音程(octavus在拉丁语中的意思是“八分之一”),由 2 倍(来自我对西方音乐所知甚少)分开。两倍的因子通常是您可以从离散图像中获得的最简单和最小的二次采样,无需借助插值。随着八度音程内的几何模糊,级联平滑产生正确的预处理以允许二次采样。

但是请注意,这是 SIFT 其他步骤中的更高级别的插值(第零根,最大值)。

对我来说,八度音阶模拟简单的像素间距离,而图层则专注于对象的固有比例。