《武汉工程大学学报》  2019年03期 276-282   出版日期:2019-06-20   ISSN:1674-2869   CN:42-1779/TQ
基于全局深度分离卷积残差网络的高效人脸识别算法


人脸识别作为生物特征识别技术,一直是计算机视觉领域和机器学习的研究热点之一。它在政府机构、军队、银行、社会福利保障、电子商务、安全防务等领域有广泛应用前景。近年来,卷积神经网络[1](convolutional neural network,CNN)为人脸识别提供新的解决方案,但人脸识别应用仍有许多问题亟待解决。如在实际监控场景下目标人脸距监控设备较远及受光照、表情与多姿势变化等因素影响下[2],要获得满意的识别效果,要求识别模型具备强大特征表达能力。高精度识别模型通常利用含多参数网络来最大限度地学习更多特征,网络训练时间因参数增加呈指数上升,在有限计算资源条件下难以进行实时的人脸识别。而小型网络实时性强,但算法性能有限。因此利用高性能的轻量级深度学习识别网络来发展与实际应用更为紧密的人脸识别系统[3]显得尤为重要。现有的人脸识别算法可大致分为以下几类:第一类方法是基于几何特征的方法[4-5],该方法主要根据人脸器官形状和几何关系描述出每个人脸图像特征,对特征矢量进行比较,得出最佳匹配人脸。但基于几何特征的识别方法难以提取待测人脸图像的稳定特征,易忽略较多人脸纹理信息,特别当图像分辨率较低、识别目标姿态表情变化过大时,识别率会受到较大影响。第二类方法是基于相关匹配的方法[6-7],其主要思想是将训练集与测试集人脸图像样本逐一归一化后进行互相关运算进行匹配,从而达到人脸识别的目的。该方法虽然充分考虑了人脸图像的局部纹理细节信息,但仅对约束场景下的正面人脸有好的识别效果,且计算量较大,识别速度慢。第三类方法是基于深度学习的人脸识别算法,其凭借强大的非线性拟合能力,有效地模拟出大脑由浅入深认知事物的过程,受到了人工智能领域的高度重视,也日益成为目前主流的人脸识别方法。2006年,Hinton等[8]在《Science》上首次提出了深度学习的概念。深度学习本质上也是一种特征学习方法,相对于传统方法需要有相关专业背景的专家设计特征表示方式,深度学习则是使用一种通用学习过程从数据中获取各层特征,其过程可以看做把原始数据通过一些简单的非线性的模型转变成为更高层次的、更富语义信息的特征表达,经过足够多组合变换来拟合的复杂函数。例如VGGNet[9]为牛津大学计算机视觉组和DeepMind公司共同研发一种深度卷积网络,探索了卷积神经网络的深度和其性能之间的关系,通过反复的堆叠的[3×3]小型卷积核和[2×2]的最大池化层,成功的构建了16~19层网络结构的卷积神经网络,VGGFace利用VGGNet的16层网络结构,将网络最后一层输出作为特征,利用Triplet-Loss损失函数训练进行人脸识别,该方法在较少的数据集训练的基础上达到了前人海量数据才能达到的识别效果。何凯明等[10]利用残差学习的思想解决了VGGNet等传统网络在更深层网络中因梯度消失无法训练、信息丢失、损耗等问题,利用跳跃连接(skip connection)简化训练难度。Gao等[11]借鉴残差学习方法,在保证网络中层与层之间最大程度的信息传输的前提下,将所有卷积层输出密集连接起来,大大加强了特征之间的传递,在提高识别率的同时高效利用特征信息。为提升在移动设备上的识别精度,Chen等[12]提出一个模型大小仅为4 MB的小型识别网络,使用逆残差结构(inverted residual block)结合ArcFace?Loss加速实时人脸验证,克服了人脸验证上常见轻量级神经网络性能不足的缺点。人脸识别系统不仅需要兼顾系统判别精度与实时性,还需要对不同输入数据具有较好鲁棒性。上述基于深度学习的识别研究重点大多在通过增加网络深度或宽度换取网络更强大性能,因此使用少量参数的小型识别网络,提出不受限于机器资源和实时性等需求的高效人脸识别算法意义巨大。对此需要构建一个针对不同场景的快速通用识别网络,可以有效处理复杂场景下的人脸识别任务,准确提取目标所属类别的特征信息,并在加速训练过程的同时使网络更快收敛,提高识别性能。综合考虑上述问题,本文提出了一个基于全局深度分离卷积残差网络的高效人脸识别算法。1 全局深度分离卷积残差网络受到GoogleNet[13]中InceptionV3模块启发,为解决深层网络提取抽象性特征导致空间集中性降低这一问题,提出基于全局分离卷积(global separable convolution,GSC)与深度残差学习模块(Residual Block)相结合的高效识别网络。将人脸图像以随机输入方式放入深度残差学习的网络中,利用跳跃连接将学习到的浅层特征与深层特征融合,实现不同层次信息之间的交互,并结合全局深度分离卷积从多个独立通道空间(spatial separation)中丰富多元特征的数量,提高特征的判别能力。本文定义训练样本为[yiNi=1],其中输入测试人脸图像为[xi∈?m×n],[N]为图片总个数,提出的网络结构如图1所示。网络结构共分为4个部分:第一部分为初始特征提取,用小尺度网络([3×3]卷积核,侧重局部细节信息)取代传统大尺度网络([7×7]的卷积核,注重全局细节信息)提取特征,初步减少模型参数量;第二部分构建浅层残差结构进一步学习特征,简化模型优化难度;第三部分使用全局深度可分离卷积利用具有相互独立空间的512组滤波器逐通道提取深层特征中每个节点的有效信息,取代多通道特征融合过程,进一步减少网络计算时间;第四部分为识别部分,利用全连接层级联Softmax分类器,输出模型所预测类别[Ci],最后计算损失反向传播微调学习权重,优化整体模型。1.1 深度残差学习深度学习网络深度的增加对网络的分类效果有着重要影响,研究人员发现理论上增加大量的权重参数会在一定程度上促进网络的识别性能,但当常规的卷积神经网络堆叠到一定层数时,往往会出现网络梯度消失现象[14],即网络识别率不再上升,甚至越来越差,这是因为训练深层网络会产生梯度弥散/爆炸这一障碍。利用残差学习的思想定义神经网络期望学习的目标为[Y],设[X]为原始图像输入经过卷积(convolution,Conv)、批量归一化(batch normalization,BN)、非线性激活(ReLU)、最大池化(Max pooling)操作后所得到的特征,[F(X,Wi)]为[X]经过两次[3×3]卷积所提取到的特征,[Wi]为所学习权重参数,将网络需要学习的目标简化为[F(X,Wi)=Y-X]。使用残差学习模块,有效缓解链式求导梯度值较小问题,优化训练过程。1.2 全局分离卷积对于人脸的验证和识别,Wu等[15]已经通过实验观察到,具有全局平均池化层结构的神经网络比使用全连接层代替全局平均池化层的卷积神经网络识别效果更不准确,因为全局平均池化层没有考虑深层特征映射中每个节点的空间信息,笼统的将深层全局信息平滑后加以使用,破坏了所学特征的语义与空间信息。虽然输入人脸图片中心点的池化区域与边角池化区域大小一样,但是中心点区域包含了面部重要五官特征,边角区域只包含部分重要特征。因此每个像素区域学习的权重应该不同,但是平均池化层笼统的不同区域的权重设置为一样,导致网络识别效果下降。而可分离卷积与普通卷积操作不同之处在于每个通道使用不同滤波器单独进行卷积操作后,再利用[1×1]的卷积核进行信息的融合,可分离卷积方法会优先考虑特征区域的属性,实现多通道特征堆叠与区域的分离。因此本文提出利用全局分离卷积取代一般深度学习识别网络中的平均池化层,来提取深层特征中每个节点的有效信息,舍弃了多通道特征融合所带来的冗余特征,减少模型整体的时间复杂度。针对实际场景的人脸识别,引入全局可分离卷积不仅可以减少网络参数,并且可以更好的实现深层网络整体区域特征的精炼。1.3 损失函数使用交叉熵损失函数(cross entropy loss)[16]作为网络的损失函数,公式如下: [Loss(θ)=-i=1Npi?log(pi∧)] (1)其中[pi]为真实类别标签概率分布,[pk=1],[pi=0 (j≠k)],[pi∧]为网络所预测标签概率分布,设全连接层网络输出为[θi],则有:[pi∧=softmax(θi)=eθijNeθj] (2)式(1)可改写为:[Loss(θ)=-log(pk∧)=-log(eθkjNeθj)=-θk+logjNeθj] (3)网络优化过程中使用自适应矩估计(adaptive moment estimation,Adam)优化算法来进行反向传播。自适应矩估计算法利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。它的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数较为平稳。此外增加了随机梯度下降(stochastic gradient descent,SGD)优化方式来进行实验对比,网络损失对比如图2所示,由于不同网络层数训练时间大小有差异,因此分别配置相同网络层数的网络结构进行损失比较从图2中可以看出当训练周期较小时,虽然整体收敛趋势相同,但使用Adam优化方法优先达到较小损失值,训练完毕后的损失值远小于SGD优化方法,证明了使用自适应矩估计优化算法结合交叉熵损失函数的合理性。综上所述,基于全局深度分离卷积残差网络的人脸识别算法总结如下:[输入:训练样本库[yiNi=1]组成训练集,测试样本[xiNi=1]组成测试集。输出:人脸图像的类别属性[Ci]。\&训练部分:1)根据图1网络训练样本库[yiNi=1],获得模型预测类别的概率分布;2)根据公式(3)计算损失值,反向传播微调学习权重,迭代直至训练完毕,得到网络权重模型。测试部分:1)输入测试集[xiNi=1];2)根据训练所获得的权重模型提取人脸图像的表达特征;3)根据公式(2)输出预测的类别标签[Ci],计算整体识别率。\&]2 结果与讨论2.1 实验数据与参数选取CASIA-Webface与Extend Yale-B人脸图像数据库为实验样本,使用识别率(Recognition Rate)评估不同网络的识别性能。CASIA-Webface原始数据库包含10 575类人,共有图片494 414张。本实验选取其中68人做为实验对象,其中每人包含多种姿态图片共240张(见图3)。原始图片大小为[128×128]像素,全部图片分为2个部分,第一部分选取13 600张用于深度学习训练,剩余2 720张用于分类测试。Extend Yale-B人脸数据库包括38人共16 128张,每幅大小为[192×168]像素的灰度图,有9种不同姿态和64种不同光照变化情况。在实验中,选择每人60张在不同光照变化下正面人脸图像共2 280张人脸,随机选取每类人35张共1 330张为训练样本,剩余950张为测试样本。本算法网络为串联网络结构,每个子网络都需要进行150次整体样本迭代训练。本算法设置学习率逐步衰减,初始化学习率为0.001,每经过20次整体迭代学习率减小为原来的1/3,权重衰减为0.000 1。为了避免网络的过拟合,采用了残差学习方法。在深度残差学习网络中,本文设置第一层子网络步长为1,填充为1,后三层子网络步长为2,填充为1,为避免所学残差特征无法与后三层子网络训练所得特征无法融合,融合之前将残差特征进行一次卷积核大小为3,步长为2的卷积进行特征图下采样操作。本实验先将图像输入卷积层,进行最大池化操作提取初始特征,然后级联基于深度残差学习的全局分离卷积网络,使用全连接层进行分类得出最终识别结果。2.2 结果与分析为了证明人脸数据集在本算法的网络框架下能够提取到有效鲁棒性特征提高识别能力,本实验将图片在不同的识别框架下进行分类比较。对比实验采用深度学习近年来著名的神经网络识别算法:深度卷积神经识别网络(VGGFace),深度残差学习神经识别网络(ResNet34),密集连接卷积神经识别网络 (DenseNet121),移动端上的快速卷积神经识别网络(MobileFaceNet)。本文中使用的对比算法VGGFace[9]的源代码由论文作者Karen Simonyan提供,ResNet34[10]的源代码由论文作者Kaiming He提供,DenseNet121[11]的源代码由论文作者Gao Huang提供,MobileFaceNet[12]的源代码由论文作者Sheng Chen提供。图4分别给出了多姿态人脸数据集(CASIA-Webface)与受光照变化影响的人脸数据集(Extend Yale-B)在不同识别网络框架下随着训练周期变化的识别率。2.2.1 识别率对比 每组实验均选取网络最后一次迭代结果作为最终识别率。从图4可以看出,其他算法识别率随周期变化波动较大,本算法在两种人脸图像数据集中均获得了最好识别效果。当训练迭代次数较低时,本算法识别率就高于其他算法,在经过40个训练周期后识别率趋于平稳,随着训练周期的增加依旧保持了良好的识别效果。在CASIA-Webface数据库中与性能排名第二的算法ResNet34相比,识别率提升了2.9%,证明了算法在多姿态数据集中也具有较好性能。在Extend Yale-B数据库中,VGGFace与DenseNet121算法识别率波动较大,本算法稳定的识别率体现了对光照变化的鲁棒性。2.2.2 特征分布分析 为了进一步研究全局可分离卷积对网络性能的影响,我们将经过全局可分离卷积与平均池化操作后提取的特征向量降至二维进行可视化分析。首先从Extend Yale-B数据库随机选取7人,每人包含25张图像,组成待测数据集,将两种方法提取到的1 024维特征向量利用T-分布邻域嵌入(T-distributed stochastic neighbor embedding,T-SNE)方法将人脸特征映射至二维空间,可视化对比结果如图5所示,不同颜色代表不同类别。在使用全局可分离卷积时,同类图像紧促映射到一起,且类间距离较大,当使用平均池化时,同类样本间的聚类效果变差,不同类别样本已不具有明显区分性。以上现象可从类内方差与类间方差的统计角度进行量化解释,借助LDA线性判别分析进行类内与类间散度矩阵近似计算。类内散度矩阵定义如下:[Sw=i=1Cpi1Nik=1NiX(i)k-μiX(i)k-μiT] (4)其中[X(i)k]表示第[i]类的第[k]个样本特征,[pi]为该类样本出现的概率,[C]为总类别个数,[μ]为总体特征均值,[μi]为该类别特征均值,[Ni]为第[i]类的样本数。类间散度矩阵定义如下:[Sb=i=1Cpiμi-μμi-μT] (5)表1给出了不同卷积操作下特征向量的类内与类间方差结果。表1 类内方差与类间方差统计结果Tab. 1 The intra-class and inter-class variance results[操作\&类内方差[[tr(Sw)]]\&类间方差[[tr(Sb)]]\&全局可分离卷积\&35.150\&113.045\&平均池化\&43.295\&32.805\&]对于人脸识别问题,总期望类内方差小,类间方差大来获取更佳识别结果。根据表1计算结果可知,全局可分离卷积操作后类间方差与类内方差比值更大,说明学习到的特征更具区分性,判别能力更强。相比平均池化方法,类内方差大于类间方差,类间距离较近,难以正确区分各个类别。根据以上结果分析可得,基于全局可分离卷积的网络通过独立空间提取的特征能更有效地区分不同人脸图像所含内容。2.2.3 算法效率对比分析 不同识别算法测试时间如表2所示,对比分析如下:DenseNet使用了密集连接的方法减少网络每层计算量以及实现特征的高度复用。而本文算法采用深度全局可分离卷积结合残差学习模块,减少了复用特征的冗余程度,同时加速训练初步特征提取流程。由于当前的深度学习框架对密集连接没有良好的优化方法,只能借助特征图之间的反复拼接操作,将之前提取到的特征图拼接后一并传入下层网络,因此在训练的时候密集连接会占用大量内存导致网络性能的大幅度波动(见图4),相比之下本算法在第45个训练周期的时候就达到收敛状态,loss值稳定在0.000 1左右,识别率趋于平稳。VGGFace为深度网络识别算法,采用加深卷积神经网络层数、增加模型参数量的方法来提升识别性能。该方法利用多尺度特征信息融合的方式虽然能够提升标签预测的精度,但是在网络层数更深时,会出退化问题,容易导致训练集准确率达到饱和,甚至下降。VGGFace全连接层特征维度为4 096,令计算时间开销远大于其他对比算法,此外该模型对光照变化大的图片并不鲁棒。本文算法通过构建残差学习网络,提取具有不同深度语义信息的特征进行融合,不仅减小了网络增加深度带来的副作用,并结合全局可分离卷积减小了模型整体参数量,提升网络整体性能。表2 不同识别算法下平均每张图片的测试时间Tab. 2 Testing time (milliseconds per image) of different recognition algorithms ms[算法\&CASIA-Webface\&Extend Yale-B\&VGGFace\&2.948\&4.266\&ResNet34\&1.625\&2.368\&DenseNet121\&1.250\&1.821\&MobileFaceNet\&0.959\&1.442\&本文算法\&0.889\&1.242\&]ResNet利用跳跃连接重复利用残差信息使得网络能具有更深层结构,得到更好的识别效果,但随着网络结构的加深,随之带来的是网络中参数的增多,计算量的增大,测试时间将会变得更久,而在现实应用场景中,人脸识别任务更希望被更快速、更高效的方法来完成。本算法经过大量实验结果验证得到结合全局可分离卷积的最佳残差学习模块层数,使用较少卷积网络层数,利用更少的参数量减少运算时间,达到超过ResNet34网络的识别性能。MobileFaceNet为在移动设备上设计的轻量级识别网络,在LFW数据集上的人脸验证准确率达到99.28%,使用了逆残差模块,该模块首先将输入的低维压缩表示的特征扩展到高维,使用轻量级深度卷积作为滤波器,随后用线性卷积将特征投影回低维压缩表示。由于该网络使用[1×1]卷积核进行特征升维,逐元素计算促使运行时间逐步增加,且全连接层后又使用BN层进行特征归一化,即使参数量减少到99万个,但还是增加了模型的总测试时间。综上所述,本文算法相比其他算法能提取出更具判别能力的特征信息来区分不同类别的人脸图像,识别效果更好,具有更短的测试时间。例如,对于传统的深度网络,本文的算法网络结构精简,时间复杂度低;相较于密集连接复用特征信息的网络,本文的算法在特征复用方面进行了优化,避免了特征冗余导致的性能波动。本文实验结果证明,使用基于全局深度分离卷积的残差网络有助于进行人脸图像的高效识别。3 结 语考虑到实际场景中深度学习方法识别人脸图像的局限性,使用全局分离卷积来提高深度残差网络对人脸图像全局特征信息的保真能力,提高了识别效率,并通过结合残差学习模块得到精准的特征信息,达到了更好的识别效果。在CASIA-Webface与Extend Yale-B人脸数据集上的实验结果表明:提出的基于全局深度分离卷积残差学习网络相较于前沿的识别网络能更高效地进行人脸图像的识别。