容忍年龄变化的人脸识别方法与流程

文档序号:16000664发布日期:2018-11-20 19:24阅读:3497来源:国知局

本发明涉及人脸识别技术领域,尤其是指容忍年龄变化的人脸识别方法。



背景技术:

在科学技术日益突飞猛进的如今,生物特征识别技术可谓是发展的尤为迅猛。其中,人脸识别这一技术被称为生物特征识别领域最困难的研究课题之一,也是非常热门的研究课题。

早在上世纪,高尔顿在《Nature》杂志分别发表了两篇关于利用人脸进行身份识别的文章,主要对人类本身的人脸识别能力进行了分析。最早的关于自动人脸识别的研究论文是上个世纪70年代Chan和Bledsoe在Panoramic Research Inc.发表的技术报告,至今已有几十年历史。

近年来,人脸自动识别的研究取得了巨大的进展。目前人脸识别领域内最著名的国际研究机构包括:美国麻省理工学院媒体实验室及人工智能实验室、南加州大学、CMU卡内基-梅隆机器人研究及交互系统实验室、马里兰大学等。另外,一些国家或地区也有不少研究机构在人脸识别领域进行了大量的研究工作。

尽管人脸识别技术比其它生物特征识别技术有许多优势,但人脸识别仍然存在着很多困难和挑战。人脸是极其不稳定的,人可以拥有不同的表情从而产生不同的脸部变化。此外,人脸在不同的光照,年龄等多个方面因素的影响下,都会对人脸识别造成或大或小的干扰。人脸老化,是每个人都必定要经历的过程。因此,年龄的变化是人脸识别过程中不容忽视的一个难题。



技术实现要素:

本发明的目的是为收集不同个体在不同时期的人脸图片减少难度,扩大神经网络训练数据集,克服年龄变化对人脸识别带来的影响,对同一个人不同年龄阶段的人脸图像进行识别分类。

为了解决以上问题,本发明借助生成对抗网络模型GAN,在现有人脸库的基础上,生成了不同年龄阶段的人脸图片,然后利用神经网络来实现跨年龄变化的人脸识别。具体技术方案如下:

一种容忍年龄变化的人脸识别方法,包括下列步骤:

步骤1,构建跨年龄人脸数据库:根据现有的人脸图片,生成在不同年龄阶段下的人脸,扩大跨年龄人脸数据库中图片的数量;

步骤2,构建基于深度神经网络的人脸识别模型:利用构建好的跨年龄人脸数据库,选择部分年龄段下的人脸作为训练数据集,剩余年龄段下的人脸就作为测试数据集;通过配置深度神经网络、训练深度神经网络,进行误差反向传播算法的前向计算、后向传导过程,以及网络参数的更新、迭代、参数优化,逐渐提高深度神经网络性能,直至深度神经网络达到满足要求的分类结果;

步骤3,利用训练好的人脸识别模型实现跨年龄的人脸识别。

进一步,步骤1中,生成在不同年龄阶段下的人脸时采用生成对抗网络模型。

进一步,步骤1中,所述不同年龄阶段分别是0-10岁、11-20岁、21-30岁、31-40岁、41-50岁、51-60岁、61-70岁、71-80岁、80-90岁、90岁以上。

进一步,步骤1中,生成在不同年龄阶段下的人脸的具体方法包括如下:

首先向生成对抗网络模型的编码器E中输入128×128×3大小的人脸图像x,经过4个卷积层、1个全连接层得到特征向量z,即E(x)=z;

然后将特征向量z与年龄向量l串联,输入到生成对抗网络的生成网络G中生成人脸图像;

最后通过判别生成网络目标函数Dimg区分是输入图像还是生成图像。

进一步,所述目标函数的表达式为:

进一步,所述步骤2中,人脸识别模型采用VGG-face模型,softmax分类器层的输出个数设置为人脸数据库内总共的人脸类别数100;所述模型的求解优化使用SGD类型的算法;

所述训练深度神经网络时,首先经过两层卷积,分别为conv1_1和conv1_2,将他们合称为conv1;conv1_1卷积层安置了64个大小为3×3的卷积核,以及固定填充padding为1,通过这两层得到大小为224×224×64的特征矩阵;经过一个线性整流层relu1输入到池化层pool1,pool1具有2×2×64的卷积核,步长为2,得到112×112×64的特征矩阵;再经过具有128个3×3的卷积核,padding为1的卷积层conv2_11,得到112×112×128的特征矩阵;然后经过线性整流层relu2、池化层pool2的处理;其中,pool2设置3×3×256的卷积核以及设置步长为2,通过池化层得到大小是56×56×128的特征矩阵;然后输入到具有256个3×3卷积核的卷积层conv3,得到56×56×256的特征矩阵;同样经过线性整流层relu3、池化层pool3,得到大小为28×28×256的特征矩阵;再经过2次卷积层和池化层的处理,到达最终全连接层,输出100维的特征矩阵。

进一步,步骤3的具体实现:首先建立用于测试深度神经网络模型的配置文件,然后利用caffe来加载训练好的深度神经网络模型,最后将要测试的图片加载到的caffe的Blob类型中,进行网络的前向传播,计算出该测试图像属于哪一类人的概率,返回类别数。

本发明的有益效果:

(1)本发明为收集不同个体在不同时期的人脸图片减少难度,扩大神经网络训练数据集,克服年龄变化对人脸识别带来的影响,对同一个人不同年龄阶段的人脸图像进行识别分类。

(2)本发明容忍年龄变化的人脸识别方法将会在许多应用领域大展身手。例如,帮助走失儿童多年后寻回亲人、帮助警察捉拿逃逸多年的罪犯等等。容忍年龄变化的人脸识别,将会为现实生活提供更加安全可靠的保障。

附图说明

图1是本发明总体流程图。

具体实施方式

下面结合附图对本发明作进一步说明。

如图1所示,本发明的方法包括如下:

首先,根据现有的人脸图片,借助生成对抗网络生成在不同年龄(分别是0-10岁、11-20岁、21-30岁、31-40岁、41-50岁、51-60岁、61-70岁、71-80岁、80-90岁、90岁以上)阶段下的人脸,扩大跨年龄人脸数据库中图片的数量,减小收集同一个人不同时期图片的难度。利用构建好的跨年龄人脸数据库,选择部分年龄段下的人脸作为训练数据集,剩余年龄段下的人脸就作为测试数据集。然后训练神经网络VGG-face模型,通过进行误差反向传播算法的前向计算、后向传导过程,以及网络参数的更新,不断迭代,不断进行参数优化,使得网络性能不断得到提高,直至网络最后实现很好的分类结果。本发明具体的步骤如下:

步骤1,下载带有年龄标签的人脸数据库。本次使用的是UTKFace数据集,UTKFace中每张图片的大小是128×128×3。

步骤2,用UTKFace数据库训练CAAE模型。向编码器E中输入128×128×3大小的人脸图像x,经过4个卷积层、1个全连接层得到特征向量z,即E(x)=z。然后将特征向量z与年龄向量l串联,输入到生成网络G中生成人脸图像。通过判别网络目标函数Dimg区分是输入图像还是生成图像。其中,该目标函数如下:

函数中x为输入的图像,E(x)是编码函数,l是年龄向量,pdata(x,l)表示图像数据分布,表示输入图像的期望。

步骤3,选择100个不同身份的人脸,测试CAAE模型生成在10个不同年龄(分别是0-10岁、11-20岁、21-30岁、31-40岁、41-50岁、51-60岁、61-70岁、71-80岁、80-90岁、90岁以上)阶段下的人脸,构建自己的跨年龄人脸数据库。

步骤4,进行图片处理。将跨年龄人脸数据库中每个人的某一年龄阶段的图片分离出作为测试集,剩余部分作为训练集。同时,将数据库中的每一个人作为一个类别,生成类别标签文件,记录在txt文件中。

然后需要将人脸图片调整大小成224×224,通过利用caffe转换格式工具convert_imageset,将图片转换成lmdb格式,然后使用caffe自带工具compute_image_mean计算其均值。

步骤5,利用VGG-face模型,VGG-face模型采用本发明设计的数据层包括用于训练的数据层以及用于测试的数据层。在两个数据层中都需要设置图片标签文件的路径、对应均值文件的路径以及每次输入处理的图像个数。将最后的概率输出层,也就是softmax分类器层的输出个数,设置成自己的人脸数据库内总共的人脸类别数100。然后配置solver文件,设置迭代次数、测试间隔、优化算法类型、学习率等参数,这些参数都是可选参数。

本发明实施例中设置了使用SGD类型的算法来求解优化。其次设置了基础学习率为0.00005,然后通过step的方式,在迭代过程中,对基础学习率进行调整。配置网络结构以及solver文件中的参数完成后,利用caffe.exe开始训练网络。将224×224×3大小的图片输入网络,首先经过两层卷积,分别为conv1_1和conv1_2,他们合称为conv1。conv1_1卷积层安置了64个大小为3×3的卷积核,以及固定填充padding为1,通过这两层得到大小为224×224×64的特征。conv1_2卷积层和conv1_1的设置相同。经过一个线性整流层relu1输入到池化层pool1,pool1具有2×2×64的卷积核,步长为2,得到112×112×64的特征矩阵。

再经过具有128个3×3的卷积核,padding为1的卷积层conv2_11,得到112×112×128的特征矩阵。然后经过线性整流层relu2、池化层pool2的处理。其中,pool2设置3×3×256的卷积核以及设置步长为2,通过池化层得到大小是56×56×128的特征矩阵。然后输入到具有256个3×3卷积核的卷积层conv3,得到56×56×256的特征矩阵。同样经过relu3、pool3,得到大小为28×28×256的特征矩阵。再经过2次卷积层和池化层的处理,到达最终全连接层,输出100维的特征矩阵。

当神经网络训练完成后,选择单张或者一批人脸图片,来检验网络是否能够将人脸识别到它对应的类别。通过新建一个用于测试模型的配置文件,然后利用caffe来加载训练好的网络模型,将要测试的图片加载到的caffe的Blob类型中,进行网络的前向传播,计算出该测试图像属于哪一类人的概率,返回类别数。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

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