闭眼检测opencv c++



我需要分别检测闭上的眼睛和两只眼睛。这意味着我需要知道左眼是睁开的还是闭着的,右眼也是如此。

我尝试了几种方法。其中一种方法是分别用haarcascade_eye和haarcascade_eye_tree_eyeglasses检测眼睛,然后比较结果。如果两个人都察觉到,那就睁大眼睛,如果一个人察觉不到,那就闭上眼睛。这个技巧来自这个链接:

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

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

现在有人能帮我解决这个问题吗?至少我需要一种方法来判断其中一只眼睛是闭着的,无论哪一只都要准确地做到这一点。请帮助…

如果你不想训练自己的Haar级联来检测一只眼睛,你可以尝试更简单的技术,如瞳孔检测。如果你没有发现一个黑圈,眼睛就闭上了。如果你有一个较小的兴趣区域,这可能会很有效。另一种选择是眼睛区域的颜色直方图,这在打开和关闭状态下看起来可能非常不同。

如果你不能合理准确地预测图像中眼睛的位置,这些方法注定要失败,我认为你最好的机会是训练你自己的级联。

相关内容

  • 没有找到相关文章

最新更新