基于分数阶微分的卷积神经网络人脸识别
2022-02-10彭朝霞蒲亦非
彭朝霞, 蒲亦非
(四川大学计算机学院, 成都 610065)
1 引 言
人脸识别是利用图像特征提取比对来进行生物识别的一种重要模式[1],与指纹识别和虹膜识别相比,具有非接触式、可自动抓取、应用成本较低等优点,在国家经济安全、信息安全和公共安全等方面发挥着重要的作用.近年来随着深度学习的快速发展,人脸识别作为计算机视觉领域最热门的研究方向之一,其发展也取得了巨大的成功.传统的人脸识别方法主要包括主成成分分析[2](Principal Component Analysis, PCA)、线性判别分析[3](Linear Discriminant Analysis, LDA)和支持向量机[4](Support Vector Machine, SVM)等.主成分分析方法是将原始数据通过正交变换投影到低维子空间中来提取数据的主要特征,以此减少提取的特征空间维数,所以能在较小的存储代价和较低的计算复杂度下获得相对较高的准确性.线性判别分析的核心思想是最大化类间间距,同时最小化类内间距,相较于主成成分分析方法,线性判别分析人脸识别对光照、人脸表情和姿态的变化更不敏感,这也在一定程度上提升了识别效果.支持向量机的人脸识别是在特征空间上找到一个唯一的分类超平面,对于待检测样本,通过计算它相对于超平面的位置进行分类,实验证明,支持向量机对于人脸识别有较好的识别效果,但是由于它对每类样本的训练数据需求量较大,使得该方法在实际应用中往往面临较大的困难.与传统人脸识别方法相比,基于深度学习[5]的神经网络模型提取到的特征具有更强的泛化性和鲁棒性,在识别效果上能达到更好的识别精度.1998年,Lecun等[6]提出了LeNet-5用于手写数字体识别,为后来基于卷积神经网络提出的一系列人脸识别模型奠定了基础.2012年,Krizhevsky等[7]提出了一个深层卷积神经网络AlexNet,并以准确率远超第二名的成绩获得了2012年ILSVRC-2012比赛的冠军,从此引发了卷积神经网络的快速发展.2014年,VGGNet[8]和GoogLeNet[9]的出现被视为卷积神经网络发展的又一里程碑,这两种模型分别获得了2014年ILSVRC-2014比赛的第二名和第一名.VGGNet在AlexNet的基础上加入了更多的卷积层,扩展了网络深度,在人脸识别上实现了更好的效果,同时也充分说明加深网络模型深度是改善模型质量的一个有效途径.卷积神经网络的快速发展极大地提高了人脸识别的准确率,但同时深层的网络模型结构带来的计算力耗费和时间代价也是不可避免的.
近年来,分数阶微分在各个领域的应用愈加广泛,越来越多的学者也将分数阶微分应用到了深度学习领域.蒲亦非[10]提出将分数阶微分应用到图像处理领域,利用分数阶微分增强图像细节纹理信息的同时能够很好的保留图像中的平滑区域,在视觉效果上有很大的突破.Rostami等[11]设计了优化的分数阶梯度法,将卷积神经网络中反向传播的整数阶梯度定义为分数阶梯度,利用改进的分数阶梯度对网络进行训练,使得图像识别效果更好,同时加快了网络的收敛速度.Bao等[12]提出了带有L2正则化的分数阶反向传播神经网络,利用分数阶更新反向传播过程中的权重,同时利用分数阶算法对L2正则化的影响提高网络的识别精度.随着分数阶微分在神经网络方面的研究发现,分数阶微分对神经网络的稳定性以及收敛速度等方面都有一定的提升效果.由于分数阶微分的记忆性和遗传性,且分数阶模型包含整数阶模型,在网络模型中应用分数阶能使得模型具有更大的灵活性,所以将分数阶运用到神经网络模型中能为模型的优化提供更大的可能性.
深度学习的快速发展促进了人脸识别技术的愈加成熟,但由于在现实生活中,设备捕捉到的人脸图像受到自然光照、人物姿态表情、环境背景等因素的影响,或是在当前新冠肺炎疫情下,佩戴口罩造成的人脸遮挡,这些现象使得人脸识别依然面临着一些挑战.基于此,我们提出了一种基于分数阶微积分(Fractional-order Differential)卷积神经网络模型的人脸识别算法FD-ResNet,在改进算法中基于残差网络ResNet提取特征,利用分数阶微分处理网络中的节点函数Sigmoid,加快函数的收敛速度,在模型中添加注意力机制增强提取特征的健壮性.同时,增加网络结构中的卷积层使得网络模型提取到更多的人脸细节信息.最后,采用ArcFace[13]作为损失函数来对数据进行分类,提高了训练效率和识别效果.
2 FD-ResNet
2.1 分数阶微积分数学方法
分数阶微分作为微分的重要分支,通过将传统的整数阶导数的阶次扩展到分数以及复数域,并将其运用到信号处理等领域取得了非常好的效果.由于分数阶微分相较于整数阶特有的记忆性和遗传性,在图像处理中能够捕捉到更多的边缘和纹理信息,同时在卷积神经网络模型中能够提取到更多的特征,所以将分数阶微分应用到神经网络模型中对于提升模型训练精度,加快模型收敛速度都有显著的效果.本文中我们在网络模型结构中使用了经典的Grunwald-Letnikoff(G-L)分数阶微分,其定义如下.
(1)
其中,[a,x]是f(x)的持续区间,v是阶次,
(2)
(3)
当v=0.1,0.3,0.5,0.7,0.9时,q(k)随k的变化曲线如图1所示.
图1 q(k)变化曲线图Fig.1 q(k) change curve
2.2 FD-ResNet算法设计
本文以ResNet残差网络[14]作为特征提取结构,在提取丰富的人脸特征的同时简化对更深层网络结构的训练,避免在加深模型结构深度时造成的模型退化问题,ResNet残差块结构如图2所示.
图2 残差块结构Fig.2 Residual block structure
在残差块当中,当输入为x的时候,输出y为
y=F(x,{Wi})+x
(4)
通过迭代我们可以将网络中任意层的特征表示为
(5)
由反向传播原理,我们将误差假设为ε,对xl求偏导可以得到
(6)
通道注意力机制表示为
Mc(F)=σ(MLP(AvgPool(F))+
(7)
其中,σ为Sigmoid函数;W0和W1为卷积乘法的权重.
空间注意力机制表示为
Ms(F)=
σ(f7×7([AvgPool (F);MaxPool (F)]))=
(8)
其中,σ为Sigmoid函数,7×7代表卷积核大小.改进后的卷积注意力模块结构如图3所示.
图3 卷积注意力模块Fig.3 Convolution attention module
同时在改进后的注意力模块中我们利用分数阶对节点函数Sigmoid进行处理,Sigmoid函数表示为
(9)
其1阶导数为
(10)
其0.5阶导数为
(11)
令
e-t=p,
同理可以得到Sigmoid的0.3和0.8阶导数分别为
(12)
(13)
Sigmoid函数及其1阶导数图像如图4所示.
图4 Sigmoid函数及其导数图像Fig.4 Sigmoid function and its derivative image
从图4可以看出来,相较于Sigmoid的整数阶微分,在使用分数阶微分处理节点函数时,函数的0.5阶导数相对于1阶导数在函数的0和1处值的变化非常快,这可以显著加快网络模型在训练过程中的收敛速度,同时减少由于增加网络模型深度所花费的时间代价.
本文在ResNet残差网络的基础上,加入了通道注意力和空间注意力机制,利用分数阶微分对节点函数进行处理加快模型收敛速度,将ResNet网络的7×7卷积改为两个3×3卷积,同时为了减少池化层进行下采样以及减少网络参数时造成的图片特征信息的大量丢失,去掉了模型中的池化层,将内边距padding由3改为1,同时将步长设置为2,缩小卷积核以此获得更多的人脸特征信息.改进后的残差网络模型结构FD-ResNet如图5所示.
图5 FD-ResNet 网络结构图Fig.5 FD-ResNet network structure diagram
2.3 分类函数的设计
本文采用ArcFace损失函数作为分类函数,函数定义为
lossArc=
(14)
其中,N是每一个训练批次中人脸图像的数量;θi是特征与权重向量Wi的角度;m是控制优化难度的超参数,网络将最后一个全连接层的输入x的范数固定为s,从而消除特征分布在半径方向上的变化.
全连接层权重和输出特征经过归一化操作.
(15)
Arcface是softmax损失函数的改进方法,函数将m作为角度加在了余弦空间上,使得在0-π这个单调区间上,cos((θyi,i)+m)更小,即等价于(θyi,i)更大,说明样本与自己的类中心夹角过大.
正是由于角度距离比余弦距离对角度的影响更加直接,所以利用了参数m来提高样本的训练环境,当loss收敛的时候,θ就会更加小,使得类间尽量可分离,类内尽量聚拢.
3 实验与分析
3.1 数据集预处理
本次实验采用CASIA-WebFace[17]作为训练数据集,CASIA-WebFace数据集包含了在网络上收集的10 575个人的494 414张人脸图像,我们先使用训练好的MTCNN[18]神经网络对数据集中的图片进行检测,并将检测到的人脸图片裁剪为112×112像素大小,如图6所示,然后我们在LFW[19]、AgeDB-30[20]和CFP-FP三个人脸数据集上进行了测试,LFW数据集包含了13 233张在无约束设置下拍摄的5749人的人脸图像,每张图像均给出了对应的人名,且绝大部分人仅有一张图片,AgeDB-30数据集包含了16 488张属于568幅不同名人的图像,每张图像都标明了身份、年龄和性别属性;CFP数据集包含了500个不同身份的人脸图片,包含每个人不同的正脸和侧脸,能够有效优化模型对于人脸正面和侧面的识别效果.
图6 MTCNN预处理的部分人脸集Fig.6 Partial face sets after MTCNN preprocessing
3.2 实验环境及参数设置
本文所有的实验都是基于操作系统为Ubuntu 5.4.0-6ubuntu1,GPU为NVIDIA GeForce GTX1080Ti,训练和测试都是在pytorch开源深度学习框架下使用python语言进行的.训练中的batch-size设置为64,初始学习率设置为0.05,迭代总轮数epoch设置为25,迭代到第14个和第22个epoch时学习率衰减为上次学习率的0.1倍,为了防止模型过拟合,将总的权重衰减参数设置为5×10-4,在训练中采用随机梯度下降策略SGD[21]对模型进行优化,将动量参数设置为0.9.
3.3 实验结果比较
我们在基于CASIA-WebFace数据库上进行了迭代训练,并在LFW、AgeDB-30和CFP-FP三个不同的数据集上进行了测试,图7为测试数据集当中的部分人脸对.
在FD-ResNet中随着epoch增大,训练的识别率变化以及不同epoch下在LFW,AgeDB-30和CFP-FP三个数据集上的测试识别率如图8所示,从图8可以看出,随着训练轮次的增加,识别率在显著增长,在改变学习率的第14个epoch中,训练模型的识别率有显著的提升,但是在第22个epoch改变学习率时,模型的精度并没有得到明显改善,说明模型已经几乎达到收敛状态.
(a) 相同标签
图8 模型在每个epoch的识别变化率Fig.8 Recognition change rate of model at each epoch
为了验证该算法在利用不同分数阶次处理节点函数Sigmoid时对模型识别效果和收敛速度的影响,我们改变处理Sigmoid导数的阶次,得到了不同阶次下FD-ResNet100在LFW、AgeDB-30和CFP-FP三个不同的数据集上的测试效果如表1所示,在CASIA-WebFace数据集上的训练收敛时间变化如图9所示.
图9 基于FD-ResNet的各阶次训练时间比较Fig.9 Comparison of training time of each order based on FD-ResNet
从表1和图9中可以看出,在微分阶次较小时,算法的识别效果有所下降,但随着阶次逐渐接近于1时,算法效果有明显提升,同时与整数阶次相比,采用分数阶次在训练模型时收敛时间有明显提升,所以在模型中应用合适的分数阶次能在不降低算法识别效果的基础上显著提高算法收敛速度.
为了验证该算法对原有ResNet残差网络的改进效果,我们增加网络模型深度,同时利用改进的注意力机制和微分阶次算法在基于ResNet50,FD-ResNet50,ResNet100,FD-ResNet100四个不同的网络模型中训练并分别在LFW、AgeDB-30、CFP-FP三个不同的数据集上进行了测试,并将其识别准确率进行了比较,实验结果如图10所示.
图10 基于ResNet的各方法结果比较Fig.10 Comparison of results of different methods based on ResNet
实验结果可以看出,本文提出的引入注意力机制和分数阶微分的改进残差网络模型结构的表现效果最佳,在LFW,AgeDB-30和CFP-FP三个测试数据集上分别以99.583%、94.583%和96.014%的识别准确率获得了最佳识别效果.在引入通道注意力和空间注意力机制后提高了网络模型获取特征的能力,相较于ResNet50,本文提出的网络FD-ResNet50在LFW、AgeDB-30和CFP-FP三个数据集上的识别率分别提高了0.084%和0.597%、0.029%,同时相较于ResNet-100,FD-ResNet100在LFW,AgeDB-30和CFP-FP三个数据集上的识别率分别提高了0.25%、2.233%和1.971%.
同时我们比较了本文提出的算法和其他一些比较有代表性的算法分别在LFW,AgeDB-30和CFP-FP三个数据集上的识别效果,如表2所示.
表2 各方法实验结果比较Tab.2 Comparison of experimental results of each method
从表2可以看出,本文提出的基于分数阶微分的残差网络改进算法和其他卷积神经网络人脸识别模型相比,在LFW、AgeDB-30和CFP-FP三个不同的数据集上取得的识别效果是最好的.在本文算法中增加了改进的注意力机制模块,能有效提升模型对人脸重要特征的敏感度,从而提高人脸识别率,同时利用分数阶微分对节点函数进行处理降低了模型的复杂度,提高了模型的收敛速度,这表明了改进后的ResNet人脸识别算法的有效性.
4 结 论
为了解决在自然无约束条件下人脸识别受到光照不足、背景杂乱等因素的影响而导致识别准确率降低的情况,提出了一种基于分数阶微分改进的残差网络FD-ResNet模型结构.网络以ResNet为基础结构,通过添加通道注意力和空间注意力增强特征的提取,同时使用分数阶微分对节点函数进行处理,加快模型收敛的速度,使用ArcFace作为损失函数来进行监督训练,提升模型的精度.实验结果表明,本文提出的方法在不增加过多计算开销的前提下对于提升模型收敛速度有明显效果,对于改进人脸识别准确率也有一定的效果,能够为以后复杂情况下人脸识别的进一步研究提供思路.