使用“可扩展的词汇树识别”实现图像匹配

时间:2011-04-17 15:54:58

标签: algorithm computer-vision sift

您是否知道David Nister和Henrik Stewenius提出的匹配图像方法的任何实现或改进,称为“Scalable Recognition with a Vocabulary Tree”?我正在尝试实现它,我无法理解算法的某些部分(更具体地说,计算得分)。

6 个答案:

答案 0 :(得分:3)

这是一个很好的词汇树实现 - libvot。它使用C ++ 11标准的多线程库来加速构建过程,因此运行速度非常快。

它使用三个步骤来构建词汇表树。第一步是使用筛选描述符构建kmeans树。第二步是使用您在第一步中构建的词汇表树构建图像数据库。第三步是针对图像数据库查询图像。倒置列表和L1距离测量等一些高级技术也反映在此存储库中。

答案 1 :(得分:2)

关于词汇树,我发现这篇论文(http://www.tango-controls.org/Members/srubio/MasterThesis-VocabularyTree-SergiRubio-2009.pdf)在C ++ / python中实现了它们。但是,我无法在任何地方找到代码,因此我联系了作者以获取代码,但直到此日期都没有成功。

此外,我发现了其他实现(http://www.inf.ethz.ch/personal/fraundof/page2.html),但我无法将其付诸实施。

你已经实现了吗?我想对图像识别做同样的事情,但这似乎是一项非常痛苦的任务。

最好的问候。

答案 2 :(得分:2)

Sergio Rubio在http://sourceforge.net/projects/vocabularytree/发布了使用词汇树进行图像分类的实现。我不得不重新编写他发布的大部分C代码,以使其在我的Windows系统上运行,但总体而言,它是实现原始论文中提出的想法的非常好的资源。

答案 3 :(得分:1)

最近我在C ++中发现了一个名为DBow的非自由非常棒的词汇表实现。

代码组织良好,有很多评论。

结帐处:http://webdiis.unizar.es/~dorian/index.php?p=31

在这里:http://webdiis.unizar.es/~dorian/index.php?p=32

答案 4 :(得分:0)

您想要寻找空间填充曲线或空间索引。 sfc将2d复杂度降低到1d复杂度,尽管它只是表面的重新排序。 sfc recursivley将表面细分为较小的图块并继续通过图块拾取近处的信息。它可以与四叉树进行比较。这对于比较图像非常有用,因为您可以通过图块进行比较。那么困难就是使瓷砖具有可比性。我相信DCT在这里很有用。你想寻找尼克的希尔伯特曲线四叉树空间索引博客。

答案 5 :(得分:0)

我相信Grauman和Darrell提​​出的Pyramid Match kernel method通常被认为更好。您可以获得C ++库实现here