精炼哈尔检测

时间:2012-01-20 09:11:36

标签: c++ objective-c opencv object-detection haar-wavelet

我正在尝试使用OpenCV和Haar级联来制作手部检测程序。它工作得很好,但它非常生涩。因此,我问自己这是否是haar文件的麻烦太过“便宜”,或者是否有办法通过使用轮廓或特征检测(或可能是其他一些技术)来改进检测。

我想要执行的操作与此人脸检测相同,但对于手:Face Detection (see FaceOSC)

非常感谢。

编辑:这是我想做的事情:Hand extraction他似乎用轮廓检测​​来执行它,但是如何找到手?

2 个答案:

答案 0 :(得分:3)

The Hand Extraction video,你给出的链接,是基于肤色检测和凸壳发现。

1)将图像更改为YCrCb(或HSV)。

2)对图像进行阈值处理,使手变为白色,其他一切变为黑色。

3)去除噪音

4)找到手的中心(如果你愿意)。

5)使用凸包来找到最尖端的指尖。

您可以从paper获取完整的详细信息。

无论如何,不​​需要哈尔级联。

答案 1 :(得分:0)

显然,如果基于HAAR分类器的检测结果变成所谓的“生涩”,在我看来这意味着检测不稳定并跳过检测图像,那么问题在于分类器的质量< /强>

只要有足够的正/负样本,比方说5k / 5k,结果应该非常强大。根据我的经验,我使用了700个正面手势样本和1200个负面样本,结果似乎在一定程度上得到满足。但在我使用另一组8000个阳性样本和10200个包含不同特征的阴性样本后,结果甚至比前者更差。

因此,我建议您仔细重置训练样本,例如比率,内容特征和颜色。