换脸算法之DeepFaceLab

论文:DeepFaceLab: A simple, flexible and extensible face swapping framework

Github:https://github.com/iperov/DeepFaceLab

论文提出了一个简单,灵活,可扩展的换脸框架DeepFaceLab。

使用DeepFaceLab进行换脸的,汤姆·克鲁斯2020“参选”美国总统的竞选广告

 

主要贡献:

  1. 一个具有成熟流程的state-of-the-art 的框架提出,旨在获得真实图片结果的换脸效果。
  2. 自打2018年以来,DeepFaceLab开源了源码,一直保持在计算机视觉领域的进步,对防卫假脸做出了贡献。在开源社区和VFX 领域取得了广泛关注。
  3. DeepFaceLab提供了一些高效的组尖和工具,使得用户可以更加灵活的操作和及时发现问题。

 

DeepFaceLab特点:

  1. Leras ,更加轻量的keras,使用TensorFlow作为深度学习框架。具备简单和灵活的模型构建能力。训练过程的时间性能指标减少10%-20%。具备更加灵活的tensor的控制。
  2. Put users first ,用户优先
  3. Engineering support ,工程化支持,支持多gpu训练,支持半精度训练
  4. 可扩展性和可批量化特性,Extensibility and Scalability

 

整体流程:

整体处理过程包括人脸检测,人脸关键点检测及对齐,人脸分割,人脸融合,人脸锐化。

人脸检测Face Detection :

DeepFaceLab使用S3FD作为默认的人脸检测框架,也可以使用其他的检测框架,比如RetinaFace , MTCNN

 

人脸对齐Face Alignment :

对于正常姿势的人脸使用2DFAN ,对于欧拉角较大的人脸使用PRNet

 

人脸分割Face Segmentation :

使用TernausNet ,XSeg

 

人脸融合Face Blending :

提供了超过5种以上的颜色变换算法,包括,reinhard color transfer(RCT) , iterative distribution transfer(IDT)

正常的融合方式,类似alpha融合。为了实现对不同的皮肤颜色,人脸形状,光照条件进行优化,这里提出了自己的泊松融合方式,

 

人脸锐化Face Sharpening :

提供了人脸超分辨模型FaceEnhancer 。

 

网络结构:

DeepFaceLab 包含2种模型结构,分别为DF和LIAE。

在DF模型中,原图和目标图的隐空间特征都是通过Inter模块进行的提取。而在LIAE模型中,则是分别通过InterAB,InterB,2个模块进行提取。其中,InterAB会输出原图和目标图的隐空间特征,InterB只输出目标图的隐空间特征。

然后,InterAB的输出原图特征和自己进行通道的concat,然后输入解码模块。InterAB的输出目标图特征和InterB的输出目标图特征进行concat,然后输入解码模块。

 

在训练过程中,通过对人脸眼睛区域加mask操作,使得眼睛部分传递更大的loss,颈部则传递较少的loss,使得换脸后的生成图片具有生动的眼睛细节。

训练的loss使用DSSIM (structural dissimilarity) + MSE ,其中,DSSIM 可以使得生成的人脸训练速度更快,MSE 则提供了更好的人脸细节。

DF模块的详细结构图如上图,LIAE模块与之类似。

DF结构里面包含了普通模块DF和高清DFHD模块,共2个分支。两者的主要区别就是DFHD在编码和解码模块都堆叠了更多的层。

该结构的主要特点:

  1. 使用pixelshuffle (depth2space) 进行上采样,而不是反卷积和双线性插值。这样做的好处就是可以消除生成图片边界效应。
  2. 解码模块采用残差连接方式,融合更多的特征。
  3. 最后一层的输出,采用sigmoid归一化输出为0--1之间,而不是采用tanh归一化到-1--1之间。

 

实验结果:

 

总结:

Suppressing the publication of such methods would not stop their development, but rather make them only available to a limited number of experts and potentially blindside policy makers if it goes without any limits

 

 

 

  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 使用DeepFaceLab进行视频需要以下几个步骤: 1. 准备好源视频和目标图片。 2. 使用DeepFaceLab的"Extract"功能提取源视频中的人。 3. 使用DeepFaceLab的"Convert"功能将目标图片转为适合的格式。 4. 使用DeepFaceLab的"Merge"功能将源视频中的人与目标图片合并。 5. 使用DeepFaceLab的"Render"功能将合并后的视频渲染成最终的视频。 注意: DeepFaceLab是一个开源软件,使用这个软件可能会违反著作权法. ### 回答2: DeepFaceLab是一种基于人工智能技术的视频工具,下面是使用DeepFaceLab进行视频的步骤: 1. 准备素材:选择一个清晰的源视频和目标视频。源视频是希望更部的人物视频,目标视频是希望替为源视频中人物部的视频。确保两个视频中的人物部要尽可能保持相似。 2. 下载和配置DeepFaceLab:从官方网站下载DeepFaceLab,并按照相关指引进行配置,包括安装环境、设置GPU等。 3. 数据集准备:使用DeepFaceLab自带的工具将源视频和目标视频中的人截取出来,并分别放入对应的文件夹中。可以多截取几个角度和表情以提高效果。 4. 预处理:运行DeepFaceLab中的预处理脚本,对素材进行处理以提高后续处理效果。这一步会进行人对齐、抠图、人切割等。 5. 训练模型:使用DeepFaceLab的训练脚本来训练模型。这一步需要耐心等待,因为模型的训练需要消耗较长的时间。可以根据自己的需要调整训练的参数。 6. 处理:使用训练好的模型进行处理。通过运行DeepFaceLab提供的命令行操作,将源视频中的人到目标视频的相应位置,并生成结果视频。可以根据需要调整的精度和速度等参数。 7. 后处理:生成的结果视频可能还有一些不完美的地方,可以使用视频编辑软件进行后期处理,如进一步调整部替的效果、编辑合成等。 需要注意的是,DeepFaceLab是一项技术含量较高的工具,对硬件要求较高,而且使用过程中可能会遇到一些技术问题。因此,初次使用者建议先阅读官方文档并参考相关教程进行学习和实践,以便更好地掌握和使用该工具。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值