Capture, Learning, and Synthesisof 3D Speaking Styles论文阅读笔记

摘要

  1. 制作了一个4D面部(3D mesh 序列 + 同步语音)数据集:29分钟,60fps,12个人
  2. 在该数据集上训练了一个神经网络(这句话原话是we then train a neural network on our dataset that factors identity from facial motion,不知道怎么理解)
  3. 学习的模型VOCA,输入为任意语音信号(不局限为英文),可逼真的还原面部动画
  4. 可加入额外的条件进行训练,来学习不同的说话风格(有的人嘴张的大,有的人嘴张的小)
  5. 可通过动画师控制来改变说话风格、身份相关的面部形状、姿态(点头摇头、眼球转动等)
  6. VOCA可轻易的应用到新的目标上(without retargeting)

1 introduction

挑战

  1. 语音和面部运动非常相关,但又处在两个差异非常大的空间中;因此需要非线性回归来将二者关联起来,我们可以通过DNN来解决这个问题,但是需要大量的训练数据;
  2. 音素phoneme和和面部运动之间是多到多映射。
  3. 真人动画容易产生恐怖谷效应
  4. 缺少语音到3D人脸的多人数据库
  5. 之前的工作表明可以训练特定说话人动画的模型,目前还没有说话人无关的、捕捉不同说话风格的通用方法。

VOCASET

12个说话人,480段序列,每段大概3-4s,句子的分布尽可能最大化语音多样性,60fps
将扫描数据和一个人脸模板mesh对齐

VOCA

说话人无关
整合DeepSpeech来提取语音特征(对噪声和音源更鲁邦);
基于FLAME模型,1)可以建模全脸的运动(包括脖子);2)驱动大范围的成人人脸,FLAME可以通过扫描或图片来重建特定目标的模板;3)编辑身份相关的形状和姿态

2 依赖

DeepSpeech

DeepSpeech是一个端到端的ASR模型,前三层是非循环全连接层+ReLU,第四层是双向RNN,最后一层是全连接层+ReLU,最后通过softmax函数。Tensorflow的实现方式和原文有两点不同:用LSTM替代了RNN,用MFCC替代原本的声谱。

FLAME

不同目标的面部形状和头部运动差异很大,不同人的说话方式也不同。
FLAME使用线性变换来描述身份、表情相关的形变、LBS(linear blend skinning,实现脖子、下巴、眼球的运动)。给定一个静态模型,身份、姿态、表情blendshapes的变化都通过顶点移动来建模。

3 VOCA

overview

输入为特定目标的模板T和原始的语音信号,通过DeepSpeech提取语音特征
输出为目标的3D mesh
采取encoder-decoder网络结构,encoder部分将语音特征转换为低维embedding,decoder部分将这个embedding映射到高位的3D顶点位移空间。

语音特征提取

给定一段长度为T 秒的语音片段,使用DeepSpeech来提取语音特征。输出特征是未归一化的对数概率(某字母的概率),帧长度为0.02s(每秒50帧),因此输出是50T*D的数组,其中D是字母表中字母的个数+1(空白label)。通过线性插值将输出重采样到60fps。
为了合并时间信息,将语音帧转换为总长度为W*D的重叠窗口,每个窗口长度为W。输出是一个3D数组,每个数组长度为60T*W*D。

Encoder

encoder由4个卷积层和2个全连接层构成。语音特征和最后的卷积层取决于目标的label,在多个目标上训练从而学习到特定目标的风格。对8个训练目标,每个目标j编码为一个one-hot向量Ij=(δij)1≤i≤8I_j=(\delta_{ij})_{1\le i\le 8}Ij=(δij)1i8。该向量和每个D维语音特征向量进行级联(每个窗口输出长度W*(D+8)),并和最后一个卷积层的输出进行级联。
为了学习时间特征,减少输入维度,每个卷积层使用3x1的卷积核,步长为2x1。由于使用DeepSpeech提取的特征不含有任何空域相关性,我们对输入窗口进行reshape,使其维度为W∗1∗(D+8)W*1*(D+8)W1(D+8),并在时间维度上进行1D卷积。为了避免过拟合,我们对参数量进行控制,对前两层学习32个滤波器,对后两层学习64个滤波器。
最后的卷积层和目标编码级联后,有两个全连接层,第一个全连接层有128个units,激活函数为tanh,第二个全连接层有50个units,激活函数为线性。

Decoder

decoder为一个全连接层+线性激活函数,输出为5023*3的数组,表示模型顶点的位移。
权重初始化:训练数据的顶点位移做PCA,得到的50个主成分。
bias初始化:0

animation control

inference时,改变8维one-hot向量来调整说话风格。VOCA的输出是一个和FLAME人脸模型具有相同拓扑结构的expressed 3D face。VOCA和FLAME的兼容性允许通过添加blendshapes来改变身份相关的人脸形状,人脸的表情和姿态也可以通过FLAME提供的blendshapes、joints和pose blendshapes来改变。

4 模型训练

训练准备

语音-4D扫描pairs,表示为{(xi,yi)}i=1F\{(x_i,y_i) \}_{i=1}^F{(xi,yi)}i=1F
其中,xi∈RW×Dx_i \in R^{W\times D}xiRW×D是输入语音窗口,窗口中心为第i个视频帧yi∈RN×3y_i \in R^{N\times 3}yiRN×3。此外,用fi∈RN×3f_i \in R^{N\times 3}fiRN×3表示xix_ixi的VOCA输出。
训练时,将采集的数据分成训练集(8个人),验证集(2个人),测试集(2个人)。
训练集每个人有40条句子,共320条句子。
验证集和测试集每个用20条不同的句子,即分别有40条句子。
训练集、验证集、测试集是完全无关的,无论是人还是句子。

损失函数

损失函数由两项组成:位置项和速度项
位置项:Ep=∣∣yi−fi∣∣F2E_p=|| y_i-f_i ||_F^2Ep=yifiF2计算预测的顶点和训练数据顶点的距离
速度项:Ev=∣∣(yi−yi−1)−(fi−fi−1)∣∣F2E_v=||(y_i-y_{i-1})-(f_i-f_{i-1})||_F^2Ev=(yiyi1)(fifi1)F2

训练参数

我们在验证集上调整超参数,使用1e-4的学习率训练50个epochs。位置项和速度项的权重分别是1和10,训练时使用batch normalization,batch size为64。窗口尺寸W=16,语音特征维度D=29

实施细节

VOCA基于Tensorflow实现,使用Adam优化算法训练。
在单个NVIDIA Tesla K20上训练一个epoch大概耗时十分钟。
DeepSpeech部分使用预训练好的模型,训练时保持不变。

5 VOCASET

数据集简介

audio-4D scan pairs:6男6女。
每个人40句英文,每句3-5秒;27句来自TIMIT语料库,3个全字母句,10个问句(来自SQuAD)。
5句话由所有人共享,15句话由3-5个人共享(50个独特的句子);20句话由1-2个人(200个独特的句子);

采集设置

使用多目相机立体声系统(3dMD LLC, Atlanta),采集高质量的3D头部数据和语音。
采集系统包括6对灰度双目相机,6个彩色相机,5个光斑投影仪,6个白光LED板。
系统以60fps的速度采集3D mesh,每个mesh包括120K个顶点。
彩色图片用来生成UV贴图。
语音和扫描系统同步,采集的采样率为22kHz。

数据处理

原始的3D头部数据使用FLAME模型提供的方法进行对齐。基于图像的关键点检测方法可以增强对齐的鲁棒性。
对齐后,每个mesh包括5023个顶点。所有扫描数据顶点和FLAME模型的绝对距离:中值0.09mm,均值0.13mm,标准差0.14mm。
之后,所有的mesh去除姿态(unposed):旋转、平移、头部绕脖子的旋转。
对于所有的续联,脖子边界和耳朵自动修复,眼镜周围的区域使用高斯滤波器进行平滑,移出采集噪声。嘴部区域不做平滑处理,从而可以保留细微的动作。

7 实验

定量的矩阵,比如预测误差的范数,不适合用来评估动画质量。因为唇型和语音之间是多对多映射。同一段语音序列对应的人脸动作范围很广,所以定量的评估比较棘手。因此我们使用感性和定性的评估。此外,我们训练的模型可用于研究用途。

Capture, Learning, and Synthesisof 3D Speaking styles论文阅读笔记 VOCA相关推荐

  1. Learning Pose Grammar to Encode Human Body Configuration for 3D Pose Estimation论文阅读笔记

    文章目录 论文内容 创新点 网络结构 表示方式 Base 3D-Pose Network 3D-Pose Grammar Network-BRNN 运动学语法(Kinematic grammar) 对 ...

  2. 3D卷积网络论文阅读笔记

    3D卷积网络 1.What is the best data augmentation approach for brain tumor segmentation using 3D U-Net? 实验 ...

  3. Learning Multiview 3D point Cloud Registration论文阅读笔记

    Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...

  4. 3D目标检测论文阅读多角度解析

    3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...

  5. 3D目标检测论文阅读摘要

    3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...

  6. 论文阅读笔记--Aesthetics-Driven Stereoscopic 3-D Image Recomposition With Depth Adaptation-2018

    论文阅读笔记:美学引导的带有深度适应的立体3D图像重构 I.介绍 II.相关工作 A.单目(2D)图像处理 1)美学驱动的重构(Recomposition) 2)图像分割与抠图(Segment and ...

  7. 论文阅读笔记:SCAN: Learning to Classify Images without Labels

    论文阅读笔记:SCAN: Learning to Classify Images without Labels 摘要 简介和相关工作 方法 表征学习 语义聚类损失 2.3 通过自标记进行微调 3 实验 ...

  8. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  9. 【论文阅读笔记】Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

    摘要: 本文主要研究训练和测试类别不相交时(即没有目标类别的训练示例)的对象分类问题.在此之前并没有对于毫无关联的训练集和测试集进行对象检测的工作,只是对训练集所包含的样本进行分类.实验表明,通过使用 ...

最新文章

  1. 全球智能驾驶产业全景图
  2. 网络推广专员浅析如何提升企业网站在网络推广期间的用户体验?
  3. php转java知乎_做了三年多的php,在上一家公司转java一年多,如何找工作
  4. MySQL数据库服务器 主从配置
  5. 【算法设计与分析】Dijskra算法代码:Java版
  6. oracle堆,oracle被一堆insert和update堵死解决方案
  7. java long short_Java Long类shortValue()方法与示例
  8. cli能记日志web不能php,ThinkPHP6.0日志变化
  9. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 组件的生命周期...
  10. excel快速选择数据的4种方法
  11. 解决allegro 中OUT OF DATE SHAPES问题
  12. Learning Deep Features for Discriminative Localization
  13. 利用CSS让dl dt dd呈现多行多列效果
  14. 【开赛啦!邀你来战 】2022年“桂林银行杯”数据建模大赛暨全国大学生数学建模竞赛广西赛区热身赛
  15. MySQL 备份原表
  16. apktool安装过程
  17. 最新综述:深度学习图像三维重建最新方法及未来趋势
  18. backface-visibility 翻转特效
  19. 海角七号最感人的一句话是:“留下来,或者我跟你走
  20. 浙江计算机二级word试题,浙江省计算机办公二级新增试题(word、Excel)

热门文章

  1. [C和指针] ch16. 标准函数库
  2. 计算机怎么接多元一次方程,使用Excel解多元一次方程组的三种方法
  3. Linux 下小米WIFI 的无线网卡驱动
  4. echarts 画中国地图缺少 china.js
  5. Git——远程管理版本操作(Tortoise(小乌龟)图形化操作、git命令行操作)
  6. Windows程序打包利器InstallShield 2019 R3使用教程
  7. word中如何手工快速对齐目录
  8. HTML 实现购物网站
  9. pg PostGIS教程:空间关系
  10. 人工智能+看病快准佳