一种基于特征融合的跨年龄人脸识别方法

文档序号:26174459发布日期:2021-08-06 18:19阅读:159来源:国知局
一种基于特征融合的跨年龄人脸识别方法

本发明涉及计算机图像处理技术领域,特别涉及一种基于特征融合的跨年龄人脸识别方法。



背景技术:

跨年龄人脸识别有着比较广泛的应用,包括寻找走失儿童和逃离的罪犯等,它最重要的特点就是年龄差,要求模型在同一人图片年龄不同的情况下判断所给的两张图是否为同一人。跨年龄人脸识别的难点在于较大的类内差异,相比其他的人脸属性,年龄的变化更加复杂且会对人脸产生巨大的影响,很容易产生类内差异大于类间差异的情况。考虑到跨年龄人脸识别和一般人脸识别的不同之处以及跨年龄识别的广泛应用,有必要对跨年龄人脸识别进行研究。

目前跨年龄人脸识别主要有两大类解决方法:第一类是生成法,模拟人脸随着年龄变化的过程生成不同年龄的人脸图片进行识别。生成方法本身存在一些缺点,一是对先验知识的要求较高,需要良好的参数假设。二是计算量大且比较复杂。三是对数据的要求很高,数据的年龄标签要十分准确。这种方法在受限环境下表现较好,由于非受限环境下复杂的光照,姿态,清晰度和各种遮挡,这种方法在非受限环境下的效果并不好。第二类是判别方法,判别方法的核心思想是找到强有力的对年龄有鲁棒性的人脸特征。这种方法的局限性为获得的判别信息数据量较小,不足以适应较大规模数据集。



技术实现要素:

本发明提供一种跨年龄人脸识别方法,该方法解决现有技术对跨年龄人脸的识别能力较差的问题。

为了达到上述技术效果,本发明的技术方案如下:

一种基于特征融合的跨年龄人脸识别方法,包括以下步骤:

步骤1,使用开源的retinaface人脸检测算法对图像进行人脸检测,将检测到的人脸初步裁剪为120×120像素的照片,并使用retinaface人脸关键点定位对双眼位置进行标定,得到两眼中心点的坐标分别记为(x1,y1)和(x2,y2);

步骤2,对步骤1中裁剪后的照片,进行眼部区域的对齐与裁剪;根据两眼坐标点进行图像对齐,使两个眼睛中心的连线变为水平,假设θ为需要顺时针进行旋转的角度,以θ角度旋转后,两眼中心点的坐标为和(x2,y2),以两眼间距的2倍为宽度,0.75倍为高度裁剪眼部区域;

步骤3,对步骤2裁剪得到的眼部区域使用自商增强,得到增强后的抗光照干扰的增强图像。主要思想为采用加权的高斯滤波器进行各向异性滤波,自商图像r的定义为其中i表示未经过处理的原始图像,是i平滑之后的版本,f是滤波核。

具体步骤:

(1)选择不同尺度的高斯核gi,和对应的权值wi,高斯滤波器来进行各向异性滤波。

(2)对原图进行平滑滤波,得到光照成分li,在原图中去掉光照成分带来的干扰。

(3)为了降低高频噪声的干扰,引入非线性变换:di=t(ri)

(4)对各个尺度下的自商图像计算加权和:

n为大于1的自然数,m1,m2…mn为对应每一个尺度的滤波器的权值,实验中初始值为1,得到的r为自商增强过的图像。

再对已经增强的图片使用离散小波变换降噪,该方法的重点是对离散小波变换得到的小波系数进行阈值处理,然后在阈值超过阈值的情况下重建图像。去噪方法包括三个步骤:对含噪图像进行小波变换,对含噪小波系数进行阈值处理,用上述系数重建图像得到离散小波变换降噪后的图像。

步骤4,将从步骤2中得到的眼部区域原始图像,步骤3中得到的自商增强图像r以及离散小波变换降噪后的图像,进行lbp特征的提取和特征直方图融合降维,得到眼部图像区域的每个像素点,使用从lbp操作符获得的十进制值作为bin标签计算直方图,所有块的连接直方图给出了完整图像的直方图,将三组lbp直方图作为给定图像的最终特征向量。

由于两个特征融合后具有较高的信息维数,而信息维数的增加并不意味着有效信息的增加,也就是说包含着冗余特征。因此要寻找融合特征的内部数据关系,以降低特征维度。本研究使用pca主成分分析法,降维输出的特征向量维数为2000。

步骤5,深度卷积特征的提取网络对resnet50进行改进,改进后的网络整体结构如图2所示。

在已有resnet50上的改进为第一将预训练模型的第一个7x7的卷积层(stride=2)替换成3x3的卷积层(stride=1),这样第一个卷积层就不会将输入的维度缩减。将原resnet残差单元中的第2个卷积层步长调整为2,并在每次卷积前后都增加批归一化处理(batchnorm),激活函数在relu的基础上增加部分参数,修改小于0的饱和区为非饱和区,称之为prelu。批归一化利于网络收敛,能更好地学习特征表达,非线性激活函数prelu相比relu,有更大范围的非饱和区,有效避免了随着网络深度增加、梯度衰减,引起参数不更新的问题。改进后的resnet分为5个阶段,其中阶段0的结构比较简单,可以视其为对输入图片的预处理,后4个阶段都由bottleneck组成,结构较为相似。stage1包含3个bottleneck,剩下的3个阶段分别包括4、6、3个bottleneck。每个bottleneck结构如图3所示。

步骤6,对于深度模型提取的特征使用正交深度特征分解算法,把深度特征正交分解为年龄分量和身份分量,可以表示为x=xage.xid,年龄成分被分解成一维径向分量,而身份成分则分解为高维角度分量,这两种分量最后通过多任务学习的方式同时训练,最终的损失函数是二者损失的算术叠加:loss=lid+λlage,λ为用于平衡年龄分支学习权重的超参数,其中身份成分的损失函数为arcfaceloss损失函数。

arcface损失函数公式为公式中θ表示特征向量与权重之间的角度,m为训练样本数,s为缩放系数,i为某一训练样本,yi为训练样本i所属的类别,j为某一类别,n为类别数,θj为类别j的参数。表示对于每个样本i预测正确的概率。

步骤7,使用联合损失函数在cacd数据集上进行预训练,设置保存网络模型文件的路径,在预训练时对网络模型进行保存,保存模型的图结构和权重偏置等参数信息,设置学习率、批大小和迭代次数。在训练过程中,cacd中的图像标注了具有身份标签和年龄标签的训练数据以更新参数。

训练开始前,按照0为均值、0.01为方差的高斯分布对所有卷积层的卷积核进行初始化。训练过程中,将epoch设置为125,batchsize设置为64,学习率设置为0.1,并分别在第35,65,95个epoch将学习率降低为前一阶段的十分之一。而年龄成分的损失函数为其中,n表示所述人脸图像的数量,xi表示当前人脸图像的特征向量,表示该特征向量的范数,zi表示当前人脸图像的年龄特征。

步骤8,预训练的深度模型特征取网络的最后一个卷积层输出的结果,得到特征维数和浅层眼部稳定特征维数,将两类特征融合到一个concat层中。其中融合方式是采用串行连接的方式对深度特征和眼部lbp特征进行融合,之后再连接到一个全连接层,基于arcfaceloss损失函数实现分类。

与现有技术相比本发明具有以下有益效果:

本发明方法在进行识别的特征中加入了人脸眼部区域的lbp特征,并对眼部区域进行自商增强和对增强图片进行离散小波变换降噪。这样得到的特征不仅是随年龄的变化保持稳定的特性而且lbp局部二值模式编码对图片中的光照等因素的鲁棒性也较强。

本发明使用正交分解的思想把深度特征按照模长方向和角度方向分解为一维径向分量的年龄成分和高维角度分量的身份成分,这两种分量最后通过多任务学习的方式同时训练。从而将年龄分量和身份分量有效分离开,从而达到减少年龄差异、提高跨年龄人脸识别精度的目标。

本发明在resnet深度网络中添加了全连接层融合局部眼部特征与深度身份特征添加年龄估计任务以获得年龄特征并从整个人脸特征中减去年龄因素。从而获得鲁棒性更强的年龄不变的特征向量,提升模型跨年龄人脸识别的能力。

附图说明

图1为本发明方法的总体流程图;

图2为改进resnet50的网络结构;

图3为resnet网络中每个bottlenect块的结构。

具体实施方式

为更加清楚地阐述本发明的发明目的、技术方案和技术效果,以下将结合附图及具体实施例,对本发明的技术方案进行详细说明。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

本发明提供一种基于特征融合的跨年龄人脸识别方法,包括如下几个步骤:

步骤1使用开源的retinaface人脸检测算法对图像进行人脸检测,将检测到的人脸初步裁剪为120×120像素的照片,并使用retinaface人脸关键点定位对双眼位置进行标定,得到两眼中心点的坐标分别记为(x1,y1)和(x2,y2)。

步骤2进行眼部区域的对齐与裁剪,将眼部区域的对齐与裁剪将图像裁剪为120×120的大小。根据两眼坐标点进行图像对齐,使两个眼睛中心的连线变为水平,假设θ为需要顺时针进行旋转的角度,以θ角度旋转后,两眼中心点的坐标为和(x2,y2)。研究以两眼间距的2倍为宽度,0.75倍为高度裁剪眼部区域。

步骤3对于眼部区域使用自商增强,可以得到增强后的抗光照干扰的增强图像。主要思想为采用加权的高斯滤波器进行各向异性滤波,自商图像r的定义为其中是i平滑之后的版本,f是滤波核。

具体步骤:

(1)选择不同尺度的高斯核gi,和对应的权值wi,高斯滤波器来进行各向异性滤波。

(2)对原图1进行平滑滤波,得到光照成分li,在原图中去掉光照成分带来的干扰。

(3)为了降低高频噪声的干扰,引入非线性变换:di=t(ri)

(4)对各个尺度下的的自商图像计算加权和:对应每一个尺度的滤波器的权值,实验中初始值为1。得到的r为自商增强过的图像。

再对已经增强的图片使用离散小波变换降噪,该方法的重点是对离散小波变换得到的小波系数进行阈值处理,然后在阈值超过阈值的情况下重建图像。去噪方法包括三个步骤:对含噪图像进行小波变换,对含噪小波系数进行阈值处理,用上述系数重建图像得到离散小波变换降噪后的图像。

步骤4将从步骤2与步骤3中得到的眼部区域原始图像与自商增强图像r以及离散小波变换降噪后的图像,进行lbp特征的提取和特征直方图融合降维。将得到眼部图像区域每个像素点,使用从lbp操作符获得的十进制值作为bin标签计算直方图。所有块的连接直方图给出了完整图像的直方图。将三组lbp直方图作为给定图像的最终特征向量。由于两个特征融合后具有较高的信息维数,而信息维数的增加并不意味着有效信息的增加,也就是说包含着冗余特征。因此要寻找融合特征的内部数据关系,以降低特征维度。本研究使用pca主成分分析法,降维输出的特征向量维数为2000。

步骤5对深度卷积特征的提取网络对resnet50进行改进。改进后的网络整体结构如图2所示。在已有resnet50上的改进为第一将预训练模型的第一个7x7的卷积层(stride=2)替换成3x3的卷积层(stride=1),这样第一个卷积层就不会将输入的维度缩减。将原resnet残差单元中的第2个卷积层步长调整为2,并在每次卷积前后都增加批归一化处理(batchnorm),激活函数在relu的基础上增加部分参数,修改小于0的饱和区为非饱和区,称之为prelu。批归一化利于网络收敛,能更好地学习特征表达,非线性激活函数prelu相比relu,有更大范围的非饱和区,有效避免了随着网络深度增加、梯度衰减,引起参数不更新的问题。改进后的resnet分为5个阶段,其中阶段0的结构比较简单,可以视其为对输入图片的预处理,后4个阶段都由bottleneck组成,结构较为相似。stage1包含3个bottleneck,剩下的3个阶段分别包括4、6、3个bottleneck。每个bottleneck结构如图3所示。

步骤6对于深度模型提取的特征使用正交深度特征分解算法,把深度特征正交分解为年龄分量和身份分量,可以表示为x=xage.xid。年龄成分被分解成一维径向分量,而身份成分则分解为高维角度分量。这两种分量最后通过多任务学习的方式同时训练,最终的损失函数是二者损失的算术叠加:loss=liid+λlage,入为用于平衡年龄分支学习权重的超参数。其中身份成分的损失函数为arcfaceloss损失函数。arcface损失函数公式为公式中θ表示特征向量与权重之间的角度,m为训练样本数,s为缩放系数,i为某一训练样本,yi为训练样本i所属的类别,j为某一类别,n为类别数,θj为类别j的参数,a为所设置的间隔大小。表示对于每个样本i预测正确的概率。训练过程中,将epoch设置为125,batchsize设置为64,学习率设置为0.1,并分别在第35,65,95个epoch将学习率降低为前一阶段的十分之一。而年龄成分的损失函数为其中,n表示所述人脸图像的数量,xi表示当前人脸图像的特征向量,表示该特征向量的范数,zi表示当前人脸图像的年龄特征。

步骤7使用cacd数据集对深度模型进行训练,数据集包含了2000名名人跨越了十年的图像,年龄范围从16到62岁。在训练过程中,cacd中的图像标注了具有身份标签和年龄标签的训练数据以更新参数。训练开始前,按照0为均值、0.01为方差的高斯分布对所有卷积层的卷积核进行初始化,设置学习率为0.001,批大小为256,迭代100次。

步骤8取预训练的深度模型特征取网络的最后一个卷积层输出的结果,特征维数为2048,浅层眼部稳定特征的维数为2000,研究中将两类特征融合到一个concat层中,其中融合方式是采用串行连接的方式对深度特征和眼部lbp特征进行融合。融合后的特征为consat(x,y)=(x1,x2,…,xn,y1,y2,…,yn),其中x为lbp特征,y为深度特征。之后再连接到一个全连接层,基于arcfaceloss损失函数实现分类。

综合上述,采用本发明研究的技术方案后,提取到的眼部lbp特征可以保存更多低层原始特征信息并且这些基于纹理的特征对于年龄变化更为稳定,通过正交分解和联合学习的方法提取到了更多与年龄无关的深度身份特征。将这两类特征在融合并输入全连接层中,并基于arcfaceloss损失函数实现分类,可以在现有的跨年龄人脸识别中取得更为优异的效果。

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