【问题标题】:object recognition performance not good物体识别性能不好
【发布时间】:2012-08-12 07:31:58
【问题描述】:

我正在尝试在 opencv 2.4.2 中使用 SURF、FERN、FREAK 等算法进行对象识别。

我正在使用未经修改的 opencv 示例中的程序 - find_obj.cpp, find_obj_ferns.cpp, freak_demo.cpp

我尝试更改算法的参数,但没有帮助。

我有我的训练图像、测试图像和 FREAK 识别结果here

如您所见,结果非常糟糕。

  • 未检测到训练图像之一的特征描述符 - image here
  • 在另一个对象边界之外检测到特征描述符 - image here

我有几个问题:

  1. 为什么这些算法适用于灰度图像?很明显,对于我上面的训练图像,如果包含 RGB,则可以轻松检测到对象。有没有考虑到这一点的技术。

  2. 有没有其他方法可以提高性能。我尝试摆弄效果不佳的功能参数。

【问题讨论】:

    标签: opencv computer-vision surf


    【解决方案1】:

    我在您的图像中观察到的第一件事是,对象是平面并且没有纹理差异...我的意思是您使用的所有特征检测器都是用于查找视图不变的角,这意味着这些是图像中的关键点它们具有独特的邻域和良好的 x 和 y 导数。我已经上传了我的分析……看图

    如何知道我说的是对的?

    只需转到您在对象上找到的关键点的描述符值并查看这些值,您会看到它们中的大多数都是零......因为描述符是对围绕角点的边缘变化的描述具体方向(有关详细信息,请参阅 surf 文档)。

    您要检测的物体看起来像一部手机,因此您只需将物体或手机反转并重复实验,您肯定会得到很好的结果...因为在正面通常物体具有更多的纹理,如开关、标志等。

    这是我上传的结果,

    【讨论】:

    • 感谢您的提示。我还尝试识别手机的正面,效果不佳(可能是由于您解释的bgground富含teture)。将尝试使用不同的背景。
    猜你喜欢
    • 2018-02-27
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多