gpt4 book ai didi

opencv - SIFT 描述符值 : OpenCV vs VLFeat

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:40 24 4
gpt4 key购买 nike

我正在尝试比较 OpenCV 的 SIFT 实现和 VLFeat .

我注意到 VLFeat 的描述符值是整数,例如:

0 0 0 0 0 0 0 0 0 0 0 17 45 20 26 0 1 ...

对于 OpenCV:

0.0391555 0 0 0.0998274 0.235747 0 0 0.0276871 0.156622 ...

请注意,这些是 2 个不同图像的描述符。

我有两个问题:

  1. 为什么它们有两个不同的值?
  2. 如果我需要使用 VLFeat(然后是 VLAD 编码)的 k-means 的 OpenCV 表示,我是否需要更改这些值?

最佳答案

免责声明,我不是 OpenCV 或 VLFeat 方面的专家,但我认为我知道答案。

VLFeat 可以生成整数和浮点描述符。要生成整数描述符,请使用 vl_sift函数并为了生成浮点描述符使用 vl_dsift带有 FloatDescriptors 参数的函数。

出于性能原因,VLFeat 可能使用整数描述符。使用整数的计算通常比使用 float 更快。但是,这可能会以精度为代价。尽管如此,在计算机视觉的情况下,较小的精度可能并不是那么重要。在 integer k-means algorithm 的描述中你甚至可以阅读“虽然这对某些应用程序有限制,但它适用于聚类图像描述符,通常不需要非常高的精度”。

关于 k-means 算法。整数描述符有一个版本(vl_ikmeans),浮点描述符有一个版本(vl_kmeans)]。对于 OpenCV,只需使用后者。

关于opencv - SIFT 描述符值 : OpenCV vs VLFeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41038881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com