deepfakes/faceswap gui详细使用教程(Extract/提取篇)

in Archives with 0 comment

本教程基于faceswap gui,对于Windows和Ubuntu平台都是适用的。

在本文中,我们将详细介绍faceswap extract的工作流程。

D9提供用于演示的AI训练素材资源包下载:

faceswap人脸图片素材包

为什么需要Extract?

faceswap的Extract模块主要包含3个功能:

人脸识别:在图片或视频的图像帧中找出人脸

人脸对齐:在识别到的人脸上找到“地标”(共68个特征点),从而确定人脸的方向

生成遮罩(可选项):遮罩可以突出人脸部分,遮罩外的像素将被认为是背景或障碍物

人脸识别的68个特征点 .png

通过faceswap的extract模块我们可以得到以下2类文件:

1、从素材源中提取出的一系列人脸图片

主要用于Train模块以进行后续的模型训练;

2、对齐文件

可用于Train模块后续的模型训练(但非必须),它包含了可能会被用到的遮罩信息,此外,当Train模块中勾选“Warp to Landmarks”时,它可以提供人脸“地标”信息;

对于Convert模块来说,虽然对齐文件不是必不可少的,但它会极大的影响最终换脸的实际效果,除了包含可能会被用到的遮罩信息以外,它更重要的作用是告诉Convert模块原始图片或原始视频帧中需要被“换脸”的人脸位置。

Extract/提取

Data参数设置

faceswap extract模块data参数设置.jpg

在这里我们可以定义输入/输出路径

Input Dir:

这里我们可以选择一个视频文件,也可以选择一个包含一系列图片的文件夹,作为Extract的素材源

Output Dir:

这里我们可以选择一个文件夹,作为提取出的人脸图片的存放路径

Alignments:

这里留空即可,faceswap默认会把对齐文件输出到上面的“Input Dir”文件夹。

Plugins参数设置

faceswap extract模块plugins参数设置.jpg

faceswap Extract模块的三个功能可由不同的插件实现,不同插件效果会有一定的差别。

对于“Detector”和“Aligner

faceswap默认使用“Cv2-Dnn”插件,我们推荐选择“S3Fd”和“Fan”插件。

对于“Masker

faceswap默认使用“Extended”插件,我们推荐选择“VGG-Obstructed”插件。

若要了解更多Masker插件的详细信息,请参考:

deepfakes/faceswap Masker(遮罩生成)插件对比

对于“Normalization

faceswap默认选择的是“None”,我们推荐选择“hist”插件,对于某些照明条件不佳的素材源,它可以更好的查找到人脸,虽然影响了提取的速度,但我们可以获得质量更好的对齐文件。

对于“Rotate Images

这里留空即可,它主要用于在“CV2-Dnn”插件工作时,帮助旋转某些图片的角度,而像我们推荐的“S3Fd”插件,可以自动兼容任意角度的图片。

Face Processing参数设置

faceswap extract模块face processing参数设置.jpg

这里提供了一些过滤参数,用来剔除我们不想要的人脸图片,推荐将“Min Size”设为20,其余保留默认。

上述Min Size与素材源中的人脸尺寸有关,它可以过滤掉一些因尺寸太小而不可能是人脸、或就算是人脸但因为尺寸太小我们不想要的素材。

注意:如果原始素材的分辨率较低,Min Size设置过高可能无法提取出结果。

而Nfilter、Filter和Ref Threshold主要用于人脸提取后的二次筛选,这项工作由人来操作faceswap自带的工具去批量处理要比直接交给机器更为合适。关于人脸提取后的筛选方法,请参考:

如何使用faceswap自带的Sort和Alignments工具对Extract结果进行筛选处理

Output参数设置

对于“Extract Every N

每隔多少帧进行一次提取,主要针对视频素材源;

如果仅用于Convert,那么这里推荐设置为:1;

如果仅用于Train,那么这里可以设置稍大一些,以免出现太多的重复人脸图像,就25fps的视频来说,合理的设置值为12~25;

如果既用于Convert又用于Train,那么推荐设置为:1,但更推荐分别进行Extract。

对于“Size

后续的Train模块中不同训练算法对输入人脸的像素尺寸有不同设置,你先可以阅读下面的教程:

deepfakes/faceswap Train(训练)插件对比及配置优化

然后再做选择,也可以保持默认值:256,但没有必要设置为大于256的数值。

注意:不要设置小于所选Extract插件支持的最小像素尺寸,否则虽然能提取出设定尺寸的人脸图片,但对应的对齐文件无法正常使用。另外,提取出的尺寸大于训练插件的输入像素尺寸,并不影响后续的训练。

对于“Save interval

由于整个提取过程并不像训练过程那样需要花费数天甚至数周的时间,因此不是十分有必要在提取过程中保存对齐文件,这里推荐保留默认值0,也就是关闭Save interval。

对于“Debug Landmarks

这是一个开发人员调试选项,保持默认,不要勾选,即可。

Settings参数设置

勾选“Skip Existing”和“Skip Existing Faces”可以跳过对齐文件中已有的信息,上面已经提到过提取过程耗时并不长,我们没有必要分多次来进行提取。

这里保持默认,不要勾选,即可。

执行Extract/提取

配置完上述参数以后,点击最下方的“Extract”按钮,faceswap将开始人脸提取。

faceswap extract模块preview.jpg

faceswap Extract模块首次运行需要从github上下载一些东西,国内机器此时可以挂全局代理提高一下效率。

一般来说,提取结果里难免会有一些机器误识别或非目标人物的其他人脸,因此需要人工二次筛选,请参考:

如何使用faceswap自带的Sort和Alignments工具对Extract结果进行筛选处理

注意事项

在Ubuntu上如何解压加密的.rar文件

D9提供的演示训练素材包为rar加密压缩,在Ubuntu系统下,你可能需要一个叫做P7Zip的软件~

CUDNN_STATUS_INTERNAL_ERROR解决

GPU用户执行Extract时,当显存不足时,会报错“Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR”。此时可以通过顶部的菜单设置Extract模块全局参数,把“Allow Growth”开启。

更多相关教程:

deepfakes/faceswap gui详细使用教程(Training/训练篇)

deepfakes/faceswap gui详细使用教程(Convert/转换篇)

Comments are closed.