论文阅读:LipSync3D: Data-Efficient Learning of Personalized 3D Talking Faces from Video using Pose and L

摘要

作者首先在一个normalized的空间里解耦和表示三维几何形状, 头部姿态, texture。这就将预测问题分解为对3d face shape 还有对应的2d texture atlas的回归
其次,研究人员利用面部对称性和皮肤的近似反照率恒定性来分离和去除时空光照变化

介绍

  • Personalized models
    每个人需要单独训练, 但是需要的训练视频不需要很多
  • 3d pose normalization
    使用3d 脸部检测器, 方法来自论文Real-time facial surface geometry from monocular video on mobile GPUs, 里面的具体方法是:
  1. 基于一个轻量化的人脸检测模型,首先进行人脸检测。可以得到人脸框和5个人脸关键点。使用关键点对人脸进行对齐操作,将人脸图像都调整为两只眼睛的连线保持水平方向。
  2. 基于人脸框对图片进行crop操作。输出256256(对于大模型),128128(对于小模型)。然后将图片输入本文的模型,就可以得到3d人脸关键点坐标。其中x,y和2d的x,y一样,z为相对于3d模型的中心参考平面的深度。

作者利用得到的pose以及3d landmarks信息可以将脸部分解成normalized 3d mesh 以及texture atlas, 因此把头部姿态从语音引起的面部变形(嘴唇, 牙齿运动)解耦出来。

  • 照明规范化
    提出了一种新的算法, 这应该是他的主要贡献点, 利用面部对称性(facial summetry)和皮肤的反照率(albedo constancy)恒定等特征, 去除面部3d分解(decomposition)中的空间和时间照明变化

  • Data-efficient learning
    模型使用了encoder-decoder结构,来计算声音频谱的embedding, 然后解码为3d geometry和texture。 pose和光照规范化(lighting normalization) 使得训练更有效。 因为网络不会被迫从语音中分离出无关的头部姿势和照明变化。 照明规划化允许训练和测试阶段的光照是不同的

贡献总结

  1. 数据规划化, 实现了解耦
  2. 视频面部照明的新算法

方法

  • 把声音转换为频谱图, 使用带有Hann窗口的短时傅里叶变换进行计算, 滑动窗口30ms间隔10ms, 然后和视频对齐。然后将其堆叠为256*4的复合频谱图, 跨越了视频中的240ms。视频中的人脸是用一个3d人脸坐标检测器来追踪的, 得到468个面部特征, 并对深度(z-component)使用一个深度神经网络进行预测, 我们把这些特征称为顶点,它们伴随着一个具有固定拓扑结构的预定义三角脸mesh(predefined triangulated face mesh)

规范化

pose normalization

对于姿势归一化,我们首先选择输入视频中的一帧作为参考帧,并将其各自的三维面部特征点作为参考顶点。帧的选择并不关键,任何一帧脸部有足够的正面都是合适的。利用参考顶点,我们定义了一个参考圆柱坐标系(Optimal UV spaces for facial morphable model construction
其垂直轴使大多数脸部斜面和轴等距,然后我们将面部缩放, 以便将眼睛和鼻子投射到这个参考圆柱体上的固定位置

然后对于训练视频的每一帧, 我们固定了刚性头部运动,参见Rigid stabilization of facial expressions.
In Image and Vision Computing 以提供适合训练的registered 3d mesh。 具体的我们用的算法并且将旋转矩阵R, 平移矩阵t还有比例c应用到所有的追踪的顶点 v v v上, 公式为 r = c R v + t r = cRv + t r=cRv+t
感觉和3dmm模型是一样的。

我们使用这些规范化的顶点,以及上面定义的圆柱形映射,为每个视频帧(包括参考帧)创建一个姿势不变正面 projection of the face texture 。 把面部的顶点映射到参考圆柱体上, 为脸部表面创建一个2d texture coordinates, 用于展开纹理。 我们把坐标相关的三角形从源帧(source frame)warp到纹理区域, 从而生成256*256的类似面部正面图的纹理图集(texture atlas)
感觉像是那种纹理展开图, face3d有

但是对于非刚性的特征像是嘴唇和嘴随着说话移动, 下图展示了normalization后的结果, 头部姿态被移除, 但是嘴部形状和嘴部内饰(牙齿啥的)被保留
在这里插入图片描述
左边的数输入的图片和检测器检测后的结果, 中间是规范化的顶点和三角网格, 右边的纹理图集(texture atlas)作为纹理预测的ground truth

Lighting normalization

我们对正面的纹理图集进行归一化处理,以消除照明变化,这些变化主要是由头部运动或光照变化造成的。我们的照明规范化算法分两个阶段进行。它首先利用面部对称性对参考图集(atlas)R进行空间上的归一化,去除贯穿面部的镜面和照明变化(specularities and lighting variations。)

然后在视频帧之间进行时间上的归一化(temporal normalization across video frames) 将每一帧的图集atlas F与reference atlas R的光照相匹配。由此产生的图集有一个更统一的的外观,并在各帧之间保持一致。

我们首先描述时间上的标准化算法。因为它是空间归一化过程中的一个核心部分。这个算法假设两个纹理F和
R在几何上是预先对齐的。然而,任何非刚性的脸部运动,例如说话,都可能导致纹理坐标的不同, 从而导致R和F之间的错位。因此,我们首先对R进行warp,使其与F的纹理坐标对齐。使用用于正面化的基于三角形的warping(employing the same triangle-based warping algorithm used for frontalization.)算法。

考虑到对齐的R和F,我们估计一个映射,将F转换为与R的光照相匹配。这个映射是由亮度域(luminance domain)的平滑乘法像素级增益G(smooth multiplicative pixel-wise gain G)组成,然后是一个全局的通道增益和在RGB域的偏置映射{a, b}。由此产生的
归一化纹理 F n F^n Fn是通过以下步骤获得的。
(1) ( F y , F u , F v ) (F_y, F_u, F_v) (Fy,Fu,Fv) = R G B t o Y U V ( F ) RGBtoYUV(F) RGBtoYUV(F);
(2) F l y F_l^y Fly= G* F y F_y Fy
(3) F l = Y U V t o R G B ( F l y , F u , F v ) F^l = YUVtoRGB(F_l^y, F_u, F_v) Fl=YUVtoRGB(Fly,Fu,Fv)
(4) F n = a F l + b F^n = aF^l + b Fn=aFl+b.

Gain Estimation:
为了估计增益 G,我们观察到 F 和 R 中同一位置 k 的一对对应像素应具有相同的底层外观(underlying appearance),modulo any change in illumination,因为它们处于几何对齐. 参考下图

在这里插入图片描述

我们提出的训练期间的照明正常化步骤。
(A:) 第一步是去除输入帧的镜面反射。
(B:) 第二步是对参考图集进行自我归一化(self normalization)
(C:) 最后,任何给定的训练帧都要相对于步骤B的预规范化参考图集进行规范化。

这个反照率不变的
假设,如果完全满足,就可以得到像素k的增益
为Gk=Rk=Fk。然而,我们注意到(a)G是一个平滑的
变化的光照图,以及(b)反照率恒定可能会被违反,例如
偶尔会被违反,例如,在非皮肤像素,如嘴。
眼睛和鼻孔等非皮肤像素,或皮肤急剧变形的地方,如鼻唇沟。
鼻唇沟。我们考虑到这些因素,首先,估计
Gk在以k为中心的较大的补丁pk上,以及
其次,采用稳健的估计方法,根据像素对反照率的满足程度来加权
的稳健估计,根据它们满足反照率恒定性的程度来加权。我们把
估算Gk为最小化误差。
Ek =
X
j2pk
WjkRj Gk Fjk2; (1)
其中W是每个像素的权重图像,并使用
迭代加权最小二乘法(IRLS)解决。具体来说。
我们均匀地初始化权重,然后在每次(第1次)更新权重。
在每次(第i次)迭代后更新它们。
Wi+1
k = exp

Ei
k
T

; (2)
其中T是一个温度参数。权重和增益
在5-10次迭代中收敛;我们使用T=0:1和补丁
我们使用T = 0:1和256 256个图集的16 16个像素大小。图4©
显示了权重和增益图像的例子。具有大
误差Ek的像素得到低权重,并隐含地将其
增益值来自具有较高权重的相邻像素。
为了估计全局颜色变换fa; bg的封闭形式,我们将最小化全局颜色变换。
形式,我们最小化
P
kWkkRkaFkbk2的所有像素。
而Wk现在被固定为上面估计的权重。

Reference Atlas Normalization using Facial Symmetry:
Specularity Removal:

Joint Prediction Model and Training Pipeline

Audio encoder
Geometry decoder:
Texture decoder
Blendshapes decoder:

Auto-regressive (AR) Texture Synthesis

Inference and Synthesis

Textured 3D mesh:
Talking head video synthesis
Cartoon rendering:
CGI Characters:

猜你喜欢

转载自blog.csdn.net/landing_guy_/article/details/120758143
今日推荐