需要帮助改善眼睛对检测

时间:2013-12-10 13:35:20

标签: opencv

我的根本问题是我有一个iOS(iPhone)应用程序,它使用前置摄像头(480x640)并需要检测面部活跃度。

我正在尝试使用眨眼检测来完成此操作。我不想依赖iOS CIDetector功能。所以我决定研究这种方法: http://www.technolabsz.com/2013/05/eye-blink-detection-using-opencv-in.html

这种方法依赖于使用Haar分类器(mcs_eyepair_big或mcs_eyepair_small)进行眼睛对检测。我遇到的第一个挑战是眼睛对检测是不可靠的。即使frontalface_alt工作得很好,它也不能始终如一地工作。我尝试了远离相机的良好照明,即使靠近相机也无法获得一致的检测。并且用眼镜不能使用PERIOD。

这是我的检测码:

small_eye_pair_cascade.detectMultiScale(mat, objects, 1.1, 0,
  CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH | CV_HAAR_SCALE_IMAGE | CV_HAAR_DO_CANNY_PRUNING,
  cv::Size(15, 75));

如果它没有使用小眼对检测到,那么我会使用与小眼对相同的detectMultiScale参数回落到大眼睛对。我正在检测整个相机图像。

有没有人有改善成功的建议?示例问题: 1)我应该使用不同的detectMultiScale参数吗? 2)将图像裁剪到面部边界的上半部分是否可以提高检测效果,还是仅仅提高性能? 3)我应该选择一种完全不同的方法而不使用眼睛分类器吗?

1 个答案:

答案 0 :(得分:1)

您可以使用面部标志检测器检测眼睛周围区域,例如flandmark检测器: http://cmp.felk.cvut.cz/~uricamic/flandmark/

或STASM: http://www.milbo.users.sonic.net/stasm/

它们比哈尔级联更可靠。