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

人脸矫正模型的训练方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:23:00


人脸矫正模型的训练方法、装置、电子设备及存储介质

技术领域

本发明涉及机器学习技术,尤其涉及一种人脸矫正模型的训练方法、装置、电子设备及存储介质。

背景技术

图像矫正是计算机科学领域与人工智能领域中的一个重要方向,能够对畸变、带宽有限等造成的图像失真,或者由于成像器件拍摄姿态和扫描非线性引起的图像几何失真,由于运动模糊、辐射失真、引入噪声等造成的图像失真等进行校正。人脸矫正技术是图像矫正领域的一个分支,在如今很多生活应用场景中发挥着越来越重要的作用。

在相关技术中,为了实现对不同姿态的人脸图像的姿态矫正,以得到一个相对能够较好的识别出人脸特征的人脸姿态的图像,通常采用的方式是通过一个机器模型来进行跨姿态人脸图像的学习,模型的输入是待矫正的各种姿态下的人脸图像,模型的输出是矫正后的需要的人脸姿态的图像,通过学习一个包含各人脸姿态的图像和需要的人脸姿态的图像的样本数据,来使得模型能够实现跨姿态的人脸矫正。然而这种方式可能会产生图像映射歧义,使得模型学习到除了姿态改变之外的变化,从而导致生成后的图片丢失了原始人脸图像的信息,最终生成出另一个完全不同的人脸。

发明内容

本发明实施例提供一种人脸矫正模型的训练方法、装置、电子设备及计算机可读存储介质,能够使得训练得到的人脸矫正模型在实现人脸的跨姿态矫正的同时,还能够不丢失人脸图像的信息。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种人脸矫正模型的训练方法,包括:通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;其中,所述人脸图像具有至少一个维度的人脸属性;通过判别模型对所述矫正人脸图像进行真实性预测,得到表征所述矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于所述预测结果构建第一损失函数;通过人脸属性识别模型,对所述矫正人脸图像针对所述至少一个维度的人脸属性进行人脸属性识别,得到包含所述矫正人脸图像所具有的人脸属性的识别结果,并基于所述识别结果构建第二损失函数;基于所述第一损失函数及所述第二损失函数,对所述人脸矫正模型的模型参数进行更新。

上述方案中,所述基于所述第一损失函数及所述第二损失函数,对所述人脸矫正模型的模型参数进行更新,包括:分别确定所述第一损失函数的权值和所述第二损失函数的权值;基于所述第一损失函数的权值和所述第二损失函数的权值,对所述第一损失函数和所述第二损失函数进行加权求和,得到目标损失函数;基于所述目标损失函数,对所述人脸矫正模型的模型参数进行更新。

上述方案中,所述基于所述目标损失函数,对所述人脸矫正模型的模型参数进行更新,包括:基于所述预测结果确定所述第一损失函数的值;基于所述人脸图像所具有的人脸属性与所述识别结果之间的差异,确定所述第二损失函数的值;基于所述第一损失函数的值和所述第二损失函数的值,确定所述目标损失函数的值;基于所述目标损失函数的值,对所述人脸矫正模型的模型参数进行更新。

上述方案中,所述基于所述目标损失函数的值,对所述人脸矫正模型的模型参数进行更新,包括:当所述目标损失函数的值达到第一阈值时,基于所述目标损失函数确定相应的第一误差信号;从所述判别模型的输出层开始,将所述第一误差信号在所述判别模型及所述人脸矫正模型中反向传播,并在传播的过程中更新所述判别模型及所述人脸矫正模型的模型参数。

本发明实施例提供一种人脸矫正模型的训练装置,包括:

人脸姿态矫正模块,用于通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;其中,所述人脸图像具有至少一个维度的人脸属性;

预测模块,用于通过判别模型对所述矫正人脸图像进行真实性预测,得到表征所述矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于所述预测结果构建第一损失函数;

属性识别模块,用于通过人脸属性识别模型,对所述矫正人脸图像针对所述至少一个维度的人脸属性进行人脸属性识别,得到包含所述矫正人脸图像所具有的人脸属性的识别结果,并基于所述识别结果构建第二损失函数;

参数更新模块,用于基于所述第一损失函数及所述第二损失函数,对所述人脸矫正模型的模型参数进行更新。

本发明实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的人脸矫正模型的训练方法。

本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的人脸矫正模型的训练方法。

本发明实施例还提供一种人脸矫正方法,包括:

获取待矫正人脸图像;

将所述待矫正人脸图像输入至人脸矫正模型;

通过所述人脸矫正模型对所述待矫正人脸图像进行人脸姿态矫正,得到标准人脸姿态的目标矫正人脸图像;

其中,所述人脸矫正模型基于本发明实施例提供的人脸矫正模型的训练方法训练得到。

上述方案中,所述人脸矫正模型包括编码层、修正层以及解码层;所述通过所述人脸矫正模型对所述待矫正人脸图像进行人脸姿态矫正,得到标准人脸姿态的目标矫正人脸图像,包括:通过所述编码层,对所述待矫正人脸图像进行编码,得到初始编码;通过所述修正层,基于所述待矫正人脸图像中人脸姿态与标准人脸姿态的偏差,修正所述初始编码,得到目标编码;通过所述解码层,解码所述目标编码,得到标准人脸姿态的目标矫正人脸图像;其中,所述编码层的参数、所述修正层的参数和所述解码层的参数为,基于判别模型的预测结果所构建的第一损失函数、及人脸属性识别模型的人脸属性识别结果所构建的第二损失函数进行参数更新得到;其中,所述预测结果为,所述判别模型对所述人脸矫正模型输出的矫正人脸图像进行真实性预测得到;所述人脸属性识别结果为,所述人脸属性识别模型对所述人脸矫正模型输出的矫正人脸图像进行人脸属性识别得到。

本发明实施例还提供一种人脸矫正装置,包括:

获取模块,用于获取待矫正人脸图像;

输入模块,用于将所述待矫正人脸图像输入至人脸矫正模型;

矫正模块,用于通过所述人脸矫正模型对所述待矫正人脸图像进行人脸姿态矫正,得到标准人脸姿态的目标矫正人脸图像;

其中,所述人脸矫正模型基于本发明实施例提供的人脸矫正模型的训练方法训练得到。

本发明实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的人脸矫正方法。

本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的人脸矫正方法。

本发明实施例具有以下有益效果:

与相关技术中以包含各人脸姿态的人脸图像和所需人脸姿态的真实图像作为样本数据进行模型训练的训练方式相比,本发明实施例在由人脸矫正模型和判别模型构成的生成对抗网络的基础训练架构上,引入人脸属性识别模型作为训练指导,来实现对人脸矫正模型的训练,使得人脸矫正模型在训练过程中能够学习到跨姿态的人脸矫正的同时,还能够学习到人脸图像的人脸属性,从而克服了采用相关技术中的模型训练方式容易丢失人脸图像信息的缺陷,实现了使训练得到的人脸矫正模型在具备跨姿态的人脸矫正功能的同时,还能够让矫正后的矫正人脸图像不丢失原始输入的人脸图像的信息。

附图说明

图1是相关技术提供的GAN模型的原理示意图;

图2是相关技术提供的GAN模型的一个可选的结构示意图;

图3是本发明实施例提供的人脸矫正模型的训练系统的一个可选的示意图;

图4是本发明实施例提供的电子设备的一个可选的结构示意图;

图5是本发明实施例提供的人脸矫正模型的一个可选的结构示意图;

图6是本发明实施例提供的用于模型训练的模型架构的一个可选的示意图;

图7是本发明实施例提供的人脸矫正模型的训练方法的一个可选的流程示意图;

图8是本发明实施例提供的训练样本的一个可选的示意图;

图9是本发明实施例提供的用于模型训练的模型架构的一个可选的示意图;

图10是本发明实施例提供的人脸矫正模型的训练方法的一个可选的流程示意图;

图11是本发明实施例提供的人脸矫正模型的训练方法的一个可选的流程示意图;

图12是本发明实施例提供的训练样本的一个可选的示意图;

图13是本发明实施例提供的人脸矫正方法的一个可选的流程示意图;

图14是本发明实施例提供的人脸矫正装置的结构的一个可选的示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,描一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)隐空间(latent space):噪声z所在的样本空间,它是一个向量空间。

2)交叉熵:用于衡量两个分布之间的相似度。例如,在逻辑回归中,数据集真实的分布是p,通过逻辑回归模型预测出来的结果对应的分布是q,此时交叉熵在这里就是衡量预测结果q与真实结果p之间的差异程度,称之为交叉熵损失函数。

3)生成对抗网络:一种深度学习模型,通过生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习来产生较好的输出。

4)收敛:指逼近于某一个值。模型的收敛则是指模型的损失函数的收敛。

为了实现跨姿态的人脸矫正,即将各种不同人脸姿态的人脸图像矫正为标准人脸姿态的人脸图像,相关技术提供一种生成对抗网络模型。图1为相关技术提供的GAN模型的原理示意图,参见图1,生成式对抗网络(GAN,Generative Adversarial Networks)模型包括生成模型G和判别模型D,以通过所述GAN模型对图片进行处理为例,生成模型G是一个生成式的网络,它从隐空间接收一个随机的噪声z,通过这个噪声生成图像G(z)。判别模型D是一个判别网络,判别一张图片是不是“真实的”,例如它的输入参数是x,x代表一张图片,输出D(x)则代表x为真实图片的概率。

图2为相关技术中提供的GAN模型的结构的一个可选的示意图,在训练过程中,生成模型G的目标就是尽量生成真实的图片输入到判别模型D中去欺骗判别模型D。而判别模型D的目标就是尽量把生成模型G生成的图片和真实世界的图片分别开来。这样,生成模型G和判别模型D构成了一个动态的“博弈过程”。通过生成模型G和判别模型D的不断博弈,进而使生成模型G学习到数据的分布,如果用到图片生成上,则训练完成后,生成模型G可以从一段随机数中生成逼真的图像。

发明人在实施本发明实施例的过程中,采用一由人脸矫正模型和判别模型构成的生成对抗网络来进行人脸矫正学习。其中,人脸矫正模型作为生成模型。具体通过人脸矫正模型来进行跨姿态的人脸图像矫正。人脸矫正模型的输入是待矫正的各种姿态下的人脸图像,人脸矫正模型的输出是矫正后的标准人脸姿态的人脸图像,例如正脸图像。然后将矫正后的人脸图像以及另一张正脸图像一起输入到判别模型。其中,另一张正脸图像可以与输入人脸矫正模型的人脸图像对应为同一个人,也可以对应为两个不同的人。判别模型用于判断哪张图像是真实的,哪张图像是生成的。最后通过人脸矫正模型和判别模型之间的对抗来学习。

发明人在实施本发明实施例的过程中发现,这种方式可能会产生图像映射歧义,使得生成模型学习到除了姿态改变之外的变化,从而导致生成后的图片丢失了原始人脸图像的身份信息,最终生成出另一个完全不同的人脸,导致人脸矫正模型有待进一步优化。

基于此,本发明实施例提供了一种人脸矫正模型的训练方法、装置、设备和计算机可读存储介质,能够得到在实现人脸的跨姿态矫正的同时不丢失人脸图像的信息的人脸矫正模型。

首先对本发明实施例提供的人脸矫正模型的训练系统进行说明,图3为本发明实施例提供的人脸矫正模型的训练系统100的一个可选的示意图,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。在一些实施例中,终端400可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备,智能音箱,智能手表等,但并不局限于此。服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。网络300可以是广域网或者局域网,又或者是二者的组合。终端400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。

终端400,用于发送用于训练人脸矫正模型的人脸图像至服务器200;

服务器200,用于通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;其中,人脸图像具有至少一个维度的人脸属性;通过判别模型对矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于预测结果构建第一损失函数;通过人脸属性识别模型,对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果,并基于识别结果构建第二损失函数;基于第一损失函数及第二损失函数构建目标损失函数,并获取目标损失函数的值;基于目标损失函数的值,对人脸矫正模型的模型参数进行更新。如此,实现对人脸矫正模型的训练。

终端400,还用于发送携带待矫正人脸图像的图像矫正请求给服务器200,使得服务器200解析图像矫正请求后得到待矫正人脸图像,并通过训练得到的人脸矫正模型对待矫正人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像并返回至终端400。

接下来对本发明实施例提供的用于实施上述训练方法的电子设备进行说明,参见图4,图4是本发明实施例提供的电子设备500的结构的一个可选的示意图,在实际应用中,电子设备500可以实施为图3中的终端400或服务器200,以电子设备为图3所示的服务器200为例,对实施本发明实施例的人脸矫正模型的训练方法的电子设备进行说明。图4所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统540。

处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。

存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器550旨在包括任意适合类型的存储器。

在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;

呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);

输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本发明实施例提供的人脸矫正模型的训练装置可以采用软件方式实现,图4示出了存储在存储器550中的人脸矫正模型的训练装置555,其可以是程序和插件等形式的软件,包括以下软件模块:人脸姿态矫正模块5551、预测模块5552、属性识别模块5553、参数更新模块5554和参数更新模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在另一些实施例中,本发明实施例提供的人脸矫正模型的训练装置可以采用硬件方式实现,作为示例,本发明实施例提供的人脸矫正模型的训练装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的人脸矫正模型的训练方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。

在对本发明实施例提供的人脸矫正模型的训练方法说明之前,先对本发明实施例提供的人脸矫正模型的结构进行说明,图5是本发明实施例提供的人脸矫正模型的一个可选的结构示意图。本实施例提供的人脸矫正模型包括一个编码器和一个解码器。服务器在实施本发明实施例提供的人脸矫正模型的训练方法之前,还构造一个由编码器和一个解码器组成的人脸矫正模型。其中,编码器用于将输入的图像进行编码,输出图像的图像编码,图像编码可以为多元的一维向量表示,还可以是多元的多维向量表示,例如可以将一张图像编码为256元的一维向量,或者256元的256维向量。解码器则用于将输入的噪声进行解码后生成图像并输出,通常噪声就是一个一维的向量,经过reshape为二维图像,然后利用若干个反卷积层来学习上采样。在实际实施时,可以将随机的噪声和选取的样本向量同时输入解码器中,共同约束解码器生成图像。本实施例的人脸矫正模型中,则是将随机的噪声和由编码器生成的图像编码输入解码器中,以使解码器解码生成对应的人脸图像。本实施例提供的人脸矫正模型,在利用编码器将输入的任意姿态的人脸图像进行编码后,还对编码得到的图像编码进行修正,以改变图像编码映射得到的人脸图像的人脸姿态,本实施例中则将修正得到的目标图像编码映射为标准姿态的人脸图像,将修正后的目标图像编码输入解码器中,则可以生成矫正人脸图像。

在一些实施例中,编码器可以采用AlexNet网络的前5层,外加一个全连接层,全连接层为前后层的神经元全连接,用于特征映射以及降维,并将AlexNet网络的RELU改为ELU。本实施例涉及的生成对抗网络可以采用深度卷积生成对抗网络(DCGAN,DeepConvolutional Generative Adversarial Network)。

接下来,对本发明实施例提供的训练过程的模型架构进行说明,图6是本发明实施例提供的训练过程的模型架构的一个可选的示意图,参见图6,本发明实施例提供的训练过程的模型架构包括:

人脸矫正模型61,用于对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;其中,人脸图像具有至少一个维度的人脸属性;

判别模型62,用于对矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果;

人脸属性识别模型63,用于对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果。

基于上述模型架构,利用模型架构中各模型的输出,对人脸矫正模型61的模型参数和判别模型62的模型参数进行更新,实现人脸矫正模型61和判别模型62的对抗训练,进而可利用训练得到的人脸矫正模型61,实现在保留人脸属性下的人脸矫正。

基于上述对本发明实施例的人脸矫正模型的训练系统、电子设备及人脸矫正模型的结构的说明,接下来对本发明实施例提供的人脸矫正模型的训练方法进行说明。在一些实施例中,本发明实施例提供的人脸矫正模型的训练方法可以由终端单独实施,或由服务器单独实施,或由服务器及终端协同实施。

下面以服务器实施为例,结合本发明实施例提供的服务器的示例性应用和实施,说明本发明实施例提供的人脸矫正模型的训练方法。参见图7,图7是本发明实施例提供的人脸矫正模型的训练方法的一个可选的流程示意图,将结合图7示出的步骤进行说明。

在一些实施例中,在进行人脸矫正模型的训练之前,需要获取模型的训练样本。参照图8,图8是本发明实施例提供的训练样本的一个可选的示意图。训练样本包括输入人脸矫正模型的人脸图像、该人脸图像的人脸属性(图未示出)以及目标人脸图像。为了便于说明,本实施例将人脸图像记为A,将目标人脸图像记为B,将人脸图像所具有的人脸属性记为C,一组训练数据则可以记为(A,B,C)。其中,人脸图像A和目标人脸图像B均为真实世界的人脸图像。人脸图像A的人脸姿态可以是任意姿态,例如侧脸姿态。目标人脸图像B可以是标准人脸姿态的人脸图像,它可以与人脸图像对应为同一个人,还可以对应为两个不同的人。本实施例对人脸属性定义有至少一个维度,例如可以将人脸属性定义为包含以下人脸属性标签中的至少之一:性别、年龄、表情、头发长度、是否有佩戴物等。其中,头发长度还可以进一步划分为是否为长发、是否为短发、是否光头等多个维度。是否有佩戴物可以进一步划分为是否戴眼镜、是否带帽子、是否戴耳饰等多个维度。例如图8示出的人脸图像A,其对应的人脸属性则可以包括:男、22岁、无表情、短发、戴眼镜。对于人脸属性的具体定义本实施例不作具体限定。

还需要说明的是,训练样本由多组人脸图像、人脸图像的人脸属性以及目标人脸图像构成。训练样本可以为已经构造好的通用样本,服务器通过访问目标设备,从目标设备中进行获取,还可以是用户基于客户端进行上传,服务器接收客户端发送的由用户上传的训练样本。其中,目标设备可以是服务器本身,训练样本预存与服务器本地,服务器通过访问训练样本的存储地址来获取。目标设备还可以是与服务器通信连接的外部设备,例如可以是终端还可以是数据库服务器等,服务器通过通信连接访问目标设备,从目标设备内获取训练样本。

在一些实施例中,训练样本还可以由服务器构建得到,基于图7,在步骤701之前,还可以执行:

服务器获取目标用户在任意姿态下的人脸图像、目标用户在标准人脸姿态下的目标人脸图像,以及人脸图像所具有的至少一个维度的人脸属性;

在实际实施时,服务器可以从网页中采集同一目标用户在任意姿态下的人脸图像、与该人脸图像具有相同人脸属性的标准人脸姿态下的目标人脸图像、以及人脸图像所具有的至少一个维度的人脸属性。在一些实施例中,服务器还可以利用与其通信连接的摄像头,对目标用户进行拍摄,获得目标用户在任意姿态下的人脸图像,以及目标用户在标准姿态下的目标人脸图像。其中,关于人脸属性的采集,可以由模型训练人员基于人脸图像进行人为识别后输入至服务器中。具体地,服务器从网页中采集得到同一目标用户在任意姿态下的人脸图像后,将人脸图像发送至客户端进行输出,模型训练人员基于输出的人脸图像,人为识别得到该人脸图像所具有的人脸属性。然后客户端用户基于客户端的输入设备,将人脸属性输入至客户端,客户端将用户输入的人脸属性发送至服务器。服务器则获取客户端输入的人脸属性,与该人脸图像相映射的保存。

基于获取的人脸图像、目标人脸图像及人脸图像所具有的人脸属性,构建用于训练人脸矫正模型的训练样本。

在实际实施时,服务器将人脸图像、目标人脸图像及人脸图像所具有的人脸属性作为一组训练数据,通过上述方式获得多组训练数据。服务器将多组训练数据作为训练样本。其中,不同的两组训练数据可以对应同一目标用户,还可以分别对应不同的两个用户。本实施例中,同一组训练数据内的人脸图像和目标人脸图像则对应同一目标用户。在一些实施例中,同一组训练数据内的人脸图像和目标人脸图像也可以分别对应不同的两个用户。

在一些实施例中,服务器在获取到训练数据之后,还对获取的训练数据中的图像(也即人脸图像A和目标人脸图像B)进行预处理,服务器可对图像进行如下处理:分别对每帧图像进行大小调整,如对每一帧图像调整图像大小为286×386,然后对图像进行去噪处理,将图像像素值进行归一化,如归一化至-1到1之间,然后,将图像进行随机剪裁(如随机裁剪出大小为250×350)。服务器还可以对图像进行随机翻转,例如上线翻转或左右翻转等,服务器还可以对图像进行亮度或灰度等的调整,以实现图像的数据增强。然后,服务器基于进行预处理后的各组训练数据,构建训练样本。

上述的步骤中,通过获取目标用户在任意姿态下的人脸图像、目标用户在标准人脸姿态下的目标人脸图像,以及人脸图像所具有的至少一个维度的人脸属性,基于获取的人脸图像、目标人脸图像及人脸图像所具有的人脸属性,构建用于训练人脸矫正模型的训练样本,能够为对人脸矫正模型的训练提供一个可靠有效的训练样本。

在获得训练样本后,服务器则实施步骤701继续对人脸矫正模型进行训练,下面进行说明。

步骤701,服务器通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;其中,人脸图像具有至少一个维度的人脸属性;

需要说明的是,人脸矫正模型可以将任意姿态的人脸图像进行跨姿态的人脸矫正,得到标准姿态下的矫正人脸图像,在不断训练过程中能够生成更接近标准姿态和真实图像的矫正人脸图像。

在一些实施例中,图7示出的步骤701可以通过如下方式实现,将结合各步骤进行说明。

服务器将任意姿态下的人脸图像输入至人脸矫正模型;通过人脸矫正模型对人脸图像进行编码,得到初始图像编码;

在实际实施时,服务器将任意姿态下的人脸图像输入至人脸矫正模型的编码器。通过编码器五个卷积层对人脸图像进行卷积操作,其中第一和第二个卷积层对人脸图像进行局部响应归一化(LRN,Local Response Normalization)处理,第一、第二和第五个卷积层在卷积操作之后都进行了最大池化操作(MaxPooling)。其中,卷积层使用的激活函数均为ReLU函数。经过卷积层的卷积操作之后,利用全连接层对卷积层的输出进行特征映射和降维处理,得到人脸图像的初始图像编码。

基于人脸图像中人脸姿态及标准人脸姿态的偏差,修正初始图像编码,得到目标图像编码;

在实际实施时,服务器基于人脸图像中的人脸姿态与标准人脸姿态之间的偏差,对初始图像编码进行修正,以使修正后得到的目标图像编码能够映射到标准人脸姿态的人脸图像。在一些实施例中,服务器可以采用仿射变换(RST)、多项式模型(Polynomial)或者局部三角网(Triangulation)算法对初始图像编码进行修正,以对初始图像编码在向量层面实现人脸姿态的变换,得到对应于标准人脸姿态的目标图像编码。

解码目标图像编码,得到标准人脸姿态的矫正人脸图像。

这里,基于上述对初始编码的修正得到的目标图像编码,则可以映射到标准人脸姿态的人脸图像,服务器在利用人脸矫正模型对目标图像编码进行解码之后,得到标准人脸姿态的矫正人脸图像。其中,解码过程为,服务器通过人脸矫正模型的解码器,将输入至解码器的目标图像编码经过全连接层,reshape得到一个三维张量,该三维张量经过4个反卷积网络进行上采样后,生成一张二维的矫正人脸图像。例如,若目标图像编码为一个1*100的向量,则经过一个全连接层学习,可以将目标图像编码reshape到一个4*4*1024的三维张量,再经过4个上采样的反卷积网络,生成64*64的二维图像,即矫正人脸图像。

步骤702,通过判别模型对矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于预测结果构建第一损失函数;

需要说明的是,判别模型是一个卷积神经网络(CNN,Convolutional NeuralNetworks)分类器,在DCGAN中判别模型有4个卷积层。它实现对输入的样本的真实性分类。在实际实施时,服务器将真实世界的目标人脸图像和由人脸矫正模型生成的矫正人脸图像输入到判别模型中,判别模型则以目标人脸图像为基准,实现对矫正人脸图像的真实性分类,输出矫正人脸图像基于目标人脸图像的真实性概率的预测结果。若输出的预测结果表征的真实性概率为1,则表示矫正人脸图像为真实的图像,若输出的预测结果表征的真实性概率为0,则表示矫正人脸图像不是真实的图像,若输出的预测结果表征的真实性概率为0.5,则表示判别模型无法判断矫正人脸图像是否为真实的图像。

在实际实施时,终端还基于预测结果构建第一损失函数。该第一损失函数用于对人脸矫正模型的解码器参数和判别模型的模型参数进行更新。在一些实施例中,第一损失函数基于公式(1)构建:

L

其中,L

在一些实施例中,图7示出的步骤702中的“通过判别模型对矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果”可以通过如下方式实现,将结合各步骤进行说明。

服务器将矫正人脸图像和目标人脸图像输入至判别模型;通过判别模型分别对矫正人脸图像和目标人脸图像进行特征提取,得到矫正人脸图像对应的矫正人脸特征、及目标人脸图像对应的目标人脸特征;

在实际实施时,服务器将矫正人脸图像G(A)和目标人脸图像B输入至判别模型,利用判别模型分别进行特征提取。本实施例采用的判别模型使用带步长的卷积实现下采样操作,输入的图像通过与卷积核的数学运算,提取出图像的某些指定特征。在本实施例中,通过判别模型将输入的矫正人脸图像与卷积核进行数学技术,得到矫正人脸图像对应的矫正人脸特征,将输入的目标人脸图像与卷积核进行数学技术,得到目标人脸图像的目标人脸特征。其中,矫正人脸特征和目标人脸特征为向量表示。

基于矫正人脸特征及目标人脸特征,预测得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果。

在实际实施时,判别模型在卷积层实现下采样,得到矫正人脸特征和目标人脸特征后,则使用全连接层对矫正人脸特征和目标人脸特征进行处理后得到固定长度的特征向量。判别模型可以接受任意尺寸的输入图像,利用反卷积层对最后一个卷积层的特征图像(feature map)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对矫正人脸图像的每个像素都产生了一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图上进行逐像素分类,通过softmax映射输出表征矫正人脸图像相较于目标人脸图像的真实性的预测结果。

上述的通过判别模型对输入的矫正人脸图像进行真实性概率预测的过程,能够有效地对矫正人脸图像进行真实概率预测,得到基于目标人脸图像的真实性的预测结果。

步骤703,通过人脸属性识别模型,对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果,并基于识别结果构建第二损失函数;

需要说明的是,若人脸属性只有一个维度,则人脸属性识别模型为一个一对一的分类模型。若人脸属性具有多个维度,则人脸属性识别模型为一个多任务多分类的一对多的分类模型,包含多个线性判别函数,可以采用softmax回归来实现多类的Logistic回归。为了便于说明,本实施例将人脸属性记为C,并对C定义n个维度,将第n维度的人脸属性标签记为c

其中,p(y=n|x)为x属于第n个维度的人脸属性标签的条件概率,w

在实际实施时,服务器通过将一张人脸图像输入人脸属性识别模型中,得到含矫正人脸图像所具有的人脸属性的识别结果。人脸属性的识别结果包括至少一个维度的人脸属性标签。

此外,服务器还基于识别结果构建第二损失函数,本实施例中,第二损失函数用于结合第一损失函数对人脸矫正模型进行参数更新。将人脸属性识别模型即为FR,在一些实施例中,第二损失函数基于公式(3)构建:

L

其中,FA(G(A))为人脸属性识别模型FA对矫正人脸图像G(A)进行人脸属性识别的识别结果,C为人脸图像所具有的人脸属性,L

在一些实施例中,图7示出的步骤703中的“通过人脸属性识别模型,对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果”可以通过如下方式实现,将结合各步骤进行说明。

服务器将矫正人脸图像和至少一个维度的人脸属性所对应的人脸属性标签,输入至人脸属性识别模型;

在实际实施时,输入人脸属性识别模型的人脸属性标签为人脸图像所实际对应的人脸属性标签,也即训练样本中的人脸属性C所对应的人脸属性标签。它可以由人为进行识别后作为训练样本输入本实施例的人脸属性识别模型中。

通过人脸属性识别模型,分别对矫正人脸图像和各维度的人脸属性标签进行特征提取,得到矫正人脸图像对应的矫正人脸特征、及各维度的人脸属性标签所对应的人脸属性特征;

在实际实施时,服务器通过人脸属性识别模型的卷积层分别对矫正人脸图像和各维度的人脸属性标签进行下采样,以实现特征的提取,得到矫正人脸图像对应的矫正人脸特征,以及各维度的人脸属性标签所对应的人脸属性特征。

基于得到的矫正人脸特征及人脸属性特征,预测得到包含矫正人脸图像所具有的人脸属性的识别结果。

在实际实施时,服务器利用人脸属性识别模型的反卷积层对最后一个卷积层的feature map,即矫正人脸特征进行上采样,使它恢复到输入图像相同的尺寸,从而可以对矫正人脸图像的每个像素都产生了一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图上进行逐像素分类,通过softmax映射输出与人脸属性特征所对应的至少一个维度的矫正人脸属性标签,作为预测得到的包含矫正人脸图像所具有的人脸属性的识别结果。

上述的通过人脸属性识别模型对矫正人脸图像进行人脸属性识别的过程,能够有效识别得矫正人脸图像的至少一个维度的人脸属性。

步骤704,基于第一损失函数及第二损失函数,对人脸矫正模型的模型参数进行更新;

需要说明的是,服务器结合第一损失函数及第二损失函数共同训练由人脸矫正模型和判别模型构成的生成对抗网络,在不断的迭代训练中,使生成对抗网络达到收敛后完成模型的训练,从而使得训练得到的人脸矫正模型在实现人脸的跨姿态的矫正的同时还能够保留原始的人脸属性。

在一些实施例中,图7示出的步骤704可以通过如下方式实现,将结合各步骤进行说明。

分别确定第一损失函数的权值和第二损失函数的权值;基于第一损失函数的权值和第二损失函数的权值,对第一损失函数和第二损失函数进行加权求和,得到目标损失函数;基于目标损失函数,对人脸矫正模型的模型参数进行更新。

本实施例中,服务器利用第一损失函数和第二损失函数构建目标损失函数,利用目标损失函数来对人脸矫正模型进行训练,其中,第二损失函数基于人脸属性识别模型构建,通过结合人脸属性识别模型来构建对人脸矫正模型进行训练的目标损失函数,能够使得训练得到的人脸矫正模型保留有人脸图像的原始的人脸属性,从而使得利用人脸矫正模型矫正后的矫正人脸图像更加接近原始的人脸图像的人脸属性。

在实际实施时,服务器可以基于预先设置的第一损失函数和第二损失函数权重分配,分别确定第一损失函数的权值和第二损失函数的权值。其中,对第一损失函数和第二损失函数权重分配可以基于对最终需要侧重的功能来划分,例如若希望人脸矫正模型拥有更强的人脸姿态的矫正效果,则将第一损失函数设置为相较于第二损失函数更高的权值。若希望人脸矫正模型拥有更强的保留人脸属性的效果,则将第二损失函数设置为相较于第一损失函数更高的权值。其中,权值越高代表所占的比重越高,也即重要性越高。

在一些实施例中,第一损失函数的权值和第二损失函数的权值可以预先存储于服务器内,还可以由用户基于客户端的用户界面进行输入,然后客户端将用户输入的权值发送给服务器,服务器则接收客户端输入的权值,得到第一损失函数的权值和第二损失函数的权值。

接下来,服务器则基于第一损失函数的权值和第二损失函数的权值,对第一损失函数和第二损失函数进行加权求和以得到目标损失函数。在实际实施时,服务器构建得到的目标损失函数可以参照公式(4):

Loss=αL

其中,Loss为目标损失函数,α为第一损失函数L

通过上述的目标损失函数的构造过程,能够使得人脸属性识别模型的损失函数结合生成对抗网络的损失函数,最终构造出一个目标损失函数来对本实施例的生成对抗网络进行训练,使得训练得到的人脸矫正模型在拥有人脸矫正功能的同时,还能够使得训练得到的矫正人脸图像保留有与矫正前的人脸图像一致的人脸属性。

在一些实施例中,上述的基于目标损失函数,对人脸矫正模型的模型参数进行更新,可以通过如下方式实现:服务器基于预测结果确定第一损失函数的值;基于人脸图像所具有的人脸属性与识别结果之间的差异,确定第二损失函数的值;基于第一损失函数的值和第二损失函数的值,确定目标损失函数的值;基于目标损失函数的值,对人脸矫正模型的模型参数进行更新。

需要说明的是,预测结果即为矫正人脸图像与目标人脸图像相似的概率,本实施例的目标人脸图像与人脸图像对应为同一目标用户,则预测结果越大,也即矫正人脸图像与目标人脸图像相似的概率越大,则表示矫正得到矫正人脸图像越成功。而在一些实施例中,目标人脸图像可以设置为与人脸图像对应不同的用户,则预测结果越小,也即矫正人脸图像与目标人脸图像相似的概率越小,则表示矫正得到矫正人脸图像越成功。服务器可以基于预测结果,利用公式(1)计算得到第一损失函数的值。

在实际实施时,人脸属性识别模型对矫正人脸图像的属性识别的识别结果具有至少一个维度的人脸属性标签。服务器利用人脸图像所具有的人脸属性与识别结果的交叉熵来表征人脸图像所具有的人脸属性与识别结果之间的差异,通过利用公式(2)计算人脸图像所具有的人脸属性与识别结果的交叉熵,来获得第二损失函数的值。

在实际实施时,服务器在得到第一损失函数的值和第二损失函数的值之后,则可以进一步确定目标损失函数的值。在一些实施例中,服务器首先确定第一损失函数的权值和第二损失函数的权值,将第一损失函数的值与第二损失函数的值进行加权求和后,得到目标损失函数的值。

在对人脸矫正模型的模型参数进行更新时,服务器固定住人脸属性识别模型的模型参数,基于目标损失函数的值,对本实施例提供的生成对抗网络进行模型参数的更新,从而实现对人脸矫正模型的训练。

在一些实施例中,上述的基于目标损失函数的值,对人脸矫正模型的模型参数进行更新,可以通过如下方式实现,将结合各步骤进行说明。

当目标损失函数的值达到第一阈值时,服务器基于目标损失函数确定相应的第一误差信号;从判别模型的输出层开始,将第一误差信号在判别模型及人脸矫正模型中反向传播,并在传播的过程中更新判别模型及人脸矫正模型的模型参数。

在一些实施例中,服务器可通过如下方式实现对人脸矫正模型的训练:

服务器在对人脸矫正模型的训练过程中固定人脸属性识别模型的模型参数,当目标损失函数的值达到第一阈值时,基于目标损失函数确定相应的第一误差信号,将第一误差信号在人脸矫正模型和判别模型中反向传播,并在传播的过程中更新人脸矫正模型的各个层的模型参数以及判别模型的各个层的模型参数。在一些实施例中,服务器将第一误差信号在人脸矫正模型和判别模型中反向传播,并在传播的过程中更新人脸矫正模型的各个层的模型参数以及判别模型的各个层的模型参数。

这里对反向传播进行说明,将训练样本输入到神经网络模型的输入层,经过隐藏层,最后达到输出层并输出结果,这是神经网络模型的前向传播过程,由于神经网络模型的输出结果与实际结果有误差,则计算输出结果与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层,在反向传播的过程中,根据误差调整模型参数的值;不断迭代上述过程,直至收敛。

以目标损失函数为例,服务器基于目标损失函数确定第一误差信号,第一误差信号从人脸矫正模型或判别模型的输出层反向传播,逐层反向传播第一误差信号,在第一误差信号到达每一层时,结合传导的第一误差信号来求解梯度(也就是Loss函数对该层参数的偏导数),将该层的参数更新对应的梯度值。

通俗来说,就是服务器向人脸矫正模型输入一组适当概率分布的人脸图像,然后得到一堆生成的矫正人脸图像,固定住人脸属性识别模型的模型参数,将矫正人脸图像输入人脸属性识别模型,得到矫正人脸属性,然后将这些矫正人脸图像作为反例,同时结合人脸图像的人脸属性与矫正人脸属性之间的差异,用真实世界的目标人脸图像作为正例训练判别模型。这轮训练后,得到的判别模型的能力得到了提升,能够学会给一些真实的且矫正人脸属性接近于真实世界的人脸图像的人脸属性的图片打高分,给一些非真实且矫正人脸属性与真实世界的人脸图像的人脸属性相差较远的图片打低分。这之后,服务器再固定判别模型的模型参数。此时服务器给人脸矫正模型输入一张人脸图像,再把它生成的矫正人脸图像送入判别模型中,将得到一个判别模型输出的反馈分数。这个反馈分数就可以作为LOSS,我们根据LOSS FUNCTION的梯度调整人脸矫正模型的参数,使得它尽可能生成可以骗过这个版本的判别模型,从它手下得到一个高分。这轮训练后,得到的人脸矫正模型的能力也得到了提升,能够生成一些更真实的图像了。然后服务器继续重复上面的过程,强化判别模型,判别模型强化后再强化人脸矫正模型,可以期望的是,多轮迭代后,得到的判别模型和人脸矫正模型的能力都可以变得更强,且得到的人脸矫正模型在实现人脸跨姿态的矫正的同时,还能够更多的保留输入的人脸图像的人脸属性。

在一些实施例中,参照图9,图9是本发明实施例提供的用于模型训练的模型架构的一个可选的示意图,基于图6,用于模型训练的模型架构还可包括:

人脸识别模型64,分别对矫正人脸图像和标准人脸图像进行特征提取,得到矫正人脸图像对应的矫正人脸特征和标准人脸图像对应的标准人脸特征。

需要说明的是,人脸识别模型可以从人脸图像的语义维度识别人脸,其中,语义维度包括图像的纹理、色彩及形状等。基于人脸识别模型进行人脸图像的特征提取,能够提取得到人脸图像内人脸的语义维度的信息。

在一些实施例中,基于图7,在步骤704之前,还可以执行:

服务器通过人脸识别模型,分别对矫正人脸图像和标准人脸图像进行特征提取,得到矫正人脸图像对应的矫正人脸特征和标准人脸图像对应的标准人脸特征,以基于矫正人脸特征和标准人脸特征构建第三损失函数。需要说明的是,标准人脸图像为目标用户在标准人脸姿态下的人脸图像,它与人脸图像具有完全一致的人脸属性。参照图8,这里,标准人脸图像可以是图示B。

本实施例还结合人脸识别模型来对人脸矫正模型进行训练,使得训练得到的人脸矫正模型生成的矫正人脸图像更加接近于原始输入的人脸图像的面部特征。人脸识别模型可以采用CNN模型实现,例如将一张人脸图像输入至人脸识别模型内,可以识别得到该人脸图像所对应的用户身份。本发明实施例不需要对人脸图像进行身份识别,而仅仅利用人脸识别模型对人脸图像进行特征提取,以根据提取的人脸特征来对人脸矫正模型进行训练。

在实际实施时,服务器利用人脸识别模型,在其卷积层分别对矫正人脸图像和标准人脸图像进行特征提取,得到矫正人脸图像的矫正人脸特征,以及表征人脸图像的标准人脸特征。其中,人脸特征可以用向量表示,提取得到的人脸特征可以为多维度的向量,例如256维,或者516维等。

接下来,服务器在得到矫正人脸特征和标准人脸特征,则基于二者构建第三损失函数。其中,矫正人脸特征和标准人脸特征越接近,则表示矫正人脸图像和标准人脸图像越接近。本实施例中,人脸特征由向量表示,则可以用矫正人脸特征和标准人脸特征的距离来确定二者是否接近,可以理解,二者之间的距离越小则表示二者越接近,也即矫正人脸图像和标准人脸图像越接近。则服务器可以基于矫正人脸特征和标准人脸特征的距离来构造第三损失函数,构造的第三损失函数参照公式(5):

L

其中,L

相应的,基于图7的步骤704,中的“基于第一损失函数及第二损失函数构建目标损失函数”,包括:服务器基于第一损失函数、第二损失函数及第三损失函数构建目标损失函数。

在实际实施时,服务器分别确定第一损失函数的权值、第二损失函数的权值和第三损失函数的权值,然后基于第一损失函数的权值、第二损失函数的权值和第三损失函数的权值,对第一损失函数、第二损失函数和第三损失函数进行加权求和,得到目标损失函数。在一些实施例中,服务器构建得到的目标损失函数可以参照公式(6):

Loss=αL

其中,Loss为目标损失函数,α为第一损失函数L

在实际实施时,服务器可以基于预先设置的第一损失函数、第二损失函数和第三损失函数的权重分配,分别确定第一损失函数的权值、第二损失函数和第三损失函数的权值。其中,对第一损失函数、第二损失函数和第三损失函数的权重分配可以基于对最终需要侧重的功能来划分,例如若希望人脸矫正模型拥有更强的人脸姿态的矫正效果,则将第一损失函数设置为相较于第二损失函数更高的权值。若希望人脸矫正模型拥有更强的保留人脸属性的效果,则将第二损失函数设置为相较于第一损失函数更高的权值。若希望人脸矫正模型拥有更强的保留原始的人脸面部特征的效果,则将第三损失函数设置为相较于第一损失函数更高的权值。其中,权值越高代表所占的比重越高,也即重要性越高。

通过上述的目标损失函数的构造过程,能够使得人脸属性识别模型和人脸识别模型的损失函数结合生成对抗网络的损失函数,最终构造出一个目标损失函数来对本实施例的生成对抗网络进行训练,使得训练得到的人脸矫正模型在拥有人脸矫正功能的同时,还能够使得训练得到的矫正人脸图像保留有与矫正前的人脸图像更接近的人脸属性以及更接近的面部特征。

在一些实施例中,图7示出的步骤704还可以通过以下步骤实现:获取第一损失函数的值、第二损失函数的值和第三损失函数的值;基于第一损失函数的值、第二损失函数的值和第三损失函数的值,确定目标损失函数的值;当目标损失函数的值达到第二阈值时,服务器基于目标损失函数确定相应的第二误差信号;从判别模型的输出层开始,将第二误差信号在判别模型及人脸矫正模型中反向传播,并在传播的过程中更新判别模型及人脸矫正模型的模型参数。

其中,服务器获取第一损失函数的值和获取第二损失函数的值的过程在此不再赘述。在一些实施例中,获取第三损失函数的值,包括:获取矫正人脸特征和标准人脸特征之间的距离;基于距离,确定第三损失函数的值。具体地,服务器基于矫正人脸特征和标准人脸特征,计算矫正人脸特征和标准人脸特征之间的距离,将该距离确定为第三损失函数的值。

在实际实施时,服务器在得到第一损失函数的值、第二损失函数的值和第三损失函数的值之后,进一步确定目标损失函数的值。在一些实施例中,服务器首先确定第一损失函数的权值、第二损失函数的权值及第三损失函数的权值,将第一损失函数的值、第二损失函数的值及第三损失函数进行加权求和后,得到目标损失函数的值。

服务器在得到目标损失函数的值后,则基于目标损失函数的值更新人脸矫正模型的模型参数。在一些实施例中,服务器可通过如下方式实现对人脸矫正模型的训练:

服务器在对人脸矫正模型的训练过程中固定人脸属性识别模型的模型参数和人脸识别模型的模型参数,当目标损失函数的值达到第二阈值时,基于目标损失函数确定相应的第二误差信号,将第二误差信号在人脸矫正模型和判别模型中反向传播,并在传播的过程中更新人脸矫正模型的各个层的模型参数以及判别模型的各个层的模型参数。在一些实施例中,服务器将第二误差信号在人脸矫正模型和判别模型中反向传播,并在传播的过程中更新人脸矫正模型的各个层的模型参数以及判别模型的各个层的模型参数。

通俗来说,就是服务器向人脸矫正模型输入一组适当概率分布的人脸图像,然后得到一堆生成的矫正人脸图像,固定住人脸属性识别模型和人脸识别模型的模型参数,将矫正人脸图像输入人脸属性识别模型,得到矫正人脸属性,将矫正人脸图像和标准人脸图像输入人脸识别模型,得到矫正人脸特征和标准人脸特征,然后将这些矫正人脸图像作为反例,同时结合人脸图像的人脸属性与矫正人脸属性之间的差异、以及矫正人脸特征和标准人脸特征的距离得到目标损失函数的值,基于该目标损失函数的值,用真实世界的目标人脸图像作为正例训练判别模型。这轮训练后,得到的判别模型的能力得到了提升,能够学会给一些真实的、人脸属性接近于真实世界且更接近于人脸图像的人脸面部特征的图片打高分,给一些非真实、矫正人脸属性与真实世界的人脸图像的人脸属性相差较远的、且人脸面部特征与人脸图像的人脸面部特征相差较远的图片打低分。这之后,服务器再固定判别模型的模型参数。此时服务器给人脸矫正模型输入一张人脸图像,再把它生成的矫正人脸图像送入判别模型中,将得到一个判别模型输出的反馈分数。这个反馈分数就可以作为LOSS,我们根据LOSS FUNCTION的梯度调整人脸矫正模型的参数,使得它尽可能生成可以骗过这个版本的判别模型,从它手下得到一个高分。这轮训练后,得到的人脸矫正模型的能力也得到了提升,能够生成一些更真实的图像了。然后服务器继续重复上面的过程,强化判别模型,判别模型强化后再强化人脸矫正模型,可以期望的是,多轮迭代后,得到的判别模型和人脸矫正模型的能力都可以变得更强,且得到的人脸矫正模型在实现人脸跨姿态的矫正的同时,还能够更多的保留输入的人脸图像的人脸属性和面部特征。

上述的步骤中,通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像,然后通过判别模型对所述矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于预测结果构建第一损失函数,通过人脸属性识别模型,对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果,并基于识别结果构建第二损失函数,并基于第一损失函数及第二损失函数构建目标损失函数,最后基于目标损失函数的值,对人脸矫正模型的模型参数进行更新;如此,通过结合人脸属性识别模型的损失函数来构建对人脸矫正模型进行训练的目标损失函数,能够使得训练得到的人脸矫正模型保留有人脸图像的原始的人脸属性,从而使得利用人脸矫正模型矫正后的矫正人脸图像更加接近原始的人脸图像的人脸属性,使得通过本发明训练得到的人脸矫正模型在实现人脸的跨姿态矫正的同时不丢失人脸图像的信息。

接下来继续对本发明实施例提供的人脸矫正模型的训练方法进行介绍,图10是本发明实施例提供的人脸矫正模型的训练方法的一个可选的流程示意图,参见图10,本发明实施例提供的人脸矫正模型的训练方法由终端、服务器协同实施。

步骤801,终端响应于针对于人脸图像和目标人脸图像的上传操作,接收上传的人脸图像和目标人脸图像;

其中,人脸图像为目标用户在任意人脸姿态下的人脸图像,目标人脸图像为目标用户在标准人脸姿态下的人脸图像。

步骤802,终端响应于针对人脸图像的人脸属性输入操作,获取人脸图像的至少一个维度的人脸属性;

步骤803,终端发送人脸图像、人脸图像的至少一个维度的人脸属性、以及目标人脸图像至服务器。

步骤804,服务器基于接收到的人脸图像、人脸图像的至少一个维度的人脸属性、以及目标人脸图像,构建用于训练人脸矫正模型的训练样本;

步骤805,服务器通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;

步骤806,服务器通过判别模型对矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于预测结果构建第一损失函数;

步骤807,服务器通过人脸属性识别模型,对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果,并基于识别结果构建第二损失函数;

步骤808,服务器通过人脸识别模型,分别对矫正人脸图像和标准人脸图像进行特征提取,得到矫正人脸图像对应的矫正人脸特征和标准人脸图像对应的标准人脸特征,并基于矫正人脸特征和标准人脸特征构建第三损失函数;

步骤809,服务器基于第一损失函数、第二损失函数及第三损失函数构建目标损失函数;

步骤810,服务器获取第一损失函数的值、第二损失函数的值和第三损失函数的值;

步骤811,服务器基于第一损失函数的值、第二损失函数的值和第三损失函数的值,确定目标损失函数的值;

步骤812,当目标损失函数的值达到第二阈值时,服务器基于目标损失函数确定相应的第二误差信号;

步骤813,服务器从判别模型的输出层开始,将第二误差信号在判别模型及人脸矫正模型中反向传播,并在传播的过程中更新判别模型及人脸矫正模型的模型参数。

上述的步骤中,终端接收训练样本发送给服务器,以使服务器根据该训练样本对人脸矫正模型进行训练,通过结合人脸属性识别模型以及人脸识别模型,对人脸矫正模型和判别模型进行模型参数的更新,实现对生成对抗网络的模型训练,使得训练得到的人脸矫正模型在实现人脸的跨姿态矫正的同时,还能够保留原始输入的人脸图像的人脸属性和面部特征,从而得到更接近于输入的人脸图像的目标用户的标准姿态下的矫正人脸图像。

步骤814,终端发送携带待矫正人脸图像的图像矫正请求至服务器;

在实际实施时,图像矫正请求可以是用户基于终端的输入设备发出触发操作后,服务器响应于触发操作后生成。图像矫正请求还可以是终端基于一定的条件后自动生成,例如与终端通信连接的摄像头采集到待矫正人脸图像后,将待矫正人脸图像发送给终端,终端在接收到待矫正人脸图像后生成图像矫正请求。此外,图像矫正请求还可以是终端接收到的由其他设备发出的。

步骤815,服务器解析图像矫正请求后得到待矫正人脸图像,并通过训练得到的人脸矫正模型对待矫正人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;

步骤816,服务器发送标准人脸姿态的矫正人脸图像至终端。

在实际实施时,终端在接收到服务器发送的矫正人脸图像后,可以在其用户界面进行呈现以供用户浏览,还可以利用矫正人脸图像进行其他处理,例如利用该矫正人脸图像进行人脸身份的识别等。

下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。在实际实施时,参见图11,图11是本发明实施例提供的人脸矫正模型的训练方法的一个可选的流程示意图,本发明实施例提供的人脸矫正模型的训练方法可包括如下操作:

步骤901,服务器获取由多组训练数据构成的训练样本;其中,一组训练数据包括第一用户在任意姿态下的人脸图像、第一用户在标准人脸姿态下的第一标准人脸图像、人脸图像对应的至少一个维度的人脸属性、第二用户在标准人脸姿态下的第二标准人脸图像。

参照图12,图12是本发明实施例提供的训练样本的一个可选的示意图,其中,将第一用户在任意姿态下的人脸图像记为A、第一用户在标准人脸姿态下的第一标准人脸图像记为B、第二用户在标准人脸姿态下的第二标准人脸图像记为E。需要说明的是,人脸图像与第一标准人脸图像还具有相同的人脸属性,将人脸图像对应的至少一个维度的人脸属性记为C。则训练样本中的一组训练数据可以表示为(A,B,C,E)。其中,人脸属性所对应的至少一个人脸属性标签例如可以是性别、年龄、头发长度、是否戴眼镜、是否戴帽子等。

步骤902,将人脸图像输入至人脸矫正模型中,通过人脸矫正模型对人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;

这里,人脸矫正模型为生成对抗网络中的生成网络,通过生成网络对人脸图像进行人脸矫正。为了便于说明,本实施例将矫正人脸图像记为A’。

步骤903,将矫正人脸图像输入至判别模型中,通过判别模型对矫正人脸图像进行真实性预测,得到表征矫正人脸图像相较于目标人脸图像的真实性的预测结果;

其中,判别模型为生成对抗网络中的判别网络。在实际实施时,服务器将矫正人脸图像A’和第二用户在标准人脸姿态下的第二标准人脸图像E输入判别模型中,通过判别模型基于第二标准人脸图像E对矫正人脸图像A’。

这里,由于人脸图像A和第二标准人脸图像E所对应的是分别两个不同的用户,因此,这里在通过判别模型对矫正人脸图像A’进行真实性预测时,生成的预测结果所表征的概率越低,则表示判别模型的预测越正确。

步骤904,基于预测结果确定第一损失函数的值;

这里,第一损失函数为生成对抗网络对应的损失函数,也即人脸矫正模型与判别模型构成的生成对抗网络所对应的损失函数。其中,第一损失函数L

步骤905,将矫正人脸图像和第一标准人脸图像输入至人脸识别模型中,通过人脸识别模型,分别对矫正人脸图像和第一标准人脸图像进行特征提取,得到矫正人脸图像对应的矫正人脸特征和标准人脸图像对应的标准人脸特征;

在实际实施时,人脸识别模型是通过特征提取模型来实现的,它将人脸图像映射成一个固定维度的特征表示,比如256维,或512维等,然后通过两个特征之间的距离来确定两张人脸图像是否为同一个人。服务器将矫正人脸图像A’和第一标准人脸图像B输入至人脸识别模型中,通过人脸识别模型分别对矫正人脸图像A’和第一标准人脸图像B进行特征提取。得到矫正人脸图像对应的矫正人脸特征和标准人脸图像对应的标准人脸特征。

步骤906,基于矫正人脸特征和标准人脸特征,计算第三损失函数,得到第三损失函数的值;

这里,第三损失函数为生成对抗网络对应的损失函数,也即人脸矫正模型与判别模型构成的生成对抗网络所对应的损失函数L

步骤907,将矫正人脸图像以及人脸图像对应的至少一个维度的人脸属性输入至人脸属性识别模型中,通过人脸属性识别模型对矫正人脸图像针对至少一个维度的人脸属性进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果;

在实际实施时,人脸属性识别模型是通过一个多任务多分类模型来实现的,它能够识别得到一张人脸图像的至少一个维度的人脸属性,矫正后的矫正人脸图像应该和原始输入的人脸图像保持人脸属性上的一致。服务器通过人脸属性识别模型基于人脸图像对应的至少一个维度的人脸属性C,对输入的矫正人脸图像A’进行人脸属性识别,得到包含矫正人脸图像所具有的人脸属性的识别结果。其中,识别结果则为人脸图像的至少一个维度的人脸属性所对应的至少一个维度的矫正人脸属性。

步骤908,基于人脸图像所具有的人脸属性与识别结果之间的差异,确定第二损失函数的值;

这里,第二损失函数为人脸属性识别模型所对应的损失函数L

步骤909,基于第一损失函数、第二损失函数及第三损失函数,构建目标损失函数,并确定目标损失函数的值;

在实际实施时,服务器对第一损失函数、第二损失函数及第三损失函数分别分配权值,然后基于第一损失函数、第二损失函数及第三损失函数各自的权值,对第一损失函数、第二损失函数及第三损失函数进行加权求和,得到目标损失函数。然后基于各损失函数的权值以及各损失函数的值,计算得到目标损失函数的值。

步骤910,基于目标损失函数的值,对人脸矫正模型的模型参数和判别模型的模型参数进行更新。

在实际实施时,服务器将人脸属性识别模型和人脸识别模型的模型参数固定,然后利用目标损失函数对人脸矫正模型的模型参数和判别模型的模型参数进行更新,通过不断的迭代不断对模型进行训练以更新模型的参数,直至生成对抗网络达到收敛,完成训练。

下面继续说明本发明实施例提供的人脸矫正模型的训练装置555的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器550的人脸矫正模型的训练装置555中的软件模块可以包括:

人脸姿态矫正模块5551,用于通过人脸矫正模型对输入的人脸图像进行人脸姿态矫正,得到标准人脸姿态的矫正人脸图像;其中,所述人脸图像具有至少一个维度的人脸属性;

预测模块5552,用于通过判别模型对所述矫正人脸图像进行真实性预测,得到表征所述矫正人脸图像相较于目标人脸图像的真实性的预测结果,并基于所述预测结果构建第一损失函数;

属性识别模块5553,用于通过人脸属性识别模型,对所述矫正人脸图像针对所述至少一个维度的人脸属性进行人脸属性识别,得到包含所述矫正人脸图像所具有的人脸属性的识别结果,并基于所述识别结果构建第二损失函数;

参数更新模块5554,用于基于所述第一损失函数及所述第二损失函数,对所述人脸矫正模型的模型参数进行更新。

在一些实施例中,所述人脸姿态矫正模块5551,还用于将任意姿态下的人脸图像输入至所述人脸矫正模型;通过所述人脸矫正模型对所述人脸图像进行编码,得到初始图像编码;基于所述人脸图像中人脸姿态及所述标准人脸姿态的偏差,修正所述初始图像编码,得到目标图像编码;解码所述目标图像编码,得到所述标准人脸姿态的矫正人脸图像。在一些实施例中,所述预测模块5552,还用于将所述矫正人脸图像和所述目标人脸图像输入至所述判别模型;通过判别模型分别对所述矫正人脸图像和目标人脸图像进行特征提取,得到所述矫正人脸图像对应的矫正人脸特征、及所述目标人脸图像对应的目标人脸特征;基于所述矫正人脸特征及所述目标人脸特征,预测得到表征所述矫正人脸图像相较于目标人脸图像的真实性的预测结果。

在一些实施例中,所述属性识别模块5553,还用于将所述矫正人脸图像和所述至少一个维度的人脸属性所对应的人脸属性标签,输入至所述人脸属性识别模型;通过所述人脸属性识别模型,分别对所述矫正人脸图像和各维度的人脸属性标签进行特征提取,得到所述矫正人脸图像对应的矫正人脸特征、及各维度的人脸属性标签所对应的人脸属性特征;基于得到的所述矫正人脸特征及人脸属性特征,预测得到包含所述矫正人脸图像所具有的人脸属性的识别结果。在一些实施例中,所述参数更新模块5554,还用于分别确定所述第一损失函数的权值和所述第二损失函数的权值;基于所述第一损失函数的权值和所述第二损失函数的权值,对所述第一损失函数和所述第二损失函数进行加权求和,得到目标损失函数;基于所述目标损失函数,对所述人脸矫正模型的模型参数进行更新。

在一些实施例中,所述参数更新模块5554,还用于基于所述预测结果确定所述第一损失函数的值;基于所述人脸图像所具有的人脸属性与所述识别结果之间的差异,确定所述第二损失函数的值;基于所述第一损失函数的值和所述第二损失函数的值,确定所述目标损失函数的值;基于所述目标损失函数的值,对所述人脸矫正模型的模型参数进行更新。

在一些实施例中,所述参数更新模块5555,还用于当所述目标损失函数的值达到第一阈值时,基于所述目标损失函数确定相应的第一误差信号;从所述判别模型的输出层开始,将所述第一误差信号在所述判别模型及所述人脸矫正模型中反向传播,并在传播的过程中更新所述判别模型及所述人脸矫正模型的模型参数。

在一些实施例中,存储在存储器550的人脸矫正模型的训练装置555中的软件模块还可以包括:训练样本构建模块,用于获取目标用户在任意姿态下的人脸图像、所述目标用户在标准人脸姿态下的目标人脸图像,以及所述人脸图像所具有的至少一个维度的人脸属性;基于获取的所述人脸图像、所述目标人脸图像及所述人脸图像所具有的人脸属性,构建用于训练所述人脸矫正模型的训练样本。在一些实施例中,在一些实施例中,存储在存储器550的人脸矫正模型的训练装置555中的软件模块还可以包括:人脸识别模块,用于通过人脸识别模型,分别对所述矫正人脸图像和标准人脸图像进行特征提取,得到所述矫正人脸图像对应的矫正人脸特征和所述标准人脸图像对应的标准人脸特征,以基于所述矫正人脸特征和所述标准人脸特征构建第三损失函数;相应的,所述参数更新模块5554,还用于基于所述第一损失函数、所述第二损失函数及所述第三损失函数,对所述人脸矫正模型的模型参数进行更新。

在一些实施例中,所述参数更新模块5554,还用于获取所述第一损失函数的值、所述第二损失函数的值和所述第三损失函数的值;基于所述第一损失函数的值、所述第二损失函数的值和所述第三损失函数的值,确定所述目标损失函数的值;基于所述目标损失函数的值,对所述人脸矫正模型的模型参数进行更新。

在一些实施例中,所述参数更新模块5554,还用于当所述目标损失函数的值达到第二阈值时,基于所述目标损失函数确定相应的第二误差信号;从所述判别模型的输出层开始,将所述第二误差信号在所述判别模型及所述人脸矫正模型中反向传播,并在传播的过程中更新所述判别模型及所述人脸矫正模型的模型参数。

在一些实施例中,所述参数更新模块5554,还用于获取所述矫正人脸特征和所述标准人脸特征之间的距离;基于所述距离,确定所述第三损失函数的值。

需要说明的是,本发明实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。

本发明实施例还提供了一种人脸矫正方法,参见图13,图13是本发明实施例提供的人脸矫正方法的一个可选的流程示意图,将结合图13示出的步骤进行说明。

步骤1001,服务器获取待矫正人脸图像;

步骤1002,将待矫正人脸图像输入至人脸矫正模型;

需要说明的是,待矫正人脸图像可以是用户上传至服务器的,还可以是由与服务器连接的其他设备发送至服务器的,还可以是与服务器连接的其他设备实时检测得到的,例如与服务器连接的摄像头拍摄得到。服务器在获得待矫正人脸图像后,还对其进行预处理,例如对待矫正人脸图像进行图像切割、去噪、图像增强等处理。然后,服务器将经过预处理的待矫正人脸图像输入至人脸矫正模型中,以使人脸矫正模型对待矫正人脸图像进行人脸姿态的矫正。

步骤1003,通过人脸矫正模型对待矫正人脸图像进行人脸姿态矫正,得到标准人脸姿态的目标矫正人脸图像;其中,人脸矫正模型基于本发明实施例提供的人脸矫正模型的训练方法训练得到。

在实际实施时,服务器利用人脸矫正模型对输入的待矫正人脸图像进行人脸姿态的矫正,得到标准人脸姿态的目标矫正人脸图像。由于人脸矫正模型是基于本发明实施例提供的人脸矫正模型的训练方法训练得到,通过人脸属性识别模型指导由人脸矫正模型和判别模型构成的生成对抗网络的训练,使得训练得到的人脸矫正模型学习到了人脸属性的数据分布,从而使得通过该模型处理得到的目标矫正人脸图像在实现了人脸姿态的转换之后,还能够保留有输入的待矫正人脸图像的人脸属性。

在一些实施例中,人脸矫正模型包括编码层、修正层以及解码层。相应的,图13示出的步骤1003还可以通过如下方式实现。

服务器通过编码层,对待矫正人脸图像进行编码,得到初始编码;通过修正层,基于待矫正人脸图像中人脸姿态与标准人脸姿态的偏差,修正初始编码,得到目标编码;通过解码层,解码目标编码,得到标准人脸姿态的目标矫正人脸图像;其中,编码层的参数、修正层的参数和解码层的参数为,基于判别模型的预测结果所构建的第一损失函数、及人脸属性识别模型的人脸属性识别结果所构建的第二损失函数进行参数更新得到;其中,预测结果为,判别模型对人脸矫正模型输出的矫正人脸图像进行真实性预测得到;人脸属性识别结果为,人脸属性识别模型对人脸矫正模型输出的矫正人脸图像进行人脸属性识别得到。

需要说明的是,人脸矫正模型的编码层用于对输入的待矫正人脸图像进行数值型编码,以编码得到机器可以统计计算的数据形式。本实施例中,服务器利用人脸矫正模型的编码层将待矫正人脸图像编码为向量矩阵的形式。其中,服务器基于待矫正人脸图像各像素点的RGB(Red,Green,Blue,红绿蓝三色)值对其进行编码。实际应用中,服务器获得的待矫正人脸图像中除了人脸元素以外,往往还存在其他图像元素,例如人脸所处的背景图像等,在实际实施时,编码层基于待矫正人脸图像的RGB值进行编码后,还进一步进行人脸元素的特征提取,得到仅包含人脸元素的初始编码。而本实施例中,编码层的参数基于本发明实施例提供的人脸矫正模型的训练方法得到,在进行特征提取时还保留有待矫正人脸图像的人脸属性。

应当理解的是,服务器通过编码层编码得到的初始编码所表征的图像的人脸姿态仍然是待矫正人脸图像中的初始的人脸姿态,为了将其转换为标准人脸姿态,还需进一步对其进行处理。接下来,服务器利用修正层对初始编码进行修正。具体地,服务器利用修正层确定初始编码所表征的图像的人脸姿态与标准人脸姿态之间的偏差,基于该偏差对初始编码进行修正,得到目标编码。这里,目标编码所表征的图像的人脸姿态则为标准人脸姿态。

接下来,服务器利用解码层,将目标编码从数值型的特征向量转换为图像,得到目标矫正人脸图像,该目标矫正人脸图像中的人脸姿态记为标准人脸姿态,至此,完成对待矫正人脸图像的人脸矫正。

在一些实施例中,编码层的参数、修正层的参数和解码层的参数为,基于判别模型的预测结果所构建的第一损失函数、人脸属性识别模型的人脸属性识别结果所构建的第二损失函数、及人脸识别模型提取的矫正人脸特征和标准人脸特征所构建的第三损失函数进行参数更新得到;其中,预测结果为,判别模型对人脸矫正模型输出的矫正人脸图像进行真实性预测得到;人脸属性识别结果为,人脸属性识别模型对人脸矫正模型输出的矫正人脸图像进行人脸属性识别得到;矫正人脸特征为人脸识别模型对人脸矫正模型输出的矫正人脸图像进行特征提取得到;标准人脸特征为人脸识别模型对标准人脸图像进行特征提取得到。

基于上述的编码层的参数、修正层的参数和解码层的参数,服务器利用人脸矫正模型对待矫正人脸图像进行人脸矫正后得到的目标矫正人脸图像在实现了人脸姿态的跨姿态转换的同时还保留有待矫正人脸图像的人脸属性以及人脸语义维度的信息,具体处理过程参照上述实施例,在此不再赘述。

下面继续说明本发明实施例提供的人脸矫正装置实施为软件模块的示例性结构,参见图14,图14是本发明实施例提供的人脸矫正装置的结构的一个可选的示意图,如图14所示,本发明实施例提供的人脸矫正装置14包括:

获取模块1401,用于获取待矫正人脸图像;

输入模块1402,用于将所述待矫正人脸图像输入至人脸矫正模型;

矫正模块1403,用于通过所述人脸矫正模型对所述待矫正人脸图像进行人脸姿态矫正得到标准人脸姿态的目标矫正人脸图像;其中,所述人脸矫正模型基于本发明实施例提供的人脸矫正模型的训练方法训练得到。

在一些实施例中,上述矫正模块1403,还用于通过所述编码层,对所述待矫正人脸图像进行编码,得到初始编码;通过所述修正层,基于所述待矫正人脸图像中人脸姿态与标准人脸姿态的偏差,修正所述初始编码,得到目标编码;通过所述解码层,解码所述目标编码,得到标准人脸姿态的目标矫正人脸图像;其中,所述编码层的参数、所述修正层的参数和所述解码层的参数为,基于判别模型的预测结果所构建的第一损失函数、及人脸属性识别模型的人脸属性识别结果所构建的第二损失函数进行参数更新得到;其中,所述预测结果为,所述判别模型对所述人脸矫正模型输出的矫正人脸图像进行真实性预测得到;所述人脸属性识别结果为,所述人脸属性识别模型对所述人脸矫正模型输出的矫正人脸图像进行人脸属性识别得到。

需要说明的是,本发明实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。

本发明实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本发明实施例提供的人脸矫正模型的训练方法或者执行本发明实施例提供的人脸矫正方法。

本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的人脸矫正模型的训练方法或者执行本发明实施例提供的人脸矫正方法,例如,图7示出的人脸矫正模型的训练方法,或者图13示出的人脸矫正方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

综上所述,通过本发明实施例能够训练得到在实现人脸的跨姿态矫正的同时不丢失人脸图像的信息的人脸矫正模型。

以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

相关技术
  • 人脸矫正模型的训练方法、装置、电子设备及存储介质
  • 人脸识别模型的训练方法、装置、电子设备及存储介质
技术分类

06120112148592