2013-12-10 37 views
0

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

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

这种方法依赖于使用哈尔分类器(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)); 

如果没有检测到使用小eyepair,然后我回落到大eyepair具有相同detectMultiScale参数作为小eyepair。我正在检测整个相机图像。

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

回答

1

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

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

他们比哈尔级联更可靠。

+0

谢谢。你会如何建议应用这两个实现来检测活跃性? – jacob

+0

我刚刚发现这个其他职位,你作出回答我的问题: http://stackoverflow.com/questions/20386285/blink-detection-with-asm-co-ordinates – jacob

+0

谢谢。 STASM工作得很好。我编译的是作为iOS的静态库。 – jacob