python|python 视频ai换脸_Python实现AI换脸--Faceswap

"切勿滥用技术,切勿商用"
算法原理
Faceswap ,在 Encoder-Decoder 自编解码架构之上又引入 GAN技术,显著提升换脸效果
Encoder-Decoder 自编解码换脸:通过将任意扭曲的人脸进行还原,整个过程包含:
1.获取正常人脸照片
2.扭曲变换人脸照片
3. Encoder编码向量
4.Decoder解码向量
5.还原正常人脸照片
总体上,「Faceswap」换脸主要分为以下三个过程:人脸检测
特征提取
人脸转换
环境搭建
代码clone到本地
git clone deepfakes/faceswap
创建虚拟环境
conda create -n faceswap python=3.7
安装必要的库
pip install -r _requirements_base.txt
最新版本提示需要
python3.7
tensorflow-GPU=2.2.0
重新安装即可
以及CUDA等的安装踩坑记录网上搜索即可
"也可以用CPU版本体验"python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

环境搭建完成后启动GUI界面
python faceswap.py gui
首次启动会提示你选择使用 CPU或者是GPU,有GPU选择GPU
主要有四个功能:Extract:数据集制作,可以自动提取视频或图片中的人脸
Train:训练模型,有多种算法可供选择
【python|python 视频ai换脸_Python实现AI换脸--Faceswap】Convert:换脸,使用训练好的模型对图片或视频换脸
Tools:很多图像处理小工具,可以通过排序等筛选人脸python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

Input Dir: 对象视频文件
Output Dir: 提取视频中的人脸并保存到本文件夹
Alignments: 人脸对齐文件(自动生成,不需要追加)
设定完成后 执行 Extract 提取人脸图像,并生成人脸对齐文件python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

人脸提取完之后,需要使用人脸识别接口或者人工清晰一遍数据,将无用的数据删除。
删除图片之后,需要根据剩余的图片重新生成 alignments.fsa 文件。
这时候,就需要用到 Tools 里面的功能。
选择 Tools 标签下的 Sort 选项,Input 填写为刚刚处理完图片的文件夹,Output 填写新的文件夹,其余选项默认,点击 Sort 执行按钮,对所有图片进行重新排序。
图片名处理完了,再选择 Tools 标签下的 Alignments,job 选项 Remove-Faces
执行Alignmentspython|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

数据集 A处理完成 数据集B同理 ,数据集 A和 数据集 B 越多越好
模型训练
训练模型 选择数据集 A 和 数据集 B 的地址,以及两个数据集对应的人脸对齐文件。
最后指定一个模型保存地址
执行 Trainpython|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片
python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片
python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

训练生成的模型python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

最后执行Convert 转换python|python 视频ai换脸_Python实现AI换脸--Faceswap
文章图片

    推荐阅读