构建talking-head的关键任务是,对于给定的音频,同步嘴部的运动,并为头部运动和眨眼生成个性化的属性。作者认为音频与嘴部运动是高度相关的,与其它属性不相关。基于此思想,提出了基于nerf的新的框架以追求高保真和个性化的talking-head生成。
在文中,nerf以嘴部运动特征和个性化属性作为两个解耦的条件,此为文章的核心观点,见下图1,
对于如何从音频中获取这些特征,由于嘴部运动和音频强相关,那么可以使用一个确定性的模型来估计嘴部运动,受到对比学习(constrastive learning)在视听同步任务上的鼓舞,作者引入对比学习来同步音频特征和嘴部运动特征。个性化的属性,包括头部运动和眨眼是随机的,为了让属性满足一定分布,生成更长的序列,作者提出一个概率模型,VAE(transformer variational autoencoder)。VAE能够生成平滑的输出,并将数据映射到高斯分布上。
总的来说,文章主要有一下贡献:
1)对于使用nerf生成高保真的talking-head任务,提出两个解耦的条件,即嘴部运动和个性化属性;
2)使用基于autoencoder的自监督方法来解耦嘴部运动和个性化属性;
3)设计了一个确定性模型来同步音频和嘴部运动,设计了一个概率模型来生成个性化属性;
算法整体框架如图2:
算法主要包含两部分:脸部属性提取和体渲染。对于第一部分,首先从音频中获取头部姿态和表情参数,这里使用的是3DMM方法,然后使用脸部属性解耦模块Fd解耦眨眼embedding fe和嘴部运动embedding fm。使用Transformer GP-VAE生成个性化属性(头部姿态和眨眼特征),使用对比学习同步嘴部运动fm和音频特征fa。之后,在体渲染阶段,使用h'作为view方向,同时,眨眼特征和音频特征聚合,一起作为条件fc输入nerf中,最后,使用体渲染得到图片。