python视频教程栏目介绍DeepFakes。
目标
之前没碰过DeepFakes,突然想发B站视频玩儿一下。试了试还挺麻烦的,这里记录一下自己踩的坑。
本文的目标就是将The Singing Trump
的视频换成我们的川建国同志。
最后效果:
视频链接:https://www.bilibili.com/video/BV12p4y1k7E8/
环境说明
本文尝试的环境为linux服务器的环境,因为跑得比较快吧。
Python环境:Anoconda python3.7版本
GPU:K80, 12G显存
DeepFake版
本文来源gao!daima.com搞$代!码网
本:2.0
其他工具:ffmpeg
素材准备
首先需要准备一个或者多个The Singing Trump
的视频,以及川建国同志的视频。用作换脸素材。
视频切分
首先通过ffmpeg将视频素材切分成多个图片。
mkdir output ffmpeg -i 你的视频.mp4 -r 2 output/video-frame-t-%d.png复制代码
这里视频不一定要mp4,其他格式也行,然后 -r 2
表示是2帧,也就是每秒钟采集两张图片,各位可以按照自己的视频尝试。 最后是输出到output文件夹里面,前缀随便定义就好了,名字也不是关键。
这里最好多找几个视频,因为deepfake会提示要保证人脸个数大于200张才会比较好,我这里分别准备了3个视频,一共6个视频。
ffmpeg -i sing_trump1.mp4 -r 2 sing_trump_output/st1-%d.png ffmpeg -i sing_trump2.flv -r 2 sing_trump_output/st2-%d.png ffmpeg -i sing_trump3.mp4 -r 2 sing_trump_output/st3-%d.png复制代码
ffmpeg -i trump1.webm -r 2 trump_output/t1-%d.png ffmpeg -i trump2.mp4 -r 2 trump_output/t2-%d.png ffmpeg -i trump3.mp4 -r 2 trump_output/t3-%d.png复制代码
弄完了还挺大,乱七八糟加起来3.7个G。
clone代码+装依赖
这里没啥可说的,从github上下代码。
git clone https://github.com/deepfakes/faceswap.git复制代码
然后根据自己的实际情况装环境,我这里是现在PC上装cpu这个,然后在服务器上装nvidia。
抽取脸部
接下来将所有的脸部抽出来。
python3 faceswap.py extract -i trump_output -o trump_output_face python3 faceswap.py extract -i sing_trump_output -o sing_trump_output_face复制代码
这里抽完了脸就是这样了。
筛选脸部
接下来需要手工把我们不需要的脸都删掉。