基于口罩遮挡情况下的人脸识别算法研究
2022-08-19梁文龙
梁文龙
(湖南信息职业技术学院 湖南 长沙 410000)
0 引言
随着互联网应用的大规模普及,人脸识别技术已经嵌入到各大主流应用软件,极大地方便了软件的易用性。与指纹、虹膜等人体生物特征相比,人脸识别操作方便,而且人脸信息长期保持稳定,更加容易采集,拥有更加广泛的应用场景。
人脸识别技术是计算机图像处理与模式识别研究课题中的一个细小分支,目前,深度学习[1]已经主导人工智能发展的潮流。运用深度学习中最新的卷积神经网络模型,针对复杂环境下的人脸数据测试集都取得了理想的效果,但是在不同场景下识别效果差别比较大,在某些特殊的场景下人脸识别效果表现不够理想,目前重点需要关注的是以下3 种情况下的影响。
(1)外界环境影响。①光照影响,受外界自然光的强弱和拍摄设备捕获图像的能力大小,导致获取图像存储在计算机内部的RGB 值存在一定的差异,从而影响后续的图像处理结果,进而导致与实际图像不能很好地匹配。②拍摄角度影响,拍摄设备一般采用固定位置,而人脸信息是在不同的行为中进行采集、比对,在不同情景下采集到的人脸角度是不一样的,对于样本数据的丰富性提出了挑战。
(2)面部动作影响。人类的面部结构不单单是一个平面,而是一个立体结构,需要考虑面部的凹凸结构。在不同的情感状态表达下,如喜、怒、哀、乐,或者是与外界进行交谈时,人的面部轮廓以及五官的图像会有一定的差异,对人脸识别算法的特征表达也会造成一定影响。
(3)面部遮挡影响。外界环境以及面部动作影响仅仅是导致采集到的图像与标准图像之间产生差异,而面部遮挡则是会直接减少人脸信息的获取。对于遮挡部位较大的情况,如口罩遮挡口鼻以下人脸信息,所获得的人脸信息量减少了50%,大大增加人脸识别的难度。在日常生活中,人们佩戴的饰品也会产生一定的遮挡,这是本文需要重点优化的方向。
1 传统的人脸识别算法
在传统的人脸识别系统中,主要关注以下5 部分功能:人脸检测、图像预处理、人脸特征点定位、人脸特征点提取和特征对比识别,系统结构见图1。
1.1 人脸检测
人脸检测是目标检测[2]课题下的具体场景应用,在图像中自动划定待检测区域,对每一个待检测区域进行识别是否存在人脸,若存在,则将人脸信息标注出来。人脸识别的基础依赖于人脸检测,考虑到人脸信息具有复杂多样性的特点,我们的算法也需要考虑到不同光照、有遮挡、年龄增长造成的各种影响。当深度学习算法成为了主流算法之后,基于卷积神经网络[3]用作人脸识别效果表现优异。
1.2 图像预处理
图像预处理是考虑到外界采集的图像复杂多样,为了保证计算机的识别速度,在保留原图像主要信息的情况下,消除部分不会对识别主体产生影响的信息,增强该识别主体的信息特征。常用的图像处理方法有灰度化处理、直方图均衡化和中值滤波3 类方法,都是基于数字图像处理的方法。
1.3 人脸特征点定位
人脸特征点定位的目的是在确定了人脸大致轮廓的基础上,进一步确定人脸的局部特征点(如眼镜、眉毛、鼻子、嘴巴、脸部外轮廓)的位置。人脸定位算法的基本思路是:实际人脸的各个特征点构成的相关位置关系与标准模板人脸模型进行比对。
1.4 人脸特征点提取
人脸特征点提取也就是将输入的人脸图像转换成一个向量的表示。具体来说:如果一个图像是256 色的,那么图像的每一个像素点,都是0 到255 中间的一个值,这样可以把一张图像转换成一个矩阵。用一个相对较小的矩阵按照一定的规则依次从大矩阵内进行扫描,统计每次扫描过程中小矩阵内RGB 数据进行处理后的值,再根据最后的结果来表达这个区域的特征值。
1.5 特征比对识别
在进行比对时,需要对包含脸部的所有可能检测窗口进行穷举搜索,得到关键部位信息,并进行存储或比对,这个过程相对比较耗时。在比对过程中,可以使用各个部位进行相似性比对,并进行结果合并;或者直接对包含各个部件的全局特征进行比对,直接输出比对结果。
2 口罩遮挡情况下的人脸识别算法
在日常的图像拍摄过程中,人脸与设备的远近以及不同的角度和遮挡物对于人脸识别的精度都会产生影响。当人脸口鼻以下部位被口罩所遮挡时,人脸识别算法的精度会大幅度下降。为了提升人脸识别精度,本文改进了一种卷积神经网络用于人脸识别,主要是注意力机制与卷积神经网络有效地结合,将目标识别的重点集中在口鼻以上区域,降低对其他部分区域的依赖,有效地提高人脸识别准确率。
2.1 注意力机制
为了提升卷积神经网络的学习能力,常用的方法是增加卷积神经网络的层数、增大网络的宽度和扩大感受野的范围。从网络的层数这个方面进行改进,最初的手写数字识别采用的是7 层网络结构的LeNet-5,再到目标检测中常用的16 层网络VGGNet[4]和32 层网络VGGNet。网络在层数的上增加在理论上可以不断地获取高维度的特征以获得更加明显的特征,但是考虑到大多数计算机设备性能,较多层数的网络结构不利于计算设备的适配,尤其在当前GPU 资源非常稀缺的情况下。在后续算法改进中提出了ResNet-50 和ResNet-101,是将局部的网络结构进行循环嵌套从而达到增加层数的目的,达到接近于传统的50 层和101 层卷积神经网络结构。对于这种以新结构的方式来优化较深的网络层数,就是将相邻两层的输入、输出与激活函数进行不同的灵活的复合以获取更多的特征。在增加网络宽度方面,通过增加特征图通道数,以便卷积核可以获得更丰富的特征。
2.2 人脸检测
人脸检测是在目标检测的基础上,对于框定的目标进行类别比对,如果判定目标框里中存在人脸,则将该目标框的位置和尺寸进行计算。在传统的目标检测算法中,一般使用滑动窗口在图像中选出一些候选识别区域,再根据框定的区域进行判断该区域内是否存在人脸。这个方法的缺陷在于要事先需要准备好不同尺寸的候选框以针对可能出现不同尺寸的人脸信息,计算量十分复杂,对于计算机的性能提出了更高的要求。MTCNN[5]采用了类似于候选框的思路,考虑到计算机的实际处理能力,并且为了提升训练后模型的性能,用简单的模型生成有概率是目标区域的候选框,再使用复杂的模型确定目标区域框,并利用边界框回归,以便获得更为精准的人脸位置。MTCNN 采用的3个级联网络框架见图2。
2.3 多注意力模块
2.3.1 通道注意力模块
为了保证特征图尽量最小化且保持可用性,使用平均池化(Average Pooling)和最大池化(Max Pooling)[6]两种操作得到了两个1*1*c 的特征向量,然后将该特征向量送入一个两层的网络结构中,将处理后得到的两个特征向量相加,通过Sigmoid 激活函数得到了一个权重系数,相关计算公式如下。
2.3.2 全局注意力模块
全局注意力模块提取的是整个图像的信息,对提取的位置特征进行加权处理分析,见图3。
2.4 基于注意力机制的人脸识别
本文提出的改进算法,依照MobileNetV2 网络的结构,结合多注意力机制的思想并命名为ImproveFaceNet,该网络整体框架见图4。
如图4 所示,经过预处理的图片尺寸为256*256*3,采用了3*3,步长为2 的卷积核提取特征。根据得到的特征图分别作为3 个不同注意力模块的输入,最后再进行特征提取,使用深度可分离卷积层可以保留大多数的特征。
2.5 实验结果及分析
ImproveFaceNet 能够将识别区域放置在口鼻以上部分,与目前主流的 FaceNet[7]、SphereFace[8]、CosFace[9]、Arc Face[10]、MobileFaceNet[11]等5 个人脸识别算法中进行对比测试。这些算法所使用的损失函数各有不同,其中本文采用的 Arc Face 损失函数表现最优。在本课题的实验部分,采取人脸识别准确率指标检验识别效果,该指标等于识别正确的样本数占样本总数的比值,实验结果见表1。
表1 人脸识别在口罩遮挡数据实验结果
如表1 对比实验结果所示,现有人脸识别准确率在无遮挡条件下已经取得了非常优异的成绩,尤其是 Arc Face 算法,其准确率达到了99.83%。但是从本文的研究目标出发,在口罩遮挡的情况下,当前所有人脸识别算法的性能全部受到严重的干扰,识别准确率都有不同程度的下降。本文提出的ImproveFaceNet 在人脸识别数据集LFW 上取得了99.91%的准确率,在有人脸遮挡的情况下Mask-LFW 上也取得了95.62%的准备率。相较于其他识别算法在有口罩遮挡后识别准确率下降了10%左右,ImproveFaceNet 的识别准确率只下降了4%,识别效果下降幅度最小,取得了非常优异的成绩。
3 结语
本文将注意力机制与卷积神经网络有效地结合,将目标识别的重点集中在口鼻以上区域,降低了对人脸其他部位的依赖程度,有效地提升了在人脸有遮挡情况的识别效果。在算法的实际应用中,还需要结合设备的实际性能与外界环境做进一步的优化,需要着重考虑通用设备的可移植性,以争取大规模地进行部署人脸识别算法用来在当前复杂环境下提升人脸识别效率,这也是本课题的下一个研究方向。