赞
踩
Faceswap利用深度学习算法和人脸识别技术,可以将一个人的面部表情、眼睛、嘴巴等特征从一张照片或视频中提取出来,并将其与另一个人的面部特征进行匹配。
Faceswap在 Encoder-Decoder自编解码架构之上又引入GAN技术,显著提升换脸效果,Encoder-Decoder自编解码换脸:通过将任意扭曲的人脸进行还原,整个过程包含:

总体上,Faceswap换脸主要分为以下三个过程:

Faceswap的应用非常广泛,既可以用于娱乐和艺术创作,也可以用于影视制作和特效产生。下面是Faceswap技术在不同领域的应用示例:
娱乐和艺术创作:Faceswap可以用于制作有趣的照片和视频,使用户能够将自己的脸部特征与名人、角色或动物等进行交换。这种技术可以用于制作搞笑的图片、制作创意艺术作品或生成有趣的社交媒体内容。
影视制作:Faceswap在影视制作中扮演着重要的角色。它可以用于数字特效和妆容效果,例如将一个演员的面部特征与替身演员进行交换,使得观众无法察觉到替身的存在。这种技术还可以用于恢复历史上的人物形象,使他们在电影中复活或重新出现。
隐私保护和安全:Faceswap技术也引发了隐私和安全方面的担忧。它可以被用于欺骗系统,例如通过伪造身份进行非法活动或诈骗。为了应对这些问题,研究人员和开发者也在努力提供相应的解决方案,例如开发检测和对抗Faceswap技术的方法。
conda环境准备详见:annoconda
- git clone https://github.com/deepfakes/faceswap.git
- cd faceswap
- conda create -n faceswap python=3.9
- conda activate faceswap
- python setup.py
- 选择的选项如下:
- Enable ROCm Support? [y/N] n
- Enable AMD Support? [y/N] n
- Enable Docker? [y/N] n
- Enable CUDA? [Y/n] y
- Continue? [y/N] y
也可以执行如下命令替代:
- Nvidia GPU: pip install -r ./requirements/requirements_nvidia.txt
- CPU : pip install -r ./requirements/requirements_cpu.txt
安装完成后,查看命令列表
- python faceswap.py -h
-
-
- 显示如下:
- {extract,train,convert,gui}
- extract Extract the faces from pictures or a video
- train Train a model for the two faces A and B
- convert Convert source pictures or video to a new one with the face swapped
- gui Launch the Faceswap Graphical User Interface
-
- optional arguments:
- -h, --help show this help message and exit
使用两个视频,名称分别为video1.mp4和video2.mp4,两个视频存放在根目录的src文件夹下,本次执行模型的目标是把video2.mp4中的人脸替换到video1.mp4视频中,命令执行如下:
预训练模型下载:下载地址
下载完成后,移动到faceswap根目录的.fs_cache/文件夹下
也可以选择让程序自动下载,但下载较慢,而且经常会断开
python faceswap.py extract -i src/video1.mp4 -o faces/f1/
python faceswap.py extract -i src/video2.mp4 -o faces/f2/
p1和p2文件夹中存放这多张携带人脸的图片,分别属于A用户和B用户,命令如下:
- python faceswap.py extract -i src/p1 -o faces/f1
-
- python faceswap.py extract -i src/p2 -o faces/f2
- ffmpeg -i src/video1.mp4 faces/f1/video1-%d.png
-
- ffmpeg -i src/video2.mp4 faces/f2/video2-%d.png
然后再通过(2)中的命令提取人脸数据
模型文件保存在根目录的f1_to_f2_model目录下
python faceswap.py train -A faces/f1 -B faces/f2 -m f1_to_f2_model/
训练完成后通过ll命令查看如下:
- 总用量 641232
- -rw-r--r-- 1 root root 328305920 6月 29 19:08 original.h5
- -rw-r--r-- 1 root root 328305920 6月 29 19:07 original.h5.bk
- drwxr-xr-x 3 root root 23 6月 29 17:49 original_logs
- -rw-r--r-- 1 root root 2757 6月 29 19:08 original_state.json
- -rw-r--r-- 1 root root 2756 6月 29 19:07 original_state.json.bk
(1)基于训练后的模型进行图像转换
python faceswap.py convert -i src/video1.mp4 -o converted/ -m f1_to_f2_model/
(2)将转换后的图像合成视频
ffmpeg -i video1-%6d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
其中fps与原视频中的fps相同,可以通ffmpeg -i video1.mp4查看

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。