【问题标题】:Open Source alternatives to SURF/SIFT [closed]SURF/SIFT 的开源替代品 [关闭]
【发布时间】:2013-06-21 09:51:50
【问题描述】:

我一直在寻找关键点检测器 + 描述符提取器的一些高效、缩放/旋转不变且无专利的组合,但我测试过的所有结果都非常糟糕。我尝试按照here 的推荐使用 Brisk 和 Freak,但它们在检测物体时给了我同样糟糕的结果。 (即:错误图像的内点或良好匹配比正确图像更多。)

是否有人设法通过开源组合进行可用对象检测? 我很感兴趣,因为我想知道是我未能正确过滤结果还是因为生成的数据有问题。

【问题讨论】:

    标签: c++ opencv open-source ubuntu-12.04 image-recognition


    【解决方案1】:

    您提到您已经尝试过 FREAK 和 BRISK,它们都报告了与 SIFT 和 SURF 相当的结果。另一个较新的选项是称为KAZE 的描述符。

    该链接提供了一个开源实现,它旨在成为即将发布的 OpenCV 版本。

    【讨论】:

    • 也许是因为我是这方面的新手,但我没有发现结果具有可比性,可能是因为: 1. 使用 Surf 我可以使用 FlannBasedMatcher.knnMatch 然后应用比较算法将 good_matches 与其余部分分开。最后,使用 good_matches().size 我在检测对象时得到了相当好的结果。 2. 我不能用 Freak 或 Brisk 做到这一点(Flann 上的 LSHindex 问题、BruteforceMatcher.knnMatch 结果不同等)无论如何,我不确定我解决问题的方法是否最合适......
    • 感谢您的链接,我会在稍微澄清一下我的想法后尝试一下:)
    • 您是对的,您不能将 OpenCV 的标准 knn 架构用于二进制描述符,因为这些完全依赖于浮点值的欧几里德距离。在比较二进制描述符的情况下,这没有任何意义。 k-nearest-neighbours 是一种经过充分研究的算法,并且可以使用其他实现来允许您使用汉明距离作为距离度量。这将为您提供与 FREAK 或 BRISK 更好的匹配结果。祝你好运!
    • 感谢您的建议!由于可能产生的复杂性,我没有想过使用任何替代 OpenCV 的方法,但这是值得的,我会尝试去做。 (我已经尝试过这段代码 link 试图创建一个 Flann LSH 索引,但我无法让它工作)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多