【发布时间】:2018-11-11 01:40:28
【问题描述】:
我的根本问题是我有一个 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) 我应该选择不使用眼对分类器的完全不同的方法吗?
【问题讨论】:
标签: opencv