洛氏比率测试如何工作?

ele*_*ena 22 computer-vision sift

假设我有一组 N 个图像,并且我已经计算了每个图像的 SIFT 描述符。我知道想计算不同特征之间的匹配。我听说一种常见的方法是 Lowe 比率测试,但我无法理解它是如何工作的。有人可以向我解释一下吗?

Gui*_*meL 39

简短版本:第一张图像的每个关键点都与第二张图像中的多个关键点相匹配。我们为每个关键点保留 2 个最佳匹配(最佳匹配 = 距离测量值最小的那些)。Lowe's 检验检查两个距离是否足够不同。如果不是,则关键点将被消除并且不会用于进一步的计算。

长版:

David Lowe 提出了一种过滤关键点匹配的简单方法,当次佳匹配几乎一样好时,通过消除匹配。请注意,虽然在计算机视觉的背景下普及,但这种方法与 CV 无关。在这里,我描述了该方法,以及它是如何在计算机视觉环境中实现/应用的。

让我们假设 L1 是图像 1 的关键点集,每个关键点都有一个描述,其中列出了有关关键点的信息,该信息的性质实际上取决于所使用的描述符算法。L2 是图像 2 的关键点集。典型的匹配算法将通过为 L1 中的每个关键点找到 L2 中最接近的匹配来工作。如果使用欧几里得距离,就像在 Lowe 的论文中一样,这意味着 L2 中的关键点与 L1 中的关键点具有最小的欧几里得距离。

在这里,我们可能会尝试只设置一个阈值并消除距离高于该阈值的所有配对。但这并不是那么简单,因为并非描述符中的所有变量都具有“判别性”:两个关键点的距离测量可能很小,因为它们描述符中的大多数变量具有相似的值,但这些变量可能与实际匹配无关。人们总是可以为描述符的变量增加权重,以便更具辨别力的特征“计数”更多。Lowe 提出了一个更简单的解决方案,如下所述。

首先,我们将 L1 中的关键点与 L2 中的两个关键点进行匹配。假设图像 1 中的一个关键点在图像 2 中不能有多个等价点,我们推断这两个匹配不可能都正确:至少其中一个是错误的。按照 Lowe 的推理,距离最小的匹配是“好”匹配,距离第二小的匹配相当于随机噪声,一种基本速率。如果“好”匹配不能与噪音区分开来,那么“好”匹配应该被拒绝,因为它不会带来任何有趣的信息。所以总的原则是最好的和次好的匹配之间需要有足够的差异。

如何操作“足够的差异”的概念很重要:Lowe 使用两个距离的比值,通常表示为:

if distance1 < distance2 * a_constant then ....
Run Code Online (Sandbox Code Playgroud)

其中 distance1 是关键点与其最佳匹配之间的距离, distance2 是关键点与其次佳匹配之间的距离。使用“小于”符号可能会有些混乱,但考虑到较小的距离意味着该点更近时,这一点就变得很明显了。在 OpenCV 世界中,knnMatch 函数将返回从最好到最差的匹配,因此第一个匹配将有更小的距离。问题真的是“有多小?” 为了弄清楚这一点,我们将距离 2 乘以一个必须介于 0 和 1 之间的常数,从而减小距离 2 的值。然后我们再看一下distance1:还是比distance2小吗?如果是,那么它通过了测试并将被添加到好点列表中。如果不是,则必须将其消除。

所以这解释了“小于”部分,但是乘法呢?既然我们正在研究距离之间的差异,为什么不直接使用距离 1 和距离 2 之间的实际数学差异呢?虽然从技术上讲我们可以,但结果差异是绝对值,它太依赖于描述符中的变量,我们使用的距离测量类型等。 如果提取描述的代码发生变化,影响所有距离测量怎么办? 简而言之,执行距离 1 - 距离 2 会不太稳健,需要频繁调整,并使方法比较更加复杂。这都是关于比例的。

要点信息:Lowe 的解决方案很有趣,不仅因为它简单,而且因为它在很多方面都与算法无关。

  • 我认为这也适用于计算机视觉环境之外,这是一种在不使用硬阈值的情况下选择距离的好方法 (3认同)
  • nbro:对于 k &gt; 2,其他配对将是第三最佳、第四最佳,依此类推。Lowe 测试比较最佳配对和第二最佳配对,因为第二最佳配对被认为是“噪音”(不良配对)中的最佳配对。就像算法在说“给我你认为正确的配对。现在为同一关键点提供最好的不良配对。我发现没有显着差异,因此与该关键点相关的任何配对都不能使用计算单应性”。 (3认同)
  • 中等版本:获取关键点匹配的前两个最佳结果。如果这些匹配的关键点之间具有相似的“距离”,那么它们可能不是很好的匹配,应该被丢弃。如果最佳结果与第二最佳匹配的距离足够不同,则它可能是“良好”匹配并且应该保留。 (3认同)

Luk*_*uke 6

劳氏比率测试

\n
\n

算法:

\n
    \n
  1. 首先,我们计算图像一中的特征 f i与图像二中的所有特征 f j之间的距离。
  2. \n
  3. 我们选择图像二中的特征 f c与图像一中的特征 f i 的最小距离作为我们最接近的匹配。
  4. \n
  5. 然后,我们继续获取特征 f s,即图像二中与特征 f i距离第二近的特征。
  6. \n
  7. 然后我们通过距离比找出最接近的匹配 f c比第二接近的匹配 f s近多少。
  8. \n
  9. 最后,我们保留距离比 < 距离比阈值的匹配。
  10. \n
\n
\n

距离比 =d(fi, fc)/d(fi, fs) 可以定义为图像一中的特征 f i与图像二中最接近的匹配特征f c之间计算的距离。在特征 f i和 f s之间计算的距离上,图像二中第二接近的匹配。

\n

我们通常将距离比阈值 (\xcf\x81)设置为 0.5 左右,这意味着我们要求最佳匹配与初始特征描述符的距离至少是第二最佳匹配的两倍。从而丢弃我们不明确的匹配并保留好的匹配。

\n