java - 检测正在看着网络摄像头的面孔

标签 java opencv javacv face-detection

我目前正在使用 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/

相关文章:

java - 从 org.bytedeco.javacv.Frame 转换为 matlab 图像

java - IntelliJ 解决配置文件的依赖关系

java - 事件与引用共享

python - 从特征匹配估计基本矩阵或基本矩阵

opencv - 用于 RGB 颜色混合的 opencv 中的 3D 矩阵乘法

java - 如何在 java/javacv 中的图像上绘制检测到的关键点?

java - 无法从 javaCV FrameRecorder 类创建 java InputStream

java - 从 C 获取结构体(通过引用)

java - 在给定时间值中将小时与分钟分开

c++ - 使用 OSVR 将 Opencv Mat 转换为 opengl