您是否知道David Nister和Henrik Stewenius提出的匹配图像匹配方法的任何实现或改进,名为“Scalable Recognition with a Vocabulary Tree”?我试图实现它,并且我无法理解算法的某些部分(更具体地说,计算分数)。使用“可扩展识别与词汇树”进行图像匹配的实现
回答
这里有一个很好的词汇树实现 - libvot。它使用C++ 11标准多线程库来加速构建过程,因此运行速度非常快。
它使用三个步骤来建立一个词汇树。第一步是使用筛选描述符来构建kmeans树。第二步是使用您在第一步中创建的词汇树构建图像数据库。第三步是根据图像数据库查询图像。一些高级技术如倒排列表和L1距离度量也反映在这个存储库中。
你想寻找一个空间填充曲线或空间索引。 sfc将2D复杂性降低到1d复杂度,但它只是表面的重新排序。 sfc recursivley将表面细分为更小的图块并通过图块继续拾取附近的信息。它可以与四叉树比较。这可能是有用的比较图像,因为你比较近瓷砖。然后困难是使瓷砖可比。我相信DCT在这里很有用。你想寻找尼克的希尔伯特曲线四叉树空间索引博客。
我认为Grauman和Darrell提出的Pyramid Match kernel method通常被认为更好。您可以获得一个C++库实现here。
关于词汇树,我发现这篇论文(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。
该代码组织良好,并有很多意见。
- 1. android:使用opencv进行图像识别
- 2. 使用PHP进行图像识别
- 3. 指纹匹配/识别算法/实现
- 4. 在OpenCV中实现词汇树
- 5. PyAutoGUI图像识别 - 与像素颜色匹配
- 6. 使用Linq计算实体框架中的匹配词汇
- 7. ANTLR4词汇匹配开始行尾
- 8. 词汇组匹配文本
- 9. 使用Python OpenCV进行手写识别的ANN实现
- 10. 使用JAVACC识别扩展字符
- 11. 使用混合现实捕获(MRC)进行物体识别
- 12. 使用css实现量角器自动识别图像对象
- 13. 二进制图像扩展?
- 14. 如何使用单个适配器实现多级可扩展列表视图?
- 15. Netbeans - 如何扩展HTML词汇
- 16. 详细整体词汇识别算法
- 17. 如何使用图像处理识别Google地图图像中的树木?
- 18. 使用最近邻算法进行图像模式识别
- 19. 使用Harris算法进行图像识别功能
- 20. 在s390x上使用Tensorflow进行图像识别(教程示例)
- 21. 增强现实+ iPhone上的实时图像识别
- 22. asp.net可扩展图像
- 23. Android增强现实应用的图像识别
- 24. 使用SQL进行数据匹配并分配标识ID
- 25. 什么是词汇树,以及如何构建词汇树?
- 26. Neo4J/Cypher匹配选择的子树以识别有效结果
- 27. 你可以使用shell参数扩展匹配数字吗?
- 28. 如何将实体与LUIS中定义的单词列表进行匹配
- 29. SIFT匹配和识别?
- 30. 在使用通配符搜索进行搜索时获取文档中匹配的词汇
我不understad空间填充曲线如何与词汇树或问题中提及的算法的任何部分。你是否认为这是整个算法的替代?你能否详细说明一下? – cvlad 2011-04-17 16:35:07
是的,我建议这是一种替代方法,但我没有DCT的经验,但你可以谷歌这种方法我忘记了研究员。它已经投入生产。 – Bytemain 2011-04-18 12:03:58