面部合成的制作方法

文档序号:18353575发布日期:2019-08-06 22:46阅读:383来源:国知局
面部合成的制作方法

面部合成是计算机视觉和计算机图形学领域富有挑战性的课题之一,其可以广泛地应用于人机交互、影视广告、计算机游戏、远程会议、辅助教学等许多领域。面部合成是指将多幅面部图像的相应属性合成到输出面部图像中的技术。在此所述的“属性”包括但不限于图像中的人物身份、脸部姿态、表情、图像的照明度、图像背景等等。在面部合成技术中,基于身份保留的面部合成是面临挑战的技术问题。在此所述的“基于身份保留的面部合成”是指在将第一面部图像和第二面部图像合成为输出面部图像时,在输出面部图像中保留第一面部图像中的人物身份但是体现第二面部图像中除人物身份之外的其他属性。

面部合成通常依赖于面部合成模型来实现,面部合成模型可以预先利用一组面部图像来被训练。一些传统方案试图实现上述基于身份保留的面部合成,然而它们在模型训练方面往往存在诸多限制,因此期望实现更为通用的基于身份保留的面部合成。



技术实现要素:

根据本公开的实现,提出了一种用于面部合成的方案。在该方案中,待合成的关于第一用户的面部的第一图像和关于第二用户的面部的第二图像被获取。从第一图像中提取表征第一用户的身份的第一特征。从第二图像中提取表征第二图像的多个属性的第二特征,其中多个属性不包括第二用户的身份。然后,基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的身份和第二图像的多个属性。根据本公开的面部合成方案能够对任何身份的面部图像进行基于身份保留的图像合成,而不管具有该身份的人物的面部图像是否存在于训练数据集中。此外,在训练用于进行上述面部合成的模型时,该方案不需要对除人物身份之外的任何其他属性进行标注。

提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。

附图说明

图1示出了能够实施本公开的多个实现的计算设备的框图;

图2示出了根据本公开的一些实现的用于面部合成的系统框图;

图3示出了根据本公开的实现的用于面部合成的示例学习网络;

图4示出了根据本公开一些实现的用于训练学习网络的过程的流程图;以及

图5示出了根据本公开一些实现的用于面部合成的过程的流程图。

这些附图中,相同或相似参考符号用于表示相同或相似元素。

具体实施方式

现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。

如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

示例环境

以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。

在一些实现中,计算设备100可以被实现为具有计算能力的各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(pcs)设备、个人导航设备、个人数字助理(pda)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。

处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(cpu)、微处理器、控制器、微控制器。

计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或其某种组合。存储器120可以包括图像处理模块122,这些程序模块被配置为执行本文所描述的各种实现的功能。图像处理模块122可以由处理单元110访问和运行,以实现相应功能。

存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。

通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(pc)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。

输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。

计算设备100可以用于实施本公开的多种实现中的面部合成。因此,在下文中,计算设备100有时也被称为“图像处理设备100”。在执行面部合成之前,可以预先利用一组面部图像作为训练数据来训练用于面部合成的模型。该模型的训练可以由图像处理设备100实现,或者由其他计算设备实现而通过输入设备150被输入到图像处理设备100。在执行面部合成时,图像处理设备100可以通过输入设备150接收关于第一用户的面部的第一图像171和关于第二用户的面部的第二图像172(被统称为“输入图像170”)。然后,图像处理设备100可以利用经训练的面部合成模型基于第一图像171和第二图像172来生成关于第一用户的第三图像180(也称为“合成图像180”或者“输出图像180”),其中第三图像180保留第一图像171中的第一用户的身份但是体现第二图像172中的除第二用户的身份之外的多个属性。在本文中所述的图像的“属性”包括但不限于图像中的人物身份、脸部姿态、表情、图像的照明度、图像背景等。图像处理设备可以进一步通过输出设备160输出第三面部图像180。

一些传统方案试图也实现上述基于身份保留的面部合成,然而它们在模型训练方面往往存在诸多限制。

例如,传统方案通常要求用于训练面部合成模型的训练数据必须包括要保留其身份的人物的面部图像。也即,对于训练数据中不涉及的人物的面部图像,传统方案在进行面部合成时将无法保留该人物的身份。

此外,传统方案通常还要求在训练数据中必须对输出面部图像所要体现的每个属性进行具体标注,未被标注的属性将无法在输出面部图像中被体现。然而,在实践中,对图像中的属性进行标注通常是非常困难的,因为一幅图像通常可能具有非常多的属性。对大量训练图像中的每幅训练图像中的每个属性进行标注显然是不现实的。此外,图像的一些属性也可能无法被标注,诸如图像的照明度和背景等。由于不可能对训练数据中的图像的所有属性进行标注,在传统方案中合成面部图像所能够体现的属性的种类和数量通常都非常有限。

以上讨论了在目前的面部合成方案中存在的一些问题。根据本公开的实现,提供了一种用于面部合成的方案,旨在解决上述问题以及其他潜在问题中的一个或多个。该方案能够对任何身份的面部图像进行基于身份保留的图像合成,而不管具有该身份的人物的面部图像是否存在于训练数据集中。在训练用于进行上述面部合成的模型时,该方案不需要对除人物身份之外的任何其他属性进行标注。此外,该方案通过利用未经标注的附加训练图像来进行模型训练,能够进一步提高合成图像的多样性,由此使得生成的人脸图像能够呈现出姿态和表情的较大变化,从而更加逼真。

以下进一步结合附图来详细描述该方案的各种示例实现。

系统架构

图2示出了根据本公开的一些实现的用于面部合成的系统200的框图。如图2所示,系统200总体上可以包括模型训练子系统210和模型应用子系统220。例如,模型训练子系统210、模型应用子系统220或者两者可以由如图1所述的计算设备100实现。应当理解,仅出于示例性的目的描述系统200的结构和功能而不是暗示对于本文所描述主题的范围的任何限制。本文所描述主题可以被体现在不同的结构和/或功能中。

总体上,根据本公开的实现的基于身份保留的面部合成的方案可以分为两个阶段:模型训练阶段和模型应用阶段。在模型训练阶段中,模型训练子系统210可以接收训练数据集230,并且基于训练数据集230来训练用于面部合成的模型240。在模型应用阶段中,模型应用子系统220可以接收经训练的模型240和输入图像170。模型应用子系统220可以利用所接收的模型240基于输入图像170来生成合成图像180。

在一些实现中,训练数据集230可以包括一组面部图像,这些面部图像可以分别利用其所体现的相应人物身份而被标注。例如,训练数据集230可以来自常见的公共人脸数据库,诸如facescrub、casia-webface、ms-celeb-1m等。

在一些实现中,模型240可以被构建为用于面部合成的学习网络。这样的学习网络也可以被称为神经网络、学习模型,或者被简称为网络或模型。在一些实现中,用于面部合成的学习网络可以包括多个子网络,其中每个子网络可以是一个多层神经网络,其可以由大量的神经元组成。通过训练过程,每个子网络中的神经元的相应参数能够被确定。这些子网络中的神经元的参数被统称为模型240的参数。

模型240的训练过程可以以迭代方式来被执行。具体地,模型训练子系统210可以从训练数据集230中获取至少一个面部图像,并且利用这至少一个面部图像来进行训练过程的一次迭代,以更新模型240的相应参数。模型训练子系统210可以基于训练数据集230中的多个面部图像对重复执行上述过程,直至模型240的参数中的至少部分参数收敛,由此获得最终的模型参数。

以下结合根据本公开的实现的示例学习网络结构来对上述模型训练过程作进一步的详细描述。

学习网络的结构

图3示出了根据本公开的实现的用于面部合成的示例学习网络300。学习网络300可以被视为如图2所示的模型240的一种示例实现方式。应当理解,如图3所示的学习网络300的结构和功能仅是示例性的,其不暗示对本公开的范围的任何限制。此外,还应当理解,各种类型的神经网络可以被用来构建如图3所示的学习网络300及其各个子网络,包括但不限于卷积神经网络(cnn)等。出于一般性的考虑,在以下描述中未具体执行学习网络300及其各个子网络的类型,而仅仅描述其所具有的功能和训练方式。

如图3所示,在一些实现中,学习网络300可以包括身份提取子网络310、属性提取子网络320、生成子网络330、分类子网络340和区分子网络350。在本文的描述中,身份提取子网络310也被称为“第一子网络”,属性提取子网络320也被称为“第二子网络”,生成子网络330也被称为“第三子网络”,分类子网络340也被称为“第四子网络”并且区分子网络350也被称为“第五子网络”。

在一些实现中,第一子网络310可以被训练为从第一面部图像301提取第一特征303,第一特征303可以表征第一面部图像301中的人物的身份。假设,利用符号xs表示第一面部图像301,利用符号i来表示第一子网络310,利用身份向量fi(xs)来表示第一特征303,则fi(xs)=i(xs)。在一些实现中,身份向量fi(xs)可以提取自第一子网络310中的至少一层。例如,在一些实现中,可以将第一子网络310的最后一个池化层的响应作为所提取的身份向量fi(xs)。

在一些实现中,第二子网络320可以被训练为从第二面部图像302提取第二特征304,第二特征304可以表征第二面部图像302中的除人物身份之外的多个属性。假设,利用符号xa表示第二面部图像302,利用符号a表示第二子网络320,利用属性向量fa(xa)来表示第二特征304,则fa(xa)=a(xa)。

如图3所示,第一子网络310和第二子网络320的输出可以被耦合至第三子网络310的输入。在一些实现中,第三子网络330可以被训练为基于第一特征303和第二特征304来生成合成图像305(以下也称为“输出图像”)。假设,利用符号x’来表示合成图像305,利用符号g来表示第三子网络330,则x’=g([fi(xs)t,fa(xa)t]t)。

在一些实现中,分类子网络340和区分子网络350可以仅用于模型训练阶段,而不被用于模型应用阶段。也即,在学习网络300中,仅包括第一子网络310、第二子网络320和第三子网络330的网络360可以被用于模型应用阶段,而分类子网络340和区分子网络350仅用于辅助生成子网络330的训练。

如图3所示,第一子网络310的输入和第三子网络330的输出可以被耦合至第四子网络340的输入。在一些实现中,第四子网络340可以被训练为将第一面部图像301和合成图像305识别为关于同一用户。如以下将进一步描述的,第四子网络340可以影响用于训练第三子网络330的损失函数。以此方式,通过对第四子网络340的训练,使得由第三子网络生成的合成图像305能够保留第一面部图像301中的人物的身份。

如图3所示,第二子网络320的输入和第三子网络330的输出可以被耦合至第五子网络350的输入。在一些实现中,第五子网络350可以被训练为区分其输入是原始图像还是合成图像。如以下将进一步描述的,第五子网络350可以影响用于训练第三子网络330的损失函数。以此方式,通过对第五子网络340的训练,使得由第三子网络生成的合成图像305能够尽可能多地保留第二面部图像302中除人物身份之外的多个属性。

以上结合图3描述了示例学习网络300的基本结构和功能,以下将进一步详细描述学习网络300中的各个子网络的训练细节。

学习网络的训练

如上所述,在一些实现中,学习网络300的训练过程可以以迭代方式来被执行。具体地,模型训练子系统210可以从训练数据集230中获取一对面部图像{xs,xa},其中图像xs被输入到用于身份识别的第一子网络310(在下文中也被称为“主体图像”),并且图像xa被输入到用于属性识别的第二子网络320(在下文中也被称为“属性图像”)。主体图像xs可以与属性图像xa相同或者不同。在一些实现中,模型训练子系统210可以利用这一对面部图像来进行训练过程的一次迭代,以更新学习网络300中的各个子网络的相应参数。附加地,模型训练子系统210可以基于训练数据集230中的面部图像重复执行上述过程,直至学习网络300中的至少部分子网络(例如,生成子网络330)的参数收敛,由此获得最终的模型参数。

第一子网络的训练

假定模型训练子系统210利用来自训练数据集230的一组训练图像来训练第一子网络310,该组训练图像例如可以被表示其中ci表示所标注的面部图像的身份。在一些实现中,可以使用softmax损失函数来训练第一子网络310以执行人脸分类任务。因此,相同个体的身份向量应当大致相同。例如,用于训练第一子网络310的损失函数可以被表示为:

其中p(c|xs)表示面部图像xs具有身份c的概率。损失函数可以表示当面部图像xs符合假定的数据分布pr时对于logp(c|xs)的期望。

在一些实现中,模型训练子系统210可以通过对如公式(1)所示的损失函数应用梯度下降法来更新第一子网络310的网络参数。

第二子网络的训练

在一些实现中,为了以无监督方式来训练第二子网络320,可以利用两个损失函数来对第二子网络320进行训练。这两个损失函数可以包括重建损失函数和kl散度损失函数。

为了构建重建损失函数,需要考虑两种情况:1)主体图像xs与属性图像xa相同;以及2)主体图像xs与属性图像xa不同。在这两种情况下,都期望第三子网络330输出的合成图像x’能够重建属性图像xa。也即,期望合成图像x’能够尽可能地体现属性图像xa中除人物身份之外的所有其他属性。因此,重建损失函数总体上可以衡量合成图像x’与属性图像xa之间的差异(在此,利用两者的欧式距离来表示)。然而,在上述这两种情况下,重建损失函数应当具有不同的权重。

在一些实现中,考虑到以上这些因素,用于训练第二子网络320的重建损失函数可以被表示为:

其中λ表示当主体图像xs与属性图像xa不同时用于重建损失函数的权重。以下将进一步分析这两种情况。

当主体图像xs与属性图像xa相同时,输出图像x’应当与图像xs或xa相同。例如,假设存在同一身份的各种人脸图像,则它们的身份向量fi(xs)应当是相同的,但是这些人脸图像的属性向量fa(xa)可能各不相同。因此,重建损失函数应当迫使第二子网络320针对这些人脸图像学习不同的属性表示fa(xa)。当主体图像xs和属性图像xa不同时,输出图像x’的具体情况可能是未知的。但是,可以期望合成图像x’能够尽可能地体现属性图像xa中除人物身份之外的所有其他属性,诸如背景、照明度和姿态等。

因此,在一些实现中,可以针对主体图像xs和属性图像xa不同的情况利用相对较小的权重对重建损失函数进行加权。在一些实现中,例如该权重λ的取值可以为0.1。

为了帮助第二子网络320能够获得更好的属性向量,在一些实现中,除了上述重建损失函数之外还可以利用kl散度损失函数来训练第二子网络320,以利用适当的先验分布来约束属性向量。例如,可以利用适当的先验分布p(z)~n((0,1)(其中,n(0,1)表示标准正太分布)来限制属性向量的分布范围,使得属性向量完全不包含或者基本不包含身份信息。在一些实现中,可以使用kl散度损失函数来减小先验分布p(z)与属性向量的分布之间的差距。例如,kl散度损失函数可以被表示为:

可以描述属性向量的分布与所采用的先验分布p(z)之间的差异。

在一些实现中,当属性向量的分布服从高斯分布时,公式(3)可以进一步被改写为:

其中j表示向量∈的元素个数,j表示向量∈的第j个元素,向量∈表示高斯分布的协方差,并且向量μ表示高斯分布的均值。在一些实现中,在第二子网络320的训练阶段,可以使用z=μ+r⊙exp(∈)来对属性向量进行采样,其中r~n(0,i)表示服从标准正太分布的一个随机向量(其中,i表示单位矩阵)并且⊙代表元素级乘法。

在一些实现中,模型训练子系统210可以对公式(2)所示的重建损失函数和公式(3)或(4)所示的kl散度损失函数进行组合来确定用于训练第二子网络320的损失函数。模型训练子系统210可以进一步对该损失函数应用梯度下降法来更新第二子网络320的网络参数。

第三、第四和第五子网络的训练

在一些实现中,在提取了身份向量fi(xs)和属性向量fa(xa)之后,可以基于两者生成合并的向量并且馈送给第三子网络330以合成新的人脸图像。例如,经合并的向量可以被表示为:在一些实现中,可以采用如下所述的非对称方法来训练第三子网络330,以使得第三子网络330能够生成基于身份保持的、逼真的人脸图像。此外,该方法能够使得第三子网络330的训练过程更稳定。

在一些实现中,第三子网络330可以和第五子网络350(也即,区分子网络)彼此竞争。具体而言,第五子网络350的目标是要区分原始图像和合成图像,而第三子网络330的目标则是要试图欺骗第五子网络350。假设利用符号g来表示第三子网络330并且利用符号d来表示第五子网络350,则第五子网络350的目标是使如下的损失函数最小化,以区分原始图像和合成图像:

然而,如果第三子网络330直接试图使上述损失函数最大化,则第三子网络330的训练过程将是不稳定的(例如,可能无法收敛)。这是因为,在实践中原始图像和合成图像的分布可能不会相互重叠,尤其在学习网络300的训练过程的早期。因此,为了第三子网络330的训练过程稳定,需要利用第五子网络350来区分这两者。

在一些实现中,通过使得上述损失函数最小化,第五子网络350可以被训练为始终能够区分原始图像xa和合成图像x’,也即d(xa)→1并且d(x′)→0。在此情况下,当利用梯度下降法来更新第三子网络330的网络参数时,将趋向于零,由此导致梯度消失的问题。

为了解决上述梯度消失的问题,在一些实现中,可以使用成对特征匹配损失函数来用于训练第三子网络330。具体而言,为了产生逼真的人脸图像质量,原始图像xa和合成图像x’的特征应当相匹配。在一些实施例中,假设利用fd(x)来表示从第五子网络350中的至少一层提取到的图像x的特征,则成对特征匹配损失函数可以被构建为衡量基于合成图像x’所提取的特征与基于原始图像xa所提取的特征之间的差异。例如,成对特征匹配损失函数可以被表示为基于合成图像x’所提取的特征与基于原始图像xa所提取的特征之间的欧式距离,也即:

在一些实现中,可以将第五子网络350中的最后全连接(fc)层的输入提取作为特征fd(x)。附加地或者备选地,在另一些实施例中,也可以从第五子网络350中的多个层来提取特征fd(x)。

与此同时,第四子网络340试图对不同身份的人脸图像进行分类。也即,与第一子网络310的损失函数类似,第四子网络340试图最小化如下所示的损失函数:

在一些实现中,为了生成保持身份的人脸图像,可以使用特征重建损失函数来用于训练第三子网络330,以迫使合成图像x’和图像xs在第四子网络340中具有相似的特征表示(也即,使得第四子网络340将图像x’和图像xs识别为关于同一用户)。在一些实施例中,假设利用fc(x)来表示从第四子网络340中的至少一层提取到的图像x的特征,则特征重建损失函数可以被构建为衡量基于合成图像x’所提取的特征与基于原始图像xs所提取的特征之间的差距。具体地,特征重建损失函数例如可以被表示为基于合成图像x’所提取的特征与基于原始图像xs所提取的特征之间的欧式距离,也即:

在一些实现中,出于实现简化的考虑,可以将第四子网络340中的最后fc层的输入提取作为特征fc(x)备选地,在另一些实施例中,可以将来自第四子网络340中的多个层的特征进行组合以作为特征fc(x),由此提高第三子网络330保留图像xs中的人物身份的能力。

附加地或者备选地,在一些实现中,第四子网络340和第一子网络310可以共享网络参数。例如,可以利用经预先训练的人类分类网络来初始化第四子网络340和第一子网络310,以加速学习网络300的训练速度。也即,在一些实现中,第一子网络310和第四子网络340可以在其他子网络之前被预先训练。

在一些实现中,模型训练子系统210可以通过对公式(2)所示的重建损失函数公式(6)所示的成对特征匹配损失函数以及公式(8)所示的特征重建损失函数进行组合来确定用于训练第三子网络330的损失函数。模型训练子系统210可以进一步对该损失函数应用梯度下降法来更新第三子网络330的网络参数。

示例训练算法

以上讨论了如图3所示的示例学习网络300的各个子网络的训练。可以看出,尽管存在如表1所示的多个损失函数,但是每个子网络仅涉及多个损失函数中的一部分。因此,如图3所示的示例学习网络300是容易被训练的。

表1:示例学习网络300的各个子网络的损失函数

表2示出了根据本公开的实现的用于训练如图3所示的学习网络300的示例算法。在以下示例算法中,在学习网络300的训练阶段,将每次迭代分成两个步骤:用于xs=xa时的一个步骤和用于时的另一步骤。应当理解,以下示例算法仅仅是示例性的,不旨在限制本公开的范围。本公开的实现也可以以其他方式来被体现。

表2:用于训练学习网络300的示例算法

学习网络的进一步训练

如上所述,根据本公开的实现的方案能够对任何身份的面部图像进行基于身份保留的图像合成,而不管具有该身份的人物的面部图像是否存在于训练数据集中,这就要求所训练的学习网络能够适应各种不同的极端属性,诸如极端的姿势或照明度等等。然而,现有的经标注的公共人脸数据库通常受到大小的限制,而使得其属性不够多样化。

为了解决这个问题,在一些实现中,可以利用具有更大变化的附加训练数据集来对如图3所示的学习网络进行进一步训练。例如,可以从各种来源收集大量人脸图像,这些未经任何标注的人脸图像可以因此比任何现有的人脸数据库中的人脸图像更加多样化。例如,这些数据可以被添加到用于训练学习网络300的训练数据集230中,并执行无监督的训练过程来训练学习网络300,以更好地合成具有在训练集中不存在的人物身份的人脸图像。

这些未标记的图像可以用作主体图像xs或属性图像xa。当用作属性图像xa时,整个训练过程保持不变。当用作主体图像xs时,由于其未被标注,因此可以忽略损失函数换句话说,第一子网络i和第四子网络c可以是固定的,其网络参数在附加训练过程中不会被更新。也即,仅更新学习网络300中的其他子网络的网络参数。

以此方式,根据本公开的实现能够进一步提高合成图像的多样性。因此,生成的人脸图像能够呈现出姿态和表情的较大变化,以更加逼真。

学习网络的应用

当用于面部合成学习网络300被训练完成,学习网络300中的子学习网络360可以被提供给如图2所示的模型应用子系统220,以被用于面部合成。

具体地,模型应用子系统220可以利用子学习网络360中的第一子网络310从如图1所示的关于第一用户的面部的第一图像171中提取第一特征,第一特征表征第一用户的第一身份。模型应用子系统220可以利用子学习网络360中的第二子网络320从关于第二用户的面部的第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性。然后,模型应用子系统220可以利用子学习网络360中的第三子网络330来基于第一特征和第二特征来生成关于第一用户的面部的第三图像180。第三图像180可以体现第一用户的第一身份和第二图像的除第二用户的第二身份之外的多个属性。

基于以上描述能够看出,根据本公开的实现的面部合成方案能够对任何身份的面部图像进行基于身份保留的图像合成,而不管具有该身份的人物的面部图像是否存在于训练数据集中。在训练用于进行上述面部合成的模型时,该方案不需要对除人物身份之外的任何其他属性进行标注。此外,该方案通过利用未经标注的附加训练图像来进行模型训练,能够进一步提高合成图像的多样性,由此使得生成的人脸图像能够呈现出姿态和表情的较大变化,从而更加逼真。

示例过程

图4示出了根据本公开一些实现的训练用于面部合成的学习网络的过程400的流程图。过程400可以由如图2所示的模型训练子系统210来实现。应当理解,过程400还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。

在框410,模型训练子系统210获取关于第一用户的面部的第一图像和关于第二用户的面部的第二图像,第一图像利用第一用户的第一身份被标注。

在框420,模型训练子系统210基于第一图像和第二图像来训练用于面部合成的学习网络,使得学习网络:从第一图像提取第一特征,第一特征表征第一用户的第一身份;从第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性;以及基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的第一身份和第二图像的多个属性。

在一些实现中,学习网络包括第一子网络,并且训练学习网络包括:训练第一子网络,使得第一子网络从第一图像提取第一特征。

在一些实现中,学习网络包括第二子网络,并且训练学习网络包括:训练第二子网络,使得第二子网络从第二图像提取第二特征。

在一些实现中,学习网络包括第三子网络,第一子网络和第二子网络的输出耦合至第三子网络的输入。训练学习网络包括:训练第三子网络,使得第三子网络基于第一特征和第二特征来生成第三图像。

在一些实现中,学习网络包括第四子网络,第一子网络的输入和第三子网络的输出耦合至第四子网络的输入。训练学习网络包括:训练第四子网络,使得第四子网络将第一图像和第三图像分类为关于同一用户。

在一些实现中,学习网络包括第五子网络,第三子网络的输出和第二子网络的输入耦合至第五子网络的输入。训练学习网络包括:训练第五子网络,使得第五子网络将第二图像分类为原始图像并且将第三图像分类为合成图像。

图5示出了根据本公开一些实现的用于面部合成的过程500的流程图。过程500可以由如图2所示的模型应用子系统220来实现。应当理解,过程500还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。

在框510,模型应用子系统220获取关于第一用户的面部的第一图像和关于第二用户的面部的第二图像。

在框520,模型应用子系统220从第一图像提取第一特征,第一特征表征第一用户的第一身份。

在框530,模型应用子系统220从第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性。

在框540,模型应用子系统220基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的第一身份和第二图像的多个属性。

在一些实现中,提取第一特征包括:利用用于面部合成的学习网络中的第一子网络从第一图像提取第一特征,第一特征提取自第一网络中的至少一层。

在一些实现中,提取第二特征包括:利用学习网络中的第二子网络从第二图像提取第二特征,第二特征提取自第二子网络中的至少一层。

在一些实现中,生成第三图像包括:利用学习网络中的第三子网络基于第一特征和第二特征来生成第三图像,第一子网络和第二子网络的输出耦合至第三子网络的输入。

示例实现方式

以下列出了本公开的一些示例实现方式。

在第一方面,本公开提供了一种电子设备。该设备包括:处理单元;存储器,耦合至所述处理单元并且包含存储于其上的指令。所述指令在由所述处理单元执行时使所述设备执行动作,动作包括:获取关于第一用户的面部的第一图像和关于第二用户的面部的第二图像;从第一图像提取第一特征,第一特征表征第一用户的第一身份;从第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性;以及基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的第一身份和第二图像的多个属性。

在一些实现中,提取第一特征包括:利用用于面部合成的学习网络中的第一子网络从第一图像提取第一特征,第一特征提取自第一网络中的至少一层。

在一些实现中,提取第二特征包括:利用学习网络中的第二子网络从第二图像提取第二特征,第二特征提取自第二子网络中的至少一层。

在一些实现中,生成第三图像包括:利用学习网络中的第三子网络基于第一特征和第二特征来生成第三图像,第一子网络和第二子网络的输出耦合至第三子网络的输入。

在第二方面,本公开提供了一种电子设备。该设备包括:处理单元;存储器,耦合至所述处理单元并且包含存储于其上的指令。所述指令在由所述处理单元执行时使所述设备执行动作,动作包括:获取关于第一用户的面部的第一图像和关于第二用户的面部的第二图像,第一图像利用第一用户的第一身份被标注;基于第一图像和第二图像来训练用于面部合成的学习网络,使得学习网络:从第一图像提取第一特征,第一特征表征第一用户的第一身份;从第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性;以及基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的第一身份和第二图像的多个属性。

在一些实现中,学习网络包括第一子网络,并且训练学习网络包括:训练第一子网络,使得第一子网络从第一图像提取第一特征。

在一些实现中,学习网络包括第二子网络,并且训练学习网络包括:训练第二子网络,使得第二子网络从第二图像提取第二特征。

在一些实现中,学习网络包括第三子网络,第一子网络和第二子网络的输出耦合至第三子网络的输入。训练学习网络包括:训练第三子网络,使得第三子网络基于第一特征和第二特征来生成第三图像。

在一些实现中,学习网络包括第四子网络,第一子网络的输入和第三子网络的输出耦合至第四子网络的输入。训练学习网络包括:训练第四子网络,使得第四子网络将第一图像和第三图像分类为关于同一用户。

在一些实现中,学习网络包括第五子网络,第三子网络的输出和第二子网络的输入耦合至第五子网络的输入。训练学习网络包括:训练第五子网络,使得第五子网络将第二图像分类为原始图像并且将第三图像分类为合成图像。

在第三方面,本公开提供了一种计算机实现的方法。该方法包括:获取关于第一用户的面部的第一图像和关于第二用户的面部的第二图像;从第一图像提取第一特征,第一特征表征第一用户的第一身份;从第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性;以及基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的第一身份和第二图像的多个属性。

在一些实现中,提取第一特征包括:利用用于面部合成的学习网络中的第一子网络从第一图像提取第一特征,第一特征提取自第一网络中的至少一层。

在一些实现中,提取第二特征包括:利用学习网络中的第二子网络从第二图像提取第二特征,第二特征提取自第二子网络中的至少一层。

在一些实现中,生成第三图像包括:利用学习网络中的第三子网络基于第一特征和第二特征来生成第三图像,第一子网络和第二子网络的输出耦合至第三子网络的输入。

在第四方面,本公开提供了一种计算机实现的方法。该方法包括:获取关于第一用户的面部的第一图像和关于第二用户的面部的第二图像,第一图像利用第一用户的第一身份被标注;基于第一图像和第二图像来训练用于面部合成的学习网络,使得学习网络:从第一图像提取第一特征,第一特征表征第一用户的第一身份;从第二图像提取第二特征,第二特征表征第二图像的除第二用户的第二身份之外的多个属性;以及基于第一特征和第二特征来生成关于第一用户的面部的第三图像,第三图像体现第一用户的第一身份和第二图像的多个属性。

在一些实现中,学习网络包括第一子网络,并且训练学习网络包括:训练第一子网络,使得第一子网络从第一图像提取第一特征。

在一些实现中,学习网络包括第二子网络,并且训练学习网络包括:训练第二子网络,使得第二子网络从第二图像提取第二特征。

在一些实现中,学习网络包括第三子网络,第一子网络和第二子网络的输出耦合至第三子网络的输入。训练学习网络包括:训练第三子网络,使得第三子网络基于第一特征和第二特征来生成第三图像。

在一些实现中,学习网络包括第四子网络,第一子网络的输入和第三子网络的输出耦合至第四子网络的输入。训练学习网络包括:训练第四子网络,使得第四子网络将第一图像和第三图像分类为关于同一用户。

在一些实现中,学习网络包括第五子网络,第三子网络的输出和第二子网络的输入耦合至第五子网络的输入。训练学习网络包括:训练第五子网络,使得第五子网络将第二图像分类为原始图像并且将第三图像分类为合成图像。

在第五方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第三方面中的方法。

在第六方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第四方面中的方法。

在第七方面,本公开提供了一种计算机可读介质,其上存储有计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第三方面中的方法。

在第八方面,本公开提供了一种计算机可读介质,其上存储有计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第四方面中的方法。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1