检测正在查看网络摄像头的面部

时间:2014-04-15 09:40:47

标签: java opencv javacv face-detection

我目前正在使用Java / JavaCV进行面部检测。 到目前为止,我一直在试验代码。

我正在使用这张脸cascade = haarcascade_frontalface_alt_tree.xml

我有以下代码用于检测网络摄像头中找到的最大面孔

CvSeq faces = cvHaarDetectObjects(img, classifier, storage, 1.1, 1,                           
                           CV_HAAR_DO_ROUGH_SEARCH|CV_HAAR_FIND_BIGGEST_OBJECT);

我的第一个问题是: 因为这只是检测到一张脸 - 网络摄像头中最大的脸 这是检测多个面孔的正确方法吗?

CvSeq faces = cvHaarDetectObjects(img, classifier, storage, 1.1, 1, CV_HAAR_DO_CANNY_PRUNING);

我的第二个问题是: 是否可以检测仅查看网络摄像头的面部?那些没有看到wbecam的人? 所以它会检测到面孔,但我想设置一些分数 - 所以让我们说1是面向正在观察网络摄像头的面部,2是面向远离网络摄像头的面部?我该如何继续这样做?

谢谢。

2 个答案:

答案 0 :(得分:0)

如果一个人直视,他/她的眼睛应该是垂直的(如果他/她没有眼睛问题:P)。

这个理论认为,瞳孔和虹膜应该是圆形而不是椭圆形,如果一个人直视。 请注意,我的意思是瞳孔和虹膜的可见部分。

答案 1 :(得分:0)

大多数面部检测库都是针对面向相机的人进行训练的,因为这是面部识别的主要限制因素。话虽这么说,哈尔级联也可以训练,以检测轮廓或甚至专注于眼睛和鼻子(即脸部的一部分)。

我自己没有使用javaCV,但是测试了openIMAJ(这对我来说很棒!),它可以重用openCV配置文件(据我所知)。在他们的人脸检测库的源头,你会找到配置文件和眼睛检测的模型。

相关问题