为了开发能够实时检测特定手部位置(或手部符号)的应用程序,我和我的团队在几个月前偶然发现了haar分类。我们认为这将是这项工作的理想工具。然而,在尝试创建自己的分类器时,我们遇到了困难(我们正在使用OpenCV)。它们在很大程度上没有捕获感兴趣的物体(见下面的第二个问题)。
我对这个问题有两个问题:
我们发现非常有用的一些消息来源是:
当然还有opencv级联培训页面。
我感谢你对此事的任何帮助。 非常感谢!
答案 0 :(得分:0)
首先是一个问题。您试图检测到的手势中有多少面内旋转?级联检测器不是旋转不变的。这意味着如果您的手势可以向左或向右倾斜超过大约10度,您将无法检测到它们。唯一的解决方案是旋转图像并再次尝试检测。
现在有些指示:
编辑: opencv_traincascade,取代haartraining支持HOG功能。或者,在Matlab的计算机视觉系统工具箱中有一个trainCascadeObjectDetector函数可以执行相同的操作并为您提供更好的界面。在一些基准测试中,LBP的准确度略低于哈尔,但是训练速度要快得多,并且记忆力也要少得多。
如果您在方向上有很多变化,那么您肯定需要更多数据。您还需要了解可能的旋转范围。你的标志可以颠倒吗?它们可以旋转90度吗?如果您的范围是30度,也许您可以尝试3次旋转图像,或者为每个标志训练3个不同的探测器。
此外,如果您使用Haar功能,您可以从启用45度功能中受益。我认为他们默认是关闭的。