1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 人工智能AI > 正文

人工智能AI

AI换脸:faceswap操作教程

1987web2023-08-11人工智能AI234

https://github.com/deepfakes/faceswap

FaceSwap是一种利用深度学习来识别和交换图片和视频中的人脸的工具。

1.安装

1.1 安装前提

该过程所进行的计算类型非常适合图形卡,而不是常规处理器。你需要在桌面或支持服务器的GPU上运行训练过程。在你的CPU上运行它意味着训练你的模型可能需要数周时间,而在GPU上则需要数小时

1.1.1 硬件要求

您至少需要满足以下一项:

  • 性能较好的CPU
  • 强大的GPU:
    • 目前,Nvidia GPU完全受支持。AMD图形卡部分通过plaidML支持。
    • 如果使用Nvidia GPU,则至少需要支持CUDA计算能力3.5。要查看您的GPU支持的版本,请参考以下列表:https://developer.nvidia.com/cuda-gpus
    • 足够的耐心。

1.1.2 支持的操作系统

Windows 10 Windows 7和8。Windows有一个安装程序见:https://github.com/deepfakes/faceswap/releases

Linux大多数基于Ubuntu/Debian或CentOS的Linux发行版都可以使用。有一个Linux安装脚本见:https://github.com/deepfakes/faceswap/releases

macOS对GPU加速的原生 Apple Silicon处理的实验支持(例如苹果M1芯片)。基于Intel的macOS系统应该可以工作,但您需要遵循手动安装说明。

所有操作系统必须为64位才能运行Tensorflow

1.2 安装包安装

https://github.com/deepfakes/faceswap/releases

1.3 手动安装

安装前提

Anaconda:

从以下位置下载并安装最新的Python 3 Anaconda:

https://anaconda.com/download/

Git:

下载并安装Git for Windows:

https://git-scm.com/download/win

设置anaconda虚拟环境

命令行方式安装anaconda虚拟环境:

condacreate-nfaceswappython=3.8.3

激活:

condaactivatefaceswap

下载代码:git clone --depth 1https://github.com/deepfakes/faceswap.git

安装tkinter(GUI所需):conda install tk

安装requirements:

  • 对于Nvidia GPU用户:pip3 install -r requirements_nvidia.txt
  • 对于AMD GPU用户:pip3 install -r requirements_amd.txt
  • 对于CPU用户:pip3 install -r requirements_cpu.txt

运行:

cd faceswap 
    运行命令 python faceswap.py -h或 python faceswap.py gui 启动gui

1.4 macOS (Apple Silicon) 安装指南

OS

macOS 12.0+

XCode工具

xcode-select --install

XQuartz

下载并安装:https://xquartz.org/

Conda

下载并安装最新的conda env,网址为:https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh

$ chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh 
    $ sh ~/Downloads/Miniforge3-MacOSX-arm64.sh 
    $ source ~/miniforge3/bin/activate

环境设置

下载代码 git clone --depth 1https://github.com/deepfakes/faceswap.git

cd faceswap 
    $ conda deactivate 
    $ conda env create -f conda-environment-apple-silicon.yml 
    $ conda activate faceswap

运行

python faceswap.py gui

2. 架构

使用faceswap AI换脸有如下即可步骤:

  • 收集照片和/或视频
  • 从原始照片中提取人脸
  • 在从照片/视频中提取的人脸上训练模型
  • 使用模型转换源

2.1 抽取

2.1.1 命令行抽取

运行 python3 faceswap.py extract

这将从src文件夹中抽取照片,并将人脸提取到extract文件夹中。

To extract trump from photos in a folder:python faceswap.py extract -i ~/faceswap/src/trump -o ~/faceswap/faces/trumpTo extract trump from a video file:python faceswap.py extract -i ~/faceswap/src/trump.mp4 -o ~/faceswap/faces/trumpTo extract cage from photos in a folder:python faceswap.py extract -i ~/faceswap/src/cage -o ~/faceswap/faces/cageTo extract cage from a video file:python faceswap.py extract -i ~/faceswap/src/cage.mp4 -o ~/faceswap/faces/cage

2.1.2 GUI 方式抽取

python3 faceswap.py gui

2.2 训练

2.2.1 命令行方式训练

运行 python faceswap.py train

这将从包含两个人脸的照片的两个文件夹中提取照片,并训练模型,然后保存在models文件夹中。

python3 faceswap.py train -A ~/faceswap/faces/trump -B ~/faceswap/faces/cage -m ~/faceswap/trump_cage_model/ 
 or -p to show a preview 
python3 faceswap.py train -A ~/faceswap/faces/trump -B ~/faceswap/faces/cage -m ~/faceswap/trump_cage_model/ -p

2.2.2 GUI 方式训练

2.3 转换

2.3.1 命令行方式转换

这将从original文件夹中提取照片,并将新面孔应用到modified的文件夹中。

python faceswap.py convert -i ~/faceswap/src/trump/ -o ~/faceswap/converted/ -m ~/faceswap/trump_cage_model/

2.3.2 GUI方式转换

2.4 ffmpeg方式处理视频、图像

https://ffmpeg.org/

可以使用ffmpeg将视频分割为单独的帧。下面是一个将视频处理为独立帧的示例命令。

ffmpeg -i /path/to/my/video.mp4 /path/to/output/video-frame-%d.png

如果使用ffmpeg分割视频,并将其用作交换人脸的目标,则可以再次合并这些帧。下面的命令再次将png帧缝合回单个视频。

ffmpeg -i video-frame-%0d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4