【发布时间】:2013-08-05 08:03:27
【问题描述】:
我正在做一个项目,我需要在非常混乱的视频中检测人脸(从以自我为中心的角度录制,所以你可以想象......)。面部的偏航角可以在 -90 到 +90 之间变化,俯仰角度几乎相同(嗯,由于人体的限制而稍微低一点..),也可能有一些滚动变化。
我花了很多时间寻找与姿势无关的人脸检测器。在我的项目中,我使用的是 OpenCV,但 OpenCV 人脸检测器甚至没有接近我需要的检测率。它在正面效果非常好,但在侧面效果几乎为零。使用在个人资料图像上训练的 haarcascade .xml 文件并没有真正的帮助。结合正面和轮廓级联会产生稍微更好的结果,但仍然不符合我的需要。
自巨大的计算(或时间)需求以来,训练我自己的 haarcascade 将是我最后的资源。
到目前为止,我要问的是有关此问题的任何帮助或建议。 我可以使用的面部检测器的要求是:
- 非常好的检测率。我不介意很高的误报率,因为在我的视频中使用一些时间一致性我可能能够摆脱其中的大多数
- 用 c++ 编写,或者可以在 c++ 应用程序中运行
现在实时不是问题,检测率是我现在关心的一切。
我已经看到很多论文实现了这些结果,但我找不到任何可以使用的代码。
衷心感谢您能够提供的任何帮助。
【问题讨论】:
-
要获得可靠的人脸识别结果,您不需要功能最强大的计算机以及经过巧妙设计的算法或经过大量训练的系统,而是图像中的额外维度。 3D 图片(如果可用)将解决该任务。
-
我实际上对人脸识别并不感兴趣。我现在只需要检测。我将使用检测到的面部进行一些面部姿势估计,使用两种不同的 SVM(一种用于偏航,一种用于俯仰)。我在头部姿势估计数据集上训练了这些 SVM,它产生了非常有趣的结果。由于真实环境中人头姿势的复杂性,我无法在“真实”视频中获得足够的检测。
标签: c++ opencv computer-vision face-detection