这是一个使用Python编写的换脸软件,所提供的换脸功能包含以下两个场景:
将图像B上的人脸换成图像A上的人脸,生成换脸图片。
将视频B上的人脸换成图像A上的人脸,生成换脸视频。
整体上,程序由两个过程组成:人脸检测和提取、人脸转换,分别实现于文件detect.py和convert.py,两个阶段分别提供可选选项:包括图像变换的方法(2D变换和3D变换)和是否进行色彩调和。
在图形界面上(实现文件:gui.py),提供生成的图片、视频预览功能,生成的图像视频会自动保存到out文件夹。
关键算法
人脸检测与提取
keypoints_detection - 通过人脸五官68个关键点识别人脸集合,基于dlib.shape_predictor函数和数据集shape_predictor_68_face_landmarks.dat
face_selection - 选取指定人脸
人脸变换
face_swap - 人脸变换核心函数,步骤为:
仿射变换(2D/3D)
生成掩膜
颜色校正(选)
无缝接合
1