想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(二)

第一篇:《简单介绍DeepFaceLab(DeepFake)的使用以及容易被忽略的事项》
第二篇:《继续聊聊DeepFaceLab(DeepFake)不断演进的2.0版本》
第三篇:《如何翻译DeepFaceLab(DeepFake)的交互式合成器》
第四篇:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(一)》
第五篇:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(二)》
第六篇:《友情提示DeepFaceLab(DeepFake)目前与RTX3080和3090的兼容问题》

一,新版2.0的发布(2020年8月2日)

随着作者小伙子伊佩罗夫的论文发表:《DeepFaceLab: A simple, flexible and extensible face swapping framework》,项目更新明显放缓,几个月只更新了一个整除的修正(/改为//,蛤?)。

目前整个效率和结果的准确性(真实性)相比我上次写的文章那个版本又上升了不少,当然主要是因为我很久没有关注,作者7月之前的版本更新还是挺快的。

我试了一下还是蛮不错的,因为训练用的时间不太长,例如下:

我老婆拯救世界第二季+四川话修改翻译,又又又重制版本:)

一起唱生日快乐歌吧!

扫描二维码关注公众号,回复: 13478129 查看本文章

二,Xseg

除了增加选项,提高分辨率,丰富模型以外。
最大的修改就是xseg,区别与以前的fanseg遮罩处理方式(2020年3月份就有了)。
大概意思就是,目标脸部有遮挡的时候,以前需要人工每一帧去画,避开遮挡物。
但现在只需要画一些关键帧,变化的帧,其它的交给机器学习。

比如你想把自己的脸换到某个视频的歌星身上,那段视频里他(她)唱歌时经常脸可识别但被麦克风档了一小部分。如果是以前的fanseg手动画,则需要画全部麦克风遮挡的帧(纳尼!),而现在只需要手动画一小部分不同类型的遮挡方式,其它的机器学习呗。

当然源可以和目标一样的处理,只不过何必呢——源脸是自己的,当然能找一套相对高质量各种角度的无遮挡素材。

主要命令就是下面这些(源和目标是一样的,我去掉了)

5.XSeg) data_dst mask - edit.bat
5.XSeg) data_dst mask - fetch.bat
5.XSeg) data_dst mask - remove.bat
5.XSeg) data_dst trained mask - apply.bat
5.XSeg) data_dst trained mask - remove.bat
5.XSeg) train.bat

2.1 编辑遮罩:5.XSeg) data_dst mask - edit.bat

这个脚本就是编辑目标脸部遮罩的,怎么用呢,我懒了直接翻译一下作者原话把,这一步需要稍微有点耐心,毕竟能力越强责任越大……啊不,画得越多质量越好……:

  1. 如果已打包需要先解压目标脸部集:5.2) data_dst util faceset unpack.bat
  2. 运行:5.XSeg) data_dst mask - edit.bat
  3. 阅读按钮上的工具提示(支持英 / 俄 / 中语言)
  4. 使用“包含”或“排除”多边形模式遮罩脸部。
  5. 重复编辑50/100张脸的遮罩,
    !!! 您不需要画每一帧的遮罩
    只有脸部明显不同的特征时才编辑,
    例如:
    睁开和闭上眼睛
    改变头部方向
    光线变化
    您画遮罩的面孔越多,最终获得的质量就越好
  6. 从左上方区域开始遮罩,然后沿顺时针方向移动。
  7. 对所有帧保持相同的屏蔽逻辑,例如:
    侧面的下颌线大致相同,其中下颌不可见
    相同的发际线
  8. 使用排除多边形模式掩盖障碍物(话筒,帽子)。。

编辑器就是下面这个界面:
每个按钮鼠标移上去都有中文解析,和PS的选取差不多。
右边三种颜色仅仅是为了方便查看,比如要是给环视的脸用红色显示遮罩,就是个大灾难啊……

呃,这例子里面没有麦克风……脑一下自己画掉它……
在这里插入图片描述
在这里插入图片描述

2.2 训练遮罩:5.XSeg) train.bat

继续机翻:

  1. 运行:5.XSeg) train.bat 开始训练遮罩的模型
  2. 检查“ XSeg dst面孔”的预览。
  3. 如果某些面孔的遮罩出现错误或小的扭曲,请重复以下步骤:
    运行上一步大的编辑器
    找到这些有问题的脸并重新画遮罩
    进一步训练或从头开始重新训练

PS:训练的时候好扭曲啊,这里我只是举个例子,不能再跑了,笔记本要炸了。。。
在这里插入图片描述
在这里插入图片描述
PS:训练完遮罩后,workspace/model/ 目录下就会有xseg的几个文件:

XSeg_256.npy
XSeg_256_opt.npy
XSeg_data.dat
XSeg_default_options.dat
XSeg_summary.txt

2.3 使用遮罩

在交互式合成器里面,选遮罩模式
这样就可以用学习到的遮罩了。
mask_mode: XSeg-dst

我记得之前好像说只能用整个脸的模式(Whole Face),
不过测试全脸(Full Face)也可以用,也许是版本更新了。

我测试的时候那些帧的cmd记录参数如下:
效果脑部,呃,我就不截图了。

MergerConfig 00001.jpg:
Mode: seamless
mask_mode: XSeg-dst
erode_mask_modifier: 45
blur_mask_modifier: 90
motion_blur_power: 0
output_face_scale: 0
color_transfer_mode: lct
sharpen_mode : gaussian
blursharpen_amount : 1
super_resolution_power: 0
image_denoise_power: 0
bicubic_degrade_power: 0
color_degrade_power: 20
================

2.4 其它脚本

还有几个脚本,有其它用途,
比如导出啊,应用到学习过程中,我也没用过,懒得测试和写了,有需求的可以自己研究一下。

三,其它注意事项

3.1 一定要降噪

从data_dst.mp4提取了目标帧后,一定要降噪。
即使用了合适的参数,学习了脸部小细节,但学习后的脸还是太平滑了。
如果背景帧有电影噪点而脸没有,就显得失真。

也就是:3) extract images from video data_dst FULL FPS.bat
之后要:3.optional) denoise data_dst images.bat

那么电影效果怎么恢复呢……
请自己用视频处理软件吧,AE,PR,Vegas……自己模拟个电影的噪点效果加上去就OK了。

3.2 重复利用你的模型

如果源是同一个人,那么训练结果(模型)是可以重复利用的,比从0开始训练可以减少特别多的时间。

假设你把自己的脸部换到了神奇女侠身上,已经训练了100W次,效果不错了。

现在你又想把自己的脸换到绯红女巫身上,那么请直接用神奇女侠那个100W次的模型,可能几分钟就能出比较初步的结果,几小时就完成了呢。如果你从0开始重新训练,可能又得好几天。

100W次只是比分,你可以继续训练300W,500W次。仅仅是时效比会越来越低而已。

这个居然忘了,从没说过……
相当于本身“预训练”的作用。

3.3 忘记quick96吧

之前我自以为quick96仅仅是分辨率低,但其实因为分辨率低,会导致模型学习出现偏差。比如闪烁,脸方向的小偏差,看起来会很失真的。

所以尽量还是用自己计算机能承受的较高的模型,参数和分辨率吧。

四,其它

我有个朋友,计算机配置很不错,2080TI级别的。
但并不是码农程序员,怎么才能给他讲清楚DeepFaceLab咋用呢……
我感觉教程够用,他还是不会,好苦恼。

猜你喜欢

转载自blog.csdn.net/ddrfan/article/details/109291453