一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于文本和音频的实时面部再现的制作方法

2021-08-06 18:47:00 来源:中国专利 TAG:公开 图像处理 面部 总体上 再现
基于文本和音频的实时面部再现的制作方法

本公开总体上涉及数字图像处理。更具体地,本公开涉及用于基于文本和音频的实时面部再现的方法和系统。



背景技术:

面部再现可以用于许多应用,诸如娱乐节目、社交媒体网络、计算机游戏、视频对话、虚拟现实、增强现实等。可以通过动画处理人的单个图像来进行面部再现。深度学习方法可以允许获得逼真的结果。然而,目前现有的深度学习方法耗时且不适合在标准移动装置上执行实时面部再现。



技术实现要素:

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

根据本公开的一个实施例,提供了一种基于文本和音频的实时面部再现的方法。该方法可以包括通过计算装置接收输入文本和目标图像。该目标图像可以包括目标面部。该方法可以进一步包括通过计算装置并且基于输入文本生成表示输入文本的声学特征集合的序列。该方法可以包括通过计算装置并且基于声学特征集合的序列生成场景数据集合的序列。该场景数据集合可以指示目标面部的修改以用于说出输入文本。该方法可以包括通过计算装置并且基于场景数据集合的序列生成帧序列。每一帧可以包括基于场景数据集合的序列中的至少一个场景数据集合修改的目标面部。该方法可以包括通过计算装置并且基于帧序列生成输出视频。

该方法可以进一步包括通过计算装置并且基于声学特征集合的序列合成表示输入文本的音频数据并将该音频数据添加到输出视频。声学特征可以包括梅尔频率倒谱系数。声学特征集合的序列可以通过神经网络生成。

生成场景数据集合的序列可以包括:基于声学特征集合的序列生成嘴部关键点集合序列;基于嘴部关键点集合的序列生成面部关键点集合的序列。生成帧序列可以包括基于面部关键点集合的序列确定二维(2d)变形集合的序列并将2d变形集合的序列中的每一个2d变形集合应用于目标输入。

嘴部关键点集合的序列可以通过神经网络生成。嘴部关键点集合的序列中的集合可以基于在嘴部关键点集合的序列中的该集合之前的预定数量的集合生成。嘴部关键点集合的序列的该集合可以对应于声学特征集合的序列的至少一个集合(s)。嘴部关键点集合的序列中的该集合可以基于在声学特征集合的序列中的s之前的第一预定数量的声学特征集合和在声学特征集合的序列中的s之后的第二预定数量的声学特征集合生成。

面部关键点集合的序列可以通过神经网络生成。面部关键点集合的序列中的集合可以基于在面部关键点集合的序列中的该集合之前的预定数量的集合生成。

该方法可以进一步包括通过计算装置并且基于嘴部关键点集合的序列生成嘴部纹理图像序列。该方法可以进一步包括通过计算装置将嘴部纹理图像序列中的每一个嘴部纹理图像插入到帧序列的对应帧中。嘴部纹理图像序列中的每一个嘴部纹理图像可以通过神经网络基于嘴部区域图像序列中的在嘴部区域图像之前的第一预定数量的嘴部纹理图像生成。

根据另一实施例,提供了一种用于基于文本和音频的实时面部再现的系统。该系统可以包括至少一个处理器和存储处理器可执行代码的存储器,其中,该至少一个处理器可以被配置为在执行处理器可执行代码时实现上述用于基于文本和音频的实时面部再现的方法的操作。

根据本公开的又一方面,提供了一种非暂时性处理器可读介质,其存储处理器可读指令。当由处理器执行时,处理器可读指令使处理器实现上述用于基于文本和音频的实时面部再现的方法。

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

附图说明

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

图1是示出可以实现用于基于文本和音频的实时面部再现的方法的示例环境的框图。

图2是示出用于实现用于基于文本和音频的实时面部再现的方法的计算装置的示例实施例的框图。

图3是示出根据示例实施例的基于文本和音频的实时面部再现的示例过程的示意图。

图4示出了根据一些示例实施例的示例面部关键点集合。

图5示出了根据示例实施例的用于基于文本和音频的实时面部再现的系统的框图。

图6示出了根据示例实施例的场景数据生成模块的框图。

图7示出了根据一些示例实施例的示例嘴部关键点掩模。

图8示出了根据示例实施例的具有嘴部纹理图像的帧。

图9示出了根据示例实施例的用于基于文本和音频的实时面部再现的示例移动应用的屏幕截图。

图10是示出根据一些示例实施例的用于基于文本和音频的实时面部再现的方法的流程图。

图11示出了可以用于实现用于基于文本和音频的实时面部再现的方法的示例计算机系统。

具体实施方式

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

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

可以使用各种技术来实现本公开。例如,本文所描述的方法可以由在计算机系统上运行的软件和/或由利用微处理器或其他专门设计的专用集成电路(asic)、可编程逻辑装置的组合或其任意组合的硬件来实现。具体地,本文所描述的方法可以通过驻留在诸如磁盘驱动器或计算机可读介质的非暂时性存储介质上的一系列计算机可执行指令来实现。本公开可以被设计为实时地并且在不连接到因特网或不需要使用服务器侧计算资源的情况下在诸如智能电话、平板计算机或移动电话的移动装置上工作,尽管实施例可以扩展到涉及web服务或基于云的资源的方法。

本公开涉及用于基于文本和音频的实时面部再现的方法和系统。本公开的一些实施例可以允许基于输入文本动画处理目标图像中的人的面部。本公开的实施例可以允许生成视频,其中,目标图像上的人的面部变得“生动”并且发音输入文本。一个示例实施例可以包括移动应用。移动应用可以允许用户改变现有视频(例如,视频卷轴)中的音频。移动应用可以允许基于输入文本改变现有视频的视觉和音频。用户可以为视频记录或选择新音频,或者优选地输入新文本。移动应用可以基于新文本合成新音频,并且根据新音频和新文本动画处理视频中的面部。一些实施例可以允许将初始视频卷轴的音频风格转换为合成音频。

根据本公开的一个实施例,用于基于文本和音频的实时面部再现的示例方法可以包括通过计算装置接收输入文本和目标图像。该目标图像可以包括目标面部。该方法可以包括通过计算装置并且基于输入文本生成表示输入文本的声学特征集合的序列。该方法可以包括通过计算装置并且基于声学特征集合的序列生成场景数据集合的序列。该场景数据集合可以指示目标面部的修改以用于发音输入文本。该方法可以包括通过计算装置并且基于场景数据集合的序列生成帧序列。每一帧包括基于场景数据集合的序列中的至少一个场景数据集合修改的目标面部。该方法可以包括通过计算装置并且基于帧序列生成输出视频。该方法可以进一步包括通过计算装置并且基于声学特征集合的序列合成表示输入文本的音频数据。该方法可以包括通过计算装置将音频数据添加到输出视频。

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

图1示出了示例环境100,其中,可以实践用于基于文本和音频的实时面部再现的方法。环境100可以包括计算装置110和用户130。计算装置110可以包括图形显示系统120。计算装置110可以指诸如移动电话、智能电话或平板计算机的移动装置。然而,在进一步的实施例中,计算装置110可以指个人计算机、膝上型计算机、上网本、机顶盒、电视装置、多媒体装置、个人数字助理、游戏控制台、娱乐系统、信息娱乐系统、车辆计算机或任何其他计算装置。

在本公开的一些实施例中,计算装置110可以被配置为显示目标图像125。目标图像125可以至少包括目标面部140和背景145。目标面部140可以属于用户130或除了用户130之外的人。在一些实施例中,目标图像125可以存储在计算装置110的存储器中或计算装置110通信地连接到的基于云的计算资源中。

在其他实施例中,目标图像125可以预先记录并存储在计算装置110的存储器中或基于云的计算资源中。用户130可以选择要动画处理的目标图像。

在一些实施例中,计算装置110可以被配置为接收输入文本160。计算装置110可以被配置为分析输入文本以生成场景数据集合的序列,该场景数据集合指示目标面部的修改以用于发音输入文本160。计算装置110可以进一步被配置为基于场景数据修改目标图像125以生成帧序列。帧序列的每一帧可以包括基于场景数据集合中的一个场景数据集合修改的目标面部。计算装置110可以进一步基于帧序列生成视频。计算装置110可以进一步基于输入文本合成音频数据并将音频数据添加到视频。计算装置110可以经由图形显示系统120播放视频。视频可以以具有目标面部的人为特征,其中,该人发音输入文本。

在图2所示的示例中,计算装置110可以包括硬件组件和软件组件两者。具体地,计算装置110可以包括相机115或任何其他图像捕获装置或扫描仪以采集数字图像。计算装置110可以进一步包括处理器模块210和存储模块215,用于存储软件组件和处理器可读(机器可读)指令或代码,当由处理器模块210执行时,这些指令或代码使计算装置200执行如本文所述的用于基于文本和音频的实时面部再现的方法的至少一些步骤。

计算装置110可以进一步包括面部再现系统220,其进而可以包括硬件组件(例如,单独的处理模块和存储器)、软件组件或其组合。

如图3所示,面部再现系统220可以被配置为接收目标图像125和输入文本310作为输入。目标图像125可以包括目标面部140。面部再现系统220可以被配置为分析文本输入以确定表示输入文本的声学特征集合的序列。声学特征集合中的每一个可以对应于可以分配给输出视频340的帧345中的一个帧的时间戳。

基于声学特征集合的序列,面部再现系统220可以生成场景数据集合的序列。每个场景数据集合可以指示在帧345的至少一个帧中目标面部140的修改。场景数据集合中的每一个可以包括嘴部关键点集合、嘴部纹理图像和面部关键点集合。嘴部关键点可以表示基本上位于模型面部的嘴部区域周围的面部标志。面部关键点可以表示位于模型面部的鼻子、眼睛和眉毛区域中的至少面部形状周围的面部标志。因此,场景数据集合中的每一个可以表示模型面部的面部表情和头部运动。

图4示出了根据示例实施例的模型面部400的嘴部关键点和面部关键点。在示例图4中,嘴部关键点集合包括从48到67列举的20个关键点。嘴部关键点48至67基本上位于模型面部400的嘴部区域周围。在一些实施例中,面部关键点可以包括20个嘴部关键点以及在鼻子、眼睛和眉毛区域中的面部形状周围的附加面部标志。在图4的示例中,面部关键点的数量是78个。面部关键点从0到77列举。面部关键点和嘴部关键点可以表示为2d空间中的点。面部关键点和嘴部关键点可以对应于特定的面部标志(例如,眉角、眼角、嘴角、下巴底部等)。

返回参考图3,面部再现系统220可以进一步将模型面部的面部表情和头部运动传送到目标图像125。输出视频340可以包括与场景数据集合的序列中的集合数量相同数量的帧。因此,输出视频340可以表示目标图像125的动画。在一些实施例中,可以通过执行目标图像125的2d变形来实现动画处理,其中,2d变形模仿模型面部的面部表情和头部运动。在一些实施例中,可以在2d变形之后生成隐藏区域和精细尺度细节以实现逼真的结果。隐藏区域可以包括目标面部140的嘴部区域。

面部再现系统220可以进一步基于声学特征集合的序列生成表示输入文本的音频数据并将音频数据添加到输出视频340。

图5是根据一个示例实施例的面部再现系统220的框图。面部再现系统220可以包括三维(3d)面部模型505、稀疏对应模块510、场景数据生成模块515、目标图像预处理模块520、图像分割和背景预测模块525以及图像动画和细化模块530。模块505至530可以被实现为与诸如计算装置110、服务器等的硬件装置一起使用的软件组件。

在本公开的一些实施例中,可以基于预定义数量的不同年龄、性别和种族背景的个体的图像来预先生成3d面部模型505。对于每个个体,图像可以包括具有中性面部表情的个体的图像和具有不同面部表情的个体的一个或多个图像。面部表情可以包括张嘴、微笑、生气、惊讶等。

3d面部模型505可以包括具有预定数量的顶点的模板网格。模板网格可以表示为定义头部形状的3d三角剖分。每个个体可以与个体特定的混合形状相关联。可以针对模板网络调整个体特定的混合形状。个体特定的混合形状可以对应于模板网格中的顶点的特定坐标。因此,个体的不同图像可以对应于具有相同结构的模板网格。然而,模板网格中顶点的坐标对于不同的图像是不同的。

在本公开的一些实施例中,3d面部模型505可以包括双线性面部模型,其取决于两个参数:面部身份和面部表情。双线性面部模型可以基于对应于个体的图像的混合形状来建立。因此,3d面部模型包括预定结构的模板网格,其中,顶点的坐标取决于面部身份和面部表情。面部身份可以表示头部的几何形状。

在本公开的一些实施例中,场景数据生成模块515可以被配置为基于输入文本生成场景数据集合的序列和音频数据。每个场景数据集合可以包括表示模型面部的2d面部标志的面部关键点集合。场景数据生成模块515可以被配置为将3d面部模型505拟合到2d面部标志以找到模型面部的3d面部模型505的参数。场景数据生成模块515可以被配置为确定2d面部标志在3d面部模型的模板网格上的位置。可以假设面部身份对于场景视频310的所有帧是相同的。模块515可以被进一步配置为针对场景数据的序列中的每一个集合近似3d面部参数的结果变化。场景数据生成模块515还可以被配置为基于输入文本生成嘴部纹理图像的序列。结合图6进一步描述场景数据生成模块515的更多细节。

在一些实施例中,稀疏对应模块510可以被配置为确定场景数据集合的序列中的每一个集合的面部关键点与目标图像125的面部关键点之间的稀疏对应。稀疏对应模块510可以被配置为获得一组控制点(面部标志),其可以通过场景视频被稳健地跟踪。可以使用最先进的跟踪方法(诸如光流)来跟踪面部标志和附加控制点。稀疏对应模块510可以被配置为确定近似对准场景数据集合的序列的第一集合中的面部关键点和目标图像125中的面部关键点的仿射变换。仿射变换可以进一步用于预测目标图像125中附加控制点的位置。稀疏对应模块410可以被进一步配置为建立控制点的三角剖分。

在一些实施例中,目标图像预处理模块520可以被配置为检测目标图像125中的头部的2d面部标志和可见部分,并且将3d面部模型拟合到目标图像125和目标面部140中的头部的2d面部标志和可见部分。目标面部140可以不具有中性面部表情,或者闭眼或者张嘴,并且目标图像上描绘的人的年龄可能与场景视频310中描绘的人的年龄不同。模块530可以被配置为归一化目标面部(例如,将目标面部的头部旋转至中立状态、闭嘴或睁眼)。可以使用迭代过程进行面部标志检测和3d面部模型拟合。在一些实施例中,可以针对移动装置的中央处理单元(cpu)和图形处理单元(gpu)优化迭代过程,这可以允许显著减少目标图像125的预处理所需的时间。

在一些实施例中,目标图像预处理模块520可以被进一步配置为应用美容效果和/或改变目标图像125上描绘的人的外观(例如,改变人的头发颜色或发型或使人看起来更年长或更年轻)。

在一些实施例中,图像分割和背景分离模块525可以被配置为执行从人的图像执分割人的头部。可以针对目标图像执行头部的分割以获得头部和/或目标面部140的图像。可以对头部或目标面部140的图像进一步进行动画处理。动画处理的头部和/或目标面部140可以进一步插入回背景145中。通过应用2d变形仅动画处理头部和/或面部目标140的图像可以有助于避免可能由2d变形引起的背景145的不必要的变化。由于动画处理可以包括头部姿势的变化,因此先前不可见的背景的一些部分可以变得可见,从而导致所得图像中的间隙。为了填充间隙,可以预测背景的由头部覆盖的部分。在一些实施例中,可以训练深度学习模型以执行从图像分割人的头部。类似地,深度学习技术可以用于背景的预测。

在一些实施例中,图像动画和细化模块530可以被配置为逐帧地动画处理目标图像。对于场景数据集合的序列中的每一个面部关键点集合,可以确定控制点的位置变化。控制点的位置变化可以投射到目标图像125上。模块530可以被进一步配置为建立翘曲场(warpfield)。该翘曲场可以包括由控制点的三角剖分中的每个三角形的变化引起的一组分段线性变换。模块530可以被进一步配置为将翘曲场应用于目标图像125,并且通过这样做产生输出视频340的帧。可以相对较快地执行将翘曲场应用于图像,这可以允许实时执行动画处理。

在一些实施例中,图像动画和细化模块530可以被进一步配置为生成隐藏区域(例如,内嘴部区域)。可以使用几种方法来生成隐藏区域。一种方法可以包括插入由场景数据生成模块515基于输入文本生成的嘴部纹理图像。嘴部纹理图像可以插入到目标图像中人的嘴部内部。另一种方法可以包括使用3d嘴部模型生成隐藏区域。3d嘴部模型可以匹配3d面部模型的几何形状。

在一些实施例中,模块530可以被配置为生成部分遮挡区域(像嘴部、虹膜或眼睑)和精细尺度细节。生成对抗网络可以用于合成真实的纹理和真实的眼睛图像。模块530可以被进一步配置为用使用生成对抗网络生成的真实的眼睛图像替换目标图像的隐藏区域中的眼睛。模块530可以被配置为基于目标图像以及3d面部模型的原始和当前参数生成目标图像的逼真的纹理和精细尺度细节。模块530可以通过用所生成的逼真的纹理替换隐藏区域并将精细尺度细节应用于整个目标图像来进一步细化目标图像。应用精细尺度细节可以包括将阴影掩模应用于目标图像的每一帧。

在一些实施例中,模块530可以被进一步配置为将其他效果(例如,颜色校正和光校正)应用于使动画看起来真实所需的目标图像。

图6是示出根据一个示例实施例的示例场景数据生成模块515的框图。场景数据生成模块可以包括字符嵌入模块610、深度神经网络(dnn)620、嘴部关键点生成模块630、嘴部纹理生成模块640、面部关键点生成模块650和声码器660。

在一些实施例中,字符嵌入模块610可以基于输入文本310生成语言特征615。模块610可以预处理输入文本310。预处理可以包括用单词替换输入文本中的缩写、将输入文本转换为小写、去除不必要的空格、将数字转换为单词等。模块610可以进一步使用发音词典将单词转换为音素。模块610可以进一步将音素转换为语言特征615的序列。语言特征615可以表示为独热码(one-hot)向量的填充序列。

在一些实施例中,dnn620可以将语言数字特征序列转换为声学(数字)特征集合625的序列。声学(数字)特征集合625中的每一个可以被分配时间戳。声学特征集合中的每一个可以对应于输出视频340中的帧345中的一个帧。在一些实施例中,可以以每秒n帧(例如,每秒30帧)的速率生成输出视频340。因此,可以基于输出视频的期望帧速率确定声学特征集合的序列中的集合数量。此外,还可以基于表示输入文本的音频的期望持续时间确定集合的数量。

声学特征可以呈现为梅尔频率倒谱或包括基频(f0)、频谱包络(sp)和非周期性(ap)的语音参数集合。可以基于说话者标识数据或说话者属性来调节声学数字特征的生成。说话者属性可以包括“男性”、“女性”、“孩子”、“口音”等。在这些实施例中,dnn520可以被配置为接收表示说话者标识数据或说话者属性的附加独热码向量作为输入。在进一步的实施例中,dnn520可以接收音频样本。dnn520可以包括微调嵌入层以将音频样本的风格转移到声学特征。在一些实施例中,dnn520可以被配置为合成歌唱。对于歌唱合成,dnn520可以取决于作为控制输入的连续音高参数和语言特征。

在一些实施例中,声码器660可以应用确定性算法,该确定性算法解码语音参数集合(基频(f0)、频谱包络(sp)和非周期性(ap))以产生音频数据(例如,作为输出的语音波形)。在其他实施例中,声码器660可以包括基于神经网络的神经声码器。神经声码器可以解码梅尔频率倒谱并产生语音波形。

在一些实施例中,嘴部关键点生成模块630可以基于声学特征集合的序列生成嘴部关键点集合635的序列。嘴部关键点集合中的每一个可以对应于输出视频340的帧345中的一个帧(如图3所示),并且被分配对应帧的时间戳。嘴部关键点集合635可以由神经网络基于声学特征集合625顺序地生成。嘴部关键点可以由每个帧的x坐标和y坐标的列表表示。

在每个步骤,神经网络可以使用由相同神经网络针对先前帧生成的预定数量的嘴部关键点集合作为输入。为了获得时间相干性,神经网络还可以使用对应于固定长度时间窗口的声学特征集合作为输入。时间窗口可以覆盖当前时间戳之前的预定时间和当前时间戳之后的预定时间。声学特征可以以梅尔频率倒谱系数的形式呈现。神经网络可以对声学特征和关键点应用卷积以提取潜在特征,并且然后级联潜在特征。神经网络可以进一步将一个或多个完全连接层应用于级联的潜在特征,以获得对当前时间戳的关键点的最终预测。神经网络可以在记录在受控环境中并且特征在于一个或多个参与者说出不同预定义句子的视频集合上训练。

在训练神经网络期间,可以使用仿射变换在每一帧上独立地归一化训练集的嘴部关键点。归一化可以包括确定嘴部关键点在笛卡尔坐标系中的坐标。仿射变换被应用于嘴部关键点,使得对应于嘴角的点(图4中的关键点数字48和54)分别被移动到点(1/3,1/2)和(2/3,1/2)。仿射变换可以包括旋转、平移和缩放的组合。

在一些实施例中,在训练神经网络期间,还可以对训练集的嘴部关键点执行主成分分析(pca)。在这些实施例中,可以训练神经网络来预测pca系数,而不是嘴部关键点的原始坐标。将神经网络配置为预测pca系数可以允许去相关输入特征、去相关输出值并减小神经网络的输入和输出的大小。pca系数形式的神经网络的输出可以比原始坐标形式的输出更易于解释。

在一些实施例中,嘴部纹理生成模块640可以被配置为生成嘴部纹理图像645的序列。嘴部纹理图像645中的每一个可以对应于输出视频340的一个帧345。嘴部纹理图像的序列可以通过卷积神经网络(cnn)基于嘴部关键点集合635的序列以及任选地声学特征集合625的序列生成。cnn可以基于预定数量的先前生成的嘴部纹理图像顺序地生成每个嘴部纹理图像。cnn还可以使用基于来自当前时间戳周围的时间窗口的嘴部关键点序列生成的预定数量的掩模作为输入。当前时间戳对应于生成嘴部纹理图像的帧。

图7示出了根据示例实施例的针对嘴部关键点集合生成的示例掩模700。掩模可以包括连接内嘴部关键点的线和连接外嘴部关键点的线。

图8示出了示例嘴部纹理图像800。

返回参考图6,嘴部纹理生成模块640中使用的cnn可以在基于记录在单个参与者说出不同的预定义句子的受控环境中的真实视频生成的训练集上训练。单个参与者在所有视频中可以是相同的。

为了实现时间一致性,训练神经网络可以包括以下迭代:

1)基于先前的真值图像构建输入以用于第i个图像预测。可以从真实视频中提取真值图像。

2)预测第i个图像并执行梯度反向传递。

3)使用预测的第i个图像代替真值第i个图像来构建第(i 1)个图像预测的输入。

4)预测第(i 1)个图像并执行梯度反向传递。

5)使用预测的第i个图像和预测的第(i 1)个图像代替真值第i个图像和真值第(i 1)个图像来构建第(i 2)个图像预测的输入。

6)预测第(i 2)个图像并执行梯度反向传递。

可以执行固定次数的迭代以获得嘴部纹理图像序列中的连续图像之间的一致性。

为了实现嘴部纹理图像的逼真感,“鉴别器”神经网络(诸如生成对抗网络(gan))可以与cnn(“发生器”)一起使用以生成嘴部纹理图像。鉴别器用于在真实图像(从真实视频中获取的真值图像)和伪图像(由发生器生成的图像)之间对图像进行分类。在训练的每次迭代中,发生器可以“欺骗”鉴别器以根据鉴别器最大化所生成的图像是“真实”的概率。

另外,gan的多尺度u网状架构、特征匹配损失(在鉴别器中)和感知损失可以用于提高所生成的嘴部纹理图像的逼真感和分辨率。基本gan损失函数可以被更高级的gan损失函数(例如,来自最小二乘gan(lsgan)的损失函数)替代。lsgan损失函数可以由以下公式描述:

其中,gloss是发生器损失,dloss是鉴别器损失,x是所生成的图像,并且c是所生成的图像所取决于的图像的面部标志。

在训练cnn期间,嘴部关键点、对应的嘴部图像和关键点掩模图像可以如上所述结合嘴部关键点生成模块630进行归一化。

在一些实施例中,面部关键点生成模块650可以基于嘴部关键点集合635的序列生成面部关键点集合655的序列。上面结合图4描述了示例面部关键点集合和示例嘴部关键点集合。面部关键点集合655的序列可以通过神经网络生成。神经网络可以基于由同一神经网络先前生成的固定数量的面部关键点集合顺序地针对每一帧生成面部关键点集合中的每一个。为了生成面部关键点集合中的每一个,神经网络还可以接收针对当前时间戳之前的固定长度时间窗口中的帧生成的预定数量的嘴部关键点集合作为输入。

用于生成面部关键点集合的神经网络可以在记录在受控环境中并且特征在于单个参与者说出不同预定义句子的真实视频集合上训练。单个参与者在所有视频中可以是相同的。

在训练期间,嘴部关键点可以如上所述结合嘴部关键点生成模块630进行归一化。面部关键点可以用仅在视频的第一帧上确定的仿射变换进行归一化。然后可以将仿射变换应用于视频的每一个下一帧。归一化包括在笛卡尔坐标系中确定预定数量的面部关键点的坐标。仿射变换可以基于左眼中心移动到点(1/3,1/3)、右眼中心移动到点(2/3,1/3)并且嘴部中心移动到点(1/2,2/3)的限制来确定。

图9示出了根据示例实施例的用于计算装置110的示例移动应用的屏幕截图910、920和930。移动应用可以包括面部再现系统220。

如屏幕截图910所示,移动应用可以显示具有要动画处理的目标面部140和输入文本160的目标图像125。移动应用可以使用面部再现系统220生成用于输入文本160的音频数据(声音波形)和动画处理目标图像125中的目标面部140的视频。

如屏幕截图920所示,移动应用可以包括用户界面以使用键盘输入来修改输入文本160。在进一步的实施例中,移动应用可以允许改变文本样式、字体、大小、位置和颜色、文本出现时间和动画的选择、视觉效果和音频过滤器。音频过滤器可以基于预设样式。当用户轻敲“完成”按钮时,移动应用可以开始基于修改的输入文本生成场景数据集合的序列并播放动画处理的目标图像125。

如屏幕截图930所示,原始输入文本160被用户修改的文本替换。声码器可以生成音频数据以匹配输入文本160。面部再现系统220可以生成目标面部140的动画以匹配音频数据。在进一步的实施例中,移动装置可以允许经由音频或视频记录输入输入文本和/或音频。

图10是示出根据一些示例实施例的用于基于文本和音频的实时面部再现的方法1000的流程图。方法1000可以通过计算装置110和面部再现系统220来执行。

在框1005中,方法1000可以以通过计算装置接收输入文本和目标图像开始。该目标图像可以包括目标面部。

在框1010中,方法1000可以包括通过计算装置并且基于输入文本生成表示输入文本的声学特征集合的序列。

在框1015中,方法1000可以包括通过计算装置并且基于声学特征集合的序列生成场景数据集合的序列。该场景数据集合可以指示目标面部的修改以用于发音输入文本。

在框1020中,方法1000可以包括通过计算装置并且基于场景数据集合的序列生成帧序列。每一帧可以包括基于场景数据集合的序列中的至少一个场景数据集合修改的目标面部。

在框1025中,方法1000可以包括通过计算装置并且基于帧序列生成输出视频。

在框1030中,方法1000可以包括通过计算装置并且基于声学特征集合的序列合成表示输入文本的音频数据。

在框1035中,方法100可以包括通过计算装置将音频数据添加到输出视频。

图11示出了可以用于实现本文描述的方法的示例计算系统1100。该计算系统1100可以在计算装置110、面部再现系统220、3d面部模型505、稀疏对应模块510、场景数据生成模块515、目标图像预处理模块520以及图像动画和细化模块530等的上下文中实现。

如图11所示,计算系统1100的硬件组件可以包括一个或多个处理器1110和存储器1120。存储器1120部分地存储供处理器1110执行的指令和数据。当系统1100操作时,存储器1120可以存储可执行代码。系统1100可以进一步包括任选的大容量存储装置1130、任选的便携式存储介质驱动器1140、一个或多个任选的输出装置1150、一个或多个任选的输入装置1160、任选的网络接口1170以及一个或多个任选的外围装置1180。计算系统1100还可以包括一个或多个软件组件1195(例如,可以实现如本文所述的用于肖像动画的方法的软件组件)。

图11所示的组件被描绘为经由单个总线1190连接。组件可以通过一个或多个数据传输装置或数据网络连接。处理器1110和存储器1120可以经由本地微处理器总线连接,并且大容量存储装置1130、外围装置1180、便携式存储装置1140和网络接口1170可以经由一个或多个输入/输出(i/o)总线连接。

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

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

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

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

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

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

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

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

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

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜