凭借在人脸生成领域的扎实积累和前沿创新,阿里云视频云与香港科技大学合作的最新研究成果《基于生成对抗网络的深度感知人脸重演算法 》(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. 在Window系统中安装VMware虚拟机搭建Linux服务器

    1.什么是VMware Workstation VMware Workstation Pro是一款桌面虚拟化软件.我们可以通过Workstation Pro在Windows或Linux PC上运行多个 ...

  2. 提高cin cout的速度

     ios::sync_with_stdio(false) :用来关闭iostream与stdio的同步,从而提高 cin cout 的效率,但是就不能再用 scanf printf 了,因为不关闭之前 ...

  3. Hadoop学习(一) 搭建伪分布式集群

    文章结构 1.准备工作 1.1 配置IP 1.2 关闭防火墙 1.3 修改主机名并与IP绑定 1.4 创建新用户 1.5 配置免密匙 2.安装并配置Hadoop伪分布式集群 2.1 安装Java 2. ...

  4. 【结对作业】第一周 | 学习体会day02

    今天我们想要实现线路的查询 发现了几个错误 1 <%-- 下拉表单的命名使用错误,导致无法接收前端数值--%> 首先我们很少使用下拉表单,之前用的也忘了,然后格式出现了错误 2 遇到typ ...

  5. 论文阅读:2023_Semantic Hearing: Programming Acoustic Scenes with Binaural Hearables

    论文地址:语义听觉:用双耳可听器编程声学场景 论文代码:https://semantichearing.cs.washington.edu/ 引用格式:Veluri B, Itani M, Chan ...

  6. Go:条件控制语句

    在 Go 语言中,主要的条件控制语句有 if-else.switch 和 select.以下是对它们的简单介绍: 1. if 语句: if 语句用于根据条件执行不同的代码块.它的基本形式如下: if ...

  7. Head First Java学习:第十一章-异常处理

    第十一章 异常处理 1.方法可以抓住其他方法所抛出的异常:异常总是丢回给调用方 有风险.会抛出异常的程序代码: 负责声明异常:创建Exception对象并抛出 调用该方法的程序代码: 在try中调用程 ...

  8. 解密Prompt系列21. LLM Agent之再谈RAG的召回信息密度和质量

    话接上文的召回多样性优化,多路索引的召回方案可以提供更多的潜在候选内容.但候选越多,如何对这些内容进行筛选和排序就变得更加重要.这一章我们唠唠召回的信息密度和质量.同样参考经典搜索和推荐框架,这一章对 ...

  9. 安装华企盾DSC加密软件,USB、银行key等驱动加载不了常见处理方法

    1.首先打开高级客户端查看客户端的权限是否正确 2.将USB设置成放行 3.修改USB管控的注册表 4.安装6.6.0高版本,并添加便捷式设备的注册表改为1见下图 5.添加flag000如正常则把相关 ...

  10. ncurses 与 panel

    ncurses 与 panel 一下是ncurses使用面板库panel的一个demo程序. #include <ncurses.h> #include <panel.h> # ...