APP下载

基于改进MobileNet网络的人脸识别方法

2023-04-06张东高丙朋

关键词:人脸人脸识别卷积

张东,高丙朋

(新疆大学 电气工程学院,新疆维吾尔自治区 乌鲁木齐 830000)

0 引言

深度学习这一研究方向的最终目标是让机器具备分析事物的能力、识别图像、声音和文字等信息,随着图像领域快速发展,深度学习走到大家眼前,尤其是在图像特征提取和目标检测上,深度学习优势更加突出。传统人脸识别方法主要有主成分分析法(PCA)[1]和局部二值模式(LBP)[2],目前,人脸识别方法的研究方向集中在两方面:其一为基于整体的研究方法;其二为分析人脸特征的方法,该方法应用较为广泛,通过使用一些手段保留人脸的一些特征参数,再通过特征参数构成识别特征向量从而达到识别的效果。

计算力得到快速提升以及海量数据的出现,使深度学习训练的模型更具泛化性。Deep⁃Face[3]是 CVPR2014 由 Facebook 提出的方法,为深度卷积神经网络在人脸识别领域发挥更大作用奠定了基础。DeepFace模型在处理人脸对齐过程采用3D对齐方式,使用传统直方图进行图片纹理化并提取对应特征;在训练过程采用一般的交叉熵损失函数,通过一般的softmax对训练的数据进行分类。经过测试,DeepFace在测试集LFW取得了97.35%的准确率。香港中文大学的Sun等提出DeepID1[4]通过单一的卷积网络来进行特征提取。DeepID2[5]在DeepID1的基础上进行改进,提出通过提升类间差距,降低类内差距,训练出来的特征更加适合人脸识别任务。为解决人脸验证和识别在自然条件下仍然困难的问题,Google 提出了 FaceNet[6]模型,该方法直接将不同人脸图像映射到欧几里得空间,欧几里得空间中两点间直线距离也称欧式距离,它的长度代表了人脸图像的相似性,欧式距离越小就说明两张人脸图像越相似,反之则越不相似。只要该映射空间生成,人脸识别、验证和聚类的任务就可以完成。

2020年,Google提出了将 ViT(vision trans⁃former)[7]作为 transformer应用在图像处理的模型,深度学习的任务是把高维的原始数据映射到低维,低维数据会变的可分,而这个映射就叫embedding,通过embedding的方式可以大大加快训练速度与准确度。ViT将图像经过线性变换得到一定维度的向量,由于transformer的输入就是一系列映射,所以将图像变换后得到的向量送到transformer后就可图像处理,在大型数据集上的表现超过了当前先进的网络模型。由于ViT在图像处理方面的巨大优势,苹果公司提出了轻量级网络MobileViT[8],其参数量小可以加快计算效率,经过实验测试,其准确率超过大多现有的网络模型。ViT经过实验发现:随着transformer层的增多,结果没有得到优化,甚至出现下降等问题。为解决ViT出现的问题,有学者提出了DeepViT[9],不仅解决了transformer层的增多,ViT实验结果的不理想,还解决了在ViT模型深度增加后注意力图在一定深层数的计算会趋于相似的问题。在Ima⁃geNet上进行对比测试,结果显示当Transform⁃er block为24和32时,DeepViT准确率比ViT的分别高0.7%和1.6%,分别达到了80.1%和80.9%;随着Transformer block的增加DeepViT的准确率一直在上升,表明DeepViT模型可以实现更高精度。

普通的卷积神经网络太过复杂、参数量和计算量大,Howard等[10]在 2017年提出了轻量级神经网络MobileNet,提出了深度可分离卷积层,在保证精度高的情况下,大大减少计算量提高了运算效率。但深度可分离卷积之后的激活函数ReLU会带来信息丢失,且不可恢复。所以为了解决MobileNet模型出现的问题,大量学者对其进行改进,其中Sandler等[11]提出了MobileNetV2,MobileNetV2采用了当时流行的残差网络,在深度可分离卷积之前先将输入输送到1×1点卷积;此外,为防止经过卷积操作后的特征信息被破坏,激活函数ReLU换成了线性输出,但经过实验测试,此模型识别效果不好,实时性不佳,参数量和计算量较大。因此在实际人脸识别过程中,MobileNetV2难以达到要求。

为解决MobileNetV2出现的问题,本文在MobileNetV2网络的基础上加入DeepViT,结合了卷积神经网络(Convolutional Neural Network,CNN)和DeepViT的优势,在提高人脸识别准确率的同时,构建一个参数量小,可以大大提高计算效率的网络模型,改进后的MobileDeep⁃ViT作为特征提取网络具有更好的识别性能。

1 轻量级网络MobileNet的人脸识别方法

2017年,Google提出轻量级网络Mobile⁃NetV1,其网络结构较为简单,在实验中发现这种结构存在问题。原理是将一个标准卷积层拆分为两个部分,分别为深度卷积(Depthwise)和点卷积(Pintwise),其中Depthwise每个输入通道都有一个独立卷积核,相当于收集了每个通道的特征,输入通道数和输出通道数是一致的,因此Depthwise没有经过升维或降维。点卷积通过使用1×1卷积来实现功能,收集了每个点的特征,可以进行升维或降维。普通卷积和深度可分离卷积的工作特点如图1所示。

图1中,深度可分离卷积的参数量为:Dk×Dk×M+1×M×N;计算量是由深度卷积和点卷积两部分相加而得。深度卷积的卷积核尺寸Dk×Dk×1,有M个,一共要做Dw×Dh次乘法运算,其中,Dw和Dh是标准卷积的宽和高;点卷积卷积核尺寸1×1×M,共有N个,需要Dw×Dh次乘法运算,这时深度可分离卷积的计算量Q1见式(1):

标准卷积参数数量为:Dk×Dk×M×N;卷积核尺寸是Dk×Dk×M,有N个,一共要做Dw×Dh次乘法运算,所以标准卷积计算量Q2见式(2):

故深度可分离卷积与普通卷积的计算量下降倍数Q3见式(3):

可以看出,标准卷积的参数量和计算量是深度可分离卷积的数倍,而且当卷积的宽和高数值较大时,下降的倍数会变得更大,证明深度可分离卷积可以极大提高运算效率。

ReLU定义如式(4):

式中:x表示输入,f(x)表示输出。

从式中可以得出当输入值为负时,此时流过这个神经元的梯度就为0,权重无法得到更新,网络无法学习,从而丢失信息。Mobile⁃NetV1在减少计算量的同时还存在结构简单、性价比较低、训练时部分kernel为空等问题。MobileNetV2网络结构如表1所示。其中,第一个卷积层输入大小为224×224,输入通道数为3,经过卷积后的输出通道数为32,卷积核每次移动的距离称为步长,此时的步长为2,以此类推;并且f为输入输出通道数。

MobileNetV2在深度卷积之前进行升维,加入一个点卷积,可使网络在更高维空间提取特征。此外,为解决MobileNetV1激活函数ReLU损耗方面的问题,MobileNetV2在点卷积之后把激活函数ReLU换成线性激活函数。并且Mo⁃bileNetV2借鉴了ResNet思想使输入和输出相加。这种结构可以使得信息在各层之间流动更加容易,在前向传播时提供特征重用作用,当反向传播时也可以起到缓解梯度消失的作用。

2 DeepViT算法

2.1 DeepViT的原理

2020年Google提出ViT把transformer直接应用在图像处理上,而后开发出的网络也都是在ViT的基础上改进的。ViT的原理以及优势在文献[7]做了详细的解释和说明。但在实验中发现ViT模型有一定的局限性,在使用相同数据集进行测试时,随着网络深度的增加,ViT的性能不仅会达到饱和,而且注意力图在一定深层数计算之后会出现相似。为解决自注意层引起的问题,DeepViT把ViT中的自注意力换成重新注意,这样相似块的数量不仅减少到零,并且随着模型深度的增加性能将持续提高。ViT和DeepViT模型结构如图2所示。

由图2可知,通过比较ViT和DeepViT模型整体结构,与ViT不同的是,DeepViT提出重新注意替换自我注意层,有效解决了注意力崩溃问题。

2.2 Re-Attention

经过文献[9]已经证实:ViT中不同的transformer block之间的注意力图之间的相似度比较高,尤其是深层。然而来自同一transform⁃er block不同头注意力图相似性非常小。于是提出将各个头的注意力进行交换,并训练深层ViT,使其表现更好。新的Re-Attention Value计算公式见式(5):

Re-Attention优势有两方面:首先,相比于其他可能的注意力增强方法,Re-Attention利用不同注意力头之间相互作用来收集他们之间的互补信息,可以更好提高注意力图的多样性;其次Re-Attention的程序非常简洁,只需要修改几行代码就能运用到实际工作,易于实施。

3 改进的网络模型及实验结果分析

3.1 改进网络结构

鉴于MobileNetV2网络模型轻量级的优势,将MobileNetV2与DeepViT进行融合,在减小参数量的同时并保持较高准确率,设计轻量级卷积神经网络模型MobileDeepViT,改进网络输入大小为256×256,输入通道数为3,其网络结构如表2所示。其中,MDb是MobileDeepViT block,MV2是MobileNetV2 block网络。

在MobileDeepViT网络中,首先将输入特征图送入一个3×3的标准卷积层,此时特征图的尺寸和输出的通道数发生变化,然后依次通过5个MobileNetV2基本单元,需要调整输出通道和步长,再经过 MobileDeepViT block、Mobile⁃NetV2基本单元、MobileDeepViT block、Mobile⁃NetV2基本单元、MobileDeepViT block和一个点卷积。由于MobileNetV2点卷积采用的是线性输出,所以为了更好地提取特征和使网络收敛,在MobileNetV2之外经过卷积处理后的输出都要经过BN层和ReLU非线性激活函数处理从而增加非线性表达能力[12]。

3.2 MobileDeepViT block

MobileNetV2人脸特征提取网络中共有7个bottleneck层,经过MobileNetV2后的图像大小为H×W×C,需要对输出进行n×n、1×1的卷积处理,会得到一个H×W×d的原始图,再将其输入到transformer中,然后把输出的结果进行1×1的点卷积会得到一个H×W×C的卷积,在这时需要把输出和最初的图像进行连接,会得到一个H×W×2C的图像,最后再经过一个输入通道扩大2倍输出通道不变的n×n的卷积,将图像转换为H×W×C。这几部分组成MobileDeepViT block整体结构,每经过一个卷积操作后的输出都需要经过BN层和ReLU6非线性激活函数。此外,整个网络结构中Mo⁃bileDeepViT block的步长都为1。其中,Mo⁃bileDeepViT block中的n×n卷积为标准的n×n卷积,MobileNetV2 block和MobileDeepViT block的结构如图3所示。

由图3可知,MobileDeepViT block与卷积类似,使用两个标准n×n和1×1卷积以及含有Re-Attention 的transformer,用更深的全局处理取代卷积中的局部处理,因此MobileDeepViT block可以看作是一个卷积。并且其具有类似CNN和ViT的属性,有助于更少的参数和简单的训练方法获得更好的效果。

3.3 实验的准备工作与结果分析

3.3.1 数据集的选取及预处理

本文在训练过程中训练集为公共数据集CASIA-WebFace[13],该数据集应用较为广泛,共含有10 575个人的494 414张图像。训练前需要对数据集进行预处理,将属于同一个人的图像放到同一个文件夹里面,并进行人脸的提取和矫正。

测试数据集选用的是LFW[14]人脸数据集进行模型的评估。LFW数据集包含5749人共13 233张人脸图像,测试前将属于同一个人的图像放到同一个文件夹里,随机选取6000对图像进行对比实验。

欧式距离测试选用的图像为LFW测试集和自制的测试集,实验前要进行灰度处理[15]。

3.3.2 实验环境

实验过程通过python语言编写,框架为py⁃torch,训练和测试步骤是在NVIDIA RTX 3060 GPU上运行,12 GB显存,内存大小为29 GB,训练中bitchsize设置为32;欧式距离测试实验在MacOS上进行,处理器为四核Intel Core i5、1.1 GHz CPU、8 GB内存。

3.3.3 实验结果及分析

三种不同的特征网络分别是Inception_ResNetV1、MobileNetV1和 MobileDeepViT。In⁃ception_ResNetV1是FaceNet提取特征的原版主干网络;MobileNetV1是轻量级特征提取网络。实验过程中的评估指标是LFW测试集的识别准确率、模型的大小,三种主干网络具体表现如表3所示。

从表中3可以看出,改进后模型的准确率与Inception_ResNetV1基本一致,但模型参数量大大降低;与MobileNetV1模型相比,改进后模型的精度不仅有所提高,而且参数量更低。由此可以看出改进后的模型不仅参数量大大减少,而且在精度上有所提升,证明了改进后模型的有效性。

在欧式距离对比实验中,测试图像为灰度图,测试前对图像的脸部进行矫正和截取,当两张不同照片进行测试时,三种主干特征提取网络测试结果如表4、图4所示。

图4中,横、纵坐标都为模型输入图片尺寸,其中,Inception_ResNetV1(左)和 Mobile⁃NetV1(中)输入尺寸为 160×160,MobileDeep⁃ViT(右)的输入尺寸为256×256;从表4中可知,改进后模型的欧式距离测试结果更小,在LFW和自制测试集的测试结果分别为0.476、0.740,表明该网络模型可以更准确判断两张图像来自同一人。

关于改进模型实时性能测试,本文在Ma⁃cOS测试端测试了三种网络模型预测相似度所消耗的时间,测试结果如表5所示。

从表5中可以看出,本文提出的模型在预测时消耗的时间明显小于Inception_ResNetV1和MobileNetV1,这表明改进后的模型实时性更好。

4 结论

本文研究并提出轻量级卷积神经网络Mo⁃bileDeepViT用于人脸识别,在轻量级网络的基础上融合DeepViT,解决了人脸识别过程中模型参数大、识别精度低等问题。通过实验结果表明,本文提出的MobileDeepViT模型大小仅为11.1 MB,却获得较高的识别精度,说明本文算法具有较好的人脸识别效果。此外,在欧式距离和实时性对比的实验结果表明,本文模型效果更好。由于影响识别效果的因素较多,未来的工作计划仍然是构建快速以及精度高的网络模型,并且随着新算法提出,下一步需要整合各个算法的优势构建更好的网络。

猜你喜欢

人脸人脸识别卷积
人脸识别 等
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
从滤波器理解卷积
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法
长得象人脸的十种动物