论文阅读:【音频合成隐式属性,3d model】FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning


在这里插入图片描述

前言

想要探究一下文章中是怎么学习到所谓的隐式属性的

简介

joint learning

Joint Learning是指模型中存在多个子任务,而我们可以将这些子任务一起训练。
这么说起来有点抽象,可以举个简单的例子。比如在深度学习中,这个“深度”就可以理解为采用了多个模型进行Joint Learning,比如在许多NLP任务中,在进行模型训练前,我们会使用Word Embedding层(word to vector)对词向量进行编码,而Embedding层的参数,可以在和整个模型一起训练中得到,也可以单独对该层进行预训练,而后在该层参数确定后再拿来和模型剩余部分一起训练,这两种方法都属于Joint Learning的范畴,即Joint Learning中的子任务既可以和整个模型一起训练,也可以单独训练。而Joint Learning的含义则是将多个子模型集成为一个模型,完成最终的目标任务。

输入&输出:

一段音频和一段视频, 输出带有头部姿态的, 眨眼的, 和音频同步的人的视频

数据

对于视频数据集使用了论文 3d talking face
with personalized pose dynamics
提到的。

音频预处理没有使用通常的MFCC, 而是使用了DeepSpeech, 每秒50帧然后上重采样到每秒30帧, 也就是1s对对应30*D的维度, 这里D=29

头部姿态和眨眼使用了OpenFace, 论文 Openface: A general-purpose face recognition
library with mobile applications
中提到的方法, 头部姿态提取欧拉角以及一个3d变换向量

image-20211126164005641

对于眼睛的运动, 利用AU来定义眼睛周围肌肉群的动作强度。

对于3D model使用了一个弱监督重建的方法, 我看好几个论文使用他了。Accurate 3d face reconstruction with
weakly-supervised learning: From single image to image set.

image-20211126164418653

贡献:

  1. 显示属性和隐式属性是一起训练的,产生的效果很好
  2. 提出了FACIAL-GAN, 使用每个帧的语音信息对上下文信息进行编码, 模拟合成头部运动需要的隐式属性。
  3. 把FACIAL-GAN 产生的eye blinking 的AU编码到eye attention map, 可以在渲染中用到

想法:

  1. 这里其实也提到了, eye, pose等很依赖long term 的 information, 还有提取特征的Deepspeech, openface, 论文 deep video portraits
  2. 还有一个3d 弱监督重建的方法
  3. 这个一个好处是有眨眼的动作, 一般3d模型是难以做到的, 但是并没有在文中很明显的指出为什么输入需要是一段视频, 一张图片不可以吗?

方法

问题构思

传统的公式可能是这样

image-20211125194922466

image-20211125195419905

隐式和显示属性有固有的联系,namely
FACe Implicit Attribute Learning (FACIAL).

作者提出的是这样:

image-20211125201328521

其中有个eye regions, R是render

FACIAL-GAN

  1. 每一帧生成一个显示的表达如嘴巴运动

  2. 编码上下文信息, 例如把时间相关性放进网络中, 用于隐式属性的学习。这个FACIAL-GAN包括3个部分,一个 G t e m G^{tem} Gtem, 一个 G l o c G^{loc} Gloc , 一个D

    image-20211126175546644

    下面是示意图:

    image-20211126175837395

注意这里完全是音频作为输入, 音频是T帧, 每帧29维

Temporal correlation generator

为了提取整个序列的关系, 关键idea就是送入整个T音频序列到contextual encoder, 然后产生一个z, 这个z就代表整个序列的时序关系或者说上下文关系, 就可以理解为transformer的encoder送出来的然后切分开可以代表一帧, 就是上图左边的部分,详细看下图:

image-20211126211509631

Local phonetic generator

上面的集中在全局, 而这个集中在local features c t c_t ct, 输入是个16帧的语音, 输出是第t帧的特征。 这样每个时间步t就有c特征和z特征了。 然后经过fc得到71维的向量, 详细如下图

image-20211126215112958

其中f, p, e分别值得是facial expression parameters, head pose features, eye blink AU estimation。

image-20211126180316533

Implicit PartSensitive
Encoding

下面就说说怎么对隐式向量编码的, 这里主要是指的眨眼睛,一个直观的方法是把blink value和face image 按通道级联, 但是CNN不能专门识别眼睛领域hhh, 这里作者提出使用了一个 eye attention map, 这个东西首先定位眼睛区域, 然后 根据blinking AU value 来改变对应位置的像素值就, 作者具体做法是:

  1. make 3D model眼睛周围的vertices, 具体公式如下:

    image-20211126220356850

  2. 在3d 渲染期间, 定位和mask region有关的像素, 来生成eye attenion map

image-20211126220754861

  • 这个图提到编码的e由两部分组成, 一个是估计的眨眼AU, 一个是eye attention map
  1. 最后把归一化的blinking value根据 attention map 应用在像素上

RenderingtoVideo
Network

这是最后一步了。借鉴了一些工作。

总结:

如下图:

在这里插入图片描述

Deep speech:
Scaling up end-to-end speech recognition

语音识别任务是把声音数据转换为文本,研究的主要目标是实现自然语言人机交互。在过去的几年里,语音识别领域的研究成为人们关注的热点,出现了众多新型语音应用,例如语音搜索、虚拟语音助手(苹果的Siri)等

image-20211125205940719

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

live_for_myself

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

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

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

打赏作者

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

抵扣说明:

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

余额充值