DeepFaceLab小白入门(4):提取人脸图片!

偶尔善良 提交于 2020-05-03 23:59:36

通过上面级片文章,你应该基本知道了换脸的流出,也能换出一个视频来。此时,你可能会产生好多疑问,比如每个环节点点到底是什么意思,那些黑漆漆屏幕输出的又是什么内容,我换脸效果这么差,该如何提升?等等,好奇宝宝已上线,不搞明白睡不着。接下来,我就把每个环节展开说一说。本篇文章主要说“人脸提取部分”。

 

DeepFaceLab 更目录如下。

 

workspace工作目录如下

 

 

1) clear workspace.bat (清空项目)

这是一个用来初始化项目目录的文件,由于软件本身自带了一个workspace,所以你第一次使用的时候可点,可不点。点了之后,一个回车,界面如下。

 

2) extract PNG from video data_src.bat(视频转图片)

 

双击这个文件之后程序就开始运行,会出现一个提示。

Enter FPS ( ?:help skip:fullfps ) : 

此时你可以直接回车,这样转换出的图片最多,你也可以输入一个20以内的数字,比如10,这样图片就会少一点,设置5 也可以。输入数字后回车即可。

 

运行结束之后出现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是新添加的,据说性能比较好。

 

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小白入门(5):训练换脸模型!

 

AI换脸系列文章:

  1. DeepFaceLab软件简介
  2. DeepFaceLab软件安装
  3. DeepFaceLab软件使用
  4. DeepFaceLab人脸提取详解
  5. DeepFaceLab模型训练详解
  6. DeepFaceLab导出视频详解

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!