为了开发能够实时检测特定手部位置(或手部符号)的应用程序,我和我的团队几个月前偶然发现了haar分类。我们认为这将是理想的工作工具。但是,在尝试创建自己的分类器时遇到了困难(我们正在使用OpenCV)。他们没有很大一部分时间捕获感兴趣的对象(请参阅下面的第二个问题)。
关于这个问题,我有两个问题:
我们发现非常有用的一些资源是:
当然还有opencv级联培训页面。
感谢您对此事的帮助。
非常感谢!
最佳答案
首先是一个问题。您要检测的手势有多少平面内旋转?级联检测器不是旋转不变的。这意味着,如果您的手势可以向左或向右倾斜超过10度,则您将无法检测到它们。唯一的解决方案是旋转图像,然后尝试再次检测。
现在一些指针:
编辑: opencv_traincascade,它代替了haartraining支持HOG功能。另外,在Matlab的计算机视觉系统工具箱中有一个trainCascadeObjectDetector函数,该函数执行相同的操作并为您提供更好的界面。在某些基准测试中,LBP的准确性略低于Haar,但训练起来要快得多,占用的内存也少得多。
如果您在方向上有很多变化,则肯定需要更多数据。您还需要了解可能的旋转范围。您的迹象可以颠倒吗?它们可以旋转90度吗?如果您的范围是30度,也许您可以尝试旋转图像3次,或者为每个信号训练3个不同的探测器。
另外,如果使用Haar功能,则可以从启用45度功能中受益。我认为它们默认是关闭的。
关于opencv - 缺少自定义级联分类器的检测频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21227067/