本发明涉及一种基于centerloss改进的人脸模型训练方法,属于深度学习
技术领域:
。
背景技术:
:随着社会的不断发展以及各方面对于快速有效的身份验证的迫切需求,人们对于人脸识别的研究越来越重视,对人脸模型的精度要求也越来越高。人脸识别技术是基于人的脸部特征,给出输入的人脸图像的位置、大小和各个主要面部器官的位置信息,进一步提取每个人脸的特征同已知人脸进行比对,从而识别人的身份。由于人脸识别相较于其他生物技术而言,具有非接触性、非强制性、并发性等优点,因此,它在身份验证、安全监测等方面发挥着不可替代的作用。算法是影响人脸识别模型精度的核心因素。人脸识别算法是基于人脸特征来完成身份识别的一种生物识别技术,人脸识别算法需要在识别过程中提取人的脸部特征,所提取的特征对最终的分类结果有着决定性的影响。在机器学习尤其是深度学习中,softmax是一个很重要的函数,特别是在多分类的场景中应用广泛,而对于常见的图像分类问题,经常用softmaxloss来求损失,但是,基于传统意义上的网络结构的softmaxloss代价函数的监督,类别界限明确而类内差异过大。有学者提出,将softmaxloss与centerloss结合起来,共同作为神经网络训练的损失函数,改进算法的核心思想,增强类间差异并且减小类内差异,但是,以上损失函数的设计仅是在训练过程中固定centerloss的占比,并不能根据训练参数调整类内聚合的程度,容易陷入局部最优解,缺乏灵活性。技术实现要素:针对现有技术的不足,本发明提供了一种基于centerloss改进的人脸模型训练方法;本发明使centerloss动态化,提高了人脸识别模型的精度和健壮性。本发明的目的是将softmaxloss和改进的centerloss动态结合,在模型具有一定分类能力的基础上,根据训练参数控制类内聚合的程度,提高人脸识别模型的精度和鲁棒性。术语解释:1、mtcnn,multi-taskconvolutionalneuralnetworks的缩写。2、minibath策略,将整个大的训练集划分为若干个小的数据集。3、inception-resnetv1网络模型,训练中使用的卷积神经网络结构,其总体结构如图2所示。4、batchsize,当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个epoch,在不能将数据一次性通过神经网络的时,需要将数据集分成若干个小数据集即batch,batchsize是指一个batch中的样本总数,其极限值为训练集样本数。本发明的技术方案为:一种基于centerloss改进的人脸模型训练方法,包括步骤如下:(1)使用mtcnn算法剪切原总数据集中的人脸图片,将剪切出的两张及以上张人脸图片筛选出来进行排查,保证人脸id唯一,将剪切后的所有的人脸图片划分为训练集、验证集和测试集;不同人的人脸属于不同的类别,但一个类别中的人脸必须都是同一个人的,就是指人脸id唯一;(2)对训练集中的人脸图片进行预处理;(3)搭建网络结构,优化目标损失函数;(4)将步骤(2)经过预处理的训练集中的数据输入到步骤(3)构建的网络结构中进行训练,输入到网络结构中的数据采用minibath策略,设置batchsize大小为b,b不小于训练集中的样本数,batch的数目为n,n为训练集样本数除以b,训练的迭代轮数为e,e是指神经网络中传递完整的数据集的次数;训练中的损失函数为步骤(3)优化后的目标损失函数;在反向传播过程中,使用自适应参数更新算法adam优化器,指数衰减学习率不断进行梯度更新减小损失函数,直到完成设置的迭代轮数e;(5)保存人脸模型;(6)使用测试集对人脸模型进行测试。根据本发明优选的,所述步骤(1)中,当一张人脸图片中只有一个人时,使用mtcnn算法剪切时剪切一张人脸;当一张人脸图片中有两个或以上个人且剪切出来的人脸不唯一时,将该人脸图片从训练集中移动出来。根据本发明优选的,所述步骤(1)中,训练集、验证集及测试集中人脸图片的张数的比例为98:1:1。根据本发明优选的,所述步骤(2)中,包括步骤如下:a、使用双线性插值算法对步骤(1)剪切后的训练集、验证集中的人脸图片进行归一化处理,将人脸图片归一化到a*b像素大小,归一化后的人脸图片将作为网络结构的输入;其归一化后的大小即a,b的取值将由设计好的卷积神经网络结构决定,无具体的取值范围;以满足网络结构初始形状需求;b、对步骤a处理后的训练集中的人脸图片进行直方图均衡化操作。进一步优选的,a=160,b=160。根据本发明优选的,所述步骤(3)中,包括步骤如下:c、搭建inception-resnetv1网络模型,输入人脸图片的初始形状为(160,160,3),第一个160是指图片的宽,第二个160是指图片的高,单位均为像素,3是图片的通道数,表示图像是由红色r、绿色g、蓝色b三个通道组成的;d、将softmaxloss损失函数与改进后的centerloss损失函数动态结合,共同作为神经网络训练中的目标损失函数,加入到计算过程中。进一步优选的,所述softmaxloss损失函数ls,centerloss损失函数lc,以及softmaxloss损失函数ls与改进后的centerloss损失函数lc动态结合的损失函数ls_c的计算公式分别如式(ⅰ)、式(ⅱ)、式(ⅲ)所示:式(ⅰ)、式(ⅱ)、式(ⅲ)中,m表示训练中一个minibatch的训练样本总数;n表示训练样本的人脸图片id的个数;x表示训练样本在网络结构的输出特征;byi表示第i个样本的类别yi的偏置项;表示网络结构输出层的权重矩阵w∈rd×n的第j列的转置;bj表示网络结构输出层的权重矩阵w∈rd×n的第j列的偏置项;xi∈rd,表示第i个训练样本在网络结构的输出特征;d表示特征维度;表示第i个训练样本的类别yi的中心;表示网络结构输出层的权重矩阵w∈rd×n的第yi列;wj∈rd表示网络结构输出层的权重矩阵w∈rd×n的第j列;b∈rn表示偏置项;α表示centerloss的占比,0≤α≤1,α在训练过程中动态变化,根据训练参数控制同类之间内聚程度。在训练早期设置α等于0,使用softmaxloss进行分类,训练模型分类能力,扩大类间距离;训练后期加入centerloss,在模型已经具有一定分类能力的基础上进行不同程度的内聚,实现训练过程中centerloss的动态化,控制缩小类内距离的程度。根据本发明优选的,所述α动态取值的方法如下:设置centerloss配置文件,在该文件中根据训练的轮数设置α值,设置迭代轮数分别为e1,e2,e3,e4,e5,e6,e表示第e轮,α1,α2,α3,α4,α5,α6表示对应的α值,训练的轮数e与设置的α值的关系如表1所示:表1e0≤e<e1e1≤e<e2e2≤e<e3e3≤e<e4e4≤e<e5e5≤e<e6αα1α2α3α4α5α6。根据本发明优选的,所述步骤(5)中,训练过程中,保存每一次训练轮数得到的人脸模型;同时,对保存的人脸模型进行验证集验证,根据验证集结果调整训练中的参数,包括步骤如下:e、基于验证集生成pairs对文件,pairs对文件是txt格式文件,验证时,根据该pairs对文件索引到验证集中的人脸图片,该pairs对文件中包含6000对人脸图片;6000对人脸图片中,第1个300人是同一个人的两张人脸图片,第2个300人是两张不同人的人脸图片,如此循环10次;f、验证过程中,验证集给出一对人脸图片,将这一对人脸图片送入网络并加载人脸模型,进而提取人脸图片的特征向量,计算该对人脸图片的特征向量之间的欧式距离,并判断两张人脸图片是不是同一个人;如此,通过6000对人脸图片验证结果与真实结果的比值,得到人脸识别准确率;g、通过验证集的效果进行反馈,当人脸识别准确率达到一个值且不再上升时,终止当前的人脸模型训练,得到最优的人脸模型,否则,更改超参之后继续训练。根据本发明优选的,所述步骤(6)中,包括步骤如下:h、将测试集中的人脸图片进行归一化处理,使用步骤(5)中得到的人脸模型对测试集中的人脸图片进行特征提取;i、计算每两张人脸图片的特征向量之间的欧式距离d,设置判定阈值y,0.5≤y≤1.5,如果欧氏距离d大于y,则两张人脸图片中不是同一个人,反之,是同一个人。本发明的有益效果为:本发明在搭建inception-resnetv1网络模型之后将softmaxloss与改进后的centerloss动态结合共同作为神经网络训练中的目标损失函数,加入到计算过程中。由于早期只用softmaxloss作为目标损失函数来训练人脸模型的分类能力,而在训练后期加入不同占比的centerloss,根据训练参数控制类内内聚程度,通常centerloss的占比随着训练轮数的增加而增大的。在整个人脸模型训练过程中,centerloss的占比始终是动态变化的,而centerloss占比在整个训练中不变会在很大程度上影响人脸模型的类内聚合能力,容易陷入局部最优解,而centerloss占比动态规律变化克服了centerloss占比在整个训练中不变的缺点,在人脸模型具有一定分类能力的基础上增强模型类内聚合能力,达到了有效增大类间距离,缩小类内距离的目标,提升了人脸识别的准确率和鲁棒性。附图说明图1为本发明基于centerloss改进的人脸模型训练方法的流程示意图。图2为本发明inception-resnetv1网络模型的总体结构示意图。具体实施方式下面结合说明书附图和实施例对本发明作进一步说明。实施例1一种基于centerloss改进的人脸模型训练方法,如图1所示,包括步骤如下:(1)使用mtcnn算法剪切原总数据集中的人脸图片,将剪切出的两张及以上张人脸图片筛选出来进行排查,保证人脸id唯一,将剪切后的所有的人脸图片划分为训练集、验证集和测试集;训练集、验证集及测试集中人脸图片的张数的比例为98:1:1。不同人的人脸属于不同的类别,但一个类别中的人脸必须都是同一个人的,就是指人脸id唯一;当一张人脸图片中只有一个人时,使用mtcnn算法剪切时剪切一张人脸;当一张人脸图片中有两个或以上个人且剪切出来的人脸不唯一时,将该人脸图片从训练集中移动出来。(2)对训练集中的人脸图片进行预处理;包括步骤如下:a、使用双线性插值算法对步骤(1)剪切后的训练集、验证集中的人脸图片进行归一化处理,将人脸图片归一化到160*160像素大小,以满足网络结构初始形状需求,保证网络对每个人脸提取特征时输出特征维度的同一性归一化后的人脸图片将作为网络结构的输入;其归一化后的大小即a,b的取值将由设计好的卷积神经网络结构决定,无具体的取值范围;以满足网络结构初始形状需求;b、对步骤a处理后的训练集中的人脸图片进行直方图均衡化操作。(3)搭建网络结构,优化目标损失函数;包括步骤如下:c、搭建inception-resnetv1网络模型,输入人脸图片的初始形状为(160,160,3),第一个160是指图片的宽,第二个160是指图片的高,单位均为像素,3是图片的通道数,表示图像是由红色r、绿色g、蓝色b三个通道组成的;d、将softmaxloss损失函数与改进后的centerloss损失函数动态结合,共同作为神经网络训练中的目标损失函数,加入到计算过程中。softmaxloss损失函数ls,centerloss损失函数lc,以及softmaxloss损失函数ls与改进后的centerloss损失函数lc动态结合的损失函数ls_c的计算公式分别如式(ⅰ)、式(ⅱ)、式(ⅲ)所示:式(ⅰ)、式(ⅱ)、式(ⅲ)中,m表示训练中一个minibatch的训练样本总数;n表示训练样本的人脸图片id的个数;x表示训练样本在网络结构的输出特征;byi表示第i个样本的类别yi的偏置项;表示网络结构输出层的权重矩阵w∈rd×n的第j列的转置;bj表示网络结构输出层的权重矩阵w∈rd×n的第j列的偏置项;xi∈rd,表示第i个训练样本在网络结构的输出特征;d表示特征维度;表示第i个训练样本的类别yi的中心;表示网络结构输出层的权重矩阵w∈rd×n的第yi列;wj∈rd表示网络结构输出层的权重矩阵w∈rd×n的第j列;b∈rn表示偏置项;α表示centerloss的占比,0≤α≤1,α在训练过程中动态变化,根据训练参数控制同类之间内聚程度。在训练早期设置α等于0,使用softmaxloss进行分类,训练模型分类能力,扩大类间距离;训练后期加入centerloss,在模型已经具有一定分类能力的基础上进行不同程度的内聚,实现训练过程中centerloss的动态化,控制缩小类内距离的程度。α动态取值的方法如下:设置centerloss配置文件,在该文件中根据训练的轮数设置α值,设置迭代轮数分别为e1=400,e2=600,e3=900,e4=1400,e5=1800,e6=2000,e表示第e轮,α1,α2,α3,α4,α5,α6表示对应的α值,训练的轮数e与设置的α值的关系如表2所示:表2e0≤e<e1e1≤e<e2e2≤e<e3e3≤e<e4e4≤e<e5e5≤e≤e6αα1=0α2=0.01α3=0.05α4=0.1α5=0.5α6=1.0。(4)将步骤(2)经过预处理的训练集中的数据输入到步骤(3)构建的网络结构中进行训练,输入到网络结构中的数据采用minibath策略,设置batchsize大小为b,b=128,batch的数目为n,n=6000,训练的迭代轮数为e,e=2000;训练中的损失函数为步骤(3)优化后的目标损失函数;在反向传播过程中,使用自适应参数更新算法adam优化器,指数衰减学习率不断进行梯度更新减小损失函数,直到完成设置的迭代轮数e;(5)保存人脸模型;每50轮保存一次人脸模型,同时对每50轮保存的人脸模型进行验证集验证,根据验证集结果调整训练中的参数,包括步骤如下:e、基于验证集生成pairs对文件,pairs对文件是txt格式文件,验证时,根据该pairs对文件索引到验证集中的人脸图片,该pairs对文件中包含6000对人脸图片;6000对人脸图片中,第1个300人是同一个人的两张人脸图片,第2个300人是两张不同人的人脸图片,如此循环10次;f、验证过程中,验证集给出一对人脸图片,将这一对人脸图片送入网络并加载人脸模型,进而提取人脸图片的特征向量,计算该对人脸图片的特征向量之间的欧式距离,并判断两张人脸图片是不是同一个人;如此,通过6000对人脸图片验证结果与真实结果的比值,得到人脸识别准确率;g、通过验证集的效果进行反馈,当人脸识别准确率达到一个值且不再上升时,终止当前的人脸模型训练,得到最优的人脸模型,否则,更改超参之后继续训练。(6)使用测试集对人脸模型进行测试。包括步骤如下:h、将测试集中的人脸图片进行归一化处理,使用步骤(5)中得到的人脸模型对测试集中的人脸图片进行特征提取;i、计算每两张人脸图片的特征向量之间的欧式距离d,设置判定阈值y,y=0.85,如果欧氏距离d大于y,则两张人脸图片中不是同一个人,反之,是同一个人。比较所有训练过程中产出的人脸模型,判定人脸模型质量的基本原则是在不同id人脸图像分类正确的前提下,同一个id的不同人脸欧式距离d越小越好,得到人脸模型测试结果。在本发明中,α动态变化,与现有的α固定的方法相比,效果数据如表3所示:表3由表3可知,在人脸模型具有一定分类能力的基础上增强模型类内聚合能力,达到了有效增大类间距离,缩小类内距离的目标,提升了人脸识别的准确率和鲁棒性。当前第1页12