【问题标题】:Cropping faces from an image从图像中裁剪人脸
【发布时间】:2018-03-07 04:42:03
【问题描述】:

我有一组人脸图像,每张图像中有 1 个或有时 2 个人脸。我想做的是在每张图像中找到人脸,然后裁剪它。 我已经测试了几种方法,这些方法是使用 openCV 在 python 中实现的,但结果并不是那么好。这些方法是:

1-Implementation 1

2-Implementation 2

我还测试了一个模型,但我不能发布两个以上的链接。 问题是这些基于 Haar-Feature 的算法对人脸大小不稳健,当我在靠近人脸的图像上尝试它们时,他们找不到任何人脸。 有人提到尝试基于深度学习的算法,但我找不到与我想做的相对应的算法。基本上,我想我需要一个预训练模型,它可以给我图像中人脸边界框的坐标,或者更好的是,一个预训练模型,它可以将裁剪后的人脸图像作为输出。

【问题讨论】:

  • 你需要了解OpenCV的人脸检测参数。 scaleFactor(此参数对性能影响很大) 和 minNeighbors 等

标签: opencv machine-learning computer-vision deep-learning face-detection


【解决方案1】:

您不需要机器学习算法,图形算法就足够了。例如 Snapchats 人脸识别算法的工作原理如下:

  1. 使用最常见面(“标准面”)的节点和边创建图形。

  2. 使图形变形/将节点重新协调到输入图像中的拟合像素

  3. 瞧,您在输入图像中识别出了人脸。

说起来容易,但写起来难。例如,我们在大学实施了 Dijkstra 算法,如果您需要,我可以将我的“图形”课程交给您。但我是用 C++ 写的。

使用这些图形算法,您可以更有效地裁剪人脸。

【讨论】:

  • 这和dlib的人脸和人脸地标检测器一样吗?如果你有 Graph 类 ob Github,它将帮助我们中的许多人。
猜你喜欢
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 2020-09-27
  • 2011-11-14
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多