一种基于人脸属性的年龄识别方法及系统与流程

文档序号:18398534发布日期:2019-08-09 23:38阅读:463来源:国知局
一种基于人脸属性的年龄识别方法及系统与流程

本发明属于机器学习领域,涉及人脸识别方法及系统,具体涉及一种对人脸图像进行年龄预测的识别方法及系统。



背景技术:

年龄信息作为人类的一种重要生物特征,在人机交互领域中有着众多应用需求,并且对人脸识别系统的性能有着重要影响。基于人脸图像的年龄估计是指应用计算机技术对人脸图像随年龄变化的规律进行建模,从而使机器能够根据面部图像推测出人的大概年龄或所属的年龄范围。如果基于人脸图像的年龄估计问题得到解决,那么在日常生活中,基于年龄信息的各种人机交互系统将在现实生活中产生极大的应用需求。例如,通过年龄估计系统自动判断人的年龄,实现安全网络或安全门禁控制,这对保护未成年人的健康成长尤其重要;在电子顾客管理系统中,通过摄像头采集人脸图像并自动进行年龄估计,可以实现对各年龄段顾客的消费特点和产品喜好进行自动、无干扰地收集与分析,从而便于对不同年龄段的顾客进行产品开发并提供有针对性的营销服务;年龄变化所带来的人脸外貌变化对人脸别系统的性能有着非常重要的影响,年龄信息作为一种生物特征,除了会对使用者的身份认证提供有效的信息外,也将大大提高多年龄人脸识别系统的性能。

为了对人脸图像的年龄进行判断,现有的一些年龄识别系统采用了训练后的神经网络对人脸的年龄属性进行识别,然而在实际应用过程中,由于年龄的变化在人脸上没有明显的特征,因此使用神经网络对年龄属性会产生较大的误差。

同时,神经网络需要大量的数据集进行训练才能够减少在预测过程中的误差,而现有的人脸图像数据集中,具有确切年龄数值的人脸图像的不足以让神经网络的误差减小,这就无法对人脸的年龄精确的预测。



技术实现要素:

为解决上述问题,提供一种能够大幅度提升年龄预测精度,从而解决当前人脸年龄属性预测误差大的年龄识别方法,本发明采用了如下技术方案:

本发明提供了一种基于人脸属性的年龄识别方法,用于对待识别图像进行人脸识别从而判断出与该待识别图像对应的人物的预测年龄数值,其特征在于,包括如下步骤:步骤s1,构建基于分类回归的深度神经网络模型并采用多个具有对应的实际年龄值的现有人脸图像作为训练集对该深度神经网络模型进行训练,从而得到训练后的深度神经网络模型作为年龄预测模型;步骤s2,对待识别图像进行预处理从而获得预处理识别图像;步骤s3,将预处理识别图像输入年龄预测模型获取年龄期望值作为预测年龄数值,其中,步骤s1包括如下子步骤:步骤s1-1,对用于作为训练集的多个现有人脸图像进行预处理从而获得同一尺寸的预处理现有图像;步骤s1-2,将预处理现有图像水平翻转并随机添加高斯噪声形成的处理图像以及预处理现有图像作为待训练图像;步骤s1-3,构建含有输入层、卷积模块、下采样层以及分类回归模块的深度神经网络模型;步骤s1-4,将分类回归模块根据年龄类别进行分类并初始化对应各个年龄类别的年龄计算概率;步骤s1-5,将待训练图像作为训练集从输入层输入深度神经网络模型,并进行前向传播至分类回归模块完成年龄期望值的计算;步骤s1-6,根据训练集所对应的实际年龄值、年龄期望值以及年龄计算概率计算损失误差;步骤s1-7,将损失误差反向传播并更新模型参数;步骤s1-8,重复步骤s1-5至步骤s1-7直至达到训练完成条件,得到训练后的深度神经网络模型作为年龄预测模型。

本发明提供的基于人脸属性的年龄识别方法,还可以具有这样的技术特征,其中,卷积模块包括多个依次连接的残差结构层以及并行的一个原始数据层构成,分类回归模块包括softmax层、softmaxwithloss层以及l1loss层。

本发明提供的基于人脸属性的年龄识别方法,还可以具有这样的技术特征,其中,损失误差包括交叉熵损失以及绝对值损失,交叉熵损失由softmaxloss层根据年龄计算概率以及实际年龄值计算获得,绝对值损失由l1loss层根据年龄期望值以及实际年龄值计算获得。

本发明提供的基于人脸属性的年龄识别方法,还可以具有这样的技术特征,其中,年龄类别具有分别对应各个年龄阶段的101个类别。

本发明提供的基于人脸属性的年龄识别方法,还可以具有这样的技术特征,其中,预处理为将现有人脸图像或待识别图像进行人脸识别,并根据识别出的人脸位置进行裁剪和对齐处理,进一步归一化至224×224的大小。

本发明提供的基于人脸属性的年龄识别方法,还可以具有这样的技术特征,其中,训练完成条件为完成了预定的循环次数、参数已经收敛或消除了训练误差。

本发明还提供了一种基于人脸属性的年龄识别系统,用于对待识别图像进行人脸识别从而判断出与该待识别图像对应的人物的预测年龄数值,其特征在于,包括:预处理部,对待识别图像进行预处理从而获得预处理识别图像;以及年龄计算部,对预处理识别图像进行处理从而计算预测年龄数值,该年龄计算部含有经过采用多个现有人脸图像作为训练集训练得到的特征提取模型,其中,年龄预测模型采用如下方法获得:步骤1,对用于作为训练集的多个现有人脸图像进行预处理从而获得同一尺寸的预处理现有图像;步骤2,将预处理现有图像水平翻转并随机添加高斯噪声作为待训练图像;步骤3,构建含有输入层、卷积模块、下采样层以及分类回归模块的深度神经网络模型;步骤4,将分类回归模块根据年龄类别进行分类并初始化对应各个年龄类别的年龄计算概率;步骤5,将待训练图像作为训练集从输入层输入深度神经网络模型并进行前向传播;步骤6,将前向传播的数据通过分类回归层进行年龄期望值的计算,进一步根据年龄期望值以及年龄计算概率计算损失误差;步骤7,将损失误差反向传播并更新模型参数;步骤8,重复步骤5至步骤7直至达到训练完成条件,得到训练后的深度神经网络模型作为年龄预测模型。

发明作用与效果

根据本发明的基于人脸属性的年龄预测方法及系统,由于中采用了基于分类和回归两种方式的年龄预测模型,能够更好的学习图像特征并减少年龄预测的mae值。在模型的分类方式中,通过细分类的方式提供年龄类别的划分,从而让年龄预测模型能够根据分类计算出的年龄概率值计算相应的年龄期望值作为预测年龄数值,因此能够使年龄计算过程中的误差降低、大幅度的提升预测精度;在模型的回归方式中,进一步根据待训练图像的实际年龄值与预测年龄数值计算损失误差进行回归测试以实现精修,使计算结果更加精确。相对于通过网络模型直接获得人脸年龄值的方法,本发明的分类回归方法能更好地预测年龄属性,在lap数据集上的测试结果相比于其他先进的年龄预测模型的年龄mae值有了较大程度的降低,年龄预测更加精准,并且在复杂场景下的目标检测任务中取得了极好的效果。

同时,本发明的年龄预测模型通过改变网络模型的结构,使得结构更为优化简单,不仅不需要使用模型混合、多任务训练以及度量学习等方法,还能够让模型训练所需的数据量相对减少,即能够仅使用8万张训练图片作为训练数据,解决了收集大量的训练数据极其困难的问题。

附图说明

图1是本发明实施例中基于人脸属性的年龄识别方法的流程图;

图2是本发明实施例中年龄预测模型的结构示意图;

图3是本发明实施例中部分卷积模块的结构示意图;

图4是本发明实施例中对年龄预测模型进行测试的数据样例;

图5是本发明实施例中对年龄预测模型进行测试的数据样例;以及

图6是本发明实施例中基于人脸属性的年龄识别系统的结构图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例及附图对本发明的基于人脸属性的年龄识别方法作具体阐述。

本发明提出的年龄预测模型,采用基于分类和回归两种方式的人脸深度神经网络年龄预测模型,用于实现该年龄预测模型并执行的计算机硬件平台需要一张gpu显卡进行计算加速。

<实施例>

图1是本发明实施例中基于人脸属性的年龄识别方法的流程图。

如图1所示,基于人脸属性的年龄识别方法主要包括以下步骤。

步骤s1,构建初始模型并进行训练。即,构建基于分类回归的深度神经网络模型并采用多个具有对应的实际年龄值的现有人脸图像作为训练集对该深度神经网络模型进行训练,从而得到训练后的深度神经网络模型作为年龄预测模型,该年龄预测模型的构建及训练过程包括如子下步骤:

步骤s1-1,对用于作为训练集的多个现有人脸图像进行预处理从而获得同一尺寸的预处理现有图像。

本实施例中,作为训练集的现有人脸图像来源于年龄数据集imdb-wiki以及年龄数据集lap(lookatpeople)的训练数据训练得到最终的年龄预测模型,该融合数据集包含不同人的50多万张训练图片。imdb-wiki数据集共包含524230张人脸图片,其中imdb有461871张,wikipedia有62359张;chalearnlap提供一个由微软赞助的新收集的大型数据集(即lap数据集),它收集了至少10000个15秒的视频,这些视频是从youtube上收集的,由amt的工作人员用个性特征注释,因此lap数据集能够根据年龄段划分为20个不同的分组,本实施例采用每个分组中的90%图像用来训练。

本实施例中,对人脸图像(即现有人脸图像或是待识别图像)进行预处理的过程如下:

步骤s1-1-1,对人脸图像进行人脸识别,检测出人脸以及五官的位置。本实施例中,人脸以及五官的位置识别通过现有的人脸识别技术实现,该人脸以及五官的位置为人脸上至少包括双眼中心、鼻头以及两侧嘴角在内的关键位置点。

步骤s1-1-2,根据步骤s1-1-1中检测的位置对人脸图像进行裁剪和对齐处理,并将图像的尺寸归一化(即调整为同一尺寸)。本实施例中,裁剪与对齐处理均依据人脸上的关键位置点进行,在裁剪与对齐后就通过通常的图像调整手段将各人脸图像归一化至224×224的大小。

步骤s1-2,对步骤s1-1获得的预处理现有图像进行水平翻转并随机添加高斯噪声形成的处理图像以及预处理现有图像作为待训练图像。即,将原有的预处理现有图像以及经过水平翻转并添加高斯噪声的预处理现有图像同时作为待训练图像,从而扩充训练集的数据量。

本实施例的步骤s1-2中,进行水平翻转以及随机添加高斯噪声的处理图像为imdb-wiki数据集中的所有图像,从而扩充训练集,使得模型在此基础上更具有鲁棒性。同时,lap数据集则不添加高斯噪声,从而在模型通过imdb-wiki数据集训练后由该lap数据集进行更精确的训练。

步骤s1-3,构建初始模型。本实施例中,初始模型为基于分类回归的深度神经网络模型,当该深度神经网络模型完成训练后即为本实施例中用于计算年龄数值的年龄预测模型。

本实施例的深度神经网络模型利用深度学习框架caffe搭建,模型主干部分采用了现有技术中的resnet50结构,为了减少网络模型参数,将原始resnet50结构中的最后两层全连接层去除,并直接在res5c层后接了一层池化层,然后对池化后的特征图进行分类和回归。

图2是本发明实施例中年龄预测模型的结构示意图。

如图2所示,输入的原图(即待训练图像或是待识别图像)经过裁剪、对齐输入包括输入层1、卷积模块2、下采样层3以及分类回归模块4的年龄预测模型(即深度神经网络模型)。

输入层1用于输入处理图像(即待训练图像或是预处理识别图像),在该输入层1中处理图像的改变大小为224×224×3。

卷积模块2具有五个残差结构层,并且由两路数据(一路是五个残差结构层级联的数据,一路是原始数据)相加求和构成,如附图3所示,图中仅显示了卷积模块2中的两层残差结构层(即卷积层),当原始数据x输入卷积模块2时,依次通过各个残差结构层进行计算最终得到结果f(x),在输出卷积模块2时进行加和形成f(x)+x并输出至下采样层3。并且,卷积模块2的网络结构中每一个残差结构层之后都需要进行批量归一化(batchnormalization)操作(该归一化操作通过图3中的relu函数进行,同时卷积模块2在输出f(x)+x时也会进行一次归一化操作)。

本实施例中,卷积模块2的各个残差结构层的参数为:残差结构层c1的卷积核大小为3×3,滑动步长为1,填充为0,输出为112×112×64;残差结构层c2的卷积核大小为3×3,滑动步长为1,填充为0,输出为56×56×128;残差结构c3的卷积核大小为3×3,滑动步长为1,填充为0,输出为28×28×256;残差结构c4的卷积核大小为3×3,滑动步长为1,填充为0,输出为14×14×512;残差结构c5的卷积核大小为3×3,滑动步长为1,填充为0,输出为7×7×512。

下采样层3用于进行池化操作,其步长为7。

分类回归模块4包括softmax层、softmaxwithloss层以及l1loss层。softmax层用于计算年龄计算概率以及计算该年龄计算概率的期望值,softmaxwithloss层以及l1loss层为损失误差的计算层。

步骤s1-4,将分类回归模块根据年龄类别进行分类并初始化对应各个年龄类别的年龄计算概率。

本实施例中,softmax层包括softmax分类器,能够根据预先设定的年龄类别对年龄进行分类。在年龄类别取值为101时,softmax分类器就将年龄分成101个类别(即每一岁的年龄分别对应1个类别,从0岁-100岁),进一步对下采样层3的池化结果进行处理从而得到对应的待训练图像在各个类别的概率值(各101个类别的概率总和为1)。

步骤s1-5,将待训练图像作为训练集从输入层输入深度神经网络模型,并进行前向传播至分类回归模块完成年龄期望值的计算。即,将训练集从输入层1开始,依次经过残差结构层c1、残差结构层c2、残差结构层c3、残差结构层c4、残差结构层c5、下采样层,并在每一层将在该层计算出的数据传播至下一层。

本实施例中,当前向传播的数据传播至分类回归模块时,softmax层就根据该数据计算其对应每个年龄类别的概率值,进一步根据各个概率值计算得到对应当前正在训练的待训练图像的年龄期望值。

步骤s1-6,根据训练集所对应的实际年龄值、年龄期望值以及年龄计算概率计算损失误差。

本实施例中,损失误差包括交叉熵损失(softmaxloss)以及绝对值损失(l1loss)。在分类回归模块中,softmaxwithloss层用于根据年龄期望值对softmax分类器的年龄计算概率进行误差计算,l1loss层用于根据步骤s1-5中得到的年龄期望值和实际年龄值做l1_loss回归。

步骤s1-7,将损失误差(softmaxloss,l1loss)反向传播并更新模型参数。即,根据损失误差在模型中进行反向传播计算,从而在训练过程中逐渐调整模型中各层的参数,使损失误差逐渐降低。

步骤s1-8,重复步骤s1-5至步骤s1-7直至达到训练完成条件,得到训练后的深度神经网络模型作为年龄预测模型。

本实施例中,为了方便图像输入、加快模型训练速度,用imdb-wiki数据集的523051张作为预训练数据,将预训练数据分批次进入网络模型进行训练,每次进入网络模型的训练图片批次大小为80(即每批次为80张人脸图像,然后分别进行步骤s1-5至步骤s1-7的处理),一共迭代训练5万次。然后将基于imdb-wiki数据集训练好的模型作为年龄预训练模型,再次基于lap的训练数据集进行迭代训练,从而得到最终的年龄预测模型。

本实施例中,年龄数据集imdb-wiki的获取方式为:从imdb-wiki网站上列出的100000名最受欢迎的演员名单中,并(自动)从他们的个人资料、出生日期、姓名、性别以及与此人相关的所有图像中搜索。此外,从同一元信息的维基百科用户页面中获取所有配置文件图像。删除了没有时间戳(即拍摄照片的日期)的照片。假设具有单张脸的图像可能显示演员,并且时间戳和出生日期是正确的,就能够为每个这样的图像分配生物年龄(即实际年龄值)。由于网络数据可能存在错误信息导致为各个图像分配的实际年龄值可能是不准确的,因此,年龄数据集imdb-wiki用于作为初始模型的预训练数据进行预训练,进一步通过实际年龄值更为准确的年龄数据集lap对预训练后的初始模型进行更精确的训练从而获得年龄预测模型。

本实施例中,训练完成条件为将所有的年龄数据集imdb-wiki以及用于训练的年龄数据集lap都训练完毕。

经过上述步骤,本实施例的年龄预测模型就完成了构建与训练,可以用于进行年龄预测了。本实施例中,训练后的上述年龄预测模型作为一种年龄计算部,用于对待识别图像进行年龄预测数值的计算,从而对人脸图像的年龄进行判定。

将待识别图像输入训练好的年龄预测模型前还需要进行相应的预处理,即步骤s2:对待识别图像进行预处理从而获得预处理识别图像。

本实施例中,采用未用于训练的剩余10%的年龄数据集lap作为测试数据集对年龄预测模型进行测试。

本实施例的步骤s2中,对待识别图像进行的预处理过程与作为训练集的现有人脸图像的预处理过程相同(即步骤s1-1-1至步骤s1-1-2),在此不再赘述。

步骤s3,将预处理识别图像输入年龄预测模型获取年龄期望值作为预测年龄数值。

本实施例中,利用lap官网提供的测试代码,将lap1和lap2共3057张人脸图片作为测试数据,依次输入年龄预测模型,最终得到该人脸对应的预测年龄数值。相对于现有技术中原用于年龄识别的基线模型,年龄预测模型的mae值降低至3.02。如图4所示,对待识别的原始图像进行预处理(即图中crop&align)后得到待识别图像,进一步输入本发明的年龄预测模型进行识别的结果预测年龄数值为39.67,与图像是实际年龄值40非常接近。图5是采用本发明的年龄预测模型对更多的待识别图像进行识别的结果,可以看出,识别出的预测年龄(estimation)与人脸的实际年龄(gt)基本相符。

图6是本发明实施例中年龄检测系统的结构框图。

如图6所示,年龄检测系统100包括图像获取部11、预处理部12、年龄计算部13、年龄输出部14以及系统控制部15。其中,年龄检测系统基于本发明的年龄预测方法,用于对待识别图像进行人脸识别从而判断出与该待识别图像对应的人物的预测年龄数值。

图像获取部11用于获取用户输入的待识别图像。

预处理部12用于对获取的待识别图像进行预处理从而获得预处理识别图像。本实施例中,预处理部12的处理方法年龄预测方法的步骤s2相对应。

年龄计算部13用于对预处理部12获得的预处理识别图像进行处理从而计算待识别图像的预测年龄数值。本实施例中,年龄计算部13由训练后的年龄计算模型构成,其运行过程与年龄预测方法的步骤s3相对应。

年龄输出部14用于将年龄计算部13计算出的预测年龄数值输出给用户查看。

系统控制部15用于对年龄检测系统100的各个构成部分的工作进行控制。

实施例作用与效果

根据本实施例提供的基于人脸属性的年龄预测方法及系统,由于中采用了基于分类和回归两种方式的年龄预测模型,能够更好的学习图像特征并减少年龄预测的mae值。在模型的分类方式中,通过细分类的方式提供年龄类别的划分,从而让年龄预测模型能够根据分类计算出的年龄概率值计算相应的年龄期望值作为预测年龄数值,因此能够使年龄计算过程中的误差降低、大幅度的提升预测精度;在模型的回归方式中,进一步根据待训练图像的实际年龄值与预测年龄数值计算损失误差进行回归测试以实现精修,使计算结果更加精确。相对于通过网络模型直接获得人脸年龄值的方法,本发明的分类回归方法能更好地预测年龄值,在lap数据集上的测试结果相比于其他先进的年龄预测模型的年龄mae值也有较大程度的降低,年龄预测更加精准,并且,该年龄预测模型在复杂场景下的目标检测任务中取得了极好的效果。

同时,本发明的年龄预测模型通过改变网络模型的结构,使得结构更为优化简单,不仅不需要使用模型混合、多任务训练以及度量学习等方法,还能够让模型训练所需的数据量相对减少,即能够仅使用8万张训练图片作为训练数据,从侧面解决了收集大量的训练数据极其困难的问题。

实施例中,由于分类回归模块具有softmax层,通过对年龄类别进行分类,从而能够根据输入的图像获取该图像对应各个年龄分类的概率,进一步对这些概率求取期望值得到年龄预测数值,实现了更精确的年龄计算,与通常的基线模型相比较,该年龄计算方法在准确率方面得到了极大提升。

实施例中,由于通过含有交叉熵损失以及绝对值损失的损失误差对年龄预测模型进行回归处理,因此不仅能够对年龄预测模型中各层的计算参数进行调整,还能够对分类回归模块中softmax层的分类算法进行精确的调整,提高了年龄预测模型回归处理效率。

实施例中,由于对作为训练集的待训练图像进行水平翻转以及添加高斯噪声的处理,因此扩充了训练集的数据量。

上述实施例仅用于举例说明本发明的具体实施方式,而本发明不限于上述实施例的描述范围。

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