github上faceswap项目的使用

时间:2024-02-21 11:40:49

github地址:https://github.com/deepfakes/faceswap

 

首先要根据他的要求进行安装,这里注意新建一个conda的虚拟环境,在虚拟环境中安装运行所需要的包,避免后面安装包冲突的问题

 

面部提取,这里遇到一个问题,提示cuda和显卡版本不兼容。检查了nvidia-smi中显示的硬件版本,以及conda list中cuda和cudnn的版本,和nvidia官网https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html上列出的对应版本列表:

 

 发现确实是不兼容(https://zhuanlan.zhihu.com/p/64376059),现有的cuda和cudnn版本较高,于是先把现有的版本卸载掉(这里卸载的是虚拟环境中的包),conda remove --name faceswap cudnn,conda remove --name faceswap cudatoolkit,然后再安装对应的版本conda install cudatoolkit=9.2, conda install cudnn。再运行程序发现tensorflow也被卸载掉了,再安装tensorflow:conda install tensorflow。最后可以跑通检测脸部区域的程序。

 

训练网络

训练一开始显示缺少alignments.fsa文件。这是在上一步提取的过程中会自动保存在输入文件夹中的。在这边要在运行代码时加上参数-ala 地址 和-alb 地址,然后就可以,但是运行中发现并没有用到GPU?暂时不清楚怎么回事。

 

转换图片

先找一个视频,然后用ffmpeg的命令:ffmpeg -i /path/to/my/video.mp4 /path/to/output/video-frame-%d.png

把视频每一帧提取出来

然后用之前提取人脸区域的步骤提取人脸区域,这一步主要是为了获得一个文件alignments.fsa(记录每一张图片中要转换的人脸区域)

接着用python faceswap.py convert -i ~/faceswap/src/trump/ -o ~/faceswap/converted/ -m ~/faceswap/trump_cage_model/ -al alignments.fsa路径   进行转换。

最后再用ffmpeg命令将所有图片转换成视频:ffmpeg -i video-frame-%d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4