Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 姿态无关的人脸检测_C++_Opencv_Computer Vision_Face Detection - Fatal编程技术网

C++ 姿态无关的人脸检测

C++ 姿态无关的人脸检测,c++,opencv,computer-vision,face-detection,C++,Opencv,Computer Vision,Face Detection,我正在做一个项目,我需要在非常混乱的视频中检测人脸(从以自我为中心的角度录制,所以你可以想象……)。面部可能有一个偏航角,在-90和+90之间变化,俯仰几乎相同的变化(好吧,由于人体约束,稍微低一点),可能也有一些滚动变化 我花了很多时间寻找一些独立于姿势的人脸检测器。在我的项目中,我使用的是OpenCV,但OpenCV人脸检测器甚至没有达到我需要的检测率。它在正面有很好的结果,但在轮廓面上几乎没有结果。使用基于配置文件图像的haarcascade.xml文件并没有真正的帮助。结合正面和侧面级联

我正在做一个项目,我需要在非常混乱的视频中检测人脸(从以自我为中心的角度录制,所以你可以想象……)。面部可能有一个偏航角,在-90和+90之间变化,俯仰几乎相同的变化(好吧,由于人体约束,稍微低一点),可能也有一些滚动变化

我花了很多时间寻找一些独立于姿势的人脸检测器。在我的项目中,我使用的是OpenCV,但OpenCV人脸检测器甚至没有达到我需要的检测率。它在正面有很好的结果,但在轮廓面上几乎没有结果。使用基于配置文件图像的haarcascade.xml文件并没有真正的帮助。结合正面和侧面级联可以产生稍微更好的结果,但仍然不接近我所需要的

训练我自己的haarcascade将是我的最后一个资源,因为巨大的计算(或时间)需求

到目前为止,我所要求的是关于这件事的任何帮助或建议。 我可以使用的人脸检测器的要求如下:

  • 非常好的检测率。我不介意有很高的误报率,因为在我的视频中使用一些时间一致性,我可能能够消除大多数错误
  • >强写> C++ +强,或在C++应用程序中工作
实时性现在还不是问题,检测率是我现在关心的一切

我已经看到很多论文取得了这些结果,但我找不到任何可以使用的代码


我真诚地感谢您能提供的任何帮助。

也许不是答案,但太长了,无法发表评论


您可以使用opencv_traincascade.exe来训练一个新的检测器,该检测器可以检测更广泛的姿势。这篇文章可能会有帮助。我已经通过使用feret数据集训练了一个在-50:+50偏航范围内灵敏的探测器。对于我的例子,我们不想检测纯粹的侧面,所以训练数据是相应准备的。由于feret已经提供了方便的姿势变化,因此可以训练一个接近您的规格的探测器。如果您使用lbp功能,时间不是问题,培训最多在4-5小时内完成,通过设置适当的参数和使用较少的培训数据(用于确定探测器是否将产生您期望的输出),培训速度更快(15-30分钟)

也许不是答案,但太长了,无法发表评论


您可以使用opencv_traincascade.exe来训练一个新的检测器,该检测器可以检测更广泛的姿势。这篇文章可能会有帮助。我已经通过使用feret数据集训练了一个在-50:+50偏航范围内灵敏的探测器。对于我的例子,我们不想检测纯粹的侧面,所以训练数据是相应准备的。由于feret已经提供了方便的姿势变化,因此可以训练一个接近您的规格的探测器。如果您使用lbp功能,时间不是问题,培训最多在4-5小时内完成,通过设置适当的参数和使用较少的培训数据(用于确定探测器是否将产生您期望的输出),培训速度更快(15-30分钟)

为了获得可靠的人脸识别结果,你不需要一台功能最强大的计算机,拥有精心设计的算法或经过训练的系统,而需要图像中的额外维度。3D图片(如果有的话)可以解决这个问题。我实际上对人脸识别不感兴趣。我现在就需要检测。我将使用两个不同的SVM(一个用于偏航,一个用于俯仰)使用检测到的人脸进行人脸姿势估计。我在头部姿势估计数据集上训练了这些支持向量机,结果非常有趣。由于现实环境中人头姿势的复杂性,我无法在“真实”视频上获得足够的检测。要获得可靠的人脸识别结果,你不需要一台功能强大、算法设计巧妙或训练有素的计算机,而是需要图像中的额外维度。3D图片(如果有的话)可以解决这个问题。我实际上对人脸识别不感兴趣。我现在就需要检测。我将使用两个不同的SVM(一个用于偏航,一个用于俯仰)使用检测到的人脸进行人脸姿势估计。我在头部姿势估计数据集上训练了这些支持向量机,结果非常有趣。由于现实环境中人头姿势的复杂性,我无法在“真实”视频上获得足够的检测。谢谢,我会再等一会儿,然后我想我必须训练自己的级联。看来这是最好的方法。谢谢,我会再等一会儿,然后我想我必须训练我自己的瀑布……看来这是最好的方法。