我目前正在用Java/JavaCV做人脸检测。到目前为止,我一直在试验代码。
我使用这个face 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是针对远离摄像头的人脸?我如何继续做这件事?
谢谢。
发布于 2014-04-15 20:09:38
如果一个人直视,他/她的眼睛应该是垂直的(如果他/她没有眼睛问题:P)。
这一理论表明,如果一个人直视的话,瞳孔和虹膜应该是圆形的,而不是椭圆形。请注意,我指的是瞳孔和虹膜的可见部分。
发布于 2014-07-23 18:14:56
大多数人脸检测库都是针对面对摄像头的人进行训练的,因为这是人脸识别的主要限制因素。这就是说,Haar cascade也可以被训练来检测侧面,甚至聚焦于眼睛和鼻子(即面部的一部分)。
我自己没有使用javaCV,但测试了openIMAJ (对我来说太棒了!)它可以重用openCV配置文件(据我所知)。在他们的人脸检测库的源代码中,您将找到用于轮廓和眼睛检测的模型。
https://stackoverflow.com/questions/23079977
复制相似问题