当前位置:首页 > 技术分析 > 正文内容

CVPR 2021 |“以音动人”:姿态可控的语音驱动说话人脸

ruisui884个月前 (02-17)技术分析17

本文转载自商汤学术


摘要 · 看点

本文不使用任何人为定义的结构信息(人脸关键点或者3D人脸模型),成功实现了人头姿态可控的语音驱动任意说话人脸生成。本文的关键在于,隐式地在潜空间(latent space)中定义了一个12维的姿态编码,用于头部运动控制。


本文相比于之前的方法,避免了关键点或者3D模型计算不准确带来的烦恼,又保持了自由度和鲁棒性。实现了在语音控制准确嘴型的同时,用另一段视频控制头部运动。在这一框架下,我们可以让任何人说出马老师经典的“不讲武德”发言,彩蛋在我们demo video的最后!


本文由香港中文-商汤联合实验室,商汤科技和南洋理工大学S-Lab等合作完成。



代码一键能跑。我们的Demo video如下:


Part 1 任务背景


语音驱动的说话人脸生成(Talking face, Talking head generation)这一课题本身有多种不同的实验设置。此方向的综述可以参考 Lele Chen 的 What comprises a good talking-head video generation? : A Survey and Benchmark [1]。


在这里本文Focus的方向为基于单张图像(One-shot),面向任意人脸,语音驱动setting下的说话人脸生成问题。具体来说,我们希望基于一张图片,生成与语音同步的说话人脸视频。


这一setting下的工作包括 VGG 组的You said that? [2] ,CUHK(笔者自己)的DAVS [3],乐乐的ATVG [4] 以及Adobe周洋和李丁博士的MakeitTalk [5]等等。整体来讲,之前的工作[2][3][4]更多的关注于嘴型的准确性和ID的保存上,从而忽略了头部的自然运动。在本文中我们所试图解决的,是之前说话人脸生成中人头pose难以控制这一问题。


最近的Makeittalk[5]和乐乐的Rhythmic Head[6] 则关注于和个人ID信息有关的自然头部运动。但是他们的方法都依赖于3D的结构化信息。


想独立控制头部运动,就需要对Head pose和facial expression,identity做一个解耦。通过思考我们可以意识到,这种解耦在2D图像和2D landmark的表征中都很难实现。


而在我们语音驱动的大前提下,嘴型要和audio对齐,头部运动又要自然,可以说是难上加难。另一方面,3D的人脸表征中,head pose和facial expression可以天然地用不同的参数控制,可以说是最佳选择。


因此之前的工作,Makeittalk[5]选择了3D的人脸关键点,而Rhythmic Head[6]则直接依赖于完整地3D重建。但是基于3D的人脸建模,尤其是在极端场景下,开源方法的准确度并无法保证。而基于优化算法的3D fitting还会带来大量的预处理负担。所以本文不使用3D或结构化数据,重新从2D入手解决问题。


Part 2 方法介绍


我们的方法Pose-Controllable Audio-Visual System (PC-AVS)直接在特征学习和图像重建的框架下,实现了对人头pose的自由控制。我们的核心在于隐式地在潜空间(latent space)中定义了一个12维的姿态编码,而这一设计源于对去年CVPR利用styleGAN实现Face Reeanctment[7]的工作(如下图)的参考。



但他们工作中只说明了styleGAN可以使用augmented frame进行图像到图像的控制。而在语音驱动的说话人脸问题中,condition实际来自audio的场景下,直接暴力借用这一框架将难以进行训练,因为语音并不能提供人脸姿态信息。


基于对说话人脸的观察,我们在文中把augmented图像的潜空间,定义为无ID空间(Non-Identity Space)。直观上讲,在此空间中,我们可以重新寻找嘴型与语音关联的说话内容空间(Speech Contant Space),和表示头部运动的姿态空间(Pose Space)。



我们工作的完整pipeline如下图所示,训练数据使用的是大量的含语音视频。我们使用任意的一帧

作为ID参考输入,变形另一帧

,并将与

对齐的语音的频谱

作为condition,试图使用网络恢复



使用数据集的ID约束,我们可以通过ID encoder

得到Identity Space;借助之前的augmentation,我们通过encder

,得到Non-Identity Space。接下来的问题是如何发挥audio的作用,以及如何让图像只约束Pose而不控制嘴型。


  • Learning Speech Content Space. 我们希望Non-Identity Space的feature经过一个mapping 映射至speech content space中。而这一latent space的学习,主要依赖音频和视频之间天然的对齐、同步信息(alignment)。在之前的工作中这已经被证明是audio-visual领域用处最广泛的自监督之一[8]。在这里我们使用语音与人脸序列之间的对齐构建contrastive loss进行对齐的约束;对齐的人脸序列和语音特征 是正样本,非对齐的 为负样本。定义两个feature之间的cos距离为 ,这一约束可以表达为:
  • Devising Pose Code. 另一方面,我们借助3D表征中的piror knowledge。一个12维度的向量其实已经足以表达人头的姿态,包括一个9维的旋转矩阵,2维的平移和1维的尺度。所以我们使用一个额外的mapping,从Non-Identity Space中映射一个12维的Pose Code。这个维度上的设计非常重要,如何维度过大,这一latent code所表达的就可能超过pose信息,导致嘴型收到影响。

最后我们把 Identity Space,Speech Content Space 和 Pose code 结合起来,送入基于StyleGAN2[9]改造的Generator。这三者的信息在Generator中通过图像重建训练进行平衡,loss形式使用了pix2pixHD的重建训练loss。


在训练中,pose code起作用的原理是,在ID和pose信息都显式地被约束的前提下,Pose Code最容易学到的信息是改变人头的姿态,以减少重建的loss。在这一目标下,因为姿态逐渐与我们的目标贴合,嘴型的重建约束也会反过来帮助audio feature的学习,从而达到平衡。


Part 3 实验结果


我们在数值上和质量上与之前SOTA的任意语音驱动人脸的方法进行了对比。在数值上,我们对比了LRW和VoxCeleb2两个数据集,重点关注于生成图像还原度(SSIM),图像清晰度(CPDB),生成嘴型landmark的准确度(LMD)和生成嘴型与音频的同步性,使用SyncNet[8]的confidence score评价



我们与之前方法的对比图如下所示:



更多的Ablation和结果可以参考我们的paper和demo video,这边展示了在极端情况(大角度,低分辨率)的生成结果。展示了如果我们把pose code置0,可以实现转正的说话人脸效果。




Part 4 总结


在这个工作中,我们提出了Pose-Controllable Audio-Visual System (PC-AVS),成功在语音任意说话人的setting下,生成了姿态可控的结果。综合来看我们的方法有以下几个特质值得关注:


  1. 我们的方法不借助预定义的结构信息,仅使用一个图像重建的pipeline,成功定义了一个对人脸pose的表征。
  2. 由style-based generator平衡的训练模式让唇形生成收到更契合的重建约束,从而提升了唇形对齐的准确度。
  3. 我们实现了任意说话人脸下的自由人头姿态控制,使生成的结果更加真实。
  4. 我们的模型在极端情况下有很好的鲁棒性,并且实现了转正的说话人脸生成。

相关链接

Paper 地址:https://arxiv.org/abs/2104.11116

Github:https://github.com/Hangz-nju-cuhk/Talking-Face_PC-AVS

Project Page:https://hangz-nju-cuhk.github.io/projects/PC-AVS


招聘信息

商汤科技-数字人研发团队现正招聘全职AI研究员和工程师,以及研发实习生。我们的研究成果不仅在各大顶级视觉会议上发表,更在大量实际产品中落地。研发方向包括但不限于:图像/视频生成,人脸/人体重建,多模态学习,语音分析等。对我们的研究感兴趣的小伙伴,可以投递简历至xusu@sensetime.com.


References

#What?comprises?a?good?talking-head?video?generation?:?A?Survey?and?Benchmark?https://arxiv.org/abs/2005.03201
#Joon?Son?Chung,?Amir?Jamaludin,?and?Andrew?Zisserman.?You?said?that??In?BMVC,?2017.?https://arxiv.org/abs/1705.02966
#Hang?Zhou,?Yu?Liu,?Ziwei?Liu,?Ping?Luo,?and?Xiaogang?Wang.?Talking?face?generation?by?adversarially?disentangled?audio-visual?representation.?In?Proceedings?of?the?AAAI?ConConference?on?Artificial?Intelligence?(AAAI),?2019.?https://arxiv.org/abs/1807.07860
#Lele?Chen,?Ross?K?Maddox,?Zhiyao?Duan,?and?Chenliang?Xu.?Hierarchical?cross-modal?talking?face?generation?with?dynamic?pixel-wise?loss.?In?Proceedings?of?the?IEEE?Conference?on?Computer?Vision?and?Pattern?Recognition?(CVPR),?2019.?https://www.cs.rochester.edu/u/lchen63/cvpr2019.pdf
#Yang?Zhou,?Xintong?Han,?Eli?Shechtman,?Jose?Echevarria,?Evangelos?Kalogerakis,?and?Dingzeyu?Li.?Makeittalk:?Speaker-aware?talking?head?animation.?SIGGRAPH?ASIA,?2020.?https://arxiv.org/abs/2004.12992
#Lele?Chen,?Guofeng?Cui,?Celong?Liu,?Zhong?Li,?Ziyi?Kou,?Yi?Xu,?and?Chenliang?Xu.?Talking-head?generation?with?rhythmic?head?motion.?European?Conference?on?Computer?Vision?(ECCV),?2020.?https://www.cs.rochester.edu/u/lchen63/eccv2020-arxiv.pdf
#Egor?Burkov,?Igor?Pasechnik,?Artur?Grigorev,?and?Victor?Lem-pitsky.?Neural?head?reenactment?with?latent?pose?descriptors.?In?Proceedings?of?the?IEEE?Conference?on?Computer?Visionand?Pattern?Recognition?(CVPR),?2020.??https://openaccess.thecvf.com/content_CVPR_2020/papers/Burkov_Neural_Head_Reenactment_with_Latent_Pose_Descriptors_CVPR_2020_paper.pdf
#Joon?Son?Chung?and?Andrew?Zisserman.?Out?of?time:?auto-mated?lip?sync?in?the?wild.?In?ACCV?Workshop,?2016.?https://www.robots.ox.ac.uk/~vgg/publications/2016/Chung16a/chung16a.pdf
#Tero?Karras,?Samuli?Laine,?Miika?Aittala,?Janne?Hellsten,Jaakko?Lehtinen,?and?Timo?Aila.?Analyzing?and?improv-ing?the?image?quality?of?stylegan.?InProceedings?of?theIEEE/CVF?Conference?on?Computer?Vision?and?PatternRecognition?(CVPR),?2020.?https://openaccess.thecvf.com/content_CVPR_2020/papers/Karras_Analyzing_and_Improving_the_Image_Quality_of_StyleGAN_CVPR_2020_paper.pdf

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2008.html

标签: pix2pixhd
分享给朋友:

“CVPR 2021 |“以音动人”:姿态可控的语音驱动说话人脸” 的相关文章

Deepin Linux正式引入AI功能,成为第一个正式加入AI潮流的Linux发行版

Deepin Linux是一个基于Debian的Linux发行版,以美观和实用性而闻名。现在为了达到人工智能发展趋势的前沿,Deepin Linux的开发人员宣布,他们已经开始将AI功能集成到桌面环境及其随附的应用程序中。AI集成包含了两种风格——AI驱动的图像编辑插件和AI编码助手。其中图像编辑插...

Vue3 如何实现父子组件传值?

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从父组件向子组件传递数据值,在父组件上通过在子组件标签上定义属性来实现数据属性值的传递,在子组件中通过...

vue:组件中之间的传值

一、父子组件之间的传值----props/$emit1、父组件向子组件传值--props2.子组件想父组件传值-this.$emit('select',item)二、父组件向下(深层)子组件传值----provide/injectprovide:Object | () => O...

Vue.js 组件通信的 3 大妙招

在 Vue.js 中,组件化是其核心概念之一,允许你将复杂的界面拆分成多个独立的、可复用的组件。在构建大型应用时,如何高效地在组件之间传递数据和触发事件是非常重要的。Vue.js 提供了多种方式来处理组件间的通信,下面是最常用的 3 种方式:1.父子组件通信:通过 Props 和 Events在 V...

Vue真是太好了 壹万多字的Vue知识点 超详细!

1??、Vue和其他两大框架的区别Angular 学习成本太高React 代码可读性差Vue 学习成本较低 很容易上手VUE官方: https://cn.vuejs.org/v2/guide/comparison.html?2??、Vue是什么Vue是一套用于构建用户界面的渐进式框架 "前端...

三勾商城(java+vue3)微信小程序商城+SAAS+前后端源码

项目介绍本系统功能包括: 前台展示+后台管理+SAAS管理端,包括最基本的用户登录注册,下单, 购物车,购买,结算,订单查询,收货地址,后台商品管 理,订单管理,用户管理等等功能,小伙伴一起来看看吧。三勾小程序商城基于springboot+element-ui+uniapp打造的面向开发的小程序商城...