首页 > 解决方案 > 如何面对对齐和裁剪?

问题描述

通常我会用 dlib 识别人脸,然后用代码裁剪人脸:

创建人脸检测器

face_detector = dlib.get_frontal_face_detector()

运行检测器并获取图像上人脸的边界框。

detected_faces = face_detector(image, 1) face_frames = [(x.left(), x.top(), x.right(), x.bottom()) for x in detected_faces]

返回 face_frames

用dlib识别人脸似乎很简单,但是如何对齐图片中的人脸呢?

我在https://github.com/deepfakes/faceswap看到了代码,需要复杂的计算。

那么如何用简单的方法对脸部进行处理和裁剪呢?

标签: python-3.xopencv

解决方案


正如 Davis 在文档中报告那样,您可以使用 get_face_chip - 如果您需要单个芯片 - 或 get_face_chips - 多个芯片。更多信息在这里这里

示例 1:

images = dlib.get_face_chips(img, faces, size=320)

img 是 rgb 图像, faces 是 full_object_detections()。

示例 2:

image = dlib.get_face_chip(img, faces[0])

img 是 rgb 图像, faces[0] 是使用 shape_predictor 获得的第一张图像。


推荐阅读