掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开总体上涉及数字图像处理。更具体地,本公开涉及移动装置上逼真的头部转动和面部动画合成。

背景技术

面部动画合成可以包括将源视频中的源个体的面部表情转移到目标视频或目标图像中的目标个体。面部动画合成可以用于许多应用(诸如娱乐节目、计算机游戏、视频对话、虚拟现实、增强现实等)中的面部的操作和动画处理。

用于面部动画合成的一些当前技术利用可变形面部模型来重新渲染具有不同面部表情的目标面部。尽管用可变形面部模型生成面部可以很快,但是所生成的面部可能不逼真。用于面部动画合成的一些其他当前技术耗时并且可能不适合在常规移动装置上执行实时面部动画合成。

发明内容

提供本部分来以简化的形式介绍将在以下具体实施方式部分中进一步描述的概念选择。本发明内容既不旨在识别所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助。

根据本公开的一个实施例,用于逼真的头部转动和面部动画合成的示例方法可以包括通过计算装置接收源视频的帧。该源视频的帧可以包括源参与者的头部和面部。该方法可以进一步包括通过计算装置基于源视频的帧生成源姿势参数集合。源姿势参数可以包括以下各项中的至少一项:与源参与者的面部标志的坐标相对应的源关键点和参数化面部表情模型的参数。该源姿势参数集合可以表示源视频的帧中源参与者的头部的位置和源参与者的面部表情。该方法可以进一步包括通过计算装置接收至少一个目标图像。该至少一个目标图像可以包括目标人员的目标头部和目标面部。目标人员可以与源参与者不同。该方法可以进一步包括基于至少一个目标图像确定与目标人员的目标面部相关联的目标身份信息。确定目标身份信息可以包括将至少一个目标图像提供给神经网络,该神经网络被配置为输出表示目标身份信息的实数值向量。该方法可以进一步包括通过计算装置并且基于目标身份信息和源姿势参数集合生成输出视频。输出视频的每一帧可以包括目标面部的图像。可以基于源姿势参数集合中的至少一个集合修改目标面部的图像以模仿源参与者的头部的位置中的至少一个位置和源参与者的面部表情中的至少一个面部表情。输出视频的每一帧可以独立于输出视频的其余帧生成。可以基于从输出视频的至少一个先前生成的帧中提取的信息生成输出视频的至少一个帧。生成输出视频可以包括将目标身份信息和源姿势参数集合提供给被配置为生成输出视频的帧的神经网络。

在示例实施例中,在生成输出视频之前,可以基于目标身份信息调整源姿势参数。在另一示例实施例中,在生成输出视频之前,可以对表示源视频的预定数量的相邻帧中的面部表情的源姿势参数进行平均。在又一示例实施例中,在生成输出视频之前,可以基于源姿势参数裁剪源视频的至少一个帧以获得另一帧。可以确定用于将至少一个帧变换为另一帧的仿射变换。在生成输出视频之后,可以对与源视频的至少一个帧相对应的输出视频的帧应用另一仿射变换。另一仿射变换可以是仿射变换的逆。

根据另一实施例,提供了一种用于逼真的头部转动和面部动画合成的系统。该系统可以包括至少一个处理器和存储处理器可执行代码的存储器,其中,至少一个处理器可以被配置为在执行处理器可执行代码时实现上述用于逼真的头部转动和面部动画合成的方法的操作。

根据本公开的又一方面,提供了一种非暂时性处理器可读介质,其存储处理器可读指令。当由处理器执行时,处理器可读指令使处理器实现上述用于逼真的头部转动和面部动画合成的方法。

示例的其他目的、优点和新颖特征将部分地在以下描述中阐述,并且在检查以下描述和附图之后,对于本领域技术人员将部分地变得显而易见,或者可以通过示例的生产或操作来了解。可以通过所附权利要求中特别指出的方法、手段和组合来实现和获得概念的目的和优点。

附图说明

在附图的各图中通过示例而非限制的方式示出了实施例,在附图中,类似的附图标记指示相似的元件。

图1是示出根据示例实施例的可以实现用于逼真的头部转动和面部动画合成的方法的示例环境的框图。

图2是示出根据示例实施例的用于实现用于逼真的头部转动和面部动画合成的方法的计算装置的示例实施例的框图。

图3是示出根据示例实施例的在推理阶段期间由用于逼真的头部转动和面部动画合成的系统执行的步骤的框图。

图4示出了根据示例实施例的源参与者的面部的图像和面部的关键点。

图5示出了根据示例实施例的目标参与者的图像。

图6示出了根据示例实施例的目标参与者的面部的图像。

图7是示出根据示例实施例的在训练阶段期间由用于逼真的头部转动和面部动画合成的系统执行的步骤的框图。

图8是根据一个示例实施例的用于逼真的头部转动和面部动画合成的系统的框图。

图9是示出用于在训练用于生成图像的神经网络期间生成损失的过程的流程图。

图10是根据示例实施例的面部关键点集合的图像。

图11示出了根据示例实施例的面部关键点的掩模。

图12是示出根据示例实施例的用于逼真的头部转动和面部动画合成的方法的流程图。

图13是示出根据示例实施例的用于逼真的头部转动和面部动画合成的方法的流程图。

图14示出了可以用于实现用于逼真的头部转动和面部动画合成的方法的示例计算机系统。

具体实施方式

实施例的以下具体实施方式包括对构成具体实施方式的一部分的附图的参考。本部分中描述的方法并非权利要求的现有技术,并且不通过包括在本部分中而被认为是现有技术。附图示出了根据示例实施例的图示。这些示例实施例(在本文中也称为“示例”)被足够详细地描述以使得本领域技术人员能够实践本主题。在不脱离所要求保护的范围的情况下,可以组合实施例、可以利用其他实施例或者可以进行结构、逻辑和操作上的改变。因此,以下具体实施方式不应被视为限制性的,并且范围由所附权利要求及其等同物限定。

本公开涉及用于逼真的头部转动和面部动画合成的方法和系统。本公开所提供的实施例至少解决了已知技术的一些问题。本公开可以被设计为实时地并且在不连接到因特网或不需要使用服务器侧计算资源的情况下在诸如智能电话、平板计算机或移动电话的在移动装置上工作,尽管实施例可以扩展涉及web服务或基于云的资源的方法。

本公开的一些实施例可以允许拍摄第一人(以下称为“源参与者”)的源视频并设置第二人(以下称为“目标参与者”)的目标照片(或视频)作为输入,并合成目标参与者的动画与源参与者的面部模仿和头部运动。通常,本公开的方法和系统使目标参与者看起来栩栩如生并且模仿源参与者的运动和面部表情。该方法和系统可以用于娱乐类型的移动应用中,其中,用户自拍并选择使人员动画和应用视觉效果的场景。该场景具有不同的设置和源参与者运动,这些都被转移到用户自拍。所生成的视频可以在不同的情况和地点以用户为特征。用户可以与其朋友分享所生成的视频。所生成的视频可以用作消息传送应用或社交网络服务中的视频标签。

通过执行源参与者的头部的位置和源参与者的面部表情的实时模仿,可以通过源面部的面部表情实时操纵目标面部。一些实施例可以显著地减少用于生成目标视频的计算时间,其中,目标人员的面部模仿源参与者的头部的位置和源参与者的面部表情,并且允许在移动装置上执行目标视频的该生成。

可以使用各种技术来实现本公开。例如,本文所描述的方法可以由在计算机系统上运行的软件和/或由利用微处理器或其他专门设计的专用集成电路(ASIC)、可编程逻辑装置的组合或其任意组合的硬件来实现。具体地,本文所描述的方法可以通过驻留在诸如磁盘驱动器或计算机可读介质的非暂时性存储介质上的一系列计算机可执行指令来实现。应当注意,本文所公开的方法可以通过诸如移动装置、个人计算机、服务器、网络节点等的计算装置来实现。

出于本专利文件的目的,除非另有说明或在使用术语“或”和“和”的上下文中另有明确意图,否则术语“或”和“和”应指“和/或”。除非另有说明或使用“一个或多个”明显不合适的情况下,否则术语“一(a)”应指“一个或多个”。术语“包括(comprise)”、“包括(comprising)”、“包括(include)”和“包括(including)”是可互换的,并且不旨在是限制性的。例如,术语“包括”应被解释为“包括但不限于”。

根据本公开的一个实施例,用于逼真的头部转动和面部动画合成的示例方法可以包括通过计算装置接收源视频的帧。该源视频的帧可以包括源参与者的头部和面部。该方法可以进一步包括通过计算装置基于源视频的帧生成源姿势参数集合。该源姿势参数集合可以表示源视频的帧中源参与者的头部的位置和源参与者的面部表情。该方法可以进一步包括通过计算装置接收至少一个目标图像。该至少一个目标图像可以包括目标人员的目标头部和目标面部。目标人员可以与源参与者不同。

该方法可以进一步包括基于至少一个目标图像确定与目标人员的目标面部相关联的目标身份信息。该方法可以进一步包括通过计算装置并且基于目标身份信息和源姿势参数集合生成输出视频。输出视频的每一帧可以包括输出视频的至少一个帧中的目标面部的图像。可以基于源姿势参数集合中的至少一个集合修改目标面部的图像以模仿源参与者的头部的位置中的至少一个位置和源参与者的面部表情中的至少一个面部表情。

根据本公开的另一实施例,用于逼真的头部转动和面部动画合成的示例方法可以包括通过计算装置接收源视频和源视频的帧。该源视频的帧可以包括源参与者的头部和面部。该方法可以进一步包括通过计算装置基于源视频的帧生成源关键点集合。该源关键点集合可以表示源视频的帧中源参与者的头部的位置和源参与者的面部表情。该方法可以进一步包括通过计算装置接收目标视频。该目标视频可以包括目标人员的目标头部和目标面部。目标人员可以与源参与者不同。该方法可以进一步包括通过计算装置并且基于目标视频和源关键点集合生成输出视频。输出视频的每一帧可以包括目标面部的图像。可以基于源关键点集合中的至少一个集合修改目标面部的图像以模仿源参与者的头部的位置中的至少一个位置和源参与者的面部表情中的至少一个面部表情。

现在参考附图,描述示例性实施例。附图是理想化示例实施例的示意图。因此,对于本领域技术人员显而易见的是,本文所讨论的示例实施例不应被理解为限于本文所呈现的特定图示,而是这些示例实施例可以包括偏离并且与本文所呈现的图示不同。

图1示出了示例环境100,其中,可以实践用于逼真的头部转动和面部动画合成的方法。环境100可以包括计算装置110、用户130和基于云的计算资源170(也称为计算云170)。计算装置110可以包括相机115和图形显示系统120。计算装置110可以指诸如移动电话、智能电话或平板计算机的移动装置。然而,在进一步的实施例中,计算装置110可以指个人计算机、膝上型计算机、上网本、机顶盒、电视装置、多媒体装置、个人数字助理、游戏控制台、娱乐系统、信息娱乐系统、车载计算机或任何其他计算装置。计算装置110可以经由数据网络通信地连接到计算云170。基于云的计算资源170可以包括在远程位置可用并且通过网络(例如,因特网)可访问的计算资源(硬件和软件)。基于云的计算资源可以被多个用户共享,并且可以根据需要动态重新分配。基于云的计算资源可以包括一个或多个服务器群/集群,该一个或多个服务器群/集群包括可以与网络交换机和/或路由器共址的计算机服务器的集合。在本公开的一些实施例中,计算装置110可以被配置为显示目标视频125。目标视频125可以包括至少一个帧,该至少一个帧包括目标面部140。在一些实施例中,目标视频125可以包括单个图像。在一些实施例中,目标视频125可以被预先记录并存储在计算装置125的存储器中或计算装置125通信地连接到的基于云的计算资源中。

在某些实施例中,计算装置110可以被配置为经由例如相机115来捕获源视频。源视频可以至少包括用户130的面部(也称为源面部)。在一些其他实施例中,源视频可以存储在计算装置110的存储器中或计算云170中。

在一些其他实施例中,多个目标视频或图像可以被预先记录并存储在计算装置110的存储器或计算云170中。用户可以选择要操纵的目标视频或图像以及要用于操纵目标视频或图像的源视频中的一个源视频。根据本公开的各种实施例,计算装置110可以被配置为分析源视频以提取用户130的面部表情的参数。计算装置110可以被进一步配置为基于源面部的面部表情的参数来修改目标视频125以使目标面部140实时重复源面部的面部表情。在进一步的实施例中,计算装置110可以被进一步配置为修改目标视频125以使目标面部140重复用户130的语音。

在本公开的一些实施例中,计算装置可以被配置为接收用户输入。用户输入可以包括指示如何控制目标面部的面部参数的一个或多个场景。场景可以包括用户130想要在修改的目标视频125中看到的目标面部140的面部表情类型和移动类型的序列。用户输入还可以包括指示用于生成修改的视频的计算装置(例如,移动装置或桌面)类型的环境变量。

在本公开的一些进一步的实施例中,计算装置110或基于云的计算资源170可以存储用户130的一个或多个图像。图像可以包括用户130的面部。图像还可以包括在不同条件下拍摄的一组照片或一组视频。例如,可以从相对于用户130的面部的不同角度并且在不同的照明条件下拍摄照片和视频。在一些实施例中,计算装置110或计算云170可以存储另一个体(例如,用户130的朋友或用户130喜爱的名人)的一个或多个图像。

根据本公开的一些实施例,计算装置110或基于云的计算资源170可以被配置为分析所存储的用户130的图像以提取用户130的面部参数。计算装置110或基于云的计算资源170可以被进一步配置为通过基于用户130的面部参数将目标视频125中的目标面部140替换为用户130的面部来修改目标视频125。

类似地,计算装置110或基于云的计算资源170可以被配置为分析所存储的用户130的图像以提取另一个体(例如用户130的朋友或用户130喜爱的名人)的面部参数。计算装置110可以被进一步配置为通过基于个体的面部参数将目标视频125中的目标面部140替换为个体的面部来修改目标视频125。在一些实施例中,计算装置110或基于云的计算资源170可以被配置为在将目标面部替换为用户130或另一个体的面部的同时保持目标面部140的面部表情不变。在图2所示的实例中,计算装置110包括硬件组件和软件组件两者。具体地,计算装置110包括相机115或任何其他图像捕获装置或扫描仪以获取数字图像。计算装置110可以进一步包括处理器模块210和存储模块215,用于存储软件组件和处理器可读(机器可读)指令或代码,当由处理器模块210执行时,这些处理器可读指令或代码使计算装置200执行如本文所述的用于逼真的头部转动和面部动画合成的方法的至少一些步骤。

计算装置110可以进一步包括用于逼真的头部转动和面部动画合成的系统220,其进而可以包括硬件组件(例如,单独的处理模块和存储器)、软件组件或其组合。用于逼真的头部转动和面部动画合成的系统220可以被配置为执行如本文所述的逼真的头部转动和面部动画合成。下面参考图4更详细地描述用于逼真的头部转动和面部动画合成的系统220。

用于逼真的头部转动和面部动画合成的系统220包括机器学习模型,并且参考示出推理阶段的图3以及示出训练阶段的图7进一步描述。

图3是示出在推理阶段期间由用于逼真的头部转动和面部动画合成的系统220执行的步骤的框图。目标参与者的“动画头部”生成过程可以分为几个阶段:

1-预处理源参与者和目标参与者的输入视频和照片。预处理不仅可以包括图像处理基元(诸如,重新调整大小和裁剪),而且包括更复杂的技术(诸如,语义分割和图像变形)。

2-编码源参与者的面部表情和头部姿势。编码可以包括每一帧的面部关键点序列或一些参数化面部表情模型的参数序列。该编码在下文中称为“姿势编码”。

3-(任选地)在一些情况下(例如,面部标志),在先前步骤中计算的编码可以包括关于源参与者的一些身份信息,这是不期望的并且需要被移除。因此,系统的可选步骤是姿势编码自适应。这意味着来自源参与者的姿势编码中的身份信息被替换为目标参与者的姿势编码中的身份信息。显然,在进行该操作时,保存包含在编码中的其他信息(面部表情和头部姿势)。此外,在“逐帧”生成策略的情况下,系统强制编码的时间一致性,因此系统通过姿势编码稳定来执行。

为了替换姿势编码中的身份信息,即将源参与者的面部标志替换为目标参与者的面部标志,训练在2D图像上操作的卷积神经网络(NN)。在用3D可变形模型(3DMM)生成的合成数据上训练卷积NN。

4-通过使用被称为“嵌入器”的模型编码目标参与者身份。嵌入器基于具有目标参与者头部的一组照片(或视频)输出嵌入。嵌入可以由实值一维向量、具有目标参与者的面部纹理的图像或包含关于参与者的身份的信息的任何其他结构来表示。每个帧可以通过以下两个策略中的一个策略馈送到嵌入器:(a)独立地使得最终嵌入被计算为每个输出的某个聚合函数;(b)一起使得要求嵌入器能够获得可变大小的输入。

5-使用被称为“发生器”的模型生成目标参与者的“动画头部”。发生器进行身份嵌入和姿势编码,并且生成目标面部移动。生成不仅可以用“逐帧”策略(当独立于所有先前的帧生成下一帧时)完成,而且在生成下一帧时可以考虑所有先前生成的帧。

此外,发生器可以将可以用3DMM渲染的所得图像的第一近似作为输入。

在一些实施例中,可以仅预先计算一次并用于生成所有帧的身份嵌入。这可以允许避免每次当“发生器”生成帧时使用“嵌入器”。

示例:处理源参与者的面部的图像(如图4所示,左图像400)以提取关键点(如图4所示,右图像450)。图5描绘了被馈送到嵌入器网络中以接收嵌入的目标参与者的图像500。所提取的关键点和嵌入用作发生器的输入,该发生器输出表达与源参与者(图4,左)相同情绪的目标参与者(如图6所示)的面部的图像600。

图7是示出在训练阶段期间由系统220执行的步骤的框图。为了训练模型,需要具有说话人的照片或视频的数据集,其中,每个说话者至少存在两张照片(或视频帧)。

训练阶段的逐步说明假设批大小等于1。显然可以将其推广到更大的批。在步骤1,我们拍摄输入参与者的N(N≥2)张随机照片,并以与推理阶段相同的方式预处理该N张随机照片。步骤2包括使用第一张照片计算姿势编码。步骤3包括使用所有其他照片计算身份嵌入。在步骤4,步骤2和步骤3的输出被传递到发生器,该发生器生成必须与第一张照片尽可能相似的图像。在步骤5,第一张照片被认为是训练过程中的真值。与所生成的图像一起,第一张照片被传递到估计当前步骤的损失值的损失计算框。在步骤6,在训练步骤期间最小化在前一步计算的损失。在可选的步骤7,如果训练数据集仅由单独的照片组成而不由视频组成,则执行附加的训练步骤,旨在迫使网络在生成视频的过程中生成一致帧。

严格来说,整个系统并未被训练。可训练的权重位于嵌入器、发生器中,并且可能位于损失计算框中。

图8是根据一个示例实施例的用于逼真的头部转动和面部动画合成的系统220的框图。用于逼真的头部转动和面部动画合成的系统220可以包括图像预处理模块805、面部和头部姿势编码器810、姿势编码自适应和稳定模块815、人员身份嵌入器820以及动画头部发生器825。模块805至825可以被实现为与诸如计算装置110、服务器等的硬件装置一起使用的软件组件。

图像预处理模块805可以拍摄输入图像并且对该输入图像应用重新缩放、裁剪、分割以及不改变输入图像的语义的任何其他操作。在示例实施例中,可以以人的头部位于图像中心的方式裁剪图像,并且然后可以用预定的恒定值替换背景像素。因此,模型可以聚焦于来自输入图像的人并且忽略不必要的细节。单独的语义分割NN模型可以用于将像素分为两类:背景和人员。

面部和头部姿势编码器810拍摄参与者的照片并且输出一些姿势编码,例如,作为每一帧的面部关键点序列或一些参数化面部表情模型的参数序列。在示例实施例中,使用78个面部关键点集合(参见图10),但是可以使用面部关键点的任何集合。关键点是描述特定面部点(如眉角)的2D点。面部关键点的三通道掩模(参见图11)用于每一帧。更具体地,在源视频的每一帧中提取关键点,然后固定源参与者头部的一些边界框(以像素为单位的固定宽度和高度),并且这些尺寸用于在内部绘制关键点掩模。除了2D面部标志(表示为RGB图像)之外,姿势还可以用表示为多维图像的单独通道上的轮廓、表示为热图(每个点由2D高斯表示)、RGB投影标准化坐标代码(PNCC)、经由3DMM渲染为作为粗略近似的RGB图像、通过表示面部部分(头发、面部、上身)的分割掩模、深度图和3D面部标志的面部标志来编码。可以通过使用头部视图的角度(偏航、俯仰、翻滚)和面部表情的动作单元(AU)来分别编码头部视图和面部表情。

姿势编码自适应和稳定模块815执行姿势编码和稳定。姿势编码不仅可以包含情绪和头部方向,而且包含一些系统可能不想传递的身份信息(如眼睛之间的距离、嘴巴的宽度等)。为了解决这个问题,执行姿势编码自适应,该姿势编码自适应替换了从源参与者到目标参与者的编码中的身份信息。在示例实施例中,通过将3DMM拟合到源参与者的面部标志并且用目标参与者的身份参数替换源参与者的身份参数来执行姿势编码自适应。之后,源参与者的关键点被投影回2D。也可以训练NN直接在2D中替换身份信息。可以在用3DMM生成的合成数据上训练NN。适合于该任务的NN类型中的一个NN类型可以是U网状架构,其中,2D标志(表示为热图)作为输入,并且生成2D标志(表示为热图)作为输出,其可以解码为原始2D标志表示。

可以以多种方式执行姿势编码自适应。一种可能的方法称为变形转移。使用这种方法,可以提供目标视频和源视频的中性帧。对于所有帧,可以基于关键点构建网格。变形转移可以将由源三角形网格在当前帧上展现的变形应用到中性源三角形网格上。源视频的变换可以被定义为源网格S

由于不仅要生成单独的图像而且要生成整个视频,因此需要强制单独帧之间的姿势编码的时间一致性。在示例实施例中,这通过使用滑动窗口对每个标志坐标进行平均来执行。

人员身份嵌入器820拍摄具有目标参与者头部的一组照片(仅一张照片,或来自具有说话的目标参与者的视频的所有帧),并产生实值嵌入以传递给发生器。

卷积NN用于拍摄目标参与者头部的一张三通道照片,并产生一维实值嵌入。嵌入可以应用于目标参与者的每张可用照片。通过对每个帧的所有嵌入进行平均来计算最终嵌入。

动画头部发生器825(“发生器”)可以接收身份嵌入和姿势编码作为输入。动画头部发生器可以生成目标参与者的逼真且看起来貌似真实的头部的帧序列,其移动并表达从源参与者提取的情绪。在示例实施例中,每个帧是独立生成的。卷积NN用于输出一张三通道照片。可以修改该方法以生成帧,使得下一帧考虑先前生成的帧。例如,这可以通过将在每个步骤上先前生成的帧传递到动画头部发生器825来完成。可选地,ConvLSTM/ConvGRU可以用于以RNN方式生成视频。另外,动画头部发生器825可以具有粗到细架构,使得它可以生成更逼真的高分辨率图像,这意味着动画头部发生器825可以具有多个中间输出,每个中间输出被训练以生成必要的图像,但图像的分辨率低。

可以使用本公开的系统动画处理具有关键点的任何对象。通常,因为面部的某些部分(例如,眼睛和嘴巴)更详细,因此它们可能更难生成。如果独立于面部的其余部分生成眼睛和嘴巴,则可以提高整体图像质量。使用面部标志信息,可以从源视频的帧中提取面部的这些部分。除了面部的其余部分之外,眼睛和嘴巴的生成不需要网络架构的任何改变,并且可以使用相同的模型。在以高分辨率独立地生成眼睛和嘴巴之后,可以使用面部标志将眼睛和嘴巴融合回面部。

为了训练模型,联合使用多达三个损失函数。

a)第一函数是所谓的“感知”损失函数。它需要预先训练的多个网络来基于图像进行一些预测。期望这样的网络已经能够从输入图像中提取实值的高级特征。针对所生成的样本和真值样本计算特征,并且然后计算它们之间的一些回归损失。

b)第二损失是对抗性的。它还需要一个附加的网络,但是与感知损失函数中的网络相反,附加的网络不需要被预先训练。在上述管线中,被称为“鉴别器”的NN与主网络联合训练。鉴别器训练以区分所生成的样本和真值样本。对抗性损失本身强制“发生器”网络以尝试欺骗“鉴别器”。

“鉴别器”和“发生器”玩两人游戏,这导致所生成的样本变得与真实样本不可区分。

c)第三损失也是对抗性的。先前的损失旨在单独地增强每个所生成的帧的合理性。然而,最终目标是生成作为帧序列的视频。这种所生成的帧被强制为彼此一致。为此,使用所谓的“条件视频鉴别器”。它从真实视频和所生成的视频中获取多个相应的视频帧作为输入,并训练以区分真实视频和假视频。

系统的最终损失函数被计算为“感知”损失和两个对抗性损失的加权和。

基本损失函数可以被更高级的损失函数替代。损失函数可以由以下公式描述:

其中,G

如果训练数据中没有视频,则不能使用“条件视频鉴别器损失”,但是仍然需要帧生成的一致性。因此,在这种情况下,当在先前段落的损失中添加一个或多个损失时,执行下一步的训练。采取姿势编码和对应的生成帧,并且用一些随机噪声稍微改变姿势编码,并且然后生成用于该姿势编码的帧。之后,生成所生成的帧之间的差异,并进一步将其视为损失。

图9是示出用于在训练用于生成图像的神经网络期间生成损失的过程900的流程图。在训练的某些步骤中,可以使用掩模损失,即仅在由预训练分割模型获得的掩模表示的受关注区域中计算的所生成的图像与真值图像之间的绝对差异。

可以通过以下公式确定感知损失,其中,y是由预训练网络(例如,诸如图9所示的预训练卷积神经网络VGG-16)从真值图像中提取的特征的集合,并且

可以通过以下公式确定对抗性损失,其中,x是所生成的图像,并且c是用于调节的数据,即面部关键点等:

D

G

所得损失是感知损失、对抗性损失以及帧序列的对抗性损失的加权和:

Loss=Loss

返回参考图8,图像后处理模块830可以用于生成以源视频为条件的逼真的头部转动。可以根据面部标志位置裁剪源视频的每一帧。可以执行裁剪使得面部恰好出现在图像中心。然后,图像可以被传递到神经网络。该步骤允许将整个面部适配到帧中。源视频的帧到神经网络输入的这种变换在本文中也被称为仿射变换。逆仿射变换可以应用于由神经网络提供的输出。逆变换的步骤可以解决头部在不同帧中具有不同比例的问题。由于裁剪是针对每一帧独立计算的,因此可能出现不同比例的问题。

图12是示出根据示例实施例的用于逼真的头部转动和面部动画合成的方法1200的流程图。方法1200可以通过计算装置110来执行。方法1200可以包括在操作1205处通过计算装置接收源视频和源视频的帧。该源视频的帧可以包括源参与者的头部和面部。方法1200可以进一步包括在操作1210处生成源姿势参数集合。源关键点集合可以通过计算装置基于源视频的帧来生成。该源姿势参数集合可以表示源视频的帧中源参与者的头部的位置和源参与者的面部表情。方法1200可以进一步包括在操作1215处计算装置接收目标图像。该目标图像可以包括目标人员的目标头部和目标面部。目标人员可以与源参与者不同。方法1200可以进一步包括在操作1220处生成输出视频。目标视频可以通过计算装置基于目标图像和源姿势参数集合来生成。输出视频的至少一个帧可以包括基于源姿势参数集合中的至少一个集合修改目标面部的图像以模仿源参与者的头部的位置中的至少一个位置和源参与者的面部表情中的至少一个面部表情。

图13是示出根据示例实施例的用于逼真的头部转动和面部动画合成的方法1300的流程图。方法1300可以通过计算装置110来执行。方法1300可以包括在操作1305处通过计算装置接收源视频和源视频的帧。该源视频的帧可以包括源参与者的头部和面部。方法1300可以进一步包括在操作1310处生成源关键点集合。该源关键点集合可以通过计算装置基于源视频的帧来生成。该源关键点集合可以表示源视频的帧中源参与者的头部的位置和源参与者的面部表情。方法1300可以进一步包括在操作1315处计算装置接收目标视频。该目标视频可以包括目标人员的目标头部和目标面部。目标人员可以与源参与者不同。方法1300可以进一步包括在操作1320处计算装置基于目标视频和源关键点集合生成输出视频。输出视频的每一帧可以包括目标面部的图像。可以基于源关键点集合中的至少一个集合修改目标面部的图像以模仿源参与者的头部的位置中的至少一个位置和源参与者的面部表情中的至少一个面部表情。

图14示出了可以用于实现本文描述的方法的示例计算系统1400。该计算系统1400可以在计算装置110、系统220、图像预处理模块805、面部和头部姿势编码器810、姿势编码自适应和稳定模块815、人员身份嵌入器820、动画头部发生器825和图像后处理模块830等的上下文中实现。

如图14所示,计算系统1400的硬件组件可以包括一个或多个处理器1410和存储器1420。存储器1420部分地存储供处理器1410执行的指令和数据。当系统1400操作时,存储器1420可以存储可执行代码。系统1400可以进一步包括任选的大容量存储装置1430、任选的便携式存储介质驱动器1440、一个或多个任选的输出装置1450、一个或多个任选的输入装置1460、任选的网络接口1470以及一个或多个任选的外围装置1480。计算系统1400还可以包括一个或多个软件组件1495(例如,可以实现如本文所述的用于逼真的头部转动和面部动画合成的方法的软件组件)。

图14所示的组件被描绘为经由单个总线1490连接。组件可以通过一个或多个数据传输装置或数据网络连接。处理器1410和存储器1420可以经由本地微处理器总线连接,并且大容量存储装置1430、外围装置1480、便携式存储装置1440和网络接口1470可以经由一个或多个输入/输出(I/O)总线连接。

可以用磁盘驱动器、固态磁盘驱动器或光盘驱动器实现的大容量存储装置1430是用于存储供处理器1410使用的数据和指令的非易失性存储装置。大容量存储装置1430可以存储用于实现本文所述的实施例的系统软件(例如,软件组件1495)。

便携式存储介质驱动器1440结合诸如光盘(CD)或数字视频光盘(DVD)的便携式非易失性存储介质操作,以向计算系统1400输入数据和代码和从计算系统1400输出数据和代码。用于实现本文所述的实施例的系统软件(例如,软件组件1495)可以存储在这样的便携式介质上,并且经由便携式存储介质驱动器1440输入到计算系统1400。

任选的输入装置1460提供用户界面的一部分。输入装置1460可以包括用于输入字母数字和其他信息的字母数字小键盘(诸如键盘)或者指向装置(诸如鼠标、轨迹球、指示笔或光标方向键)。输入装置1460还可以包括相机或扫描仪。另外,如图14所示的系统1400包括任选的输出装置1450。合适的输出装置包括扬声器、打印机、网络接口和监视器。

网络接口1470可以用于经由一个或多个通信网络(诸如包括例如因特网、内联网、LAN、WAN、蜂窝电话网络、蓝牙无线电和基于IEEE 802.11的射频网络等的一个或多个有线、无线或光网络)与外部装置、外部计算装置、服务器和联网系统通信。网络接口1470可以是网络接口卡(诸如以太网卡)、光收发器、射频收发器或可以发送和接收信息的任何其他类型的装置。任选的外围装置1480可以包括任何类型的计算机支持装置以向计算机系统添加附加功能。

包含在计算系统1400中的组件旨在表示广泛类别的计算机组件。因此,计算系统1400可以是服务器、个人计算机、手持式计算装置、电话、移动计算装置、工作站、小型计算机、大型计算机、网络节点或任何其他计算装置。计算系统1400还可以包括不同的总线配置、联网平台、多处理器平台等。可以使用各种操作系统(OS),包括UNIX、Linux、Windows、Macintosh OS、Palm OS以及其他合适的操作系统。

一些上述功能可以由存储在存储介质(例如,计算机可读介质或处理器可读介质)上的指令组成。指令可以由处理器检索和执行。存储介质的一些示例是存储装置、磁带、磁盘等。当由处理器执行以指导处理器根据本公开进行操作时,指令是可操作的。本领域技术人员熟悉指令、处理器和存储介质。

值得注意的是,适合于执行本文所述的处理的任何硬件平台都适合于与本公开一起使用。本文所使用的术语“计算机可读存储介质(computer-readable storage medium)”和“计算机可读存储介质(computer-readable storage media)”是指参与向处理器提供指令以供执行的任何一种或多种介质。这样的介质可以采用多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,诸如固定盘。易失性介质包括动态存储器,诸如系统随机存取存储器(RAM)。传输介质包括同轴电缆、铜线和光纤等,包括包含总线的一个实施例的线。传输介质还可以采用声波或光波的形式,诸如在射频(RF)和红外(IR)数据通信期间生成的声波或光波。计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD只读存储器(ROM)盘、DVD、任何其他光学介质、具有标记或孔的图案的任何其他物理介质、RAM、PROM、EPROM、EEPROM、任何其他存储芯片或存储盒带、载波或计算机可以从中读取的任何其他介质。

各种形式的计算机可读介质可以涉及将一个或多个指令的一个或多个序列传送到处理器以供执行。总线将数据传送到系统RAM,处理器从该系统RAM检索并执行指令。由系统处理器接收的指令可以在由处理器执行之前或之后任选地存储在固定磁盘上。

因此,已经描述了用于逼真的头部转动和面部动画合成的方法和系统。尽管已经参考特定示例实施例描述了实施例,但是显而易见的是,在不脱离本申请的更广泛的精神和范围的情况下,可以对这些示例实施例进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的。

相关技术
  • 用于移动装置上逼真的头部转动和面部动画合成的系统和方法
  • 用于逼真的实时人像动画的系统和方法
技术分类

06120113206117