不小心入了AI换脸的坑,但是感觉AI换脸很有意思,第一次感觉科研使我快乐。
目录
一、AI换脸软件简介
二、Deepfacelab下载安装
三、Deepfacelab Demo实现
四、Deepfacelab 填坑
五、总结
一、AI换脸软件简介
这个没有具体使用过,目前我只使用过Deepfacelab,但是查看各种资料都是说Deepfacelab综合来说是最好用的,可玩度也很高,最重要的是deepfacelab对部署环境没有要求,这个就完全满足我这样的懒人了。。。
下述表格转载于大神博主,其链接为https://blog.csdn.net/u014575897/article/details/85272910。
二、Deepfacelab下载安装
Github源码地址:https://github.com/iperov/DeepFaceLab
预编译好的Windows版本:https://mega.nz/#F!b9MzCK4B!zEAG9txu7uaRUjXz9PtBqg(需要科学上网)
所需环境:windows系统即可,需要强力版本的显卡,毕竟AI就是个又氪又肝的玩意。。。
下载好之后,直接解压就可以了,解压完了一般是如下界面(DeepFaceLabCUDA10.1AVX版本)。
Demo实现之前先学习下解压目录下的各种bat文件的功能(实现将A视频中的人脸替换为B视频中的人脸,下文中都是以A和B来表示):
1)是清空workspace文件夹的,包括切的图片和人脸、模型文件等等。。。
2)和3)都是将视频文件转换为一帧一帧的图像;
4)和 4.X)是将SRC视频文件(即待替换的视频B)的人脸识别出来和进行排序;
5)和 5.X)是将DST视频文件(即待替换的视频A)的人脸识别出来和进行排序;
6)是进行训练;
7)人脸替换(即将分离出来的图片先进行人脸替换);
8)将人脸替换后的图片合成视频;
9)和10)待定。。。
三、Deepfacelab Demo实现
源程序中自带Demo的视频素材,可以直接进行Demo实现。
打开workspace,发现里面有两个视频,分别是data_dst和data_src,对应于上述的A和B,这就是自带的素材。
1.视频解压,双击bat文件中的2) extract images from video data_src 和3.2) extract images from video data_dst FULL FPS;
功能:你会发现workspace中的data_dst和data_src两个文件夹中有分割好的图像文件;
2.人脸提取,双击bat文件中的4) data_src extract faces S3FD all GPU 和 5) data_dst extract faces S3FD all GPU;
功能:你会发现workspace中的data_dst中的aligned和aligned_debug文件夹中有人脸图片,data_src两个文件夹中的aligned类似。
PS:目前来说一般采用S3FD的人脸识别方法,该方法比较好!老版本貌似只有MT和DLIB的人脸识别方法。
3.训练,双击bat文件中的6) train SAE;接下来,Cmd里面所有的参数选项都是直接按“Enter”键即可,因为默认参数都是优化过的,完全适应于Demo视频(对于其他视频也是比较适用,特别是对于新手来说);
功能:训练人脸对齐模型,那还用说?该模型文件保存于workspace中的model文件夹中,你会发现模型文件有5个“h5”的文件
PS:Deepfacelab这个版本是基于Keras来实现的,所以只能用一个GPU进行训练。如果是新手的话更建议采用H128的方法进行训练。SAE方法更全,最好最灵活的模型,但是相对来说需要对Deepfacelab有深入了解,或者跟我一样用默认参数。。。
warning:CMD默认参数中有一个选项是训练迭代无次数限制(默认参数),即需要人工停止训练,停止标准包括1)Train Preview窗口中的第一行、第二行、第四行和第五行的人脸都比较清晰即可;2)训练窗口中的loss值接近于0.2。如下图二红色方框所示(妈蛋,为了截图打开cmd界面,把训练了12个小时的模型给覆盖了,心碎ing)
停止方法,在Train Preview窗口中按“Enter”键。按"P"键是刷新图片哈,可以实时看到最新训练的效果。
4.人脸替换,双击bat文件中的7) convert SAE,Cmd里面第一个参数选项输入“n”,其余也全是按“Enter”键即可。
功能:你会发现workspace中的data_dst中的merged文件夹中有替换好的人脸图片。
PS:训练用的什么方法,人脸替换的步骤就要用相应的方法。Cmd第一个选项就是是否使用UI界面模式,反正我没弄懂,我就是直接不用UI模型就好了。
5.视频转换:双击bat文件中的8) converted to mp4,Cmd里面所有的参数选项都是直接按“Enter”键即可;
功能:你会发现workspace中多了一个result.mp4的视频文件,这就是完成AI换脸的成果了。
四、Deepfacelab 填坑
完成上述步骤,你发现其实软件用起来很简单的吧,但是其中会有很多坑,下面一步步说。
1.素材坑。搞深度学习的都知道,样本数据好和算法好两个来选,肯定选样本数据好。因为深度学习这个东西就是“炼丹”,丢进去的都是好东西那么练出来的肯定不会差,所以对于上述步骤2.人脸提取完成后,需要人工进行筛选人脸图片。
解决方法:人工筛选人脸图片,删除掉那些无人脸的图片、颠倒的人脸图片、模糊对焦不好的图片等等,只留下人脸提取好的人脸图片。
2.分辨率大小问题,视频素材分辨率尽可能清晰。
3.模型保存,每训练完一次,把workspace中的model文件夹和分割图片都尽可能单独保存一次,免得model丢失。这是血与泪的教训啊!
五、总结
这部分有博主总结的很好,我就不多自己画图了!(主要是懒。。。)
参考文献:
1.https://blog.csdn.net/u014575897/article/details/85272910
2.https://www.deepfakescn.com/(常用AI换脸软件的教程网吧)
最后推荐一波AI换脸学习的QQ群,743285272(主要是免费群,可以白嫖)