论文阅读-Hierarchical Cross-Modal Talking Face Generation with Dynamic Pixel-Wise Loss

Posted xuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文阅读-Hierarchical Cross-Modal Talking Face Generation with Dynamic Pixel-Wise Loss相关的知识,希望对你有一定的参考价值。

论文阅读-Hierarchical Cross-Modal Talking Face Generation with Dynamic Pixel-Wise Loss

技术图片

论文链接: http://openaccess.thecvf.com/content_CVPR_2019/html/Chen_Hierarchical_Cross-Modal_Talking_Face_Generation_With_Dynamic_Pixel-Wise_Loss_CVPR_2019_paper.html

概述

关键词: 高级空间, 像素抖动, GAN模型

作者在本文中不由音频直接生成talking face, 而是将音频映射到高级空间, 也就是人脸的landmarks上, 再通过landmarks生成人脸. 这是个还不错的想法. 作者生成这种方法相比于直接生成, 有助于模型不会学习到视听信号和音频的伪相关性.

此外, 在对像素抖动和图像清晰度方面作者也给出了贡献.

本文是为数不多的相关论文里面在第一段就给出任务定义的:

"本文考虑了这样一个任务:给定目标脸部图像和任意语音录音,生成目标对象的逼真的有声面部,说出具有自然唇同步的语音,同时保持面部图像随时间的平稳过渡。"

这是talking face生成任务的经典定义.

作者提出了本文克服了这个领域的两个挑战:

  1. 视频帧之间的不流畅(伪影, 不连续), 并选择了GAN模型处理这种不流畅性

  2. 模型需要推断与视听信号无关的相机角度, 头部姿势等特征, 而这些特征是无法直接从音频中获得的. 因此作者选择将音频先转化为landmarks, 再转化为人脸的方法.

方法

技术图片

模型示意, 左半边转化, 右半边生成.

1 整体结构

论文提出的模型输入为, 一个音源序列(a_{1:T}), 一个样例帧(i_p)和这个帧的landmarks(p_p). 模型会针对音源序列(a_{1:T})生成其landmarks序列(hat{p}_{1:T})并生成连续的帧

(hat{v}_{1:T}). 用公式表示就是:

[egin{array}{l} hat{p}_{1: T}=Psileft(a_{1: T}, p_{p} ight) \\hat{v}_{1: T}=Phileft(hat{p}_{1: T}, i_{p}, p_{p} ight) end{array} ]

AT-net是一个encoder-decoder模型, VG-net则是一个多媒体CNN-RNN网络.

AT-net的任务是接受(a_{1:T})(p_p)并生成(hat{p}_{1:T}). 公式定义为:

[egin{aligned} left[h_{t}, c_{t} ight] &=varphi_{ ext {lmark }}left(mathrm{LSTM}left(f_{ ext {audio }}left(a_{t} ight), f_{ ext {lmark }}left(h_{p} ight), c_{t-1} ight) ight), \\hat{p}_{t} &=mathrm{PCA}_{mathrm{R}}left(h_{t} ight)=h_{t} odot omega * mathrm{U}^{T}+mathrm{M} end{aligned} ]

其中, (a_t)是音频的MFCC特征. (f_{audio}), (f_{lmark})和$$varphi_{ ext {Imark }}$$分别为audio的encoder, landmarks的encoder和decoder. (h_p)(h_t)分别为输入图片和输出的landmarks PCA.

(PCA_R)是PCA重构,而ω是增强PCA功能的升压矩阵。 U对应于最大特征值,M对应于训练集landmarks的平均形状。

VG-net是一个应用注意力机制的CRNN, 公式定义为:

[egin{array}{l} v_{t}^{prime prime}=f_{operatorname{img}left(i_{p} ight)} oplusleft(f_{ ext {lmark }}left(p_{t} ight)-f_{ ext {Imark }}left(p_{p} ight) ight) a t t_{p_{t}}=sigmaleft(f_{ ext {Imark }}left(p_{t} ight) oplus f_{ ext {lmark }}left(p_{p} ight) ight) v_{t}^{prime}=left(operatorname{CRNN}left(v_{t}^{prime prime} ight) ight) odot ext { att }_{p_{t}}+i_{p}^{prime} odotleft(1-operatorname{att}_{p_{t}} ight) end{array} ]

2 基于注意力的动态像素级loss

现有工作, 不管是基于GAN还是encoder-decoder, 都会出现像素抖动问题:

技术图片

如图所示, 相邻的帧之间, 同区域的像素出现了明显的不连贯, 而人对这种不连贯是非常敏感的. 一般的GAN loss或者L1/L2 loss都不能解决这个问题. 这也是本文着重解决的一个问题.

本文最终生成的帧要符合如下公式约束:

[hat{v}_{t}=oldsymbol{alpha}_{t} odot m_{t}+left(mathbf{1}-oldsymbol{alpha}_{t} ight) odot i_{p} ]

(alpha_t)是在(v‘_t)上进行卷积和sigmod激活之后获得的, (m_t)(v‘_t)上卷积和进行hyperbolic tangent activation(其实就是tanh). 这样会约束模型在于音频无关的区域(头发, 背景等)持续的生成统一的像素点.

3 基于回归的判别器 Regression-Based Discriminator

技术图片

结构不是很难, 原始图片和生成图片或者和ground truth作为输入, 通过LSTM预测landmarks, 并给整个序列给出一个分数(s):

[egin{aligned} hat{p}_{t} &=mathrm{D}_{p}left(p_{p}, v_{t} ight) &=p_{p}+mathrm{L} mathrm{S} operatorname{TM}left(f_{ ext {lmark }}left(p_{p} ight) oplus f_{ ext {img }}left(v_{t} ight) ight) end{aligned} ]

[egin{aligned} s &=mathrm{D}_{s}left(p_{p}, v_{1: T} ight) &=sigmaleft(frac{1}{T} sum_{t=1}^{T}left(mathrm{LSTM}left(f_{ ext {Imark }}left(p_{p} ight) oplus f_{ ext {img }}left(v_{t} ight) ight) ight) ight) end{aligned} ]

总结

本文比较让我眼前一亮的是:

  1. 将音频转化为高级特征表示而不是直接生成, 这相当于预处理了一波特征, 相当有效.

  2. 连续帧之间的像素抖动解决.

以上是关于论文阅读-Hierarchical Cross-Modal Talking Face Generation with Dynamic Pixel-Wise Loss的主要内容,如果未能解决你的问题,请参考以下文章

论文阅读笔记:Hire-MLP Vision MLP via Hierarchical Rearrangement

论文阅读Learning Effective Road Network Representation with Hierarchical Graph Neural Networks

论文阅读14HDLTex: Hierarchical Deep Learning for Text Classification

An End-to-End Steel Surface Defect Detection Approach via Fusing Multiple Hierarchical Features-阅读笔记

论文笔记:FeUdal Networks for Hierarchical Reinforcement Learning

论文代码解读 Hierarchical Reinforcement Learning for Scarce Medical Resource Allocation