【发布时间】:2011-04-17 15:54:57
【问题描述】:
您知道 David Nister 和 Henrik Stewenius 提出的称为“Scalable Recognition with a Vocabulary Tree”的图像匹配方法的任何实现或改进吗?我正在尝试实现它,但我无法理解算法的某些部分(更具体地说,是计算分数)。
【问题讨论】:
标签: algorithm computer-vision sift
您知道 David Nister 和 Henrik Stewenius 提出的称为“Scalable Recognition with a Vocabulary Tree”的图像匹配方法的任何实现或改进吗?我正在尝试实现它,但我无法理解算法的某些部分(更具体地说,是计算分数)。
【问题讨论】:
标签: algorithm computer-vision sift
这是一个很好的词汇树实现 - libvot。它使用 C++11 标准多线程库来加速构建过程,因此运行速度非常快。
它使用三个步骤来构建词汇树。第一步是使用筛选描述符构建一个 kmeans 树。第二步是使用您在第一步中构建的词汇树来构建图像数据库。第三步是根据图像数据库查询图像。倒排列表和L1距离测量等一些先进技术也反映在这个存储库中。
【讨论】:
关于词汇树,我发现这篇论文 (http://www.tango-controls.org/Members/srubio/MasterThesis-VocabularyTree-SergiRubio-2009.pdf) 用 C++/python 实现了它们。但是,我在任何地方都找不到代码,所以我联系了作者获取代码,但直到现在都没有成功。
此外,我发现了这个其他实现 (http://www.inf.ethz.ch/personal/fraundof/page2.html),但是我无法将其投入使用。
你已经实现了吗?我想对图像识别做同样的事情,但这似乎是一项非常痛苦的任务。
最好的问候。
【讨论】:
Sergio Rubio 在http://sourceforge.net/projects/vocabularytree/ 上发布了使用词汇树进行图像分类的实现。我不得不重新编写他发布的大部分 C 代码才能使其在我的 Windows 系统上运行,但总的来说,它是实现原始论文中提出的想法的非常好的资源。
【讨论】:
最近我在 C++ 中发现了一个非常棒的非免费词汇树实现,名为 DBow。
代码组织得很好,有很多cmets。
【讨论】:
您想查找空间填充曲线或空间索引。 sfc 将 2d 复杂性降低到 1d 复杂性,尽管它只是表面的重新排序。 sfc recursivley 将表面细分为更小的瓷砖,并不断挑选附近瓷砖的信息。它可以与四叉树进行比较。这对于比较图像很有用,因为您可以在附近进行比较。困难在于使瓷砖具有可比性。我相信 DCT 在这里很有用。您想查找 Nick 的希尔伯特曲线四叉树空间索引博客。
【讨论】:
我相信 Grauman 和 Darrell 提出的Pyramid Match kernel method 通常被认为更好。你可以得到一个 C++ 库实现here。
【讨论】: