Lowe's 比率测试如何工作?
How does the Lowe's ratio test work?
假设我有一组 N 幅图像,并且我已经计算了每幅图像的 SIFT 描述符。我知道想计算不同特征之间的匹配。我听说一种常见的方法是 Lowe 的比率测试,但我不明白它是如何工作的。有人可以向我解释吗?
为了更好地理解比率测试,您需要阅读他的文章。只有阅读文章,您才会找到答案。
简单的答案是它很低,Lowe 在他的实验中实现了这一点,并建议在两个相似距离之间进行选择,选择距离为 0.7 的另一个。
检查以下内容 link:
https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
简短版本: 第一个图像的每个关键点都与第二个图像中的多个关键点相匹配。我们为每个关键点保留 2 个最佳匹配(最佳匹配 = 距离测量值最小的那些)。 Lowe 检验检查这两个距离是否足够不同。如果不是,则该关键点被剔除,不会用于进一步的计算。
长版:
David Lowe 提出了一种简单的过滤关键点匹配的方法,即在第二好的匹配几乎一样好时消除匹配。请注意,虽然在计算机视觉的背景下得到普及,但这种方法与 CV 无关。在这里我描述了这个方法,以及它在计算机视觉的背景下如何 implemented/applied。
假设 L1 是图像 1 的一组关键点,每个关键点都有一个描述,其中列出了关于关键点的信息,该信息的性质实际上取决于所使用的描述符算法。 L2 是图像 2 的关键点集。典型的匹配算法将通过为 L1 中的每个关键点找到 L2 中最接近的匹配来工作。如果使用欧几里德距离,就像在 Lowe 的论文中一样,这意味着集合 L2 中的关键点与 L1 中的关键点具有最小的欧几里得距离。
在这里,我们可能会想设置一个阈值并消除距离超过该阈值的所有配对。但这并不是那么简单,因为并非描述符中的所有变量都像 "discriminant":两个关键点可能有一个小距离测量,因为它们描述符中的大多数变量具有相似的值,但这些变量可能与实际无关匹配。人们总是可以为描述符的变量增加权重,这样更具辨别力的特征 "count" 更多。 Lowe 提出了一个更简单的解决方案,如下所述。
首先,我们将 L1 中的关键点与 L2 中的两个个关键点进行匹配。假设图像 1 中的关键点在图像 2 中不能有多个等价点,我们推断这两个匹配不可能都是正确的:至少其中一个是错误的。根据 Lowe 的推理,距离最小的匹配是 "good" 匹配,距离第二小的匹配相当于随机噪声,一种基本速率。如果无法将 "good" 匹配与噪声区分开来,则应拒绝 "good" 匹配,因为它不会带来任何有趣的信息。所以总的原则是最好的和次好的匹配之间需要有足够的差异。
如何操作 "enough difference" 的概念很重要:Lowe 使用两个距离的 比率 ,通常表示为:
if distance1 < distance2 * a_constant then ....
其中 distance1 是关键点与其最佳匹配之间的距离,distance2 是关键点与其次佳匹配之间的距离。 "smalled than" 符号的使用可能有点令人困惑,但考虑到较小的距离意味着该点更近,这一点就变得很明显了。在 OpenCV 世界中,knnMatch 函数会 return 从最好到最差的匹配,所以第一个匹配的距离会更小。问题实际上是 "how smaller?" 为了弄清楚,我们将 distance2 乘以一个必须介于 0 和 1 之间的常数,从而减小 distance2 的值。然后我们再看distance1:是不是还小于distance2?如果是,那么它通过了测试,将被添加到好点列表中。如果不是,就必须淘汰。
所以这解释了 "smaller than" 部分,但是乘法呢?既然我们正在研究距离之间的差异,为什么不直接使用 distance1 和 distance2 之间的实际数学差异呢?尽管从技术上讲我们可以,但由此产生的差异将是绝对值,它太依赖于描述符中的变量、我们使用的距离测量的类型等。如果用于提取描述的代码发生变化,影响所有距离测量怎么办?简而言之,做 distance1 - distance2 会不太稳健,需要经常调整并且会使方法比较更加复杂。都是比例。
要点:Lowe 的解决方案很有趣,不仅因为它简单,而且因为它在很多方面与算法无关。
劳氏比率检验
算法:
- 首先,我们计算图像一中的特征 fi 与图像二中的所有特征 fj 之间的距离。
- 我们选择图像二中的特征 fc 与图像中的特征 fi 的最小距离作为我们最接近的匹配。
- 然后我们继续获取特征 fs 图像二中与特征 fi 距离第二近的特征。
- 然后我们通过距离比找到最接近的匹配 fc 比第二接近的匹配 fs 更近。
- 最后我们保持距离比<距离比阈值的匹配。
distance ratio = d(fi, fc)/d(fi, fs)
可以定义为图像一中的特征fi与f c 图像二中最接近的匹配。在特征 fi 和 fs 之间计算的距离,图像 two.
中第二接近的匹配
我们通常将距离比阈值(ρ)设置为0.5左右,这意味着我们要求我们的最佳匹配至少是我们次佳匹配的两倍我们的初始特征描述符。从而丢弃我们模棱两可的比赛并保留好的比赛。
假设我有一组 N 幅图像,并且我已经计算了每幅图像的 SIFT 描述符。我知道想计算不同特征之间的匹配。我听说一种常见的方法是 Lowe 的比率测试,但我不明白它是如何工作的。有人可以向我解释吗?
为了更好地理解比率测试,您需要阅读他的文章。只有阅读文章,您才会找到答案。 简单的答案是它很低,Lowe 在他的实验中实现了这一点,并建议在两个相似距离之间进行选择,选择距离为 0.7 的另一个。
检查以下内容 link: https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
简短版本: 第一个图像的每个关键点都与第二个图像中的多个关键点相匹配。我们为每个关键点保留 2 个最佳匹配(最佳匹配 = 距离测量值最小的那些)。 Lowe 检验检查这两个距离是否足够不同。如果不是,则该关键点被剔除,不会用于进一步的计算。
长版:
David Lowe 提出了一种简单的过滤关键点匹配的方法,即在第二好的匹配几乎一样好时消除匹配。请注意,虽然在计算机视觉的背景下得到普及,但这种方法与 CV 无关。在这里我描述了这个方法,以及它在计算机视觉的背景下如何 implemented/applied。
假设 L1 是图像 1 的一组关键点,每个关键点都有一个描述,其中列出了关于关键点的信息,该信息的性质实际上取决于所使用的描述符算法。 L2 是图像 2 的关键点集。典型的匹配算法将通过为 L1 中的每个关键点找到 L2 中最接近的匹配来工作。如果使用欧几里德距离,就像在 Lowe 的论文中一样,这意味着集合 L2 中的关键点与 L1 中的关键点具有最小的欧几里得距离。
在这里,我们可能会想设置一个阈值并消除距离超过该阈值的所有配对。但这并不是那么简单,因为并非描述符中的所有变量都像 "discriminant":两个关键点可能有一个小距离测量,因为它们描述符中的大多数变量具有相似的值,但这些变量可能与实际无关匹配。人们总是可以为描述符的变量增加权重,这样更具辨别力的特征 "count" 更多。 Lowe 提出了一个更简单的解决方案,如下所述。
首先,我们将 L1 中的关键点与 L2 中的两个个关键点进行匹配。假设图像 1 中的关键点在图像 2 中不能有多个等价点,我们推断这两个匹配不可能都是正确的:至少其中一个是错误的。根据 Lowe 的推理,距离最小的匹配是 "good" 匹配,距离第二小的匹配相当于随机噪声,一种基本速率。如果无法将 "good" 匹配与噪声区分开来,则应拒绝 "good" 匹配,因为它不会带来任何有趣的信息。所以总的原则是最好的和次好的匹配之间需要有足够的差异。
如何操作 "enough difference" 的概念很重要:Lowe 使用两个距离的 比率 ,通常表示为:
if distance1 < distance2 * a_constant then ....
其中 distance1 是关键点与其最佳匹配之间的距离,distance2 是关键点与其次佳匹配之间的距离。 "smalled than" 符号的使用可能有点令人困惑,但考虑到较小的距离意味着该点更近,这一点就变得很明显了。在 OpenCV 世界中,knnMatch 函数会 return 从最好到最差的匹配,所以第一个匹配的距离会更小。问题实际上是 "how smaller?" 为了弄清楚,我们将 distance2 乘以一个必须介于 0 和 1 之间的常数,从而减小 distance2 的值。然后我们再看distance1:是不是还小于distance2?如果是,那么它通过了测试,将被添加到好点列表中。如果不是,就必须淘汰。
所以这解释了 "smaller than" 部分,但是乘法呢?既然我们正在研究距离之间的差异,为什么不直接使用 distance1 和 distance2 之间的实际数学差异呢?尽管从技术上讲我们可以,但由此产生的差异将是绝对值,它太依赖于描述符中的变量、我们使用的距离测量的类型等。如果用于提取描述的代码发生变化,影响所有距离测量怎么办?简而言之,做 distance1 - distance2 会不太稳健,需要经常调整并且会使方法比较更加复杂。都是比例。
要点:Lowe 的解决方案很有趣,不仅因为它简单,而且因为它在很多方面与算法无关。
劳氏比率检验
算法:
- 首先,我们计算图像一中的特征 fi 与图像二中的所有特征 fj 之间的距离。
- 我们选择图像二中的特征 fc 与图像中的特征 fi 的最小距离作为我们最接近的匹配。
- 然后我们继续获取特征 fs 图像二中与特征 fi 距离第二近的特征。
- 然后我们通过距离比找到最接近的匹配 fc 比第二接近的匹配 fs 更近。
- 最后我们保持距离比<距离比阈值的匹配。
distance ratio = d(fi, fc)/d(fi, fs)
可以定义为图像一中的特征fi与f c 图像二中最接近的匹配。在特征 fi 和 fs 之间计算的距离,图像 two.
我们通常将距离比阈值(ρ)设置为0.5左右,这意味着我们要求我们的最佳匹配至少是我们次佳匹配的两倍我们的初始特征描述符。从而丢弃我们模棱两可的比赛并保留好的比赛。