您是否知道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. 使用CIDetector進行圖像識別iPhone
- 3. 使用PHP進行圖像識別
- 4. 指紋匹配/識別算法/實現
- 5. 在OpenCV中實現詞彙樹
- 6. PyAutoGUI圖像識別 - 與像素顏色匹配
- 7. 在Android中使用SURF與OpenCV進行圖像識別
- 8. 使用Linq計算實體框架中的匹配詞彙
- 9. 使用模板匹配進行人類識別
- 10. ANTLR4詞彙匹配開始行尾
- 11. 使用FLANN匹配從OpenCV SIFT列表中識別圖像
- 12. 詞彙組匹配文本
- 13. 使用Python OpenCV進行手寫識別的ANN實現
- 14. Android:可擴展列表視圖實現
- 15. 使用JAVACC識別擴展字符
- 16. 識別英語中的道德詞彙
- 17. 如何使用MATLAB將單個圖像與多個圖像進行匹配?
- 18. 使用混合現實捕獲(MRC)進行物體識別
- 19. 使用css實現量角器自動識別圖像對象
- 20. 如何使用圖像在Java中實現人臉識別?
- 21. 二進制圖像擴展?
- 22. 如何使用單個適配器實現多級可擴展列表視圖?
- 23. Netbeans - 如何擴展HTML詞彙
- 24. 詳細整體詞彙識別算法
- 25. 使用Python匹配拆分RAR擴展
- 26. 錯誤的行號與多行grep -P [Perl擴展名]匹配
- 27. showdown.js擴展:匹配多字擴展
- 28. 如何使用圖像處理識別Google地圖圖像中的樹木?
- 29. 使用Harris算法進行圖像識別功能
- 30. 在s390x上使用Tensorflow進行圖像識別(教程示例)
我不understad空間填充曲線如何與詞彙樹或問題中提及的算法的任何部分。你是否認爲這是整個算法的替代?你能否詳細說明一下? – cvlad 2011-04-17 16:35:07
是的,我建議這是一種替代方法,但我沒有DCT的經驗,但你可以谷歌這種方法我忘記了研究員。它已經投入生產。 – Bytemain 2011-04-18 12:03:58