闭眼检测opencv C ++

时间:2013-03-09 14:32:00

标签: opencv detection eye-detection

我需要分别检测闭眼和双眼。这意味着我需要判断左眼是打开还是闭合,右眼也是如此。

我尝试了几种方法。其中之一是分别用haarcascade_eye和haarcascade_eye_tree_eyeglasses检测眼睛,然后比较结果。如果两者都检测到眼睛,那么眼睛睁开,如果一个检测到而另一个不能,则闭眼。这个技巧来自这个链接:

http://tech.groups.yahoo.com/group/OpenCV/messages/87666?threaded=1&m=e&var=1&tidx=1

但它没有按预期工作。眼镜级联探测器不能像链接中提到的那样工作。我上面提到的那些haarcascade发现了很多接近的结果。有时它会给出正确的结果,有时它却不能。我不知道为什么。此外,不能用这种方法告诉哪只眼睛是开放的,哪只眼睛是闭着的。

现在有人可以帮我解决这个问题吗?至少我需要一种方法来判断其中一只眼睛是否闭合,无论哪一眼都需要准确地完成。请帮助.......

1 个答案:

答案 0 :(得分:1)

如果您想避免训练自己的Haar级联来检测单眼,您可以尝试更简单的技术,例如瞳孔检测。如果您未能检测到黑色圆圈,则眼睛会闭合。如果您有一个感兴趣的小区域,这可能非常有效。另一种选择是眼睛区域的颜色直方图,对于打开和关闭状态可能看起来非常不同。

如果你无法以合理的准确度预测图像中可以找到的眼睛,那么这些方法注定要失败,我认为你最好的训练就是训练自己的级联。