我目前正在使用 Java/JavaCV 进行人脸检测。 到目前为止,我一直在尝试代码。
我正在使用这个面部级联= 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 - 代表远离网络摄像头的人脸?我该如何继续执行此操作?
谢谢。
最佳答案
如果一个人直视,他/她的眼睛应该是垂直的(如果他/她没有眼睛问题:P)。
该理论表明,如果一个人直视,瞳孔和虹膜应该是圆形的而不是椭圆形。 请注意,我仅指瞳孔和虹膜的可见部分。
关于java - 检测正在看着网络摄像头的面孔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079977/