训练图像生成模型的方法及相关装置与流程

文档序号:32607960发布日期:2022-12-20 18:30阅读:43来源:国知局
训练图像生成模型的方法及相关装置与流程

1.本技术实施例涉及图像处理技术领域,尤其涉及一种训练图像生成模型的方法及相关装置。


背景技术:

2.随着机器学习技术不断成熟,基于机器学习技术的服务的种类也越来越多。例如计算机设备通过机器学习技术,能够对人脸图像进行处理, 得到年龄变化图像。其中,人脸图像中的人脸对应的第一年龄和年龄变化图像中的人脸对应的第二年龄不同,但对应相同身份。上述服务在多个场景中被广泛需求,例如,根据走失儿童的现有照片,推测其几年后的样貌,以便寻找;或者,根据嫌疑人年轻时的旧照片预测其逃亡多年后的照片;再例如,在影视业制作的过程中,当演员扮演年老角色时,根据演员现在的样貌推测其衰老后的样貌,方便化妆师画出年老角色形象;再例如,在休闲娱乐时,人们想通过当前的图像溯源自己小时候的照片。
3.计算机设备通常根据输入的人脸图像和预期年龄,采用机器学习模型对该人脸图像进行处理,得到年龄变化图像,使得年龄变化图像反映的人物的年龄与预期年龄相适应。该机器学习模型是基于不同年龄段的不同人脸图像训练得到的。在通过上述方法对人脸图像进行处理时,特征变化仅由年龄段决定,通常使得个体的特征变化相同,即对于具有相同年龄的用户a和用户b,两者的图像从第一年龄变化为第二年龄时,他们的特征变化是相同的,特征变化单一,然而,在实际生活中,每个人随着年龄变化的特征变化受个体因素影响,具有特异性。


技术实现要素:

4.本技术实施例主要解决的技术问题是提供一种训练图像生成模型的方法及相关装置,训练得到的图像生成模型能够生成符合自身个性年龄特征和预期年龄的年龄变化图像。
5.第一方面,本技术实施例中提供了一种训练图像生成模型的方法,图像生成网络包括编码器、映射转换模块、融合模块和解码模块,包括:
6.获取若干个真实人脸图像,各真实人脸图像标注有真实年龄,若干个真实人脸图像的真实年龄覆盖预设年龄范围;
7.采用预先训练好的年龄检测模型对若干个真实人脸图像进行年龄检测,得到各真实人脸图像对应的预测年龄;
8.将真实人脸图像和与真实人脸图像对应的年龄差输入图像生成网络,得到预测人脸图像;其中,年龄差为预测年龄和真实年龄之间的差,真实人脸图像经编码器进行编码后得到编码结果,年龄差经过映射转换模块进行映射转换后得到年龄向量,编码结果和年龄向量经融合模块进行融合后,融合结果输入解码模块进行解码得到预测人脸图像;
9.采用损失函数计算预测人脸图像和真实人脸图像之间的损失,并根据若干个真实
人脸图像对应的损失和,对图像生成网络进行迭代训练,直至收敛,得到图像生成模型。
10.在一些实施例中,解码模块包括n个分支的解码器,一个解码器对应一个年龄段;
11.其中,融合结果输入解码模块进行解码得到预测人脸图像,包括:
12.根据预测年龄所在的年龄段,从n个解码器中确定目标解码器;
13.将融合结果输入目标解码器进行解码,得到预测人脸图像。
14.在一些实施例中,该方法还包括:根据预设年龄范围的最大年龄值与年龄检测模型的误差,确定解码器的分支数量n。
15.在一些实施例中,映射转换模块采用以下方式对年龄差进行映射转换:
16.采用映射函数对年龄差进行计算,得到年龄向量;其中,映射函数包括线性全连接网络。
17.在一些实施例中,融合模块采用以下方式对编码结果和年龄向量进行融合:
18.将编码结果和年龄向量进行相乘融合,得到融合结果。
19.在一些实施例中,损失函数包括对抗损失、重构损失和感知风格损失,其中,对抗损失反映预测人脸图像是否为真实人脸,重构损失反映预测人脸图像和真实人脸图像之间的像素差异;感知风格损失反映预测人脸图像的特征图和真实人脸图像的特征图之间的差异。
20.在一些实施例中,损失函数包括:
21.其中,
[0022][0023][0024][0025]
其中,loss为损失函数,为对抗损失,为重构损失,为感知风格损失,αi为第i个分支的解码器的开启状态,n为解码的分支数量,i为真实人脸图像,i

为预测人脸图像,d(i)为判别器判别真实人脸图像为真的概率,t为年龄差,g(i,t)为图像生成网络基于真实人脸图像和年龄差生成的预测人脸图像,d(g(i,t))为判别器判别预测人脸图像为真的概率,为特征提取网络对真实人脸图像进行提取得到的第i 个特征图,为特征提取网络对预测人脸图像进行提取得到的第i个特征图。
[0026]
第二方面,本技术实施例中提供了一种生成年龄变化图像的方法,包括:
[0027]
获取测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄;
[0028]
将测试人脸图像和真实年龄与预期年龄之间的年龄差,输入图像生成模型,得到年龄变化图像,年龄变化图像反映的人物的年龄与预期年龄相适应;其中,图像生成模型是采用如第一方面的训练图像生成模型的方法训练得到。
[0029]
第三方面,本技术实施例中提供了一种电子设备,包括:
[0030]
至少一个处理器,以及
[0031]
与至少一个处理器通信连接的存储器,其中,
[0032]
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以
使至少一个处理器能够执行如上第一方面中的方法。
[0033]
为解决上述技术问题,第四方面,本技术实施例中提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机设备执行如上第一方面的方法。
[0034]
本技术实施例的有益效果:区别于现有技术的情况,本技术实施例提供的训练图像生成模型的方法,首先构建包括编码器、映射转换模块、融合模块和解码模块的图像生成网络,然后,获取若干个真实人脸图像,各真实人脸图像标注有真实年龄,这若干个真实人脸图像的真实年龄覆盖预设年龄范围。采用预先训练好的年龄检测模型对这若干个真实人脸图像进行年龄检测,得到各真实人脸图像对应的预测年龄。将真实人脸图像和与真实人脸图像对应的年龄差输入图像生成网络,得到预测人脸图像。最后,采用损失函数计算预测人脸图像和真实人脸图像之间的损失,并根据若干个真实人脸图像对应的损失和,对图像生成网络进行迭代训练,直至收敛,得到图像生成模型。其中,年龄差为预测年龄和真实年龄之间的差,真实人脸图像经编码器进行编码后得到编码结果,年龄差经过映射转换模块进行映射转换后得到年龄向量,编码结果和年龄向量经融合模块进行融合后,融合结果输入解码模块进行解码得到预测人脸图像。
[0035]
在此实施例中,采用预先训练好的年龄检测模型预测年龄,计算预测年龄和真实年龄之间的年龄差,将年龄差和真实人脸图像一起输入图像生成网络进行融合,生成受年龄差影响的预测人脸图像。由于年龄检测模型是通过大量的人脸图像训练学习得到的,其输出的预测年龄能够反映真实人脸图像的普适性年龄特征,年龄差能够反映输入图像个人自身的个性年龄特征(偏老或偏年轻),从而,年龄差可以指导图像生成网络学习输入图像个人自身的个性年龄特征。采用若干个图像组以上述方式对图像生成网络进行训练,基于损失和的反向传播,约束各图像组对应的预测人脸图像不断靠近真实人脸图像,从而,图像生成网络能够准确还原出输入图像个人自身的个性年龄特征。因此,训练得到的图像生成模型能够基于预期年龄和真实年龄之间的年龄差,准确地生成符合自身个性年龄特征和预期年龄的年龄变化图像,也就是说在预测衰老或溯源年轻时,是基于个人当前的个性年龄特征对测试人脸图像中年龄特征进行变化的,从而年龄特征的变化不会千篇一律。
附图说明
[0036]
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0037]
图1为本技术一些实施例中预测年龄变化系统的应用场景示意图;
[0038]
图2为本技术一些实施例中电子设备的结构示意图;
[0039]
图3为本技术一些实施例中训练图像生成模型的方法的流程示意图;
[0040]
图4为本技术一些实施例中图像生成网络的结构示意图;
[0041]
图5为本技术一些实施例中图像生成网络的结构示意图;
[0042]
图6为本技术一些实施例中生成年龄变化图像方法的流程示意图。
具体实施方式
[0043]
下面结合具体实施例对本技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本技术,但不以任何形式限制本技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进。这些都属于本技术的保护范围。
[0044]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0045]
需要说明的是,如果不冲突,本技术实施例中的各个特征可以相互结合,均在本技术的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。此外,本文所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
[0046]
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本说明书中在本技术的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本技术。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0047]
此外,下面所描述的本技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0048]
为便于对本技术实施例提供的方法进行理解,首先对本技术实施例中涉及的名词进行介绍:
[0049]
(1)神经网络
[0050]
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,dnn)。神经网络中的每一层的工作可以用数学表达式y=a(w
·
x+b)来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中,2和3的操作由“w
·
x”完成,4的操作由“+b”完成,5的操作则由“a()”来实现,这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,w 是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵w决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的w控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[0051]
需要注意的是,在本技术实施例中,基于机器学习任务所采用的模型,本质都是神经网络。神经网络中的常用组件有卷积层、池化层、归一化层和反向卷积层等,通过组装神经网络中的这些常用组件,设计得到模型,当确定模型参数(各层的权重矩阵)使得模型误差满足预设条件或调整模型参数的数量达到预设阈值时,模型收敛。
[0052]
其中,卷积层配置有多个卷积核、每个卷积核设置有对应的步长,以对图像进行卷积运算。卷积运算的目的是提取输入图像的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更深的卷积层能从低级特征中迭代提取更复杂的特征。
[0053]
反向卷积层用于将一个低维度的空间映射到高维度,同时保持他们之间的连接关系/模式(这里的连接关系即是指卷积时候的连接关系)。反向卷积层配置有多个卷积核、每个卷积核设置有对应的步长,以对图像进行反卷积运算。一般,用于设计神经网络的框架库(例如pytorch 库)中内置有upsumple()函数,通过调用该upsumple()函数可以实现低维度到高维度的空间映射。
[0054]
池化层(pooling)是模仿人的视觉系统可以对数据进行降维或,用更高层次的特征表示图像。池化层的常见操作包括最大值池化、均值池化、随机池化、中值池化和组合池化等。通常来说,神经网络的卷积层之间都会周期性插入池化层以实现降维。
[0055]
归一化层用于对中间层的所有神经元进行归一化运算,以防止梯度爆炸和梯度消失。
[0056]
(2)损失函数
[0057]
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(lossfunction)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss) 越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss 的过程。
[0058]
(3)生成式对抗网络
[0059]
生成式对抗网络(generat ive adversar ia l networks,gan)通常包括一个生成器(generator,g)和一个判别器(di scr imi nator,d)。通过生成器和判别器之间的相互博弈,从而实现非监督式学习。其中,生成器从潜在空间(l atent space)中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别器的输入则为真实样本或生成器的输出, 其目的是将生成器的输出作为输入的输入样本,从包括真实样本的全部输入样本中尽可能分辨出来。而生成器则要尽可能地欺骗判别器。构成生成器和判别器之间的对抗关系,从而不断调整参数,终生成以假乱真的图片,完成模型的训练。
[0060]
为介绍本技术实施例前,先对本技术发明人所知晓的基于机器学习的与年龄相关的图像处理方法进行简单介绍,使得后续便于理解本技术实施例。
[0061]
在一些方案中,以已标注年龄的不同年龄段的多个图像作为训练集,对条件生成对抗网络进行训练,该条件生成对抗网络包括图像生成器g,图像判别器d,年龄估计网络aen和身份识别网络frn。其中,g被训练用于生成年老图像,具体地,通过输入年轻图像和预设的年龄条件,自动有效地生成年老图像。d用于鉴别生成的年老图像是否为真实图片,能够确保生成的年老图片具备欺骗性。aen是用于减小生成的年老图像的年龄与预设值的差异,而frn则是保证生成过程中人像身份的一致性。在模型训练的过程中,对训练集按照年
龄段进行分组,使得条件对抗生成网络学习到每一组年龄对应的衰老特征,实现人脸的衰老变化。
[0062]
在该方案中,衰老特征是从每组图像中学习得到的,使得衰老特征仅由年龄段决定,使得个体的衰老特征相同,从而,对于每一个测试数据中的人脸衰老变化,特征变化是一样的。然而,在实际生活中,每个人随着年龄变化的特征变化受个体因素影响,具有特异性。因此,该方案没有考虑到个体差异,无法准确地生成衰老后的图像。
[0063]
针对上述问题,本技术实施提供了一种训练图像生成模型的方法、生成年龄变化图像的方法及相关装置,首先构建包括编码器、映射转换模块、融合模块和解码模块的图像生成网络,然后,采用若干个真实人脸图像和对应的年龄差对图像生成网络进行训练,得到图像生成模型。其中,采用预先训练好的年龄检测模型对各真实人脸图像进行年龄检测得到预测年龄,计算预测年龄和真实年龄之间的年龄差,将年龄差和真实人脸图像一起输入图像生成网络进行融合,生成受年龄差影响的预测人脸图像。由于年龄检测模型是通过大量的人脸图像训练学习得到的,其输出的预测年龄能够反映真实人脸图像的普适性年龄特征,年龄差能够反映输入图像个人自身的个性年龄特征(偏老或偏年轻),从而,年龄差可以指导图像生成网络学习输入图像个人自身的个性年龄特征。采用若干个图像组以上述方式对图像生成网络进行训练,基于损失和的反向传播,约束各图像组对应的预测人脸图像不断靠近真实人脸图像,从而,图像生成网络能够准确还原出输入图像个人自身的个性年龄特征。因此,训练得到的图像生成模型能够基于预期年龄和真实年龄之间的年龄差,准确地生成符合自身个性年龄特征和预期年龄的年龄变化图像,也就是说在预测衰老或溯源年轻时,是基于个人当前的个性年龄特征对测试人脸图像中年龄特征进行变化的,从而年龄特征的变化不会千篇一律。
[0064]
下面说明本技术实施例提供的用于训练图像生成模型或用于生成年龄变化图像的电子设备的示例性应用,可以理解的是,电子设备即可以训练图像生成模型,也可以采用该图像生成模型进行生成年龄变化图像。
[0065]
本技术实施例提供的电子设备可以是服务器,例如部署在云端的服务器。当服务器用于训练图像生成模型时,根据其他设备或者本领域技术人员提供的训练集和图像生成网络,采用该训练集对图像生成网络进行迭代训练,确定最终的模型参数,从而图像生成网络配置该最终的模型参数,即可得到图像生成模型。其中,训练集包括若干个真实人脸图像,各真实人脸图像标注有真实年龄,该若干个真实人脸图像的真实年龄覆盖预设年龄范围。当服务器用于生成年龄变化图像时,调用内置的图像生成模型,对其他设备或者用户提供的测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄进行相应的计算处理,生成能够符合预期年龄的年龄变化图像。
[0066]
本技术一些实施例提供的电子设备可以是笔记本电脑、台式计算机或移动设备等各种类型的终端。当终端用于训练图像生成模型时,本领域技术人员将准备好的训练集输入终端,并在终端上设计图像生成网络,终端采用该训练集对图像生成网络进行迭代训练,确定最终的模型参数,从而图像生成网络配置该最终的模型参数,即可得到图像生成模型。当终端用于生成年龄变化图像时,调用内置的图像生成模型,对用户输入的测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄进行相应的计算处理,生成能够符合预期年龄的年龄变化图像。
[0067]
作为示例,参见图1,图1是本技术实施例提供的预测年龄变化系统的应用场景示意图,终端10通过网络连接服务器20,其中,网络可以是广域网或者局域网,又或者是二者的组合。
[0068]
终端10可以被用来获取训练集和构建图像生成网络,例如,本领域技术人员在终端上下载准备好的训练集,以及,搭建图像生成网络的网络结构。可以理解的是,终端10也可以被用来获取测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄,例如,用户通过输入界面输入测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄,输入完成后,终端自动获取测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄;例如,终端10具备摄像头,通过摄像头采集测试人脸图像,然后,通过终端10的输入界面输入真实年龄和预期年龄。
[0069]
在一些实施例中,终端10本地执行本技术实施例提供的训练图像生成模型的方法来完成采用训练集对设计好的图像生成网络进行训练,确定最终的模型参数,从而图像生成网络配置该最终的模型参数,即可得到图像生成模型。在一些实施例中,终端10也可以通过网络向服务器20发送本领域技术人员在终端上存储的训练集和构建好的图像生成网络,服务器20接收该训练集和图像生成网络,采用训练集对设计好的图像生成网络进行训练,确定最终的模型参数,然后将该最终的模型参数发送给终端10,终端10保存该最终的模型参数,使得图像生成网络配置能够该最终的模型参数,即可得到图像生成模型。
[0070]
在一些实施例中,终端10本地执行本技术实施例提供的生成年龄变化图像方法来为用户提供生成年龄变化图像服务,调用内置的图像生成模型,对用户输入的测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄进行相应的计算处理,生成符合预期年龄的年龄变化图像。在一些实施例中,终端10也可以通过网络向服务器20发送用户在终端上输入的测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄,服务器20收到测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄,调用内置的图像生成模型对测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄进行相应的计算处理,生成符合预期年龄的年龄变化图像,然后将年龄变化图像发送给终端10。终端10在接收到年龄变化图像后,将年龄变化图像显示在自身的显示界面上,供用户观看测试人脸图像中人脸按预期年龄改变年龄后的效果。
[0071]
下面说明本技术实施例中电子设备的结构,图2是本技术实施例中电子设备500的结构示意图,电子设备500包括至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
[0072]
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0073]
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置 531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530 还包括一个或多个输入装置
532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头,其他输入按钮和控件。
[0074]
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器 (rom,read only memory),易失性存储器可以是随机存取存储器 (ram,random access m emory)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
[0075]
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0076]
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0077]
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520 到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证 (wifi),和通用串行总线(usb,universal serial bus)等;
[0078]
显示模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
[0079]
输入处理模块554,用于对一个或多个来自一个或多个输入装置532 之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0080]
根据上文可以理解,本技术实施例提供的训练图像生成模型的方法和生成年龄变化图像方法可以由各种类型具有计算处理能力的电子设备实施,例如智能终端和服务器等。
[0081]
下面结合本技术实施例提供的服务器的示例性应用和实施,说明本技术实施例提供的训练图像生成模型的方法。参见图3,图3是本技术实施例提供的训练图像生成模型的方法的流程示意图。请参阅图4,图 4是图像生成网络的结构示意图。如图4所示,作为图像生成模型网络结构的图像生成网络包括编码器、映射转换模块、融合模块和解码模块。其中,编码器、映射转换模块、融合模块和解码模块都是预先设置的神经网络,具有神经网络的组件(卷积层、反卷积层、池化层或激活函数等)。关于神经网络的基本结构和原理已在“名词介绍(1)”中进行了详细说明,在此不再详细介绍。图像生成网络可以是本领域技术人员在终端(例如电脑)电脑上的神经网络设计平台上自行构建好,然后,发送给服务器。
[0082]
在一些实施例中,可以设置编码器、映射转换模块、融合模块和解码模块中卷积层、反卷积层或池化层等的层内结构(卷积核、步长等)、层间连接结构和层组合情况等,以得到具体的图像生成网络。
[0083]
本领域技术人员可以理解的是,编码器包括多个下采样卷积层,在编码器中,随着下采样卷积层的递进,输出的特征图的尺寸越来越小。解码模块包括多个上采样卷积层,在解码模块中,随着上采样卷积层的递进,输出的特征图的尺寸越来越大。本领域技术人员可以根据实际需求配置各下采用卷积层和各上采样卷积层的卷积核大小、步长等参数。
[0084]
同理,也可以设置映射转换模块的结构,使得映射转换模型用于对特征数据进行空间变换处理,使得变换后的特征数据的大小满足下一级的输入需求;也可以设置融合模
块的结构,使得融合模块用于将至少两个特征数据进行融合处理,使得融合结果能够反映至少两个特征数据中的特征。
[0085]
请再次参阅图3,该方法s100具体可以包括如下步骤:
[0086]
s10:获取若干个真实人脸图像,各真实人脸图像标注有真实年龄,若干个真实人脸图像的真实年龄覆盖预设年龄范围。
[0087]
对于任意一个真实人脸图像,是在真实年龄下的人脸图像。例如,真实人脸图像1#是一个人于46岁拍摄的人脸照片,则该真实人脸图像 1#标注的真实年龄是46岁。
[0088]
这若干个真实人脸图像的真实年龄覆盖预设年龄范围。在一些实施例中,预设年龄范围可以是1-100岁,从而,这若干个真实人脸图像中有1-100岁的人脸图像。每个年龄对应多个不同人的真实人脸图像。
[0089]
值得说明的是,这若干个真实人脸图像中可以是不同人的真实人脸图像构成的,年龄覆盖预设年龄范围(例如1-100岁)即可,不需要同一个人在不同年龄下的人脸图像,能够有效减少数据收集难度。本领域技术人员可根据实际情况设置预设年龄范围,例如1-90岁等。本领域技术人员可以从各种公开的人脸数据库中获取若干个人不同年龄人的人脸照片,并标注拍摄照片时的真实年龄。
[0090]
在一些实施中,为了加快模型训练的收敛速度,可对真实人脸图像进行预处理,将真实人脸图像中人脸调整为正脸,以及对真实人脸图像进行归一化处理,统一大小。
[0091]
在一些实施例中,对真实人脸图像进行预处理,具体包括:
[0092]
采用人脸关键点算法,获取真实人脸图像中左右眼球的中心坐标;
[0093]
计算真实人脸图像中左右眼球的中心坐标连线与水平方向的夹角;
[0094]
以真实人脸图像中左右眼眼球的中心坐标为基点,将真实人脸图像按上述夹角进行旋转;
[0095]
截取旋转后的真实人脸图像中的人脸区域,并调整大小至预设分辨率,得到经预处理后的真实人脸图像。
[0096]
根据人脸关键点算法定为出真实人脸图像中人脸面部的若干个关键点,包括眉毛、眼睛、鼻子、嘴巴和脸部轮廓等区域的点。从而,从这些关键点中,可以获取真实人脸图像中左右眼球的中心坐标,计算左右眼球的中心坐标连线与水平方向的夹角θ。
[0097]
可以理解的是,该夹角θ即为人脸偏离正脸的角度,为了将真实人脸图像中的人脸调整为正脸,以真实人脸图像中左右眼眼球的中心坐标为基点,将真实人脸图像按上述夹角θ进行旋转,以得到正脸。
[0098]
具体地,可以采用下述公式计算旋转后的真实人脸图像:
[0099][0100]
其中,(x,y)分别为旋转前真实人脸图像中像素点的二维坐标, (x’,y’)分别为旋转后真实人脸图像中像素点的二维坐标。
[0101]
基于旋转后的真实人脸图像中的人脸为正脸,截取旋转后的真实人脸图像中的人脸区域,并调整大小至预设分辨率,得到经预处理后的真实人脸图像。从而,使得经预处理后的真实人脸图像的大小为该预设分辨率。
[0102]
在一些实施例中,预设分辨率可以为1024*1024。在其它实施例中,预设分辨率可由本领域技术人员根据实际情况而设定,在此不做任何限定。
[0103]
在此实施例中,通过上述预处理方式,将经预处理后的真实人脸图像的五官位置对齐,有利于模型更好地学习特征,能够帮助模型更好地收敛。
[0104]
可以理解的是,在以下描述中的真实人脸图像可以为经预处理后的真实人脸图像,为了方面描述,以下统称为真实人脸图像。
[0105]
s20:采用预先训练好的年龄检测模型对若干个真实人脸图像进行年龄检测,得到各真实人脸图像对应的预测年龄。
[0106]
其中,年龄检测模型是本领域技术人员采用神经网络和训练集预先训练好的,属于本领域的现有技术,在此不再详细介绍。年龄检测模型可以检测出输入的人脸图像的年龄。因此,将若干个真实人脸图像输入年龄检测模型,能够得到各个真实人脸图像对应的预测年龄。
[0107]
由于年龄检测模型是通过大量的人脸图像训练学习得到的,其输出的预测年龄能够反映真实人脸图像的普适性年龄特征。这里,普适性年龄特征是指在正常情况下大部分人的面部表现出的与年龄相符的特征 (例如皱纹、松弛或下垂等的程度与年龄相符)。
[0108]
s30:将真实人脸图像和与真实人脸图像对应的年龄差输入图像生成网络,得到预测人脸图像。
[0109]
其中,年龄差为预测年龄和真实年龄之间的差,真实人脸图像经编码器进行编码后得到编码结果,年龄差经过映射转换模块进行映射转换后得到年龄向量,编码结果和年龄向量经融合模块进行融合后,融合结果输入解码模块进行解码得到预测人脸图像。
[0110]
在得到预测年龄后,计算预测年龄和真实年龄之间的差以获得年龄差,然后,将真实人脸图像和年龄差输入图像生成网络,图像生成网络基于真实人脸图像和年龄差,生成预测人脸图像。
[0111]
由于年龄检测模型是通过大量的人脸图像训练学习得到的,其输出的预测年龄能够反映真实人脸图像的普适性年龄特征,从而,年龄差能够反映真实人脸图像中个人自身的个性年龄特征(偏老或偏年轻)。从而,年龄差可以指导图像生成网络学习真实人脸图像中人脸自身的个性年龄特征。这里,个性年龄特征是指受受个体因素影响的年龄特征,具有特异性,例如偏老、偏年轻或皮肤偏松弛、皱纹偏多等。
[0112]
具体地,请参阅图5,真实人脸图像输入编码器进行下采样特征提取,得到编码结果。年龄差输入映射转换模型,将数值映射转换成年龄向量。由于年龄差能够反映真实人脸图像中个人自身的个性年龄特征,从而,年龄向量也能够反映真实人脸图像中个人自身的个性年龄特征。将编码结果和年龄向量输入融合模块进行融合,得到能够反映人脸特征和个性年龄特征的融合结果(融合特征图)。最后,将融合结果输入解码模块进行上采样解码,得到预测人脸图像。基于融合结果反映人脸特征和个性年龄特征,从而,图像生成网络能够学习个性年龄特征,生成受个性年龄特征影响的预测人脸图像。
[0113]
在一些实施中,请参阅图5,解码模块包括n个分支的解码器,一个解码器对应一个年龄段。例如,以10岁一个年龄段,当预设年龄范围为1-100岁时,则解码模块包括10个分支的解码器。
[0114]
对于任意一个分支的解码器包括多个上采样卷积层,这10个分支的解码器的层结
构可以相同。每一解码器对输入的融合结果(融合特征图)进行上采样,得到具有人脸普适性年龄特征和个性年龄特征的预测人脸图像。每个分支专注于学习各自分支所对应的年龄段的普适性年龄特征和个性年龄特征。
[0115]
在一些实施例中,前述方法s100还包括:根据预设年龄范围的最大年龄值与年龄检测模型的误差,确定解码器的分支数量n。
[0116]
可以理解的是,年龄检测模型是预先训练得到的,具有预测误差,误差一般在正负5岁之间。因此,可以以5岁为一个年龄段,当预设年龄范围为1-100岁时,最大年龄值为100,则确定解码器的分支数量 n=100/5=20。也即,(1,5]对应一个解码器,[5,10)对应一个解码器,依次类推[95,100)对应一个解码器。
[0117]
在一些实施例中,可以采用门控式开关αi(i=1,

,n)进行控制融合结果的输入,当αi=0时表示第i个分支的解码器处于关闭状态,当αi=1时表示第i个分支的解码器处于打开状态,融合结果输入第i个分支的解码器
[0118]
在此实施例中,基于年龄检测模型的误差和预设年龄范围确定解码器的分支数量n,采用误差作为年龄段,能够减少年龄检测模型的误差带来的影响,有利于各分支的解码器生成更加准确的预测人脸图像。
[0119]
在此实施例中,前述“融合结果输入解码模块进行解码得到预测人脸图像”,包括:
[0120]
根据预测年龄所在的年龄段,从n个解码器中确定目标解码器;将融合结果输入目标解码器进行解码,得到预测人脸图像。
[0121]
例如预测年龄为48岁,所在的年龄段为(45,50],从而,找到对应年龄段为(45,50]的解码器为目标解码器。控制目标解码器的门控开关打开,其他分支解码器的门控开关关闭,不参与训练。将融合结果输入目标解码器进行上采用解码,目标解码器注于学习(45,50]年龄段的普适性年龄特征和个性年龄特征,输出具有人脸普适性年龄特征和个性年龄特征的预测人脸图像。
[0122]
在此实施例中,构建多分支的解码模块,每个分支的解码器专注于自身年龄段的训练,专注于学习各自分支所对应的年龄段的普适性年龄特征和个性年龄特征,各年龄段的训练不会相互干扰,能够加快模型收敛,提高模型的准确性。
[0123]
在一些实施例中,前述映射转换模块采用以下方式对年龄差进行映射转换:采用映射函数对年龄差进行计算,得到年龄向量;其中,映射函数包括线性全连接网络。
[0124]
其中,映射函数用于将年龄差映射于空间向量。例如,映射函数可以是线性全连接网络。线性全连接网络是本领域的现有技术,在此不再详细介绍。
[0125]
例如,采用如下公式对年龄差t进行计算,转化为年龄向量v
t

[0126]vt
=f(t)
[0127]
在此实施例中,采用映射函数对年龄差进行空间映射,转化成年龄向量,从而,能够表征个性年龄特征的年龄向量方便与编码结果进行融合。
[0128]
在一些实施例中,前述融合模块采用以下方式对编码结果和年龄向量进行融合:将编码结果和年龄向量进行相乘融合,得到融合结果。
[0129]
这里,相乘融合是指在分辨率大小相同的情况下对应位置相乘。将年龄向量通过反卷积处理,转化为与编码结果分辨率大小相同的年龄差特征图,然后与编码结果(编码特征图)进行对应位置相乘,得到融合结果。在此实施例中,通过相乘融合,使得融合结果包括
年龄差的个性年龄特征。
[0130]
s40:采用损失函数计算预测人脸图像和真实人脸图像之间的损失,并根据若干个真实人脸图像对应的损失和,对图像生成网络进行迭代训练,直至收敛,得到图像生成模型。
[0131]
这里,损失函数可由本领域技术人员在终端中配置,配置好的损失函数随着图像生成网络一起发送给服务器,服务器在处理得到各预测人脸图像后,采用损失函数计算各真实人脸图像和预测人脸图像之间的损失,基于损失和对图像生成网络进行迭代训练,直到图像生成网络收敛,得到图像生成模型。
[0132]
可以理解的是,若各真实人脸图像和预测人脸图像的差异越小,则预测人脸图像和真实人脸图像就越相似,说明预测人脸图像能够准确地还原出个性年龄特征。从而,可以根据各预测人脸图像和真实人脸图像的差异,调整前述图像生成网络的模型参数,对图像生成网络进行迭代训练。即将上述差异进行反向传播,使得图像生成网络输出的预测人脸图像不断逼近真实人脸图像,直到图像生成网络收敛,得到图像生成模型。
[0133]
在一些实施例中,采用adam算法优化模型参数,例如,迭代次数设置为10万次,初始化学习率设置为0.001,学习率的权重衰减设置为 0.0005,每1000次迭代,学习率衰减为原来的1/10,其中,可以将学习率、损失和输入至adam算法中,得到adam算法输出的调整模型参数,利用该调整模型参数进行下一次训练,直到训练完后,输出收敛后的图像生成网络的模型参数,即得到图像生成模型。
[0134]
在此实施例中,构建包括编码器、映射转换模块、融合模块和解码模块的图像生成网络,然后,采用若干个真实人脸图像和对应的年龄差对图像生成网络进行训练,得到图像生成模型。其中,采用预先训练好的年龄检测模型对各真实人脸图像进行年龄检测得到预测年龄,计算预测年龄和真实年龄之间的年龄差,将年龄差和真实人脸图像一起输入图像生成网络进行融合,生成受年龄差影响的预测人脸图像。由于年龄检测模型是通过大量的人脸图像训练学习得到的,其输出的预测年龄能够反映真实人脸图像的普适性年龄特征,年龄差能够反映输入图像个人自身的个性年龄特征(偏老或偏年轻),从而,年龄差可以指导图像生成网络学习输入图像个人自身的个性年龄特征。采用若干个图像组以上述方式对图像生成网络进行训练,基于损失和的反向传播,约束各图像组对应的预测人脸图像不断靠近真实人脸图像,从而,图像生成网络能够准确还原出输入图像个人自身的个性年龄特征。因此,训练得到的图像生成模型能够基于预期年龄和真实年龄之间的年龄差,准确地生成符合自身个性年龄特征和预期年龄的年龄变化图像,也就是说在预测衰老或溯源年轻时,是基于个人当前的个性年龄特征对测试人脸图像中年龄特征进行变化的,从而年龄特征的变化不会千篇一律。
[0135]
在一些实施例中,损失函数包括对抗损失、重构损失和感知风格损失,其中,对抗损失反映预测人脸图像是否为真实人脸,重构损失反映预测人脸图像和真实人脸图像之间的像素差异;感知风格损失反映预测人脸图像的特征图和真实人脸图像的特征图之间的差异。
[0136]
本领域技术人员可以理解的是,对抗损失是预测人脸图像是否为对应的真实人脸图像的损失,当对抗损失大时,说明预测人脸图像的分布与真实人脸图像的分布差异较大,当对抗损失小时,说明预测人脸图像的分布与真实人脸图像的分布差异较小、相近。这里,
图像分布是指人脸图像中各部位的分布,例如五官等。
[0137]
重构损失是预测人脸图像和真实人脸图像之间的像素差异。当重构损失大时,说明预测人脸图像的像素与真实人脸图像的像素差异较大,当重构损失小时,说明预测人脸图像的像素与真实人脸图像的像素差异较小。可以理解的是,重构损失越小,两者像素越接近,不会失真。
[0138]
感知风格损失是将预测人脸图像经卷积得到的特征图与真实人脸图像经卷积得到的特征图作比较,使得高层信息(内容和全局结构)接近。
[0139]
在一些实施例中,损失函数包括:
[0140]
其中,
[0141][0142][0143][0144]
其中,loss为损失函数,为对抗损失,为重构损失,为感知风格损失,αi为第i个分支的解码器的开启状态,n为解码的分支数量,i为真实人脸图像,i

为预测人脸图像,d(i)为判别器判别真实人脸图像为真的概率,t为年龄差,g(i,t)为图像生成网络基于真实人脸图像和年龄差生成的预测人脸图像,d(g(i,t))为判别器判别预测人脸图像为真的概率,为特征提取网络对真实人脸图像进行提取得到的第i 个特征图,为特征提取网络对预测人脸图像进行提取得到的第i个特征图。
[0145]
在一些实施例中,可以采用vgg等卷积神经网络对真实人脸图像进行下采样,提取得到5个特征图同理,可以采用vgg等卷积神经网络对预测人脸图像进行下采样,提取得到5个特征图
[0146]
因此,基于包括对抗损失、、重构损失和感知风格损失的损失函数计算得到的差异,对图像生成网络进行迭代训练,能够约束预测人脸图像从分布、像素特征和多尺度特征这三个方面不断靠近真实人脸图像,有利于提高训练得到的图像生成模型预测年龄变化的效果。
[0147]
综上所述,通过设计上述图像生成网络的结构,图像生成网络包括编码器、映射转换模块、融合模块和解码模块,采用若干个真实人脸图像和对应的年龄差对图像生成网络进行训练,得到图像生成模型。其中,采用预先训练好的年龄检测模型对各真实人脸图像进行年龄检测得到预测年龄,计算预测年龄和真实年龄之间的年龄差,将年龄差和真实人脸图像一起输入图像生成网络进行融合,生成受年龄差影响的预测人脸图像。由于年龄检测模型是通过大量的人脸图像训练学习得到的,其输出的预测年龄能够反映真实人脸图像的普适性年龄特征,年龄差能够反映输入图像个人自身的个性年龄特征(偏老或偏年轻),从而,年龄差可以指导图像生成网络学习输入图像个人自身的个性年龄特征。采用若干个图像组以上述方式对图像生成网络进行训练,基于损失和的反向传播,约束各图像组对应的预测人脸图像不断靠近真实人脸图像,从而,图像生成网络能够准确还原出输入图像个人
自身的个性年龄特征。因此,训练得到的图像生成模型能够基于预期年龄和真实年龄之间的年龄差,准确地生成符合自身个性年龄特征和预期年龄的年龄变化图像,也就是说在预测衰老或溯源年轻时,是基于个人当前的个性年龄特征对测试人脸图像中年龄特征进行变化的,从而年龄特征的变化不会千篇一律。
[0148]
在通过本技术实施例提供的训练图像生成模型的方法训练得到图像生成模型后,可利用该图像生成模型应用于生成年龄变化图像。本技术实施例提供的生成年龄变化图像的方法可以由各种类型具有计算处理能力的电子设备实施,例如智能终端和服务器等。
[0149]
下面结合本技术实施例提供的终端的示例性应用和实施,说明本技术实施例提供的生成年龄变化图像方法。参见图6,图6是本技术实施例提供的生成年龄变化图像方法的流程示意图。该方法s200包括如下步骤:
[0150]
s201:获取测试人脸图像、测试人脸图像中人脸的真实年龄以及预期年龄。
[0151]
终端(例如智能手机)内置的衰老预测助手或溯源年轻助手(应用软件)获取测试人脸图像、对应的真实年龄和预期年龄。其中,该测试人脸图像可以是终端拍摄的,或者用户输入终端的。可以理解的是,测试人脸图像包括人脸。真实年龄和预期年龄可以是用户输入终端的,例如,真实年龄是20岁,预期年龄是30岁,或者,真实年龄是50岁,预期年龄是30岁。
[0152]
s202:将测试人脸图像和真实年龄与预期年龄之间的年龄差,输入图像生成模型,得到年龄变化图像。该年龄变化图像反映的人物的年龄与预期年龄相适应;其中,图像生成模型是采用上述实施例中任意一项训练图像生成模型的方法训练得到。
[0153]
终端在获取到真实年龄和预期年龄后,计算真实年龄与预期年龄之间的年龄差,然后将测试人脸图像和年龄差输入图像生成模型,经计算处理后,图像生成模型输出年龄变化图像。年龄变化图像反映的人物的年龄与预期年龄相适应。当预期年龄大于真实年龄时,年龄变化图像是人物的衰老预测照片;当预期年龄小于真实年龄时,年龄变化图像是人物的年轻溯源照片。
[0154]
其中,该图像生成模型是采用上述任意一项训练图像生成模型的方法训练得到。终端内的衰老预测助手或溯源年轻助手包括该图像生成模型,调用图像生成模型进行预测衰老或溯源年轻。可以理解的是,该图像生成模型是采用上述任意一项训练图像生成模型的方法训练得到,与上述实施例中图像生成模型具有相同的结构和功能,在此不再一一赘述。
[0155]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使电子设备执行本技术实施例提供的训练图像生成模型的方法,例如,如图3-5所示出的训练图像生成模型的方法,或本技术实施例提供的生成年龄变化图像方法,例如,如图6示出的生成年龄变化图像方法。
[0156]
在一些实施例中,存储介质可以是fram、rom、prom、eprom、 ee prom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0157]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0158]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(h tml,hyper textmarkup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件 (例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0159]
作为示例,可执行指令可被部署为在一个计算设备(包括智能终端和服务器在内的设备)上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点目通过通信网络互连的多个计算设备上执行。
[0160]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时使计算机执行如前述实施例中训练图像生成模型的方法或生成年龄变化图像方法。
[0161]
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0162]
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(randomaccess memory,ram)等。
[0163]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1