通过之前的几篇文章,你对换脸软件的使用应该有了一个大致的了解,也能换出一个视频来了。
此时,你可能会产生好多疑问,比如每个环节点点到底是什么意思,那些黑漆漆屏幕输出的又是什么内容,我换脸效果这么差,该如何提升?等等,好奇宝宝已上线,不搞明白睡不着。
接下来,我就把每个环节展开说一说。本篇文章主要说“人脸提取部分”。
开始之前先看两个目录。
DeepFaceLab 更目录如下。
workspace工作目录如下
1) clear workspace.bat (清空项目)
这是一个用来初始化项目目录的文件,由于软件本身自带了一个workspace,所以你第一次使用的时候可点,可不点。点了之后,一个回车,界面如下。
2) extract PNG from video data_src.bat(视频转图片)
双击这个文件之后程序就开始运行,会出现一个提示。
Enter FPS ( ?:help skip:fullfps ) :
此时你可以直接回车,这样转换出的图片最多,你也可以输入一个20以内的数字,比如10,这样图片就会少一点,设置5 也可以。输入数字后回车即可。
注意:新版本多了一个jpg或png的选项。jpg会快很多,文件下小很多,png嘛图片信息会保存更多。
运行结束之后出现Done Press any key to continue。 此时在workspace\data_src目录中会出现好多图片,这些图片就是把视频一帧帧分解成图片了。
3.2) extract PNG from video data_dst FULL FPS.bat(视频转图片)
这一步和2)的原力是一样的,只是这次操作的视频是workspace\data_dst.mp4,而且默认是全帧率转换,转换完之后workspace\data_dst目录下面会出现很多图片。
4) data_src extract faces DLIB all GPU debug.bat(切脸)
这一步的目的是,把图片中的人脸提取出来。双击后自动运行,运行过程分三步走,不需要人为干预。
结束后会显示Images found 图片数量,Faces detected 检测到的人脸数量。
运行结束后,提取到人脸保存在workspace\data_src\aligned 目录。
以4开头的文件非常多,但是并不想每个都点,主要包括了三个提取器DLIB、MT、S3FD,你只需要任选一个即可。差别主要是提取脸部的时间和效果有细微差别,S3FD是新添加的,据说性能比较好。注意:新版本已经没有DLIB可以使用MT或者S3FD.
4.1) data_src check result.bat (检查提取效果)
点击这个之后,自动打开一个看图软件,会帮你自动定位到workspace\data_src\aligned目录,在这里你可以把不清晰的,有遮挡,或者误提取的图片删除,留下清晰的高质量图片,这个会让你的模型质量更高,转换之后的效果更好。
4.2.1) data_src sort by blur.bat(排序)
4.2开头的都是排序工具,根据不同的特性进行排序,比如blur 只是更具清晰度来排序,这个你可以快速找到不清晰的图片删除,还有similar histogram根据相似度排序, face pitch 脸的俯仰,face yaw脸的左右偏移。 基本上只要用到这,排序的目的是去除劣质图片,筛选出优质图片。
5) data_dst extract faces DLIB all GPU .bat (提取脸部)
第五部和第四部的功能是一样的,只是一个提取src的脸,一个提取dst 的脸。与第四步不同是,添加了一个手动提取脸部的工具MANUAL RE-EXTRACT DELETED RESULTS DEBUG,还有默认生成aligned_debug。
ps: 这里用了托尼老师的脸,实际情况应该是变形金刚男主的脸。
Debug中会有这样的图片,脸部有一个红色框和蓝色框,还有一个绿色的轮廓线。从上面这张图来看,这个提取效果是OK的,如果发现绿色线和脸部轮廓不贴合,那么就需要手动提取这张图片了。由于合成得时候,程序会参考dst中debug的标线,所以修正这个错误很重要。如何修正,请看下一条。
5) data_dst extract faces MANUAL RE-EXTRACT DELETED RESULTS DEBUG(手动提取脸图)
这一步的作用就是解决自动提取不准确的情况。使用前先删除DEBUG目录中标线有问题的图片,然后双击这个文件,进入后会出现预览界面,界面上有很多围绕脸部的点,轻轻移动鼠标或者转动鼠标就可以改变选中区域。觉得比较合适了就回车。进入下一张图片的操作。
效果如上图,窗口上方有操作提示。
经过上面的步骤,dst和src的脸部提取就全部完成了。
这个步骤的关键点是保证脸部清晰,以及dst的轮廓识别准确,这样就为后面的步骤打下了坚实的基础。
扩展:
如何换一组训练对象
如果你以及成功跑完所有环节,成功的把小罗伯特唐尼的脸放到了希亚·拉博夫的头上。此时你想换一个人玩玩,该怎么操作?
操作很简单,把data_dst.mp4和data_src.mp4换成新的视频,把model下面的文件全部删除,然后按上面在步骤再来一次即可。
如果你的视频太长,希望截取一部分,可以试下面的方法!
3.1) cut video (drop video on me).bat (视频截取转码,不懂的这一个不要点。)
双击后,输入开始截取的时间点From time,回车,输入截取结束To time的时间点,回车,回车,输入码率 5,回车,等待结束出现done。
时间格式按照提示的来,码率一般不需要设置太高,设置成5足够了,你不输入直接回车也可以,默认值为25。默认情况截取的是workspace\data_dst.mp4这个视频,如果你想截取其他视频,可以把待截取的视频直接拖到这个文件上面。
PS:实际操作这文件不需要点,等到熟练之后,需要截取视频再来用这个功能。
===========================
DeepFaceLab 小白入门系列教程:
DeepFaceLab软件简介
DeepFaceLab软件安装
DeepFaceLab软件使用
人脸提取详解
模型训练详解
导出视频详解
更多Deepfakes,AI换脸教程请参见Deepfakes中文网 !