如何面对齐和裁剪?

时间:2018-05-03 09:51:07

标签: python-3.x opencv

通常我会识别带有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中看到了代码,需要复杂的计算。

那么如何使用简单的方法对脸部进行分类并进行裁剪?

1 个答案:

答案 0 :(得分:2)

据Davis在文档中报道here,您可以使用get_face_chip - 如果您需要单个芯片 - 或get_face_chips - 多个芯片。更多信息herehere

示例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获取的图像。