基于人脸图像的年龄估计模型构建方法及估计方法与流程

文档序号:16265523发布日期:2018-12-14 21:53阅读:267来源:国知局
基于人脸图像的年龄估计模型构建方法及估计方法与流程

本发明涉及人脸图像识别领域,具体涉及一种基于人脸图像的年龄估计模型构建方法及估计方法。

背景技术

年龄信息作为人类的一种重要生物特征,在人机交互领域中有着众多应用需求,并且对人脸识别系统的性能有着重要影响。人脸图像的年龄估计是指应用计算机技术对人脸图像随年龄变化的规律进行建模,从而使机器能够根据面部图像推测出人的大概年龄或所属的年龄范围。

现有技术在对基于人脸图像的年龄估计时,有使用gabor特征和lbp特征,利用svm对年龄分类;还有kpls(kernelpartialleastsquares)回归和bif(biologicallyinspiredfeatures)方法进行人脸年龄估计。

现有技术中在对人脸图像进行年龄估计时,没有考虑到肤色差异以及衰老过程对年龄估计准确率的影响,使得年龄估计的准确率不高。



技术实现要素:

本发明的目的在于提供基于人脸图像的年龄估计模型构建方法及估计方法,用以解决现有技术中的方法在对人脸图像进行年龄估计时,由于没有考虑肤色影响导致年龄估计准确率不高等问题。

为了实现上述任务,本发明采用以下技术方案:

一种基于人脸图像的年龄估计模型构建方法,方法包括:

步骤1、对多幅具有人脸的图像进行人脸检测,截取仅有人脸部分的图像作为人脸图像,将多幅人脸图像保存为原始人脸图像集;

步骤2、将所述原始人脸图像集中所有人脸图像分为两组,其中所有黑色皮肤的人脸图像组成第一图像集,所有非黑色皮肤的人脸图像组成第二图像集;

为所述第一图像集中的每幅人脸图像分别对应各自的年龄标签,获得第一年龄标签集,为所述第二图像集中的每幅人脸图像分别对应各自的年龄标签,获得第二年龄标签集,其中所述的年龄标签为人脸图像中人脸的真实年龄值;

步骤3、对所述的第一图像集中的每幅人脸图像提取lbp特征,获得每幅人脸图像的第一lbp特征;对所述的第一图像集中的每幅人脸图像采用深度卷积神经网络提取dcnn特征,获得每幅人脸图像的第一dcnn特征;将每幅人脸图像的第一lbp特征与第一dcnn特征进行融合,获得每幅人脸图像的第一图像特征,收集第一图像集中所有人脸图像的第一图像特征,获得第一图像特征集;

对所述的第二图像集中的每幅人脸图像提取lbp特征,获得每幅人脸图像的第二lbp特征;对所述的第二图像集中的每幅人脸图像采用深度卷积神经网络提取dcnn特征,获得每幅人脸图像的第二dcnn特征;将每幅人脸图像的第二lbp特征与第二dcnn特征进行融合,获得每幅人脸图像的第二图像特征,收集第二图像集中所有人脸图像的第二图像特征,获得第二图像特征集;

步骤4、将第一图像特征集作为输入,第一年龄标签集作为输出,训练xgboost回归模型,获得第一年龄估计模型;

将第二图像特征集作为输入,第二年龄标签集作为输出,训练xgboost回归模型,获得第二年龄估计模型。

进一步地,将所述原始人脸图像集中所有人脸图像分为两组,具体包括:

步骤21、从原始人脸图像集中取出多幅人脸图像作为分组图像集,为分组图像集中的每幅人脸图像分别对应各自的肤色标签,所述的肤色标签包括[0]黑色皮肤以及[1]非黑色皮肤,收集分组图像集中所有人脸图像的肤色标签,获得肤色标签集;

步骤22、提取所述的分组图像集中每幅人脸图像的颜色特征以及lbp特征,并将每幅人脸图像的颜色特征以及lbp特征进行融合,获得每幅人脸图像肤色特征,收集分组图像集中所有人脸图像的肤色特征,获得肤色特征集;

步骤23、将所述的肤色特征集作为输入,肤色标签集作为输出,训练xgboost分类模型,获得人脸分类模型;

步骤24、利用步骤23中获得的人脸分类模型对经过步骤22处理的原始人脸图像集中人脸图像进行分组,获得黑色皮肤的人脸图像或非黑色皮肤的人脸图像。

进一步地,所述xgboost分类模型中的损失函数为logisticloss。

进一步地,所述的采用inception-v3网络提取dcnn特征。

进一步地,所述的采用inception-v3网络提取dcnn特征时,将inception-v3网络中的顶层全局平均池化层替换为全局最大池化层,在所述全局最大池化层后添加多层高斯分布初始化的全连接层,将kl损失层的标签分布替换为深度标签分布,将所述多层高斯分布初始化的全连接层中的最后一个全连接层的输出作为所述的dcnn特征。

进一步地,在所述全局最大池化层后添加两层高斯分布初始化的全连接层,采用反向传播finetune方法更新所述的inception-v3网络中全局最大池化层以及添加的两层高斯分布初始化的全连接层的权重,获得所述第二个全连接层的输出,利用指数衰减法设置学习速率,其中初始学习速率为0.1,最小步长为32,迭代次数为100。

进一步地,高斯分布初始化的全连接层的高斯分布均值为0,方差为0.01。

进一步地,所述xgboost回归模型中的损失函数为squareloss。

一种基于人脸图像的年龄估计方法,采用所述的步骤1处理待估计图像,获得待估计人脸图像,对所述的待估计人脸图像进行年龄估计,方法包括:

步骤a、采用所述的人脸分类模型对经过步骤22处理的待估计的人脸图像进行分类,若人脸图像为黑色皮肤的人脸图像,执行步骤b;若人脸图像为非黑色皮肤的人脸图像,执行步骤c;

步骤b、采用所述的第一年龄估计模型对经过步骤3处理的黑色皮肤的人脸图像进行年龄估计;

步骤c、采用所述的第二年龄估计模型对经过步骤3处理的非黑色皮肤的人脸图像进行年龄估计。

本发明与现有技术相比具有以下技术特点:

1、本发明将个体肤色差异的影响考虑到年龄估计方法之内,对数据库中的人脸图像按照肤色的差异进行黑色和非黑色进行分类,对分类后的图像分别建立年龄估计模型,与已有的方法相比较能够有效的减少肤色差异带来的影响。

2、将inception-v3深度卷积神经网络最后的全局平均池化层改为全局最大池化层,因为全局平均池化能够减小卷积核大小受限造成的估计值方差增大的问题,更多的是保留图像的背景信息,而人脸的年龄估计想要更多保留的是纹理信息,全局最大池化能够减小卷积层参数误差造成估计值均值偏移的问题,更多的保留了纹理信息。

3、采用深度标签分布学习算法和inception-v3深度卷积神经网络,使用迁移学习对数据进行网络微调,提取深度特征,并与lbp特征融合,互补了dcnn直接提取人脸特征时忽略了其局部结构特征的问题和lbp特征提取时依赖人工选择介入主观因素的问题。

附图说明

图1为本发明提供的模型构建方法的流程图;

图2为本发明提供的第一图像集中的人脸图像;

图3为本发明提供的第二图像集中的人脸图像;

图4为本发明一个实施例中提供的待估计图像;

图5为本发明一个实施例中提供的待估计人脸图像;

图6为本发明又一个实施例中提供的待估计人脸图像;

图7为本发明一个实施例中提供的各个年龄估计算法增加训练样本后mae结果图;

图8为本发明提供的xgboost算法中树的深度选取实验结果图。

具体实施方式

以下是发明人提供的具体实施例,以对本发明的技术方案作进一步解释说明。

由于人脸皮肤颜色之间存在差异,比如说非洲人的皮肤颜色大多为黑色,欧洲人的皮肤颜色大多为白色,亚洲人的皮肤颜色大多为黄色,因此黑色皮肤是指非洲人的肤色,非黑色皮肤是指欧洲、亚洲人等的白、黄等肤色。

实施例一

本发明公开了一种基于人脸图像的年龄估计模型构建方法,用于构建对具有人脸的图像进行年龄估计的模型,如图1所示,方法包括:

步骤1、对多幅具有人脸的图像进行人脸检测,截取仅有人脸部分的图像作为人脸图像,将多幅人脸图像保存为原始人脸图像集;

由于采集到的图像中不仅包括人脸,还有许多其他的干扰因素,因此在本步骤中,将图像中的人脸部分提取出来,作为人脸图像,提高后续步骤的处理速度。

在本实施例中,具有人脸的图像均来自于morph数据库,在该数据库中有超过13,000个人的55134张图像。每个人大约有4张图像,年龄从16岁到77岁,他们来自不同的种族,其中非洲人约占77%,欧洲人约占19%,其余4%包括亚洲人等。从这55134张图像中随机选取10000张黑色皮肤图像,10000张非黑色皮肤图像,采用matlab人脸检测工具箱对这20000张图像进行人脸检测,将检测到人脸部分提取出来,保存为299*299像素的人脸图像,这20000张人脸图像组成了一个原始人脸图像集。

步骤2、将所述原始人脸图像集中所有原始人脸图像分为两组,其中所有黑色皮肤的人脸图像组成第一图像集,所有非黑色皮肤的人脸图像组成第二图像集;

为所述第一图像集中的每幅图像分别对应各自的年龄标签,获得第一年龄标签集,为所述第二图像集中的每幅图像分别对应各自的年龄标签,获得第二年龄标签集,其中所述的年龄标签为图像中人脸的真实年龄值;

将原始人脸图像集中的所有原始人脸图像分成黑色皮肤和非黑色皮肤两组的方法可以是提取人脸图像特征后,采用神经网络分类器、支撑向量机分类器对图像进行分类。

作为一种优选的实施方式,在本发明中,提取图像的颜色特征以及lbp特征作为人脸图像特征,并采用xgboost分类模型进行分类。

具体地,本发明提供的将人脸图像按照皮肤颜色的分类方法包括以下步骤:

步骤21、从原始人脸图像集中取出多幅人脸图像作为分组图像集,为分组图像集中的每幅图像分别对应各自的肤色标签,所述的肤色标签包括[0]黑色皮肤以及[1]非黑色皮肤,收集分组图像集中所有图像的肤色标签,获得肤色标签集;

在本实施例中,从原始人脸图像集中取出1000幅人脸图像作为分组图像集,其中500幅为黑色皮肤[0],另外500幅为非黑色皮肤[1],根据分组图像集中人脸图像的顺序对应其肤色标签,获得了一个1000*1维的向量作为肤色标签集。

步骤22、提取所述的分组图像集中每幅人脸图像的颜色特征以及lbp特征,并将每幅原始人脸图像的颜色特征以及lbp特征进行融合,获得每幅人脸图像肤色特征,收集分组图像集中所有图像的肤色特征,获得肤色特征集;

在本步骤中,将彩色人脸图像的像素值作为颜色特征,在提取lbp特征之前,为了提高算法运行速度,将彩色人脸图像进行灰度化,获得灰度人脸图像进行lbp特征提取,将每幅人脸图像进行分割后,对图像分割后的每一个区域提取lbp特征。

在本实施例中,将人脸图像分割成10*10的正方形区域,对每个区域采用lbp特征算子,采用等价模式计算到直方图特征,赋予每个区域相等的权重,将每个区域的特征连接,得到了5900维的lbp特征。

在将颜色特征以及lbp特征进行融合时,可以选择基于贝叶斯决策理论的算法、基于稀疏表示理论的算法、基于深度学习理论的算法等,在本申请中,为了提高算法的效率,将lbp特征与颜色特征首尾拼接进行融合,获得每幅人脸图像肤色特征。

步骤23、将所述的肤色特征集作为输入,肤色标签集作为输出,训练xgboost分类模型,获得人脸分类模型;

在本步骤中对xgboost分类模型进行训练,损失函数可以是squareloss,logisticloss等、正则项可以是l1正则、l2正则等。

在本实施例中,所述xgboost分类模型中的损失函数为logisticloss,正则项为l2正则。

步骤24、利用步骤23中获得的人脸分类模型对经过步骤22处理的原始人脸图像集中人脸图像进行分组,获得黑色皮肤人脸图像或非黑色皮肤人脸图像。

在本步骤中,对原始人脸图像集中人脸图像利用人脸分类模型进行分类,获得每幅图像的肤色性质。经过本步骤的分类,原始人脸图像集中每幅人脸图像均获得其对应的皮肤颜色标签,因此现在的原始人脸图像集分成了两组,一组是所有黑色皮肤的人脸图像组成的第一图像集,另一组则是所有非黑色皮肤的人脸图像组成的第二图像集。

最后,为第一图像集中的每幅人脸图像分别对应各自的年龄标签,获得第一年龄标签集;为第二图像集中的每幅人脸图像分别对应各自的年龄标签,获得第二年龄标签集,其中所述的年龄标签为图像中人脸的真实年龄值。

在本实施例中,为如图2所示的黑色皮肤人脸图像的真实年龄为67,对应其年龄标签[67],为如图3所示的非黑色皮肤人脸图像的真实年龄为50,对应其年龄标签[50]。

在本发明中,为了减少肤色差异带来的对年龄估计的影响,为黑色皮肤人脸图像以及非黑色皮肤人脸图像分别建立一套年龄估计模型,因此在对人脸图像进行估计时,根据人脸皮肤的颜色不同,选用不同的年龄估计模型。

步骤3、对所述的第一图像集中的每幅人脸图像提取lbp特征,获得每幅人脸图像的第一lbp特征;对所述的第一图像集中的每幅人脸图像采用深度卷积神经网络网络提取dcnn特征,获得每幅人脸图像的第一dcnn特征;将每幅人脸图像的第一lbp特征与第一dcnn特征进行融合,获得每幅人脸图像的第一图像特征,收集第一图像集中所有人脸图像的第一图像特征,获得第一图像特征集;

在本步骤中,第一图像集中的所有人脸图像的lbp特征采用步骤22中提取到的lbp特征,获得第一lbp特征特征集。

在采用卷积神经网络提取dcnn特征时,可以采用alexnet网络、zf网络、inception-v3网络等。

作为一种优选的实施方式,采用inception-v3网络提取dcnn特征,获得dcnn特征集。

采用inception-v3网络提取第一dcnn特征,获得第一dcnn特征集,在本发明中采用inception-v3网络为保留人脸更多的纹理信息,对inception-v3网络的结构进行了改进,并修改了其中的部分参数。

具体地,所述的采用inception-v3网络提取dcnn特征时,为了使方法不容易出现过拟合,将inception-v3网络中的顶层全局平均池化层替换为全局最大池化层,在所述全局最大池化层后添加多层高斯分布初始化的全连接层,将kl损失层的标签分布替换为深度标签分布,将所述多层高斯分布初始化的全连接层中的最后一个全连接层的输出作为所述的dcnn特征。

将inception-v3深度卷积神经网络最后的全局平均池化层改为全局最大池化层,因为全局平均池化能够减小卷积核大小受限造成的估计值方差增大的问题,更多的是保留图像的背景信息,而人脸的年龄估计想要更多保留的是纹理信息,全局最大池化能够减小卷积层参数误差造成估计值均值偏移的问题,更多的保留了纹理信息。

为保证算法的有效性以及处理的速度,本发明提供的方案在所述全局最大池化层后添加2层高斯分布初始化的全连接层,见表1,采用反向传播finetune方法更新所述的inception-v3网络中全局最大池化层以及添加的2层高斯分布初始化的全连接层的权重,获得所述第二个全连接层的输出,利用指数衰减法设置学习速率,其中初始学习速率为0.1,最小步长为32,迭代次数为100。

作为一种优选的实施方式,高斯分布初始化的全连接层的高斯分布均值为0,方差为0.01。

表1改进后的inceptionv3网络结构

另外,本发明为了年龄估计算法的准确率,将kl损失层的标签分布替换为深度标签分布,深度标签分布是一种将每个人脸年龄图像对应的年龄标签转变成一种离散的标签分布,用深度卷积神经网络最小化真实年龄标签和预测年龄标签的kullback-leibler差异的标签分布学习算法,本发明采用kullback-leiblerdivergenc作为标准衡量真实标签分布与预测标签分布之间相似性的标准,用随机梯度下降法来优化损失函数。

经过上述步骤,本方案实现了对第一图像集中每幅人脸图像的lbp特征以及dcnn特征的提取,为保证特征提取的准确性从而保证年龄估计的准确性,本方案将lbp特征以及dcnn特征进行融合,以克服dcnn特征直接提取时忽略了其局部结构特征的问题以及lbp特征在提取时存在的主观因素较多的问题。

特征融合的方式可以是基于贝叶斯决策理论的算法、基于稀疏表示理论的算法、基于深度学习理论的算法等,在本方案中,为了提高算法的效率,直接将lbp特征与dcnn特征首尾拼接,获得第一图像集中每幅图像的第一图像特征,从而获得第一图像集的第一图像特征集。

对所述的第二图像集中的每幅人脸图像提取lbp特征,获得每幅人脸图像的第二lbp特征;对所述的第二图像集中的每幅人脸图像采用深度卷积神经网络提取dcnn特征,获得每幅人脸图像的第二dcnn特征;将每幅人脸图像的第二lbp特征与第二dcnn特征进行融合,获得每幅人脸图像的第二图像特征,收集第二图像集中所有人脸图像的第二图像特征,获得第二图像特征集。

对第二图像集中的所有人脸图像采用与处理第一图像集中所有人脸图像相同的方法,提取lbp特征以及dcnn特征后进行融合,获得第二图像集中所有人脸图像的第二图像特征,从而获得第二图像特征集。

步骤4、将第一图像特征集作为输入,第一年龄标签集作为输出,训练xgboost回归模型,获得第一年龄估计模型;

将第二图像特征集作为输入,第二年龄标签集作为输出,训练xgboost回归模型,获得第二年龄估计模型。

在本方案中,针对第一图像特征集与第二图像特征集分别建立了两个年龄估计模型,即黑色皮肤的图像特征集对应第一年龄估计模型,非黑色皮肤的图像特征集对应了第二年龄估计模型。

在建立年龄估计模型时,采用了xgboost回归模型,并利用输入和输出进行训练,作为一种优选的实施方式,所述xgboost回归模型中的损失函数为squareloss。

实施例二

采用实施例一种的步骤1处理待估计图像,获得待估计人脸图像,对所述的待估计人脸图像进行年龄估计。

在本实施例中,对如图4所示的待估计图像进行年龄估计,首先经过步骤1处理后,获得如图5所示的待估计人脸图像,对该待估计人脸图像进行年龄估计。

具体地,方法包括:

步骤a、采用实施例一中所述的人脸分类模型对经过步骤22处理的待估计的人脸图像进行分类,若人脸图像为黑色皮肤人脸图像,执行步骤b;若人脸图像为非黑色人脸图像,执行步骤c。

在本实施例中,利用人脸分类模型对如图6所示的人脸图像进行分类,结果为黑色[0]皮肤人脸图像,执行步骤b。

步骤b、采用实施例一所述的第一年龄估计模型对经过步骤3处理的黑色皮肤人脸图像进行年龄估计;

步骤c、采用实施例一所述的第二年龄估计模型对经过步骤3处理的非黑色皮肤人脸图像进行年龄估计。

在步骤b、c中,对不同皮肤颜色的人脸图像进行年龄估计。

在本实施例中,对如图6所示的待估计人脸图像选择第一年龄估计模型进行年龄估计,获得年龄标签为:[70],即该幅图像中人脸的估计年龄为70岁。

实施例三

人脸估计模型的有效性试验

为了证明本发明提出的人脸年龄估计模型的有效性,进行两组实验,实验一采用本文的提取特征的方法,分别用现有年龄估计的算法进行实验,包括bp神经网络、svm、knn和标签分布学习算法iis-lld、cpnn。对于cpnn,隐藏层单元的数量为400,knn算法中的k设置为61,bp神经网络的激活函数为sigmoid,隐藏层有100个神经元。实验二在使用相同数据库的基础上通过与现有年龄估计方法结果的对比,对比的方法包括ages、mtwgb、ohranker和rkcca等。

在对原始图像集进行分类时,黑色皮肤标记为0,非黑色皮肤标记为1,阈值设置为0.6,分类的结果大于阈值则分为非黑色皮肤,采用10折交叉验证法进行实验,最后平均分类的准确率为0.94,偏差为0.03。

表2列出了输入特征不同的情况下年龄估计的对比结果,mae1是指模型仅采用分类后图像的lbp特征作为输入特征得到的平均绝对误差,mae2是指模型仅采用分类后图像的深度特征作为输入特征得到的平均绝对误差,mae3是指模型采用分类后图像的lbp特征和深度特征作为输入特征得到的平均绝对误差。

表2:输入特征不同的年龄估计对比结果

从表2的结果可以看出本文提出的年龄估计模型展现出优异的性能。前五种对比算法的结果是对黑色皮肤人脸图像和非黑色皮肤的人脸图像两种模式结果的平均。采用特征融合后,大部分算法都有比仅用单一特征的效果好,除了bp神经网络和svm之外,可能的原因是随着样本数和特征维数的增加带来的影响。bp神经网络算法的学习速度很慢,bp神经网络算法采用梯度下降法进行优化,而它所要优化的目标函数又非常复杂,这使得bp算法低效,从数学角度看,bp算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值。由于数据库样本的数量较多,且对年龄进行分类的类别数较多,矩阵的存储和计算将耗费大量的机器内存和运算时间,这可能会影响svm算法的性能。knn算法的时间复杂度和存储空间会随着训练集规模和特征维数的增大而快速增加,因为每次新的待分样本都必须与所有训练集一同计算比较相似度,采用knn算法对数据库种的人脸图像进行分类时,由于分类的年龄类别较多,样本的类别极为不平衡,对每个人来讲,很难保证每个年龄段至少有一张图像,有的年龄段有多张图像,有的则几乎没有,这会影响分类的准确率。iis-lld和cpnn算法是geng等人提出的特定解决人脸年龄估计的算法,cpnn表现更好的原因可能是,首先,cpnn在没有先验假设的情况下学习,而iis-lld假设是最大熵模型,其不一定适合年龄估计的问题。其次,所有类标签在cpnn中共享相同的一组模型参数,而iis-lld单独地学习每个类标签的参数,因此cpnn可以更好地利用类标签之间的相关性,但是cpnn带来的高偏差说明其更容易受到过拟合的影响。

如表2所示,本发明提出的年龄估计模型,对黑色皮肤的人脸图像年龄估计的结果要好于非黑色皮肤的人脸图像年龄估计的结果,可能的原因是在数据库图像采集的过程中,受到光照的影响,特别是对于白色皮肤的人脸图像而言,受到的影响最大。

卷积神经网络在目标检测和图像识别等领域有着卓越的表现,其中重要的原因是大量的训练数据,对年龄估计的问题而言,增加训练样本的数量是否会对结果产生影响,为了进一步验证这个想法,逐渐将morph数据库中剩余的30000多张黑色皮肤的人脸图像加入到建立的黑色皮肤人脸年龄估计模型当中,而测试数据保持相同,结果如图7所示,通过增加训练样本的数量,利用本文提出的年龄估计模型,能够得到更低的mae为3.39。

表3列出了的本发明提供的年龄估计模型的对比结果,本发明提出的方法取得了较好的结果,其中对非黑色皮肤的人脸图像的年龄估计的结果不太理想,可能的原因训练样本数不足,其中0-16岁这个年龄段几乎没有样本图像,并且每个年龄段不能保证数据的充分,再加上光照的影响,干扰了纹理特征的提取,但是对黑色皮肤的人脸图像的年龄估计取得了较好的结果,morph数据库大约有40000张黑色皮肤的人脸图像,黑色的肤色和光照的亮度差异明显,因此光照对结果影响可能较小。

表3:不同年龄估计模型的对比结果

对xgboost算法而言,树的深度也是一个重要的参数,树的深度不足,可能导致欠拟合现象,估计出的年龄结果不准确,如果树的深度过深,则会产生过拟合的现象,因此对树的深度的选取要进行实验验证,如图8所示,当树的深度为3时,得到的树模型能够产生较好的结果。

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