X2Face

 

摘要

本文介绍了一个神经网络模型,输入图片可以变成姿态和面部表达改变的动图,这种模型可以用到图像编辑等其他方面。

文中的主要贡献有三点:(1)原图可以生成和驱动图想一样的动作神态。(2)使用自监督的算法来训练模型(3)并且模型形态可以收到其他因素的控制,比如语音,形态编码等。并且不需要大量训练这种模型。

模型与其他现有模型相比非常的健壮,并且使用极少的原图来生成姿态动图。

介绍

本文主要研究,是否可以放弃明确的面部表达,并使用自监督的方式进行学习,接下来研究,面部表达是否能够使用其他的表达方式来控制人脸,例如人体姿态代码或者语音。

最后介绍了X2Face,一个自监督的结构,可以使用驱动向量来进行人脸编辑。

换脸算法 X2Face 详解

源图片是同一个人的一张图片或几张图片(同一来源),驱动向量来源途径较多,一个或多个视频,姿态信息,语音信息。生成的图像具有原图像的发型信息的一致性。

网络实在自监督的条件下训练的,这些画面源图片和驱动图片是一对一的,这些画面通过两个子网络,第一个网络是embedding网络,第二个网络是驱动网络,通过控制网络信息的流动,embedding网络,学习源脸部嵌入人脸表达,驱动网络学习如何结合驱动向量以及embedding网络的面部表达,来生成图像对应图像。

X2Face结构网络在3.1被描述,自监督的训练网络在3.2,之后做了两个更先进的工作

使用线性回归的方法生成驱动向量,这在第4部分生成,第五部分主要是评价了本方法的优势对比。第六部分描述了如何使用语音和姿态驱动面部。并且展示如何进行视频编辑

相关工作

传统的面部生成模型主要是,生成3D模型,之后的工作就是使单张图片生成一个3D图像,给一个驱动视频和源视频,模型将会生成3D形式,3D估计使得原始人脸有了驱动人脸的表情,然而需要其余步骤来添加隐藏部分。但是3D模型有一些缺陷,3D模型或得的信息不够详尽,之后就有了2D的形式,使用landmark作为面部表达的基础。下一步的算法,进入2D时代。

 

模型概述

 

 

本节主要分成两个部分,第一部分介绍网络结构,第二部分介绍训练策略。

 

 

 

换脸算法 X2Face 详解

在初始的训练过程中,给出多个来自同一个视频的图像,其中一部分是源图片,另一部分是驱动图片。原图片输如到嵌入网络中,学习一个例子将原图片的像素融合到嵌入图片中,驱动图像输入到驱动网络中,将embedding的像素合成到生成图片上,生成图片具有源图片内容以及驱动图片姿态的一致性,在训练阶段使用相同视频的图像,在推理阶段则需要使用不同人的。

 

Embedding network

学习模型将原图片转化成embedding face, 结构类似于u-net或者pixel2pixel 输出的是一个2通道图片。编码每个像素的流动 delta X ,  delta Y。

由于驱动网络从embedded face中抽样,来产生生成图片,所以embedding face需要有一个对原图片不同姿态表情的公共表达。

 

Driving network

主要讲驱动与embedding图片结合在一起,生成姿态图片。为了能够正确的抽取embedded face,生成图像,驱动向量必须编码姿态,表情等变化。

 

换脸算法 X2Face 详解

身份损失函数,计算生成图像与源图像的Loss

模型的训练有两个阶段。第一个训练阶段是全自监督训练,

第二阶段,根据驱动图像以及源图像的相似性来微调第一步训练的模型

第一个阶段主要是生成图片与驱动图片的L1 loss, 但是在训练的时候我们发现,生成的人的脸型与驱动图片有很多类似,所以在下一阶段需要加入另一个Loss Function

新的Loss Function 如下

A的源图片SA, 两个驱动图片 Da, DR其中 Da是A的图片,而DR是随机的一个人的图片

新的Loss分成了两个部分,第一个是

L(dA, GdA)Gda 需要和Da有相同的身份,姿态,表情,所以这个Loss 使用了图像的L1 Loss,和L1内容Loss提取conv2_5以及Conv7层提取计算主要是底层特征与高级特征的Loss的计算。

L(sA, gdR) Gdr需要有A的身份,并且有R的姿态,表情。所以这里只是使用了内容Loss, conv6-7层高级语义  gdR 以及SA 的Loss

使用的是VGG network 计算内容Loss

 

其中embding network 有很多的跳跃链接

换脸算法 X2Face 详解

每个卷积都有一个leaky ReLU 还有一个BN,卷积的大小是4x4,步长分别是2,padding = 1, 然后skip connection是使用concate形式链接feature map,最后2*256*256的图片,通过一个tanh层

 

换脸算法 X2Face 详解

最后一层的2*256*256通过一个tanh层。

 

训练测试条件设置

训练的时候不管第一阶段还是第二阶段,使用多数据源能够有较好的效果。

换脸算法 X2Face 详解

 

相关文章:

  • 2021-11-30
  • 2023-03-20
  • 2021-08-20
  • 2021-09-08
  • 2021-11-26
  • 2021-11-03
猜你喜欢
  • 2021-12-27
  • 2021-12-05
  • 2021-09-19
  • 2021-04-07
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案