凭借在人脸生成领域的扎实积累和前沿创新,阿里云视频云与香港科技大学合作的最新研究成果《基于生成对抗网络的深度感知人脸重演算法 》(Depth-Aware Generative Adversarial Network for Talking Head Video Generation)被 CVPR2022 接收。本文为最新研究成果解读。

论文题目:《Depth-Aware Generative Adversarial Network for Talking Head Video Generation》

arxiv链接:https://arxiv.org/abs/2203.06605

人脸重演算法将使视频编解码有新突破?

近年来随着视频直播的大火,越来越多的人开始关注视频云领域。而视频传输的低延迟,高画质,一直是难以平衡的两个点。当前直播延时最低可以降到 400ms 以内,但是在视频会议等各场景的需求不断增加的情况下,比如远程 PPT 演示,我们对画质和延迟的平衡有着更高的要求。而突破直播延迟的关键是编解码技术的提升,人脸重演算法与编解码技术的结合,在视频会议场景的应用中将使带宽需求大幅减少,而获得更具身临其境的体验,这是迈向超低延时优画质视频会议非常重要的一步。

人脸重演(face reenactment/talking head)算法是指,利用一段视频来驱动一张图像,使图像中的人脸能够模仿视频中人物的面部姿态、表情和动作,实现静态图像视频化的效果。



图 1

人脸重演发展现状

目前的人脸重演方法严重依赖于从输入图像中学习到的 2D 表征。然而,我们认为稠密的 3D 几何信息(例如:像素级深度图)对于人脸重演非常重要,因为它可以帮助我们生成更准确的 3D 人脸结构,并将噪声和复杂背景与人脸区分开来。不过,稠密的视频 3D 标注代价高昂。

研究动机&创新点

在本文中,我们介绍了一种自监督的 3D 几何学习方法,可以在不需要任何 3D 标注的情况下,从视频中估计出头部深度(depth maps)。我们进一步利用深度图来辅助检测人脸关键点,从而捕捉头部的运动。此外,深度图还用于学习一种 3D 感知的跨模态注意力(3D-aware cross-model attention),以指导运动场(motion field)的学习和特征的形变。



图 2

图 2 展示了本文提出的 DA-GAN 的 pipeline,它主要包含三部分:

(1)深度估计网络,我们通过自监督的方式估计稠密的人脸深度图;

(2)关键点检测网络,我们将由深度图表征的 3D 几何特征与由 RGB 图的外观特征进行拼接,以预测更为准确的人脸关键点;

(3)人脸合成网络,它又可以分为一个特征形变模块和一个跨模态注意力模块。

特征形变模块将输入的稀疏关键点转化为稀疏运动场(sparse motion field),随后学习得到稠密运动场(dense motion field),并用其对图像特征进行扭曲(warping)。

跨模态注意力模块利用深度特征学习得到注意力图(attention maps),以捕捉更多动作细节并修正人脸结构。两个模块的结构可见图 3 和图 4。



图 3



图 4

实验结果

定量实验

我们在 VoxCeleb1[1] 和 CelebV[2] 数据集上进行了实验。

我们使用 structured similarity (SSIM) 和 peak signal-to-noise ratio (PSNR) 来评估结果帧和驱动帧的相似度;

使用 average keypoint distance (AKD) 和 average euclidean distance (AED)[3] 来评估关键点的准确性,使用 CSIM[4] 来评估身份保持;

使用 PRMSE 来评估头姿保持,使用 AUCON 来评估姿态保持。

定量对比



表 1



表 2



表 3

表 1 和表 2 是 DA-GAN 与主流人脸重演方法在 VoxCeleb1 数据集上的定量对比,表 3 是 DA-GAN 与主流人脸重演方法在 CelebV 数据集上的定量对比。

定性对比

图 5 是 GA-GAN 与主流人脸重演方法的定性对比。实验表明,本文提出的 DA-GAN 在各项指标以及生成效果上上均优于其它算法。



图 5

消融实验(Ablation study)

图 6 是 ablation study 的结果,可以看到,自监督深度估计和跨模态注意力模块都显著提升了合成人脸的细节和微表情。



图 6

研究总结

通过以上的的结果,可以看出人脸重演算法可以实现更为精细的人脸细节和微表情合成。在视频会议场景中,用 talking head 的方法,在通信过程中可以只传输关键点坐标,而不需要传输每帧图像,在接收端可以通过输入关键点恢复每一帧的图像,大幅降低带宽需求,从而获得画质优良的低延时视频会议体验。

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。公众号后台回复【技术】可加入阿里云视频云产品技术交流群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。

CVPR2022 前沿研究成果解读:基于生成对抗网络的深度感知人脸重演算法的更多相关文章

  1. 知物由学 | AI网络安全实战:生成对抗网络

    本文由  网易云发布. “知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道.“知物由学” ...

  2. 【超分辨率】—(ESRGAN)增强型超分辨率生成对抗网络-解读与实现

    一.文献解读 我们知道GAN 在图像修复时更容易得到符合视觉上效果更好的图像,今天要介绍的这篇文章——ESRGAN: Enhanced Super-Resolution Generative Adve ...

  3. [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述

    Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...

  4. AI佳作解读系列(六) - 生成对抗网络(GAN)综述精华

    注:本文来自机器之心的PaperWeekly系列:万字综述之生成对抗网络(GAN),如有侵权,请联系删除,谢谢! 前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian G ...

  5. 基于Jittor框架实现LSGAN图像生成对抗网络

    基于Jittor框架实现LSGAN图像生成对抗网络 生成对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的 ...

  6. 解读生成对抗网络(GAN) 之U-GAN-IT

    Unsupervised Generative Attentionnal Networks with Adapter Layer-In(U-GAN-IT) 从字面我们可以理解为无监督生成对抗网络和适配 ...

  7. 不到 200 行代码,教你如何用 Keras 搭建生成对抗网络(GAN)【转】

    本文转载自:https://www.leiphone.com/news/201703/Y5vnDSV9uIJIQzQm.html 生成对抗网络(Generative Adversarial Netwo ...

  8. 科普 | ​生成对抗网络(GAN)的发展史

    来源:https://en.wikipedia.org/wiki/Edmond_de_Belamy 五年前,Generative Adversarial Networks(GANs)在深度学习领域掀起 ...

  9. GAN实战笔记——第六章渐进式增长生成对抗网络(PGGAN)

    渐进式增长生成对抗网络(PGGAN) 使用 TensorFlow和 TensorFlow Hub( TFHUB)构建渐进式增长生成对抗网络( Progressive GAN, PGGAN或 PROGA ...

  10. 渐进结构—条件生成对抗网络(PSGAN)

    Full-body High-resolution Anime Generation with Progressive Structure-conditional Generative Adversa ...

随机推荐

  1. EventBus 简明教程

    简介 EventBus 是一个用于 Android 和 Java 编程的 事件发布/订阅框架.使用 EventBus 进行事件传递,事件的发布和订阅就被充分解耦合,这使得编程人员从传统而原始的事件传递 ...

  2. 升级到 Pulsar3.0 后深入了解 JWT 鉴权

    背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...

  3. python之递归(斐波那契数列)与迭代

    对于较大的计算来说,迭代不如递归计算速度快,并且可以说非常慢 但是迭代对于较小的运算又比递归巧妙 # 迭代方法 def slowsnail(x): am = [1, 1] if x < 0: p ...

  4. httpclients 和 okhttp 区别

    HttpClient使用介绍使用HttpClient发送请求主要分为以下几步骤: 创建 CloseableHttpClient对象或CloseableHttpAsyncClient对象,前者同步,后者 ...

  5. 架构师的知行合一(内容由AI的全文生成,满分100分我打99分)

    大型架构是怎么来的 随着科技的不断发展,越来越多的企业和组织开始意识到数字化转型的重要性.为了更好地适应市场的变化,满足客户的需求,提高企业的竞争力,大型架构成为了企业和组织不可或缺的一部分.那么,大 ...

  6. 使用CEF(七)详解macOS下基于CEF的多进程应用程序CMake项目搭建

    由于macOS下的应用程序结构导致了CEF这样的多进程架构程序在项目结构.运行架构上有很多细节需要关注,这一块的内容比起Windows要复杂的多,所以本文将会聚焦macOS下基于CEF的多进程应用架构 ...

  7. 1 HTTP是什么,HTTP不是什么?

    HTTP是什么? HTTP 全程超文本传输协议(HyperText Transfer Protocol). 包含三部分:超文本.传输.协议. 1. 协议 HTTP是一个用在计算机世界里的协议.它使用计 ...

  8. docker开启或关闭<开机自启容器>

    启动容器时设置 docker run --restart=always 启动完成也可以修改 docker update --restart=always <容器ID> 想取消容器自启 do ...

  9. 【笔记整理】使用Session会话保持

    import requests if __name__ == '__main__': # Session对象实现了客户端和服务器端的每次会话保持功能. session = requests.Sessi ...

  10. C 语言教程:条件和 if...else 语句

    C 语言中的条件和 if...else 语句 您已经学习过 C 语言支持数学中的常见逻辑条件: 小于:a < b 小于或等于:a <= b 大于:a > b 大于或等于:a > ...