1.本公开涉及人工智能技术领域,尤其涉及一种跨年龄人脸识别模型训练方法、识别方法及装置。
背景技术:
2.人工智能技术无论是在过去、现在还是将来,都是计算机科学的研究热点问题之一。人脸识别技术是人工智能技术中的一个重要分支。其中,在人脸识别的实际应用中,通常会涉及到很多跨年龄人脸识别的场景,比如,长时间间隔下的人脸比对(比如,间隔2年、5年时间的人脸比对)、搜寻被拐卖儿童等。因此,跨年龄人脸识别已经成为人脸识别领域中的研究焦点之一。
3.现有的跨年龄人脸识别,通常是通过引起更多同一个人、不同年龄阶段的人脸图片来训练网络的鲁棒性。但是,不同年龄段的人脸特征通常差异较大,一旦共享同样的特征空间,进行同样的编码,并不能够很好地进行互相拟合,因此,训练得到识别模型的识别精确度并不高。
技术实现要素:
4.有鉴于此,本公开实施例提供了一种跨年龄人脸识别模型训练方法、识别方法及装置,以解决现有的跨年龄人脸识别模型的识别精确度不高的问题。
5.本公开实施例的第一方面,提供了一种跨年龄人脸识别模型训练方法,包括:
6.获取训练人脸图像集,训练人脸图像集至少包括属于同一人不同年龄的第一人脸图像和第二人脸图像,以及人脸标识信息不同于第一、第二人脸图像的第三人脸图像;
7.对训练人脸图像集进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量;
8.调取年龄特征数据库中的所有标准年龄特征向量,根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量和标准年龄特征向量,计算得到年龄特征总损失值;
9.根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,计算得到跨年龄人脸特征损失值;
10.根据年龄特征总损失值、跨年龄人脸特征损失值对基础跨年龄人脸识别模型进行迭代更新,直至达到预设的迭代终止条件,获得最终跨年龄人脸识别模型。
11.本公开实施例的第二方面,提供了一种跨年龄人脸识别方法,包括:
12.获取待识别人脸图像;
13.将待识别人脸图像输入最终跨年龄人脸识别模型,输出待识别人脸图像的人脸标识信息和年龄预测值,其中,最终跨年龄人脸识别模型是通过上述的跨年龄人脸识别模型训练方法训练得到的。
14.本公开实施例的第三方面,提供了一种跨年龄人脸识别模型训练装置,包括:
15.图像获取模块,被配置为获取训练人脸图像集,训练人脸图像集至少包括属于同一人不同年龄的第一人脸图像和第二人脸图像,以及人脸标识信息不同于第一、第二人脸图像的第三人脸图像;
16.特征提取模块,被配置为对训练人脸图像集进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量;
17.第一损失计算模块,被配置为调取年龄特征数据库中的所有标准年龄特征向量,根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量和标准年龄特征向量,计算得到年龄特征总损失值;
18.第二损失计算模块,被配置为根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,计算得到跨年龄人脸特征损失值;
19.模型更新模块,被配置为根据年龄特征总损失值、跨年龄人脸特征损失值对基础跨年龄人脸识别模型进行迭代更新,直至达到预设的迭代终止条件,获得最终跨年龄人脸识别模型。
20.本公开实施例的第四方面,提供了一种跨年龄人脸识别模型装置,包括:
21.获取模块,被配置为获取待识别人脸图像;
22.识别模块,被配置为将待识别人脸图像输入最终跨年龄人脸识别模型,输出待识别人脸图像的人脸标识信息和年龄预测值,其中,最终跨年龄人脸识别模型是通过上述的跨年龄人脸识别模型训练方法训练得到的。
23.本公开实施例的第五方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
24.本公开实施例的第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
25.本公开实施例与现有技术相比,其有益效果至少包括:通过获取训练人脸图像集,训练人脸图像集至少包括属于同一人不同年龄的第一人脸图像和第二人脸图像,以及人脸标识信息不同于第一、第二人脸图像的第三人脸图像;对训练人脸图像集进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量;调取年龄特征数据库中的所有标准年龄特征向量,根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量和标准年龄特征向量,计算得到年龄特征总损失值;根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,计算得到跨年龄人脸特征损失值;根据年龄特征总损失值、跨年龄人脸特征损失值对基础跨年龄人脸识别模型进行迭代更新,直至达到预设的迭代终止条件,获得最终跨年龄人脸识别模型,该最终跨年龄人脸识别模型的识别效果好,识别精度有明显的提高。
附图说明
26.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附
图获得其它的附图。
27.图1是本公开实施例提供的一种跨年龄人脸识别模型训练方法的流程示意图;
28.图2是本公开实施例提供的一种跨年龄人脸识别方法的流程示意图;
29.图3是本公开实施例提供的一种跨年龄人脸识别模型训练装置的结构示意图;
30.图4是本公开实施例提供的一种跨年龄人脸识别装置的结构示意图;
31.图5是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
32.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
33.下面将结合附图详细说明根据本公开实施例的一种跨年龄人脸识别模型训练方法、跨年龄人脸识别方法及装置。
34.图1是本公开实施例提供的一种跨年龄人脸识别模型训练方法的流程示意图。如图1所示,该跨年龄人脸识别模型训练方法包括:
35.步骤s101,获取训练人脸图像集,训练人脸图像集至少包括属于同一人不同年龄的第一人脸图像和第二人脸图像,以及人脸标识信息不同于第一、第二人脸图像的第三人脸图像。
36.其中,训练人脸图像集中的每张人脸图像携带有人脸标识信息(如人脸id等)以及真实年龄标签。
37.第一人脸图像和第二人脸图像。第二人脸图像的人脸标识信息相同(例如,二者的人脸标签信息都是人脸id1),但是真实年龄标签不同(比如,第一人脸图像的真实年龄标签为25岁,第二人脸图像的真实年龄标签为45岁)。第三人脸图像,是与上述的第一人脸图像、第二人脸图像的人脸标识信息不同的另外一个人的人脸图像。示例性,第一人脸图像、第二人脸图像可分别是甲在25岁和45岁的人脸图像,第三人脸图像则可以是乙在20岁的人脸图像。
38.步骤s102,对训练人脸图像集进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量。
39.作为一示例,假设训练人脸图像集中包括三张人脸图像,分别为上述示例中的第一人脸图像、第二人脸图像和第三人脸图像,那么可将这三张人脸图像输入特征提取网络(如残差神经网络)中进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量。
40.步骤s103,调取年龄特征数据库中的所有标准年龄特征向量,根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量和标准年龄特征向量,计算得到年龄特征总损失值。
41.其中,标准年龄特征向量,是在进行模型训练的初期,随机初始化得到的向量。具体的,可以随机初始化100个标准年龄特征向量,每个标准年龄特征向量分别代表1~100岁
的年龄特征向量。
42.步骤s104,根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,计算得到跨年龄人脸特征损失值。
43.步骤s105,根据年龄特征总损失值、跨年龄人脸特征损失值对基础跨年龄人脸识别模型进行迭代更新,直至达到预设的迭代终止条件,获得最终跨年龄人脸识别模型。
44.作为一示例,在进行训练之前,可预先搭建基础跨年龄人脸识别模型,该基础跨年龄人脸识别模型可包括特征提取网络以及年龄特征数据库。在训练时,每轮次输入3张人脸图像,其中,两张是同一人不同年龄的人脸图像,另一张是另外一个人的人脸图像,这三张人脸图像经过上述特征提取网络处理后得到第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,再根据上述步骤计算出年龄特征总损失值以及跨年龄人脸特征损失值,之后,再通过年龄特征总损失值对其中的年龄特征数据库中的标准年龄特征向量进行迭代更新,从而强化模型的年龄预测能力,通过跨年龄人脸特征损失值可进一步训练提升模型的跨年龄人脸特征的转换效果,提升其转换准确性。重复上述每轮次的训练过程,直至达到预设的迭代终止条件(比如,达到预设的模型精度或者迭代轮次),获得最终跨年龄人脸识别模型。
45.本公开实施例提供的技术方案,通过每轮次训练至少输入三张人脸图像,其中,两张是同一人不同年龄的人脸图像,另一张是另外一个人的人脸图像,并通过对这三张人脸图像进行特征提取,获得对应的年龄特征向量,再根据所计算得到的年龄特征向量和年龄特征数据库中的所有标准年龄特征向量,计算年龄特征总损失值,并使用该年龄特征总损失值对所有标准年龄特征向量进行更新优化;同时,通过所计算得到的年龄特征向量,计算出跨年龄人脸特征损失值,并通过该跨年龄人脸特征损失值来更新优化基础跨年龄人脸识别模型的跨年龄人脸特征转换效果,提高转换的准确性,直至达到预设的迭代终止条件为止,获得最终跨年龄人脸识别模型。该最终跨年龄人脸识别模型的人脸识别和年龄预测的精确度均相较于现有技术有明显的提高。
46.在一些实施例中,上述步骤s102包括:
47.将训练人脸图像集输入预设的残差神经网络,输出与第一人脸图像对应的第一人脸特征图,与第二人脸图像对应的第二人脸特征图,以及与第三人脸图像对应的第三人脸特征图;
48.分别对第一人脸特征图、第二人脸特征图和第三人脸特征图进行三次卷积运算或者一次池化处理,获得与第一人脸特征图对应的第一特征向量,与第二人脸特征图对应的第二特征向量,以及与第三人脸特征图对应的第三特征向量;
49.分别对第一特征向量、第二特征向量和第三特征向量进行特征分离,获得与第一特征向量对应的第一年龄特征向量,与第二特征向量对应的第二年龄特征向量,以及与第三特征向量对应的第三年龄特征向量。
50.作为一示例,假设训练人脸图像集包括上述示例的三张人脸图像,即第一人脸图像、第二人脸图像和第三人脸图像,那么可将第一人脸图像、第二人脸图像和第三人脸图像输入预设的残差神经网络(如,iresnet),该残差神经网络有四个阶段,每个阶段有2倍的下采样。若输入的第一人脸图像、第二人脸图像和第三人脸图像的维度为(112,112,3),那么经该残差神经网络前向计算后,可得到与第一人脸图像对应的第一人脸特征图,与第二人
脸图像对应的第二人脸特征图,以及与第三人脸图像对应的第三人脸特征图。其中,第一人脸特征图、第二人脸特征图、第三人脸特征图的维度为(7,7,512),7和7是高和宽,512是通道数。
51.接着,分别对上述第一人脸特征图、第二人脸特征图和第三人脸特征图进行三次卷积运算(如3次3
×
3的卷积运算,下采样位2,通道数为512)或者一次池化处理,再依次经批量归一化计算、relu激活函数计算,可得到与第一人脸特征图对应的第一特征向量,与第二人脸特征图对应的第二特征向量,以及与第三人脸特征图对应的第三特征向量。第一特征向量、第二特征向量和第三特征向量的维度是(1,1,512)。
52.之后,分别对第一特征向量、第二特征向量和第三特征向量进行降维处理,得到与第一特征向量对应的第一降维向量,与第二特征向量对应的第二降维向量,与第三特征向量对应的第三降维向量;将第一降维向量、第二降维向量和第三降维向量分别输入分类器,输出与第一降维向量对应的第一分类结果,与第二降维向量对应的第二分类结果,以及与第三降维向量对应的第三分类结果;根据第一特征向量和第一分类结果,计算得到第一年龄特征向量;根据第二特征向量和第二分类结果,计算得到第二年龄特征向量;根据第三特征向量和第三分类结果,计算得到第三年龄特征向量。
53.下面以计算第一年龄特征向量为例进行详细的说明。
54.首先,对第一特征向量进行降维处理,具体是将第一特征向量乘以一个矩阵a,该矩阵a的维度是(512,64),再乘上一个矩阵b,该矩阵b的维度是(64,512),得到第一降维向量。然后,再将该第一降维向量输入分类器(如softmax分类器),输出第一分类结果。之后,再将第一特征向量乘上第一分类结果,得到的是第一非年龄特征向量;再将第一特征向乘上(1-非年龄特征向量),即可以得到第一年龄特征向量。
55.具体的,可以令一次卷积+归一化+激活计算为u,三次计算为f,那么相关的计算公式如下式(1)和(2)所示。
56.u(m)=relu(bn(conv(m;3)))
ꢀꢀ
(1);
57.m1=f(m)=u(u(u(m)))
ꢀꢀ
(2)。
58.然后,令第一分类结果的计算为g,计算公式如下式(3)所示。
59.m2=g(m)= softmax(f(m)
tat
b)
ꢀꢀ
(3)。
60.那么,第一非年龄特征的计算公式如下式(4)所示。
61.f=m1·
m2ꢀꢀ
(4)。
62.那么,第一年龄特征特征的计算公式如下式(5)所示。
63.f-=m1·
(1-m2)
ꢀꢀ
(5)。
64.其中,上式(1)~(5)中,m表示第一特征图,m1表示第一特征向量,m2表示第一分类结果,f表示第一非年龄特征向量,f-表示第一年龄特征向量。
65.在上述计算过程中,具体是在第一特征图m上经过三次卷积计算,把前两个维度降为(1,1),提取出第一人脸特征图的第一特征向量m1;再将m1经过两次矩阵运算,即两次线性组合操作,得到第一分类结果m2,m2是对第一人脸特征图中的非年龄特征的注意力向量。因此,(1-m2)就是对第一人脸特征图中年龄特征的注意力向量。随后,把m1分别乘上m2和(1-m2),分别得到第一非年龄特征向量和第一年龄特征向量,完成了特征分离。
66.在本公开实施例中,第二年龄特征向量和第三年龄特征向量的计算过程与上述第
一年龄特征向量的计算过程类似,可参照上述第一年龄特征向量的计算方法,计算得到与第二特征向量对应的第二年龄特征向量,与第三特征向量对应的第三年龄特征向量,在此不再赘述。
67.在一些实施例中,上述步骤s103包括:
68.根据第一年龄特征向量与所有标准年龄特征向量,计算得到第一年龄特征损失值;
69.根据第二年龄特征向量与所有标准年龄特征向量,计算得到第二年龄特征损失值;
70.根据第三年龄特征向量与所有标准年龄特征向量,计算得到第三年龄特征损失值;
71.根据第一年龄特征损失值、第二年龄特征损失值和第三年龄特征损失值,计算得到年龄特征总损失值。
72.作为一示例,假设年龄特征数据库中共有分别表示1~100岁共100个标准年龄特征向量,可以将这100个向量标记为j1~j
100
,其中,j1表示1岁对应的标准年龄特征向量,j2表示2岁对应的标准年龄特征向量
…
,j
100
表示100岁对应的标准年龄特征向量。
73.分别计算上述第一年龄特征向量与j1~j
100
之间的相似度,得到100个相似度结果。然后,可根据下述步骤,计算出第一年龄特征损失值:分别计算第一年龄特征向量与每一标准年龄特征向量之间的相似度,相似度包括第一年龄特征向量和与其对应的真实年龄一致的标准年龄特征向量之间的对应相似度,以及第一年龄特征向量和与其对应的真实年龄不一致的标准年龄特征向量之间的非对应相似度;根据对应相似度和非对应相似度,计算得到第一年龄特征损失值。
74.其中,在上述计算得到的100个相似度结果中,有一个是第一年龄特征向量和与其所对应的真实年龄一致的标准年龄特征向量之间的相似度,即为对应相似度。例如,第一年龄特征向量所对应的真实年龄标签为25岁,那么该标准年龄特征向量所代表的是25岁的标准向量。除此之外,其他的相似度结果则为第一年龄特征向量(真实年龄标签为25岁)与1~24岁,26~100岁所对应的标准年龄特征向量之间的相似度结果,即为非对应相似度。
75.接着,可根据下述公式(6)、(7)计算出第一年龄特征损失值。
[0076][0077][0078]
式(6)~(7)中,d
i,j
表示第一年龄特征向量(i,也可用上述的f-表示)与第j个标准年龄特征向量之间的相似度;d
p
表示对应相似度;dn表示非对应相似度,l表示第一年龄特征损失值。
[0079]
在上述示例中,第一年龄特征向量对应的真实年龄标签为25岁,则d
p
表示的是该第一年龄特征向量与25岁的标准年龄特征向量之间的相似度。上式(7)中的n的取值可为1~24,99,其中,d1表示第一年龄特征向量与1岁的标准年龄特征向量之间的相似度,d2表示第一年龄特征向量与2岁的标准年龄特征向量之间的相似度,d3表示第一年龄特征向量与3岁的标准年龄特征向量之间的相似度
…d24
表示第一年龄特征向量与24岁的标准年龄特征
向量之间的相似度
…d100
表示第一年龄特征向量与100岁的标准年龄特征向量之间的相似度。
[0080]
在一优选实施例中,为了使第一年龄特征向量尽量和与其真实年龄一致的标准年龄特征向量之间的对应相似度尽量高,而和与其对应的真实年龄不一致的标准年龄特征向量之间的非对应相似度尽可能低,可首先通过归一化后的内积公式计算出第一年龄特征向量与100个标准年龄特征向量之间的相似度,并在考虑到年龄有相邻性(即相邻的年龄特征比较相仿),可对上述计算得到的所有相似度减去一个考虑相邻性的动态值(即下式(8)中的0.35),公式如下式(8)所示。
[0081][0082]
关于第二年龄特征损失值、第三年龄特征损失值的计算过程与上述关于第一年龄特征损失值的计算过程类似,故可参照上述关于第一年龄特征损失值的计算过程分别计算出第二年龄特征损失值、第三年龄特征损失值,在此不再赘述。
[0083]
年龄特征总损失值,则是将上述计算得到的第一年龄特征损失值、第二年龄特征损失值和第三年龄特征损失值进行叠加即得。然后,再使用计算得到的年龄特征总损失值对上述年龄特征数据库中的100个标准年龄特征向量进行更新优化。通过使用每轮次计算出来的年龄特征总损失值对年龄特征数据库中的所有标准年龄特征向量进行更新优化,可以很好地提升模型的年龄预测能力。
[0084]
在一些实施例中,上述步骤s104包括:
[0085]
以第二年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第一转换特征向量;
[0086]
以第三年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第二转换特征向量;
[0087]
根据第一转换特征向量、第二转换特征向量、第一特征向量、第二特征向量、第三特征向量,计算得到跨年龄人脸特征损失值。
[0088]
在一实施例中,上述步骤,以第二年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第一转换特征向量,包括:
[0089]
计算目标年龄特征向量与第一年龄特征向量的向量差值;
[0090]
将向量差值与第一特征向量进行拼接,获得拼接向量;
[0091]
根据拼接向量和预设的参数矩阵,计算得到第一转换特征向量。
[0092]
作为一示例,若需要将甲25岁的年龄特征向量替换为甲45岁的年龄特征向量,即该示例中的第一年龄特征向量对应为甲25岁的年龄特征向量,第二年龄特征向量对应为甲45岁的年龄特征向量,则可将第二年龄特征向量(目标年龄特征向量)减去第一年龄特征向量,得到二者的向量差值,再将该向量差值与第一特征向量进行拼接,得到拼接向量,再将该拼接向量乘上一个维度为(1024,512)的参数矩阵w,即可得到第一转换特征向量。具体的计算公式如下式(9)所示。
[0093]fnew1
=[m1,f
i-f-]
twꢀꢀ
(9)。
[0094]
式(9)中,fi是目标年龄特征向量(即第二年龄特征向量);f-表示真实年龄特征向量(即第一年龄特征向量);f
i-f-称作“年龄差向量”(即向量差值)。
[0095]
在上述例子中,i取值为45。也就是说,m1代表的是该人脸25岁的年龄特征向量(即第一年龄特征向量),而f
new1
代表的经上述转换过程合成出来的、甲在45岁时的年龄特征向量。
[0096]
令整个特征分离到特征转换的计算为s输入是m(即第一人脸特征图),转换条件是fi,上式可以写成下式(10):
[0097]fnew1
=s(m;fi)=[f(m),f
i-f(m)(1-g(m))]
twꢀꢀ
(10)。
[0098]
上述的年龄特征转换的过程,具体是给定一个需要合成的目标年龄特征向量fi,先将该人脸特征图m中的真实年龄特征向量分离出来,具体是用目标年龄特征向量减去其真实年龄所对应的年龄特征向量(称“年龄差向量”),再将原始人脸特征图与该“年龄差向量”进行拼接后进入参数矩阵w计算,即可以合成目标年龄条件下的特征向量(即获得转换特征向量)。
[0099]
在另一实施例中,以第二年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第一转换特征向量,具体包括如下步骤:
[0100]
计算目标年龄特征向量和预设的第一参数矩阵的乘积,获得第一矩阵;
[0101]
根据第一人脸特征图和预设的第二参数矩阵,获得第二矩阵;
[0102]
根据第一人脸特征图和预设的第三参数矩阵,获得第三矩阵;
[0103]
将第一矩阵和第二矩阵相乘,得到第四矩阵,将第四矩阵输入分类器,输出分类结果;
[0104]
根据分类结果与第三矩阵,计算得到第一转换特征向量。
[0105]
作为一示例,首先,输入目标年龄特征向量fi,将目标年龄特征向量乘上第一参数矩阵w1,w1维度是(512,512),获得第一矩阵。这里的技术含义是,将目标年龄向量视作查询向量,乘上第一参数矩阵等于将其映射到新的特征空间,再进行后续查询。
[0106]
作为一示例,可先将第一人脸特征图m的维度变换为(49,512),再将m乘上第二参数矩阵w2,w2维度是(512,512),获得第二矩阵;再将第二矩阵乘上第三参数矩阵w3,w3维度是(512,512)。这里的技术含义是,m是第一人脸特征图,维度按(49,512)变换后,可以将人脸特征视作49个512维度的向量。再依次乘上w2和乘上w3,分别是做新的线性组合,等待查询向量fi来查询与变换。这里w2和w3的矩阵变换参数是通过拟合目标损失函数来学习的,可以保证后续与查询向量的之间的计算更加准确。
[0107]
整体的计算过程如下:将fi(乘w1)与m(乘w2)做矩阵乘法,再做softmax,得到分类结果,维度是(1,49),再将该分类结果与m(乘w3)做矩阵乘法,令特征转换的计算为t,其公式如下式(11)所示:
[0108]fnew2
=t(m;fi)=softmax((fiw1)
t
(mw2))
t
(mw3)
ꢀꢀ
(11)。
[0109]
式(11)中,f
new2
代表的是经上述转换过程合成出来的、该人脸在目标年龄时的年龄特征向量。
[0110]
在又一实施例中,上述步骤,以第二年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第一转换特征向量,包括:
[0111]
根据第二年龄特征向量、第一年龄特征向量、第一特征向量和预设的参数矩阵,计算得到相对特征转换向量;
[0112]
根据第二年龄特征向量、第一人脸特征图、预设的第一参数矩阵、第二参数矩阵和
第三参数矩阵,计算得到整体特征转换向量;
[0113]
根据相对特征转换向量和整体特征转换向量,确定第一转换特征向量。
[0114]
由前述内容可知,基于“年龄差向量”计算做年龄特征转换得到的新特征(即合成的目标年龄特征向量f
new1
),会更多考虑该人脸所增加/减少的年龄差所带来的特征的变化,是一种相对性的变换。而基于“向量矩阵”(包括上述的第一、第二、第三参数矩阵)做年龄特征转换得到的新特征(即合成的目标年龄特征向量f
new2
),由于是基于目标年龄特征向量直接发起查询,会从整体考虑目标年龄的特征,直接对当前特征进行重构,是一种整体性变换。
[0115]
为了保证年龄特征的转换效果,应该同时兼顾相对性的变换和整体性变换。因此,上述两种转换方案,可并行进行。
[0116]
在本公开实施例中,相对特征转换向量的计算过程对应上述基于“年龄差向量”计算做年龄特征转换得到的新特征的计算过程;整体特征转换向量对应于上述基于“向量矩阵”(包括上述的第一、第二、第三参数矩阵)做年龄特征转换得到的新特征的计算过程。
[0117]
在一实施例中,可先对相对特征转换向量和整体特征转换向量进行拼接,得到拼接特征向量;再根据拼接特征向量和预设的第四参数矩阵,计算得到第一转换特征向量。
[0118]
具体的,可先将上述计算得到的f
new1
和f
new2
进行拼接,得到拼接特征向量,再将该拼接特征向量乘上第四参数矩阵w4,维度是(1024,512),计算得到第一转换特征向量,其维度是512。
[0119]
令输入的第一人脸图像为i,神经网络为n,整体公式如下式(12)所示:
[0120]
m=n(i);
[0121]fnew1
=s(m;fi);
[0122]fnew2
=t(m;fi);
[0123]ffinal
=[f
new1
,f
new2
]tw4ꢀꢀ
(12)。
[0124]
若令后面三步的计算为e,可得式(13):
[0125]ffinal
=e(m;fi)
ꢀꢀ
(13)。
[0126]
上式(12)~(13)中的f
final
表示经上述两个并行方案计算得到的第一转换特征向量。
[0127]
由于第二转换特征向量的计算过程与上述关于第一转换特征向量的计算过程类似,故可参照上述关于第一转换特征向量的计算过程计算得出第二转换特征向量,在此不再赘述。
[0128]
在一些实施例中,上述步骤,根据第一转换特征向量、第二转换特征向量、第一特征向量、第二特征向量、第三特征向量,计算得到跨年龄人脸特征损失值,包括:
[0129]
计算第一特征向量与第三特征向量的第一特征相似度;
[0130]
计算第一特征向量与第二特征向量的第二特征相似度;
[0131]
计算第一转换特征向量与第二特征向量的第三特征相似度;
[0132]
计算第二转换特征向量与第三特征向量的第四特征相似度;
[0133]
根据第一特征相似度、第二特征相似度、第三特征相似度和第四特征相似度,计算得到跨年龄人脸特征损失值。
[0134]
示例性的,设在每轮训练中,都会输入三张人脸图像,其中,两张是同一个人脸id
的(同一个人)不同年龄的人脸图像,即第一人脸图像和第二人脸图像,另一张是不同人脸id的人脸图像,即第三人脸图像。
[0135]
令第一人脸图像为i1,经上述处理后得到其第一人脸特征图g1,第一特征向量h1(对应上述的m1),第一年龄特征向量a1;第二人脸图像为i2,经上述处理后得到其第二人脸特征图g2,第二特征向量h2,第二年龄特征向量a2;第三人脸图像为i3,经上述处理后得到其第三人脸特征图g3,第三特征向量h3,第三年龄特征向量a3。
[0136]
在一实施例中,可根据下式(14)计算第一特征向量与第三特征向量的第一特征相似度d
1,3
。
[0137]d1,3
=h
1-h3ꢀꢀ
(14)。
[0138]
可根据下式(15)计算得到第一特征向量与第二特征向量的第二特征相似度d
1,2
。
[0139]d1,2
=h
1-h2ꢀꢀ
(15)。
[0140]
可根据下式(16)计算得到第一转换特征向量与第二特征向量的第三特征相似度d
1-2,2
。
[0141][0142]
式(16)中的可以根据公式或者,公式或者,公式或者,公式计算得到。其中,表示将第一人脸图像的第一人脸特征图按照第二人脸图像所对应的年龄进行变换得到的第一转换特征向量。
[0143]
可根据下式(17)计算得到第二转换特征向量与第三特征向量的第四特征相似度d
1-3,3
。
[0144][0145]
式(16)中的可以根据公式或者,公式或者,公式或者,公式计算得到。其中,表示将第一人脸图像的第一人脸特征图按照第三人脸图像所对应的年龄进行变换得到的第二转换特征向量。
[0146]
因为第一人脸图像和第二人脸图像是同一个人脸id,第三人脸图像是不同的人脸id,因此,可得到第一个损失如下式(18)所示:
[0147]
l1=max(d
1,3-d
1,2
+m,0);
[0148]
l2=max(d
1-3,3-d
1-2,2
+m,0)
ꢀꢀꢀ
(18)。
[0149]d1,3
表示第一相似度,d
1,2
表示第二相似度,d
1-2,2
表示第三相似度,d
1-3,3
第四相似度,m为一常数,表示间隔项,例如,其可取值为0.3。上述公式(18)的技术含义是:负样本的相似度越小越好;正样本的相似度越大越好。
[0150]
此外,还提出另一种损失如下式(19)所示:
[0151]
l3=softplus(d
1,2-d
1-2,2
);
[0152]
l4=softplus(d
1,3-d
1-3,3
);
[0153]
softplus=log(1+e
x
)
ꢀꢀꢀꢀ
19)。
[0154]
上述公式(19)的技术含义是,变换后的正样本的相似度要比变换前的更大;同样,
变换后负样本的相似度也会比变换前的更大。
[0155]
由此,可根据下述公式(20)计算得到跨年龄人脸特征损失值l
损
。
[0156]z损
=l1+z2+l3+z4ꢀꢀꢀꢀꢀꢀ
(20)。
[0157]
图2是是本公开实施例提供的一种跨年龄人脸识别方法的流程示意图。如图2所示,该跨年龄人脸识别方法,包括如下步骤:
[0158]
步骤s201,获取待识别人脸图像。
[0159]
作为一示例,可以通过摄像装置(如摄像机、智能手机、电脑等)采集待识别人脸图像。
[0160]
步骤s202,将待识别人脸图像输入最终跨年龄人脸识别模型,输出待识别人脸图像的人脸标识信息和年龄预测值,其中,最终跨年龄人脸识别模型是通过上述的跨年龄人脸识别模型训练方法训练得到的。
[0161]
在本公开实施例中,可以将上述采集得到的待识别人脸图像输入最终跨年龄人脸识别模型,输出该待识别人脸图像的人脸id信息以及年龄预测值。
[0162]
上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0163]
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
[0164]
图3是本公开实施例提供的一种跨年龄人脸识别模型训练装置的示意图。
[0165]
如图3所示,该跨年龄人脸识别模型训练装置包括:
[0166]
图像获取模块301,被配置为获取训练人脸图像集,训练人脸图像集至少包括属于同一人不同年龄的第一人脸图像和第二人脸图像,以及人脸标识信息不同于第一、第二人脸图像的第三人脸图像;
[0167]
特征提取模块302,被配置为对训练人脸图像集进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量;
[0168]
第一损失计算模块303,被配置为调取年龄特征数据库中的所有标准年龄特征向量,根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量和标准年龄特征向量,计算得到年龄特征总损失值;
[0169]
第二损失计算模块304,被配置为根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,计算得到跨年龄人脸特征损失值;
[0170]
模型更新模块305,被配置为根据年龄特征总损失值、跨年龄人脸特征损失值对基础跨年龄人脸识别模型进行迭代更新,直至达到预设的迭代终止条件,获得最终跨年龄人脸识别模型。
[0171]
本公开实施例提供的技术方案,通过图像获取模块301获取训练人脸图像集,训练人脸图像集至少包括属于同一人不同年龄的第一人脸图像和第二人脸图像,以及人脸标识信息不同于第一、第二人脸图像的第三人脸图像;特征提取模块302对训练人脸图像集进行特征提取,获得与第一人脸图像对应的第一年龄特征向量,与第二人脸图像对应的第二年龄特征向量,以及与第三人脸图像对应的第三年龄特征向量;第一损失计算模块303调取年龄特征数据库中的所有标准年龄特征向量,根据第一年龄特征向量、第二年龄特征向量、第
三年龄特征向量和标准年龄特征向量,计算得到年龄特征总损失值;第二损失计算模块304根据第一年龄特征向量、第二年龄特征向量、第三年龄特征向量,计算得到跨年龄人脸特征损失值;模型更新模块305根据年龄特征总损失值、跨年龄人脸特征损失值对基础跨年龄人脸识别模型进行迭代更新,直至达到预设的迭代终止条件,获得最终跨年龄人脸识别模型,该最终跨年龄人脸识别模型的识别效果好,识别精度有明显的提高。
[0172]
在一些实施例中,上述特征提取模块302包括:
[0173]
特征图提取单元,被配置为将训练人脸图像集输入预设的残差神经网络,输出与第一人脸图像对应的第一人脸特征图,与第二人脸图像对应的第二人脸特征图,以及与第三人脸图像对应的第三人脸特征图;
[0174]
特征向量提取单元,被配置为分别对第一人脸特征图、第二人脸特征图和第三人脸特征图进行三次卷积运算或者一次池化处理,获得与第一人脸特征图对应的第一特征向量,与第二人脸特征图对应的第二特征向量,以及与第三人脸特征图对应的第三特征向量;
[0175]
年龄特征向量提取单元,被配置为分别对第一特征向量、第二特征向量和第三特征向量进行特征分离,获得与第一特征向量对应的第一年龄特征向量,与第二特征向量对应的第二年龄特征向量,以及与第三特征向量对应的第三年龄特征向量。
[0176]
在一些实施例中,上述年龄特征向量提取单元,可被具体配置为:
[0177]
分别对第一特征向量、第二特征向量和第三特征向量进行降维处理,得到与第一特征向量对应的第一降维向量,与第二特征向量对应的第二降维向量,与第三特征向量对应的第三降维向量;
[0178]
将第一降维向量、第二降维向量和第三降维向量分别输入分类器,输出与第一降维向量对应的第一分类结果,与第二降维向量对应的第二分类结果,以及与第三降维向量对应的第三分类结果;
[0179]
根据第一特征向量和第一分类结果,计算得到第一年龄特征向量;
[0180]
根据第二特征向量和第二分类结果,计算得到第二年龄特征向量;
[0181]
根据第三特征向量和第三分类结果,计算得到第三年龄特征向量。
[0182]
在一些实施例中,第一损失计算模块303包括:
[0183]
第一损失值计算单元,被配置为根据第一年龄特征向量与所有标准年龄特征向量,计算得到第一年龄特征损失值;
[0184]
第二损失值计算单元,被配置为根据第二年龄特征向量与所有标准年龄特征向量,计算得到第二年龄特征损失值;
[0185]
第三损失值计算单元,被配置为根据第三年龄特征向量与所有标准年龄特征向量,计算得到第三年龄特征损失值;
[0186]
总损失值计算单元,被配置为根据第一年龄特征损失值、第二年龄特征损失值和第三年龄特征损失值,计算得到年龄特征总损失值。
[0187]
在一些实施例中,上述第一损失值计算单元,可具体被配置为:
[0188]
分别计算第一年龄特征向量与每一标准年龄特征向量之间的相似度,相似度包括第一年龄特征向量和与其对应的真实年龄一致的标准年龄特征向量之间的对应相似度,以及第一年龄特征向量和与其对应的真实年龄不一致的标准年龄特征向量之间的非对应相似度;
[0189]
根据对应相似度和非对应相似度,计算得到第一年龄特征损失值。
[0190]
在一些实施例中,上述第二损失计算模块304包括:
[0191]
第一转换单元,被配置为以第二年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第一转换特征向量;
[0192]
第二转换单元,被配置为以第三年龄特征向量为目标年龄特征向量,对第一人脸特征图进行特征转换,获得第二转换特征向量;
[0193]
损失计算单元,被配置为根据第一转换特征向量、第二转换特征向量、第一特征向量、第二特征向量、第三特征向量,计算得到跨年龄人脸特征损失值。
[0194]
在一些实施例中,上述第一转换单元,可被具体配置为:
[0195]
计算目标年龄特征向量与第一年龄特征向量的向量差值;
[0196]
将向量差值与第一特征向量进行拼接,获得拼接向量;
[0197]
根据拼接向量和预设的参数矩阵,计算得到第一转换特征向量。
[0198]
在另一些实施例中,上述第一转换单元,还可被具体配置为:
[0199]
计算目标年龄特征向量和预设的第一参数矩阵的乘积,获得第一矩阵;
[0200]
根据第一人脸特征图和预设的第二参数矩阵,获得第二矩阵;
[0201]
根据第一人脸特征图和预设的第三参数矩阵,获得第三矩阵;
[0202]
将第一矩阵和第二矩阵相乘,得到第四矩阵,将第四矩阵输入分类器,输出分类结果;
[0203]
根据分类结果与第三矩阵,计算得到第一转换特征向量。
[0204]
在又一实施例中,上述第一转换单元,还可被具体配置为:
[0205]
根据第二年龄特征向量、第一年龄特征向量、第一特征向量和预设的参数矩阵,计算得到相对特征转换向量;
[0206]
根据第二年龄特征向量、第一人脸特征图、预设的第一参数矩阵、第二参数矩阵和第三参数矩阵,计算得到整体特征转换向量;
[0207]
根据相对特征转换向量和整体特征转换向量,确定第一转换特征向量。
[0208]
在一些实施例中,上述对相对特征转换向量和整体特征转换向量进行拼接,得到拼接特征向量;
[0209]
根据拼接特征向量和预设的第四参数矩阵,计算得到第一转换特征向量。
[0210]
在一些实施例中,上述损失计算单元,可具体被配置为:
[0211]
计算第一特征向量与第三特征向量的第一特征相似度;
[0212]
计算第一特征向量与第二特征向量的第二特征相似度;
[0213]
计算第一转换特征向量与第二特征向量的第三特征相似度;
[0214]
计算第二转换特征向量与第三特征向量的第四特征相似度;
[0215]
根据第一特征相似度、第二特征相似度、第三特征相似度和第四特征相似度,计算得到跨年龄人脸特征损失值。
[0216]
图4是本公开实施例提供的一种跨年龄人脸识别装置的示意图。如图4所示,该跨年龄人脸识别装置包括:
[0217]
获取模块401,被配置为获取待识别人脸图像;
[0218]
识别模块402,被配置为将待识别人脸图像输入最终跨年龄人脸识别模型,输出待
识别人脸图像的人脸标识信息和年龄预测值,其中,最终跨年龄人脸识别模型是通过上述的跨年龄人脸识别模型训练方法训练得到的。
[0219]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
[0220]
图5是本公开实施例提供的电子设备500的示意图。如图5所示,该实施例的电子设备500包括:处理器501、存储器502以及存储在该存储器502中并且可在处理器501上运行的计算机程序503。处理器501执行计算机程序503时实现上述各个方法实施例中的步骤。或者,处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能。
[0221]
示例性地,计算机程序503可以被分割成一个或多个模块/单元,一个或多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本公开。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在电子设备500中的执行过程。
[0222]
电子设备500可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备500可以包括但不仅限于处理器501和存储器502。本领域技术人员可以理解,图5仅仅是电子设备500的示例,并不构成对电子设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,电子设备还可以包括输入输出设备、网络接入设备、总线等。
[0223]
处理器501可以是中央处理单元(central processing unit,cpu),也可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0224]
存储器502可以是电子设备500的内部存储单元,例如,电子设备500的硬盘或内存。存储器502也可以是电子设备500的外部存储设备,例如,电子设备500上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器502还可以既包括电子设备500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其它程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
[0225]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0226]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记
载的部分,可以参见其它实施例的相关描述。
[0227]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
[0228]
在本公开所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0229]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0230]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0231]
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本公开实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0232]
以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围,均应包含在本公开的保护范围之内。