论文:https://arxiv.org/pdf/2011.15126
github:GitHub - zhanglonghao1992/One-Shot_Free-View_Neural_Talking_Head_Synthesis: Pytorch implementation of paper "One-Shot Free-View Neural Talking-Head Synthesis for Video Conferencing"
一种新颖的 3D 关键点分解方案允许在不同姿势下重新渲染说话头视频,模拟经常遗漏的面对面视频会议体验
摘要
我们模型输入目标参考图像和驱动视频来合成说话头视频。我们的运动是基于新颖的关键点表示编码的,特定身份和运动相关信息被无监督分解。该方法产生的视频质量达到了商用的H.264标准。我们的关键点表示允许用户在合成过程中旋转头部。
引言
使用深度网络而不是使用3D人类头部的图形模型。与3D模型对比,基于2D模型的方法有不少好处。
首先,它避免了3D模型的获取,这通常是费力和昂贵的
其次,基于2d的方法可以更好地处理头发、胡须等区域的合成,而获取这些区域的详细三维几何形状具有挑战性。
最后,他们可以直接合成源图像中的配件,包括眼镜、帽子和围巾,而不需要他们的3D模型。
以前的一些基于2D模型的方法,只能基于原始图像的视角合成说话头像,不能合成视角freestyle。
我们的模型通过使用一种新颖的3D关键点表示来表示视频,其中分解了特定于人的和运动相关的信息,从而实现了这种功能。关键点以及分解都是基于无监督的。使用分解,我们可以将3D变换应用于特定于人的表示来模拟头部。
贡献1。一种新颖的单次神经说话头合成方法,在基准数据集上获得了比现有方法更好的视觉质量。
贡献2。本地自由视图控制输出视频,无需3D图形模型。我们的模型允许在合成过程中改变说话人的视点。
贡献3。减少视频流的带宽。我们将我们的方法与商业H.264标准在基准对讲头数据集上进行了比较,并表明我们的方法可以实现10倍的带宽减少。
视频压缩
残差与光流的分层插值与联合编码,可以减少比特率
其他研究[53,85,91,97]侧重于使用深度网络恢复低比特率视频的质量。
与我们的工作最相关的是david - net[97],它使用来自音频流的信息来恢复有声视频。我们提出的方法在许多方面与这些作品不同,无论是在目标还是用于实现压缩的方法上。
人的脸部有内在的结构,从形状到诸如眼睛,鼻子,嘴等不同部分的相对排列。
我们的方法不能保证像素对齐的输出视频;然而,它忠实地模拟了面部运动和情绪。它也更适合视频流,因为它不使用双向或b帧。
方法
s表示一个原图片中的人物
{d1,d2,......,dN}表示一个说话驱动视频,di表示某帧,N表示总帧数。
我们的目标是生成一个视频{y1,y2,......,yN},身份特征是s,动作参考来源于di
当s是驱动视频中的一帧,叫做视频重建任务,当不源于驱动视频,叫做动作迁移任务
方法主要分为三个步骤
1)原图特征提取
2)驱动视频特征提取
3)视频生成
我们主要的成分基于无监督的方法学习一组3D关键点以及他们的分解。我们分解这些关键点为两部分:
1.模拟人物的面部表情
2.模拟人物的几何特征
当关键点被学习到之后,他们会被用于学习一个两个图像之间的映射函数,通过一组网络来实现这些步骤,并进行联合训练。
上面的图诠释1)和2)过程
(a)从原图中,我们提取外观特征和3D 规范化关键点。我们还估计头部的姿态和由于表情引起的关键点扰动
(b)从驱动图片中,我们再次估计头部姿态和表情形变。通过再利用原图的规范化关键点,我们计算驱动的关键点。
原图特征提取
合成一个说话人物需要知道人物的外观,例如皮肤和眼睛颜色。如(a)所示,我们使用了一个3D外观特征提取网络F将原图像s映射到3D外观特征体fs。不像2D特征图,fs有三个空间维度:宽度,高度,深度。映射到3D特征是一个很关键的步骤。它允许我们在三维空间中操作关键点,以便在合成过程中旋转和平移说话头。
我们使用一个规范化的3D关键点检测网络L提取一组K个3D关键点xc,k属于R3。我们设置K=20。值得注意的是这些关键点是基于非监督学习的并且不同于普通的面部关键点。仅仅带有个人特征,没有表情和姿态。
紧接着,我们从图片中提取姿态和表情信息。我们使用一个姿态估计网络H估计s中人物的头部姿态,由一个旋转矩阵Rs属于R3x3和一个平移向量ts属于R3。除此之外,我们使用一个表情形变估计网络去估计一组K个3D形变,这些关键点的形变来源于神经网络表示。H和提取图像中动作相关的几何信息。我们将L提取的身份信息与H、∆提取的运动相关信息相结合,通过变换T得到源三维关键点xs,k:
最后的关键点是特定于图像的,包含个人签名、姿势和表情信息。
上图是关键点计算的可视化过程
3D关键点分解至关重要。它致力于关键点的先验分解:几何特征、头部姿态、表情。它有助于学习可操作的表示,并将我们的方法与先前的2D基于关键点的神经方法不同。值得注意的是,我们不同与FOMM,我们不需要计算雅可比矩阵。雅可比矩阵表示如何通过仿射变换将关键点周围的局部补丁转换为另一图像中相应的补丁。我们的模型没有明确地估计它们,而是假设头部大部分是刚性的,并且局部斑块变换可以通过Js=Rs直接从头部旋转中得到。避免估计雅可比矩阵使我们能够进一步减少视频会议应用的传输带宽,详见第5节。
上图诠释3) 过程
我们使用源图关键点和驱动图片的关键点来估计K个光流场,。这些光流场可以用来对原图特征fs做变形处理。m和的线性结合产生组合光流场w,它将用于对3D原特征做变形。最后,生成器G将形变特征转换为输出图像。
驱动视频特征提取
我们用d表示{d1, d2,…,dN}中的坐标系,作为单独的帧以相同的方式处理。为了提取运动相关信息,我们使用头部姿态估计器H得到Rd和td,并应用表情变形估计器获得,如图3所示。
现在,我们不再使用L从驱动图像d中提取规范的3D关键点,而是重用从源图像s中提取的xc,k。这是因为输出图像中的人脸必须与源图像s中的人脸具有相同的身份,不需要再次计算它们。最后,结合身份相关信息和运动相关信息计算驾驶图像d的驾驶关键点,方法与获取源关键点的方法相同:
我们将这个应用到驱动视频的每一帧,每一帧都可以简洁的表示为Rd,td,和。这个简洁地表示对于低宽带会议非常有用。在第5节中,我们将介绍一个熵编码方案来进一步压缩这些数量来减少宽带使用。
我们的方法允许在合成过程中更改3D姿态。让Ru和Tu分别表示用户指定的旋转和平移矩阵。那么最终输出图像的头部姿态Rd<-RuRd和td<-tu+td。在视频会议中,我们可以自由的改变人物的姿态不需要关注这个原来的视角。
视频合成
如图5所示,我们通过变形原特征并经过生成器G产生结果图y。 该形变近似于从s到d的非线性变换。它为合成任务重新定位源特征。
为了获得所需的形变函数w,我们采用自下而上的方法。我们首先使用一阶近似[68]计算由第k个关键点引起的形变流,该近似仅在关键点附近可靠。在获得所有K个翘曲流之后,我们应用它们中的每一个来翘曲源特征体。利用运动场估计网络m,对k个扭曲特征进行聚合以估计流组成掩码m。该掩码指示在每个空间3D位置使用K流中的哪一个。我们使用这个掩码来组合Kflows以产生最终的flow w。操作的细节在附录A.1中给出。
训练
我们使用一个说话的视频数据集来训练我们的模型,每个视频都包含一个人。对于每个视频,我们采样两帧:一帧作为源图像s,另一帧作为驱动图像d。我们通过最小化后续损失来训练网络F、∆、H、L、M和G
简而言之,前两项确保输出图像看起来与地面真实情况相似。接下来的两个项强制预测的关键点是一致的,并满足一些关于关键点的先验知识。最后两项约束了估计的头部姿态和关键点扰动。我们将在下面简要讨论这些损失,并将实现细节留在附录A.2中。
实验
实现细节
网络结构和训练超参数在补充材料3中。
数据集
我们的评估基于VoxCeleb2[13]和talkinghead - 1kh,这是一个新收集的大规模谈话视频数据集。它包含180K视频,通常具有比VoxCeleb2更高的质量和更大的分辨率。详情见附录B.1。
说话头像合成
网络
我们将我们的神经说话头模型与三种最先进的方法进行了比较:FOMM[68]、few-shot vid2vid (fs-vid2vid)[82]和双层神经avatar (bilayer)[92]。我们使用VoxCeleb2上发布的预训练模型进行双层[92],并在相应的数据集上从头开始重新训练其他模型。由于双层不能预测背景,我们在做定量分析时减去背景。
评价指标
我们评估了一个综合模型:1)使用L1、PSNR、SSIM/MS-SSIM的重建信度,2)使用FID的输出视觉质量,以及3)使用平均关键点距离(AKD)的语义一致性。有关性能指标的详情,请参阅附录B.2。
相同的身份重建
我们首先比较了源图像和驱动图像为同一人的人脸合成结果。定量评价见表1。可以看出,我们的方法在两个数据集的所有指标上都优于其他竞争方法。为了验证我们的卓越性能不是来自于更多的参数,我们训练了另一个比我们的模型更大的具有双倍过滤器大小的大型FOMM模型(FOMM- l)。我们可以看到,放大模型实际上损害了性能,证明简单地把模型做大并没有帮助。图6和7显示了定性比较。该方法能更真实地再现车辆的驾驶动作。
不同身份运动迁移
接下来,我们比较源图像和驱动图像来自不同人的结果(交叉身份)。从表2可以看出,与其他方法相比,我们的方法获得了最好的结果。图8比较了不同方法的结果。可以看出,我们的方法在保持原始身份的同时,生成了更加真实的图像。对于交叉同一性运动传输,有时使用相对运动是有用的[68],其中仅传输驾驶视频中相邻两帧之间的运动差异。我们在附录B.3中报告了使用相对运动的比较。
面部重定向
网络
我们使用最新的人脸正面化方法:pixel2style2pixel (pSp)[64]和Rotate-and-Render (RaR)[99]对我们的talking-head模型的人脸重定向能力进行基准测试。pSp将原始图像投影到潜在代码中,然后使用预训练的StyleGAN[1]合成前置图像。RaR采用3D人脸模型对输入图像进行旋转,并以不同的姿态重新渲染。
评价指标
结果通过两个指标进行评估:身份保存和头部姿势角度。我们使用预训练的人脸识别网络[59]来提取高级特征,并计算旋转后的人脸与原始人脸之间的距离。我们使用预训练的头部姿态估计器[66]来获得旋转面部的头部角度。对于旋转后的图像,如果它与原始图像的恒等距离在某个阈值内,并且/或者它的头部角度在期望角度的一定公差范围内,我们认为它是一个“好”图像。
我们使用表3中每种方法的度量报告了“好”图像的比例。图9为示例比较。可以看出,虽然pSp总是可以正面化,但通常会丢失身份。由于RaR采用了3D人脸模型,因此产生了更吸引人的视觉效果,但在面部内部区域之外存在问题。此外,两种方法都存在时间稳定性方面的问题。只有我们的方法才能实际地处理输入。