您是否知道David Nister和Henrik Stewenius提出的匹配图像方法的任何实现或改进,称为“Scalable Recognition with a Vocabulary Tree”?我正在尝试实现它,我无法理解算法的某些部分(更具体地说,计算得分)。
答案 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的非自由非常棒的词汇表实现。
代码组织良好,有很多评论。
答案 4 :(得分:0)
您想要寻找空间填充曲线或空间索引。 sfc将2d复杂度降低到1d复杂度,尽管它只是表面的重新排序。 sfc recursivley将表面细分为较小的图块并继续通过图块拾取近处的信息。它可以与四叉树进行比较。这对于比较图像非常有用,因为您可以通过图块进行比较。那么困难就是使瓷砖具有可比性。我相信DCT在这里很有用。你想寻找尼克的希尔伯特曲线四叉树空间索引博客。
答案 5 :(得分:0)
我相信Grauman和Darrell提出的Pyramid Match kernel method通常被认为更好。您可以获得C ++库实现here。