邓宏杰
(西南民族大学电气信息工程学院,成都 610041)
随着深度学习的不断发展,人脸识别作为现代生物信息识别的一种,在保障个人信息安全和实现对人的身份快速识别和认证的发展过程中,以其技术便捷性和信息安全性等特点得到了人们的广泛认可和利用。目前,对脸部特征提取并分类仍是人脸识别技术研究中的重心与难点,对于单个人脸的表情变化、光照差异、有误遮挡等都是引起类内差距的重要因素。因此对人脸更加有效的特征提取和鲁棒性更强的分类识别的算法同样是研究人员的工作重点和挑战。
随着深度学习相关技术的逐渐创新发展,其在模式识别,系统辨别等新兴技术领域发挥出巨大的优势。且对比传统机器学习的识别方法而言,神经网络能提供更好的识别准确性和效率。基于现阶段的技术发展,人脸识别相较于其他生物识别所具有的独特优势,其使用价值巨大,使得可对人脸识别相关技术进行更深层次的研究。
近年来,卷积神经网络(CNN)在目标检测领域得到广泛的研究与使用,并逐渐成为人脸图像检测技术与方法的主流。Alex Krizhevsky 等人[1]在此基础上提出了DCNN(深度卷积神经网络),该网络具有大量参数和神经元,能更好的提取目标相应特征,可广泛的运用于后续的人脸检测识别算法。2013 年,Yi Sun 等人[2]将Cascade CNN 运用于人脸检测,基于多网络输出的特征融合,对人脸面部区域进行深层次的特征提取,使得目标关键点的定位精度得到有效提升。Haoxiang Li 等人[3]在该研究的基础上,将网络进行层级连接,以多个分类器采用级联结构对图像特征进行分类。2017年,Shuo Yang 等人[4]提出 Faceness-Net,该方法通过根据面部部位的空间结构和排列方式来对面部部位的反应进行评分,从而找到面部,解决了难以检测到严重遮挡和不受环境约束的姿势变化下人脸的难题。Wu Shuzhe 等人[5]为有效解决开放环境无法进行多视图面部检测的问题,提出了一种新颖的漏斗结构级联(Fust)检测框架。FuSt 检测器可自动识别对齐并执行粗略的多视图面部预测,为高精度,低时间成本的多视图人脸检测任务提供了一个理想的解决方案。Li Cuimei 等人[6]提出了基于原始Haar 级联算法并同时结合三个附加弱分类器的人脸检测算法。这三个弱分类器针对于肤色直方图匹配、眼睛检测和嘴部检测。该级联算法易于实施且能实现最新的生物识别性能。随着R-CNN(Region-based CNN)[7]的提出,目标检测算法在人脸特征的检测和识别方向得到广泛应用。XudongSun 等人[8]通过特征信息串联、硬负挖掘、多尺度训练、模型预训练以及关键参数的正确校准等多种策略改进了Faster RCNN 框架[9]。
在现实场景下的人脸识别任务存在着目标遮挡、背景变化多样等影响因素,且识别目标也存在着相似性与易变性,使得网络需在最短时间内迅速对目标进行检测与分割,属于在高度不确定性、高度时间压力和高度精度需求的目标识别过程。因此,本文专注于提高人脸的检测分割精度,以Mask R-CNN[10]为基础,通过对其网络结构进行重新搭建,引入现阶段高性能的模块,在不增加大量检测事件的前提下,提高了人脸的识别能力。
本文的主要贡献如下:
(1)将 ResNext-101[11]网络作为 Mask R-CNN 的主干网络,并引入特征金字塔网络结构,使得模型能够提取更深层次的特征信息,并对多尺度的feature map 进行预测,从而训练出更为精准的检测模型。
(2)在RPN 的基础上将Soft-NMS 替换为Softer-NMS[12],使候选区域定位更加精准。
特征作为图像的核心要素,在进行检测分类任务时至关重要。卷积神经网络通过卷积、池化等一系列操作,能够得到图像相应的特征表示。
1998 年,LeCun 等人[13]通过对 CNN 结构的确立及完善,提出了LeNet-5 网络模型。在训练过程中,对梯度等一系列网络参数,通过误差反向传播算法的实现进行调整优化,用于实现对手写数字的识别。2012 年,A.Krizhevsky 等人[14]设计了AlexNet 结构。该模型利用了dropout 技术,在网络训练期间随机剔除神经元,防止网络过拟合,同时激活函数选择ReLU 函数,减少函数计算量,并引入max-pooling 技术。这使得与先前的LeNet 相比,AlexNet 的网络层数达到更深且能处理更高维、复杂的图像特征。为了有效地提取更深层的特征,K.Simonyan 等人[15]在 2014 年提出了 VGG,该网络基于多个3×3 卷积核,并将其作为特征提取器来对高维特征进行提取,使训练参数和运算时间在一定程度上得到了优化,能使网络层数达到16-19 层。而C.Szegedy 等人[16]提出了以bottleneck layer 为核心思想的GoogleNet。Bottleneck layer 主要是使用了 1×1 卷积核,减少了特征的数量,从而降低了操作复杂性,节约了时间成本。并在后续的模型中加入Batch-normalized 层,通过计算高维feature map 的平均值和标准差,将其数据分布归一固定,加速网络的训练。作为Mask R-CNN 特征提取的主干网络ResNet[17],结合了VGG和 GoogleNet 要点。不仅引入 BN 层,还将 1×1,3×3,1×1 作为网络结构。在此基础上,保留了丰富的语义信息,且与其他网络结构相比,在计算时间上达到了有效的优化。
目标检测(object detection)为现阶段CV 领域热门的任务。它的基本思路是同时解决目标定位(localization)和识别(recognition)。对于 two-stage 算法而言,基于感兴趣区域的R-CNN 系列算法已得到广泛的应用,即先通过算法生成一系列proposal region,再通过CNN对其进行分类与回归。该算法在检测的准确率和定位精度上与one-stage 算法相比具有一定的优势。
Ross Girshick 等人于2014 年提出了R-CNN,核心思想是将region proposals 与CNN 相结合,是第一个将深度学习与目标检测相结合的算法,并且该算法在VOC 2012 数据集上的测试结果超过了以往的所有实验,对于mAP 这个指标而言,相较于之前提高了30%,并最高达到了53.3%。Fast R-CNN[18]在其基础上进行改进,将特征提取对象为整张图像,并首次提出了Rol pooling 这一模块,及将输出的feature map 归一为固定尺度大小。同时允许以end-to-end 的方式训练物体检测模型,最后将SVM 分类器替换为Softmax 激活函数,让网络在训练集和测试集上达到了更高的precision 和recall 值。相较于 Fast R-CNN,Faster R-CNN 舍弃了原先的Selective Search 模块,提出并应用了区域建议网络(Region Proposal Network,RPN),对选取好的锚点生成九种尺度的锚框,进而将其映射到原图上得到候选区域,大大提升了目标检测的速度。
在本节中,我们主要介绍Mask R-CNN 的基础网络结构.其中,2.1 节给出了Mask R-CNN 网络的定义2.2 节描述了网络内部每个模块的结构组成与应用。
Mask R-CNN 是由Kaiming He 等人提出的网络框架,主要针对目标实例分割任务。其实现流程如图1所示。该算法是由两部分组成:检测部分和分割部分。与以上目标检测算法不同的是,Mask R-CNN 的任务是实例分割(instance segmentation),需要对目标的每一个像素点进行分类。
Mask R-CNN 在 Faster R-CNN 的基础上,选择了能够更好处理深层次特征的ResNet 网络。通过将ResNet50∕101 与FPN 结合作为特征提取网络,对图像进行多层卷积特征提取得到Feature Map,达到了state-of-the-art 的效果。后续将 Feature Map 输入RPN 中,生成可能包含目标的候选区域。并通过RoIAlign 将输出特征图固定尺寸,达到有效的目标检测效果。
在网络实现的后阶段,引入了预测目标掩膜的mask 分支,即将特征图输入全卷积层中生成与目标定位相应的二值掩码,与并行的目标定位分类相结合,从而实现实例分割,输出相应的人脸图像。
图1 Mask R-CNN算法模型框架
RPN(Region Proposal Network,区域建议网络)是应用于生成proposal region 的一个框架。它通过以多个大小比例的锚框对CNN 提取特征后的feature map进行滑窗,来生成一系列的proposal regions。流程如图2 所示,以feature map 上每个点为中心,生成九种尺度的 anchor box,及三种宽高比例(1:1,1:2,2:1)和三种面积比例(128,256,512)。对其同时进行前后景判断和bounding box regression,得到 box 类别和 anchor box 到ground truth 的偏移量,由此可初步确定proposal。最后由非极大值抑制法(NMS)去除冗余项,得到最终目标区域框。整体结构如图2 所示。
图2 区域建议网络
由于传统的图像实例分割未考虑到目标周围像素的可重复性,直接是将图像实例中的一部分作为卷积网络的输入来进行训练与预测,这会大大降低目标检测的准确性。FCN[18]的提出有效地解决了这个问题,在该网络结构中未使用全连接层,网络结构如图3 所示。
图3 全连接网络结构(FCN)
FCN 的不同之处是通过反卷积操作对最终的特征图进行上采样,以此获得相应的像素值,使图像实现end to end。同时引入跳级结构,兼顾了图像的全局特征和局部特征,使得到的预测结果更加精确。在对feature map 进行上采样的同时,将每个像素通过Softmax函数进行分类预测。最终保存了丰富的位置信息,且实现了逐像素预测。
对大多数目标检测框架而言,RoI pooling 的作用为固定输入全连接层的特征尺寸,实现后续的pixel classification 与 coordinate regression。但通过 RPN 得到的proposal box 的坐标值通常为浮点数,这要求RoI Pooling 层需将候选框边界位置的坐标值取整,但该操作会使候选框与最初采样点的坐标位置有偏差,导致目标的检测分割精度下降。RoIAlign 是在原有RoI Pooling 的基础上取消了量化操作,并舍弃了最近邻插值法而使用双线性差值法来对采样点坐标进行处理。该方法利用feature map 上距离采样点最近的四个像素,来获取采样点相应的浮点数像素值。实现原图与特征图像素对齐,增强检测模型准确性。操作流程如图4 所示。
图4 RoIAlign
先对x 方向进行线性插值:
再对y 方向进行线性插值:
双线性插值法是一种较好的图像缩放算法,它通过利用采样点周围四个真实存在的四个像素点,来得到一个最适应目标的像素值,解决了Faster R-CNN 中RoI Pooling 对像素值取整所导致定位不精准的问题。
FPN(特征金字塔网络)是 Tsung-Yi Lin 等人[19]提出的。对于目标特征图而言,低层特征语义信息较为粗略,但目标位置精准。高层特征与之相反。从该角度出发,FPN 通过卷积神经网络内部从下至上各个层按照顺序对同一图片进行不同维度的特征表示。是一种基于CNN 的多尺度特征提取方法。基本架构如图4所示。
FPN 由三部分组成:
自底向上(Bottom-top):即卷积网络的前向过程。通过卷积操作提取各层次特征。
自顶向下(Top-Bottom):由于顶层特征图语义更为丰富,可通过上采样(upsampling)达到图像超分辨率。
横向连接:将两种采样的相同尺度的feature map进行融合。
Mask R-CNN 通过引入FPN,增强了对图像信息的表达输出能力。通过改进了主干网络的特征提取方式,使最终输出的特征更好地表示出输入图片各个维度的信息。
图5 特征金字塔网络
为了实现更高效的特征提取,本文在Mask R-CNN结构中利用ResNeXt 网络。该网络不仅继承了ResNet类似的以通过增加恒等映射来实现深度递增的堆叠方式,同时它以可扩展的方式实现了Inception 中的splittransform-merge 思想。
ResNeXt 提出了一种新的模块形式——“cardinality”,及转换集合的大小。如图6 所示该结构的cardinality=32。每一组转换都是相同的拓扑结构,可扩展性强。ResNeXt 对于先对特征图进行一系列的转换,最终将处理后的输出通过相加进行融合,在增加准确率的同时基本不改变或降低模型的复杂度,并提高网络的表征能力。
图6 特征金字塔网络
非极大抑制算法是用于排除冗余proposal region的算法。原始RPN 中的NMS 是将ground truth 与proposal region 的IOU 值作为选择项,但可能会发生包围框不精确的情况。因此,本文采用了基于KL Loss 的Softer-NMS 算法,流程如图7。
图7 Softer-NMS网络框架
Yihui He 等人提出了新的损失函数KL Loss。该算法代替了Smooth L1 Loss 来实现包围框回归。该损失函数将对包围框的损失预测结果呈现出高斯分布,并使其与ground truth 相近。最关键的是以包围框预测的标准差作为置信度,将具有定位置信度(localization confidence)的训练检测网络。
Softer-NMS 将大于一定重叠度阈值Nt 的候选包围框根据置信度加权平均,避免了候选框在加权平均后出现形状异常的情况,提高了目标检测的定位精度。
损失函数定义为:
本项目的实验环境配置如表1 所示。
表1 实验环境配置
本文项目使用的是基于Facebook AI Research 推出的Detectron2 目标检测平台中的相关模型。使用已在COCO 数据集训练过的模型并对其部分模块进行改进。最后,利用该模型在FDDB 数据集上进行测试,并且为了检测模型的性能,与Faster R-CNN 等算法作对比。从表2 可以看出,本模型在传统Mask R-CNN 的基础上,在对目标检测的平均精度上得到了提升。
表2 不同模型性能对比
本文通过对传统的Mask R-CNN 网络结构进行改进,替换主干网络为ResNeXt101,增强了特征提取能力,并在RPN 过程中引入了Softer-NMS 算法。总体而言提高了目标检测的效率与precision。相较于传统的Mask R-CNN 模型,本文改进的模型不管在训练时间还是平均检测精度,都得到了较好的实验效果。