从图像中检测并提取面部

Shi*_*shi 1 c++ opencv feature-extraction face-detection feature-detection

我一直在尝试执行以下操作 - 当用户在我的网络应用程序中上传图像时,我想在其中检测到他/她的脸并从中提取脸部(从额头到下巴和脸颊到脸颊).

  • 我尝试使用Haar Cascade进行OpenCV/C++人脸检测,但问题在于它给出了面部所在位置的概率,因为图像背景进入ROI内部甚至整个面部都没有进入ROI.我也想检测面部内的眼睛,并且在使用上述技术时,眼睛检测并不准确.

  • 我已经阅读了一种名为Active Appearance Model(AAM)的新技术.我在这里阅读的博客表明,这正是我想要的,但我对如何实现这一点感到很遗憾.

我的疑问是 -

  1. 使用AAM是人脸检测和人脸特征检测的好主意.
  2. 有没有其他技术可以做同样的事情.

任何这些的任何帮助非常感谢.

谢谢 !

Sha*_*hai 8

正如您所注意到的,OpenCV的人脸检测实现并不是最先进的.这是一个非常好的和强大的实现,但你可以做得更好.

最近,Zhu和Ramanan(CVPR 2012)在野外进行了人脸检测,姿态估计和地标定位,这被认为是近年来人脸检测的主要算法之一.
他们的算法能够检测正面和轮廓视图的面部,并识别检测到的面部上的关键点,例如眼睛的鼻子和嘴巴.

作者很友好地发布了他们的代码和学习模型,它是一个Matlab实现,但主要的计算是用C++完成的,所以制作一个独立的C++实现方法应该不会太难.