论文阅读:3D Talking Face with Personalized Pose Dynamics

这篇论文和facial的论文的作者是一样的, 提到了一个可以通过语音得到很好的3d model的方法, 为了给不同的人分配不同的头部姿态, 作者给每个视频提供了对应的头部姿态和面部shapes

论文结构有两部分, 一个是PoseGAN, 一个是PGFace。PoseGan生成头部姿态序列(head pose sequence for the 3D head), PGFace生成自然的脸部模型

主要贡献:

  1. 构建了特定于个人的头部运动数据集, 也就是每个人都有单独的头部运动, 那是不是模型一开始识别出是哪个人然后单独训练就可以了?

  2. 引入了新的loss function和初始poses

数据集

openface检测3D的头部角度, 注意不是3DMM参数, 3DMM参数是那个弱监督重建的方法得到的。

方法

为了保证生成的头部姿态序列与输入音频的相关性,我们引入了条件GAN来确定头部姿态序列的输出属于特定字符,并引入了判别器来确定头部姿态序列的真实性。在这里,我们设置256帧作为单位序列,传统的姿态损失方法不能保证相邻序列之间的一致性和每个序列中头部姿态的连续性。针对这些问题,提出了一种嵌入方法和运动损失函数。

Head Pose Sequence Generation Network(pose gan)

image-20211129093054648

生成器是一个enhanced CNN接到Unet, 最初的头部姿态P(来自openface) 就是第一帧的头部角度, 这里有推理中头部姿态的设定问题(During the inference stage, the rest pose of the same identity is adopted as p for the generation of the first head pose sequence. Here, we use the mean pose to approximate the rest pose. The last pose of previous sequence is adopted as p for subsequent head pose sequence generation. The initial pose guarantees consistency between neighboring sequences.)

这里有L2和帧之间差的损失(师姐还是厉害啊)

image-20211129093705402

T为256, 好家伙一下子256帧, y就是生成的头部姿态

生成器的损失定义为:

image-20211129093935767

其中α和β是控制姿势和运动损失之间平衡的权重。

鉴别器

鉴别器也是一系列CNN, 这里以生成的头部姿态序列结合音频 x 作为输入

image-20211129094108091

想法

这么长的序列只用卷积去train, 得到的结果会完全依赖数据集, 像是只依赖数据集的映射,不过也从侧面反映这种是不能泛化的, 3D方面生成的方法还是高度依赖数据集

所以对于没见过的数据, 还是需要用它的2~3分钟视频做引导, 感觉像是对数据集的拙劣模仿

Pose-guided Face Generation Network

采用深度三维人脸重建方法(就是那个弱监督重建)生成人脸形状参数。每一帧生成的恒等参数αid可能不同(这个参数是特定的identity, 我觉得应该就是shape, 对于同一个人shape应该一样, 就是表情参数要不一样)。这些差异是由相机参数、speaker位置和不准确的表情形状引起的

于是这里将头部姿态参数作为估计人脸形状变化的输入,以弥补差异。 把每一帧的音频特性X∈ R 29 ∗ 16 R^{29*16} R2916 和头部姿态参数P∈ R 6 R^6 R6 连接起来作为网络的输入, 输出就是对应的[αid, αexp]

也就是说这里通过声音和表情修正aid? 我不太理解

下面是损失:

image-20211129095644939

v denotes the ground-truth face vertices and f represents the generated face vertices

v n e x t v_{next} vnext and f n e x t f_{next} fnext indicate the values of v and f , respectively, in the next frame;

mask m=10 if the vertex i is in the lower part of the face, otherwise m=1(假如是嘴部附近的点就权重高点)

还有elementwise product

运动损失Ls-motion表示序列相邻帧间顶点位移

image-20211129100036105

实验

对于我们数据集中已有的角色,我们只需要使用该角色的训练数据来实现个性化训练。对于任何不包含在我们数据集中的角色,我们将以这个新人的2-3分钟视频作为学习指导,然后,我们微调我们的PoseGAN和PGFace网络,以产生个性化的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

live_for_myself

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值