免费的视频人脸检测算法



我正在开发一个应用程序,该应用程序需要使用放置在桌面高度(稍微偏向用户一侧)的网络摄像头来检测视频流中人脸的位置。

我已经实现了OpenCV的一个版本(使用他们的Haar检测),它运行良好……问题是,如果用户把头转向侧面(或抬头),它往往会失去面部的位置。

由于网络摄像头放在桌子上,它以30度的角度向上倾斜。OpenCV检测算法是使用全正面图像进行训练的,但不是像我使用的那种向上角度图像。我知道OpenCV也有一个可以使用的配置文件Haar文件。。但从我的研究来看,在轮廓检测方面的结果似乎喜忧参半。此外,我真的无法控制图像的背景或照明。。。因此这有时也影响OpenCV检测算法的功效。

所以,我想我想问的是……有没有其他人脸检测算法(希望是免费的,因为这是我大学研究的一部分)更适合在这种设置中检测人脸?看起来一些内置的网络摄像头(适用于Mac和PC)实际上有相当强大的算法来检测人脸(然后在人脸上叠加俗气的卡通图像)。。。但无论背景或光线如何,它们似乎都能很好地工作。你有什么建议吗?谢谢

出于研究目的,您可以在OpenCV中使用Haar级联,如果您想商业化,情况会有所不同(在这种情况下,您需要考虑LBP级联)。请务必在你的参考资料中引用维奥拉·琼斯的论文。

为了提高人脸检测的结果,你有几个路径:

  • 个体图像检测:你可以将旋转后的图像发送到正面级联,以说明一些可变性,而无需训练你自己的级联
  • 个人图像检测,但更多的工作):在更接近应用程序的操作条件下训练自己的级联
  • 视频流的稳定性(如网络摄像头公司):这是通过在人脸检测周围添加一层跟踪来实现的。根据您对该主题的了解,您可以使用自己的滤波器,享受OpenCV的粒子或卡尔曼滤波器的乐趣,在面部位置上实现简单的一阶或二阶低通滤波器,或在检测到的面部上实现PID跟踪器

在处理视频流时,这些跟踪过滤器中的任何一个都会大大增强您的结果。

使用CLM框架进行精确的实时人脸检测和人脸地标检测。运行中的系统示例:http://youtu.be/V7rV0uy7heQ

你可能会发现它很有用。

最新更新