2012-08-12 58 views
1

我想在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. 有没有其他的方法来提高性能。我试图摆弄功能参数,这些参数效果不佳。

回答

4

我在你的图像观察到的第一件事是,对象是飞机,没有质感差异存在......我的意思是你使用的所有功能的探测器可用于查找角落它们是视图不变,这意味着这些都是图像中的关键点具有独特的邻域和良好的x和y导数。我已经上传了我的分析...查看数字enter image description here

如何知道我在说什么是正确的?

只需转到您在对象上找到的关键点的描述符值并查看这些值,就会看到它们中的大部分都是零...因为描述符是描述角点周围边缘变化的描述一个特定的方向(详见冲浪文档)。

您试图检测到的对象看起来像是手机,所以您只需将对象或移动设备颠倒过来并重复实验即可获得满意效果......因为在正面上,对象通常具有更多纹理开关,徽标等。

这里是一个结果,我上传, enter image description here

+0

谢谢你的提示。我也尝试认识到手机的正面,这是不好的(可能是因为你解释过的丰富的手机)。将尝试不同的背景。 – 2012-08-12 20:54:34