性别及年龄的识别方法、系统、电子装置及存储介质
技术领域
本申请涉及人工智能技术领域,具体涉及一种性别及年龄的识别方法、系统、电子装置及存储介质。
背景技术
随着互联网产业的发展,人工智能涉及到越来越多的领域,其中,识别人类的年龄和性别就是人工智能的一个发展方向。
现有的年龄和性别的识别方法,采用具有标签了年龄及性别的训练图片来训练卷积神经网络,从而训练出人脸属性检测模型,在获取到用户的照片后,人脸属性检测模型输出照片上用户的年龄及性别。
但是,现有人脸属性检测模型及卷积神经网络,训练时由于不同年龄会有不同的年龄标签,而性别只有男性及女性的标签,因此采用多分类交叉熵确定损失值时,性别的损失在年龄及性别的损失值的和中占得比重较少,因此就可能出现以下情况:由于性别在二者损失值的和中占比较少,因此在训练模型时会导致模型对性别特征的拟合程度小于年龄特征,从而使性别更易判断错误。因此使得现有的性别和年龄的识别方法,更加倾向于年龄的判断,从而使得对性别判断的准确率较低。
发明内容
鉴于此,本申请提供一种性别及年龄的识别方法、系统、电子装置及存储介质,以解决现有的年龄和性别的识别方法,更加倾向于年龄的判断,从而使得对性别判断的准确率较低的问题。
本申请提供的一种性别及年龄的识别方法,包括:获取人脸图像;使用人脸关键点对齐人脸图像的关键点;将对齐有人脸关键点的人脸图像输入预先训练的人脸属性检测模型,所述人脸属性检测模型在训练时根据预设规则修正了性别的损失值与年龄的损失值的比重及修正了各年龄段损失值的比重;接收人脸属性检测模型输出的人脸图像上人脸的年龄及性别的识别结果。
其中,还包括以下修正性别的损失值与年龄的损失值的比重的步骤:获取训练数据的标签,所述标签中具有该训练数据中包含的人脸图像的年龄及性别的信息;修正标签中年龄对应的损失值的年龄权重;利用年龄权重计算性别权重,所有标签年龄的年龄权重相加后的和与性别权重的比例为预设比例,所述预设比例的值小于各个标签年龄的年龄权重相加后的和;利用性别权重、年龄权重分别计算标签中性别对应的损失值及年龄对应的损失值。
其中,所述修正标签中年龄对应的损失值的年龄权重包括:计算训练数据在各年龄阶段分布平均状态下各年龄阶段的二分类交叉熵的年龄损失值;计算获取所有年龄中的每个年龄占所述所有年龄的年龄应占比例;计算所有训练数据中,每个年龄训练数据的数量占所有训练数据的年龄数据比例;将所有的所述年龄应占比例与所述年龄数据比例的商作为对应的年龄损失值的年龄权重。
其中,所述修正标签年龄对应的损失值的年龄权重还包括:为每个年龄阶段的年龄损失值赋予初始权重,每个年龄阶段的初始权重不同,且随着年龄阶段的增长,每个年龄阶段的初始权重先减小后增大;将每个年龄阶段的所述年龄权重及初始权重的乘积作为所述年龄损失值的权重。
其中,所述预设比例为6:1。
其中,所述方法还包括:对人脸属性检测模型识别结果的精度进行验证,若验证集中超过80%的样本预测年龄差值的绝对值小于预先给定值,则可判定为模型训练较好,可进行模型输出,使用输出的模型进行图像中年龄及性别的检测。
其中,所述预先给定值为5。
本申请上述的性别及年龄的识别方法,由于修正性别的损失值与年龄的损失值的比重,能够增加人脸属性检测模型对性别判断的倾向,从而减少对年龄的判断的倾向,更好地平衡了年龄、性别两个任务重损失的比例关系,因此提升了性别判断的准确率。
并且,通过修正各年龄阶段损失值的比重,能够优化各个年龄的损失值,因此使得训练出的人脸属性检测模型,减少对某个年龄段的倾向。
本申请第二方面提供一种性别及年龄的识别系统,包括:人脸图像获取模块,用于获取人脸图像;关键点对齐模块,用于使用人脸关键点对齐人脸图像的关键点;输入模块,用于将对齐有人脸关键点的人脸图像输入预先训练的人脸属性检测模型,所述人脸属性检测模型在训练时根据预设规则修正了性别的损失值与年龄的损失值的比重及修正了各年龄段损失值的比重;接收模块,用于接收人脸属性检测模型输出的人脸图像上人脸的年龄及性别的识别结果。
本申请第三方面提供一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现上述中的任意一项所述性别及年龄的识别方法。
本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述中的任意一项所述性别及年龄的识别方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例种性别及年龄的识别方法的流程示意图;
图2为本申请实施例种性别及年龄的识别方法的根据预设规则增加了性别的损失值在性别及年龄的损失值之和间的比重的流程示意图;
图3为本申请实施例种性别及年龄的识别方法的计算标签中年龄对应的损失值的年龄权重的流程示意图;
图4为本申请实施例性别及年龄的识别系统的结构示意框图;
图5为本申请实施例电子装置的结构示意框图。
具体实施方式
下面结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,下述各个实施例及其技术特征可以相互组合。
请参阅图1,为本申请实施例提供的一种性别及年龄的识别方法,应用于人脸识别中,方法包括如下步骤:S1、获取人脸图像;S2、使用人脸关键点对齐人脸图像的关键点;S3、将对齐有人脸关键点的人脸图像输入预先训练的人脸属性检测模型,人脸属性检测模型在训练时根据预设规则修正了性别的损失值与年龄的损失值的比重及修正了各年龄段损失值的比重;S4、接收人脸属性检测模型输出的人脸图像上人脸的年龄及性别的识别结果。通过修正性别的损失值与年龄的损失值的比重,能够增加人脸属性检测模型对性别判断的倾向,从而减少对年龄的判断的倾向,更好地平衡了年龄、性别两个任务重损失的比例关系,因此提升了性别判断的准确率。
并且,通过修正各年龄阶段损失值的比重,能够优化各个年龄的损失值,因此使得训练出的人脸属性检测模型,减少对某个年龄段的倾向。
例如,本实施例标签中的年龄为1-100岁,标签中的性别为男和女,在训练时,一个训练数据会计算得到1-100岁的各个岁数的损失值,并计算得到一个性别的损失值,因此年龄损失值有100个,性别的损失值只有一个(男或女),因此正常情况下,性别的损失值在性别和年龄的损失值之和中仅占1/101的比重,比重较小,因此就算是性别判断错误,也不会对最终的结果造成太大影响,比重较小会导致在训练过程中模型更加倾向于去拟合年龄特征而非性别特征,从而使输出的模型性别判断不准。但是本申请实施例提供的一种性别及年龄的识别方法,增加了性别的损失值在性别及年龄的损失值之和间的比重,在训练过程中,若性别预测与性别标签不一致,模型则会更加倾向调整自身权重去拟合性别相关的特征,,会对最终的结果造成更大的影响,使得性别判断错误时,将错误的结果输出,从而使输出的模型性别判断不准。
请参阅图2,在一个实施例中,性别及年龄的识别方法还包括以下在训练人脸属性检测模型前,根据预设规则修正性别的损失值与年龄的损失值的比重的步骤:S21、获取训练数据的标签,标签中具有该训练数据中包含的人脸图像的年龄及性别的信息;S22、修正标签中年龄对应的损失值的年龄权重;S23、利用年龄权重计算性别权重,所有标签年龄的年龄权重相加后的和与性别权重的比例为预设比例,预设比例的值小于各个标签年龄的年龄权重相加后的和;S24、利用性别权重、年龄权重分别计算标签中性别对应的损失值及年龄对应的损失值。
通过计算标签中年龄对应的损失值的年龄权重,能够优化各个年龄的损失值,因此使得训练出的人脸属性检测模型,能够减少对某个年龄段的倾向,例如:
在只考虑年龄时,而不对年龄的损失值增加年龄权重时,这批的训练数据是100个,分别是1-100岁的人物照片,每张人物照片的标签均有100个,在填写每张人物照片的标签时,对n岁的人,该张人物照片的前n个标签都是1,后100-n个标签都是0,根据标签1的数量来确定该张人物照片对应人物的年龄。
但是对于其中的99(2-100岁)个人物照片,前2个标签都是1。也就是说,只要人脸属性检测模型将前两个标签都始终输出为1,那么对于该模型在这批数据上的错误率也只有1/100。所以模型会倾向于输出较大的年龄以维持较小的损失,此时,1岁的人被误判为大于1岁的人可能性非常高。
另外,对任意一张人物照片的第50个标签输出1,对这批数据来说错误率是1/2,因此年龄在靠近中位的人会被更为慎重的判断,即使误判,也没有一定被误判为年龄更大或一定被误判成年龄更小的确定倾向;因此会对老人和小孩的年龄判断产生较大的偏差。
而在计算训练数据的不同年龄的标签中年龄对应的损失值的年龄权重,且将年龄权重附加在年龄损失值上,能够优化各个年龄的损失值,使得老人和小孩代表的年龄的损失值,占据更多的所有年龄的损失值和的比重,能够使得训练出的人脸属性检测模型,减少对老人及小孩代表的年龄段的倾向。
请参阅图3,在一个实施例中,修正标签中年龄对应的损失值的年龄权重包括:S211、计算训练数据在各年龄阶段分布平均状态下各年龄阶段的二分类交叉熵的年龄损失值;S212、计算获取所有年龄中的每个年龄占所有年龄的年龄应占比例;S213、计算所有训练数据中,每个年龄训练数据的数量占所有训练数据的年龄数据比例;S214、将所有的年龄应占比例与年龄数据比例的商作为对应的年龄损失值的年龄权重。
在该实施例中,以1-100岁的人物照片为例,每个年龄应占比例为1:100,即0.01,若1岁的孩子照片占总数据的比例为0.001,那么用0.01/0.001=10,则对于1岁孩子的损失值增加10的年龄权重,即使用1岁孩子的损失值乘以10作为年龄的损失值。
在一个实施例中,修正标签年龄对应的损失值的年龄权重还包括:为每个年龄阶段的年龄损失值赋予初始权重,每个年龄阶段的初始权重不同,且随着年龄阶段的增长,每个年龄阶段的初始权重先减小后增大;将每个年龄阶段的年龄权重及初始权重的乘积作为年龄损失值的权重。
在该实施例中,仍以1-100岁的人物照片为例,先将所有年龄以十岁划分年龄阶段,再赋予每个年龄阶段的损失值的初始权重如下:
age<10:1*L_a;
10<=age<20:0.8*L_a;
20<=age<30:0.6*L_a;
30<=age<40:0.4*L_a;
40<=age<60:0.2*L_a;
60<=age<70:0.4*L_a;
70<=age<80:0.6*L_a;
80<=age<90:0.8*L_a;
90<=age:1*L_a;
其中,L_a为年龄的损失值,age为年龄数值,由于在只考虑年龄时,而不对年龄的损失值增加年龄权重时,对老人和小孩的年龄判断产生较大的偏差(具体参见上述实施例,这里不再陈述),这里将年龄阶段从小到大排序后,从前往后为所有年龄阶段赋予先减小后增大的年龄权重,能够使得老人和小孩代表的年龄的损失值,占据更多的所有年龄的损失值和的比重,能够使得训练出的人脸属性检测模型,减少对老人及小孩年龄判断偏差较大的倾向。
应当理解的是,上述实施例中,是在训练数据中的年龄阶段分布平衡下为每个年龄阶段的损失值增加的权重,使得每个年龄阶段的权重增加也是有序的,但是,若上述实施例中的训练是无序的,则需要以下步骤为每个年龄阶段的损失值增加权重:
将在训练数据中的年龄阶段分布平衡下的年龄阶段的损失值的权重作为初始权重,且由于训练数据的年龄为1-100岁,则每个年龄应占比例为1:100,即0.01,若1岁的孩子照片占总数据的比例为0.001,那么用0.01/0.001=10,则对于1岁孩子的损失值增加10的年龄权重,即使用1岁孩子的损失值乘以10作为年龄的损失值:1*10*L_a,在各个初始权重均乘以10以后,会进一步增大各老人及小孩损失值占所有损失值之和的比重,使得训练出的人脸属性检测模型,进一步减少对老人及小孩代表的年龄段的倾向。
在上述实施例中,预设比例为6:1,在其他实施例中,预设比例还可根据实验结果进行调整,由于年龄判断实质上难度要大于性别判断,因此该年龄损失值的与性别损失值的比例需小于性别损失值,且在该实施例中,将性别权重符合上述规则的情况下设置为10,即性别的最终的二分类交叉熵损失值为10*L_g,L_g为性别的损失值。
在一个实施例中,步骤S3是将对齐有人脸关键点的人脸图像输入预先训练的人脸属性检测模型进行人脸检测;在另一个实施例中,步骤S3还可以在未预先训练人脸属性检测模型的情况下,执行如图2及图3中步骤进行训练前的数据处理,随后训练人脸属性检测模型,再将对齐有人脸关键点的人脸图像输入人脸属性检测模型进行人脸检测。在实际的应用过程中,可根据当前是否有训练好的人脸属性检测模型进行选择,若具有训练好的人脸检测模型,则步骤S3为将对齐有人脸关键点的人脸图像输入预先训练的人脸属性检测模型进行人脸检测,若没有训练好的人脸检测模型,则步骤S3为执行如图2及图3中步骤进行训练前的数据处理,随后训练人脸属性检测模型,再将对齐有人脸关键点的人脸图像输入人脸属性检测模型进行人脸检测。
在一个实施例中,性别及年龄的识别方法还包括:对人脸属性检测模型识别结果的精度进行验证,若验证集中超过80%的样本预测年龄差值的绝对值小于预先给定值,则可判定为模型训练较好,可进行模型输出,使用输出的模型进行图像中年龄及性别的检测。
在上述实施例中,预先给定值为5。
在未采用上述实施例对识别结果进行验证前,现有技术采用的年龄判断精度计算方法有可能无法找到模型训练最佳的停止点。其计算方法为计算一组数据中预测年龄与标签年龄(真实年龄)差值的平均值。这样的精度评估无法反映出年龄预测的波动。例如,差异平均值为正负3.4岁的模型,并非意味着真实年龄的范围是预测年龄-3.4<真实年龄<预测年龄+3.4。因为求取的是年龄差异的平均值,意味着某个人的年龄差异与真实年龄可能有十岁之差。而实际中,我们希望的应该是预测年龄的波动尽量小,在某个范围内的误差是可以被接受的,但超出这个范围的预测是不能接受的,这样不能接受的误差应该被当作预测错误,而在容忍范围内的误差则应视为正确的预测。
在采用上述实施例对人脸检测模型进行验证后,能够提升人脸属性检测模型的精度,在验证的过程中,若标签年龄与预测年龄差值的绝对值大于给定的预先给定值,则该样例视为错误判断,如|标签年龄-预测年龄|<=5,满足这一条件的才能被视为正确判断,可根据这样的计算方法来计算模型在验证集或者批样本上的预测精度,并以此选择最佳模型,使用最佳模型作为人脸检测模型。
在本实施例中,为了增加模型的适用性,保证训练数据和验证场景的表现相似,会在训练数据中加入噪声(质量较差的图像)来提升人脸属性检测模型的鲁棒性。
在一个实施例中,性别及年龄的识别方法具体如下:先为训练数据标签中年龄及性别的损失值增加权重,随后训练人脸属性检测模型,并增加人脸属性检测模型精度的验证方法,在得到最佳精度的人脸属性检测模型后,将获取的人脸图像输入上述得到的最佳的人脸属性检测模型,人脸属性检测模型识别并输出人脸图像的年龄及性别,从而完成性别及年龄的识别。
其中,在训练人脸属性检测模型时,根据预设规则增加性别的损失值在性别及年龄的损失值之和间的比重的步骤如下:获取训练数据的标签,标签中具有该训练数据中包含的人脸图像的年龄及性别的信息;修正标签中年龄对应的损失值的年龄权重;利用年龄权重计算性别权重,所有标签年龄的年龄权重相加后的和与性别权重的比例为预设比例,预设比例的值小于各个标签年龄的年龄权重相加后的和。
在计算标签中年龄对应的损失值的年龄权重时,步骤如下:计算训练数据在各年龄阶段分布平均状态下各年龄阶段的二分类交叉熵的年龄损失值;计算获取所有年龄中的每个年龄占所有年龄的年龄应占比例;计算所有训练数据中,每个年龄训练数据的数量占所有训练数据的年龄数据比例;将所有的年龄应占比例与年龄数据比例的商作为对应的年龄损失值的年龄权重。
在修正标签中年龄对应的损失值的年龄权重时,还有如下步骤:每个年龄阶段的年龄损失值赋予初始权重,每个年龄阶段的初始权重不同,且随着年龄阶段的增长,每个年龄阶段的初始权重先减小后增大;将每个年龄阶段的年龄权重及初始权重的乘积作为年龄损失值的权重。
其中,预设比例为6:1。
在为每个阶段的年龄增加权重及为性别增加权重后,开始使用训练数据来训练人脸属性模型,在训练的过程中,为人脸属性模型的精度进行验证,验证的方法包括以下步骤:若验证集中超过80%的样本预测年龄差值的绝对值小于预先给定值,则可判定为模型训练较好,可进行模型输出,使用输出的模型进行图像中年龄及性别的检测;其中,预先给定值为5。
在将人脸属性模型训练完成后,则由以下步骤来识别人脸图像的年龄及性别:获取人脸图像;使用人脸关键点对齐人脸图像的关键点;将对齐有人脸关键点的人脸图像输入人脸属性检测模型;接收人脸属性检测模型输出的人脸图像上人脸的年龄及性别的识别结果。
上述的性别及年龄的识别方法,通过修正性别的损失值与年龄的损失值的比重,能够增加人脸属性检测模型对性别判断的倾向,从而减少对年龄的判断的倾向,更好地平衡了年龄、性别两个任务重损失的比例关系,因此提升了性别判断的准确率。
并且,通过修正各年龄阶段损失值的比重,能够优化各个年龄的损失值,因此使得训练出的人脸属性检测模型,减少对某个年龄段的倾向。
请参阅图4,为本申请实施例提供的一种性别及年龄的识别系统,包括:人脸图像获取模块1、关键点对齐模块2、输入模块3及接收模块4;人脸图像获取模块1用于获取人脸图像;关键点对齐模块2用于使用人脸关键点对齐人脸图像的关键点;输入模块3用于将对齐有人脸关键点的人脸图像输入预先训练的人脸属性检测模型,人脸属性检测模型在训练时根据预设规则修正了性别的损失值与年龄的损失值的比重及修正了各年龄段损失值的比重;接收模块4用于接收人脸属性检测模型输出的人脸图像上人脸的年龄及性别的识别结果。
输入模块3包括:年龄权重计算单元、性别权重计算单元、损失值计算单元;年龄权重计算单元用于获取训练数据的标签,标签中具有该训练数据中包含的人脸图像的年龄及性别的信息,并计算修正标签中年龄对应的损失值的年龄权重;性别权重计算单元用于利用年龄权重计算性别权重,所有标签年龄的年龄权重相加后的和与性别权重的比例为预设比例,预设比例的值小于各个标签年龄的年龄权重相加后的和;损失值计算单元用于利用性别权重、年龄权重分别计算标签中性别对应的损失值及年龄对应的损失值。
年龄权重计算单元包括:年龄损失值计算子单元、年龄应占比例计算子单元、年龄数据比例计算子单元及年龄权重计算子单元;年龄损失值计算子单元用于计算训练数据在各年龄阶段分布平均状态下各年龄阶段的二分类交叉熵的年龄损失值;年龄应占比例计算子单元用于计算获取所有年龄中的每个年龄占所有年龄的年龄应占比例;年龄数据比例计算子单元用于计算所有训练数据中,每个年龄训练数据的数量占所有训练数据的年龄数据比例;年龄权重计算子单元用于将所有的年龄应占比例与年龄数据比例的商作为对应的年龄损失值的年龄权重。
年龄权重计算单元还包括:初始权重附加子单元及加权子单元;初始权重附加子单元用于为每个年龄阶段的年龄损失值赋予初始权重,每个年龄阶段的初始权重不同,且随着年龄阶段的增长,每个年龄阶段的初始权重先减小后增大;加权子单元用于将每个年龄阶段的年龄权重及初始权重的乘积作为年龄损失值的权重。
性别及年龄的识别系统还包括:验证模块,用于对人脸属性检测模型识别结果的精度进行验证,若验证集中超过80%的样本预测年龄差值的绝对值小于预先给定值,则可判定为模型训练较好,可进行模型输出,使用输出的模型进行图像中年龄及性别的检测。
其中,上述中的预设比例为6:1,预先给定值为5。
本申请实施例提供一种电子装置,请参阅5,该电子装置包括:存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行该计算机程序时,实现前述中描述的性别及年龄的识别方法。
进一步的,该电子装置还包括:至少一个输入设备603以及至少一个输出设备604。
上述存储器601、处理器602、输入设备603以及输出设备604,通过总线605连接。
其中,输入设备603具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备604具体可为显示屏。
存储器601可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器601用于存储一组可执行程序代码,处理器602与存储器601耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述中的存储器601。该计算机可读存储介质上存储有计算机程序,该程序被处理器602执行时实现前述实施例中描述的性别及年龄的识别方法。
进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器601(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已经相对于一个或多个实现方式示出并描述了本申请,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本申请包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本说明书的示范性实现方式中的功能的公开结构不等同。
即,以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
在本申请中,“示例性”一词是用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何一个实施例不一定被解释为比其它实施例更加优选或更加具优势。为了使本领域任何技术人员能够实现和使用本申请,本申请给出了以上描述。在以上描述中,为了解释的目的而列出了各个细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实施例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。