【问题标题】:face detection and cropping人脸检测和裁剪
【发布时间】:2012-10-25 10:38:15
【问题描述】:

项目:人脸检测

说明:我想检测并裁剪图像中的人脸。图像是通过网络摄像头捕获的,每张图像只有一张脸。我使用了 OpenCV 人脸检测器,但我对裁剪不满意。因此,我开始使用 STASM (http://www.milbo.users.sonic.net/stasm/) 人脸界标检测器来裁剪图像。STASM 使用 OpenCV 人脸检测器在图像中查找人脸,而 STASM 在人脸中定位地标。在光线不好的情况下,来自 STASM 的裁剪图像效果不佳,因为它不能单独准确地检测面部。

1) 我想知道任何更好的人脸检测算法。我的主要目标是从图像中裁剪人脸。

2) 目前我正在使用 STASM 进行裁剪。在光线不好的情况下或在 一张图像,如果没有捕获整个或整个面部(前额到下巴),则 STASM 裁剪不可靠(输出将只有眼睛或嘴唇)。在我的应用程序中,如果 stasm 没有正确的输出,或者脸部没有被正确裁剪,那么我应该拒绝这些图像。怎么做?所以我打算通过找到眼睛来验证图像中的人脸。如果我的方法是正确的,如何从裁剪后的图像中检测眼睛?

【问题讨论】:

  • 裁剪人脸后的目标是什么?创建训练集?还是进行人脸识别?
  • 裁剪后,我用它来创建一个很好的人脸识别训练集。谢谢您的回复...

标签: machine-learning artificial-intelligence computer-vision face-detection face-recognition


【解决方案1】:

通过使用嵌套级联分类器检测面部的眼睛,我在我的一个项目中取得了不错的结果,就像在交付的示例中那样。但后来我使用了一个额外的技巧:我将 nestedCascade.detectMultiScale() 的 minNeighbors 参数调低为 0。

这意味着你会得到很多结果。可能会多次识别出一只眼睛。然后我检查结果集中在脸部左侧和右侧的位置。聚集点是实际的眼睛位置。

然后我旋转初始图像。旋转中心是我发现的面部中心,旋转角度是检测到的眼睛之间的角度。然后我对旋转后的图像进行另一次人脸检测,并确保在nestedCascade.detectMultiScale() 的参数中使用非常低的比例因子。

在大多数情况下,结果是完美归一化的面部图像。当然,成功仍然取决于你的闪电条件到底有多糟糕。

【讨论】:

    【解决方案2】:

    尝试使用 OpenCV 的眼睛检测器。并根据眼睛位置调整面部框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-01
      • 2011-04-27
      • 1970-01-01
      • 2011-11-14
      • 2014-05-30
      • 2016-07-03
      • 2019-02-21
      • 2014-04-28
      相关资源
      最近更新 更多