复杂场景下实时人脸口罩检测研究

2023-11-13 16:10洪叁亮
应用科技 2023年5期
关键词:人脸特征提取口罩

洪叁亮

深圳平安综合金融服务有限公司,广东 深圳 518000

借助视觉算法智能识别群众是否戴口罩,具备良好的应用价值,如银行、保险、微信和支付宝等金融业务人脸核验场景、机场和火车站闸机人脸核验场景、居民楼刷脸进楼等。判断群众是否佩戴口罩,拒绝佩戴口罩人群,提高人脸识别准确率,从而进一步提高了金融安防等场景的人脸识别的安全性。

传统的目标检测方法通常是基于手工设计的特征,如方向梯度直方图(histogram of oriented gradient,HOG)[1]检测算法;基于滑窗搜索,如Viola Jones 检测算法[2]。传统的目标检测算法对环境要求比较严格,往往需要在理想环境下进行,特征提取需要人工设计,不仅工作量大、还存在滑窗搜索性能低等缺点。

随着深度学习在计算机视觉的广泛应用,卷积神经网络(convolution neural network,CNN)也广泛应用于目标检测、图像分类和图像分割等领域。基于深度学习的目标检测主要有3类:第1类是基于二阶段(Two-stage)算法;第2类是基于一阶段(One-stage)算法;第3类是基于无锚点的检测(anchor free)。Two-stage 主要是借助启迪式算法或者区域候选网络(region proposal network,RPN)[3]来生成候选框, 对候选框再进一步进行分类和回归达到目标检测的目的,如空间金字塔池化网络(spatial pyramid pooling network,SPPNet)[4]和Fast R-CNN[5], 此类方法检测准确率高,但存在检测速度慢的缺点。One-stage 则是借助CNN 来预测目标的矩形框(即所在位置)和所属类别,同时使用锚框加速边框回归,网络输出再经过非极大值抑制(non-maximum suppression,NMS)得到最终结果。如单次多盒检测器(single shot multibox detector,SSD)[6]和你只看一次(you only look once,YOLO)[7], 此类方法检测速度快,适合做实时检测任务。anchor free 通常借助heatmap 预测目标中心点并回归相应目标的高度和宽度等,如CenterNet[8],该方法召回率高、误检少。本文人脸检测器选择精度和速度均较优的AIZOO 开源算法FaceMaskDetection[9]。该方法是基于单次多盒检测器(single shot multibox detector,SSD)的人脸口罩检测,适合做实时检测任务。本文方法旨在自然环境复杂场景下实现实时的人脸口罩检测,并可部署应用在计算量小的终端设备上。

目前,有不少学者致力于人脸口罩检测的研究。邓黄潇[10]基于RetinaNet 迁移学习来实现人脸口罩检测;肖俊杰[11]基于 YOLO 和YCrCb 人脸肤色模型来实现人脸口罩检测;牛作东等[12]基于RetinaFace 和注意力机制(attention)来实现人脸口罩检测。上述算法在计算资源不足的移动设备实时检测任务中,存在实效性和准确率有待提高和在复杂环境下算法的鲁棒性有待提高等不足。

综上所述,设计一个复杂场景下的实时人脸口罩检测器是很有必要的,本文在AIZOO 开源算法FaceMaskDetection 的基础上设计一个高精度轻量级人脸口罩分类器,旨在进一步提高人脸口罩检测的整体精度。本文设计的高精度轻量级人脸口罩分类模型,仅牺牲少量计算资源就能大大提高人脸口罩检测的整体精准度。本文提出了快速特征提取模块FastBlock 和基于多层级特征融合的轻量级人脸口罩分类网络(Light MaskNet),实验结果表明,该人脸口罩分类模型精度可达98.852%, ,CPU 推理时间仅为9.8 ms,GPU 可实现亚毫秒级的运算,可满足计算资源较少的边缘设备、移动端等应用的需求。

1 算法框架

本文在AIZOO 开源算法FaceMaskDetection的基础上设计一个高精度轻量级人脸口罩分类器,提出了快速特征提取模块FastBlock 和基于多层级特征融合的轻量级人脸口罩分类网络。

1.1 人脸检测方法

人脸检测采用AIZOO 开源算法FaceMask-Detection,该人脸检测模型输出人脸框的同时也输出人脸是否戴口罩的类别,可以在环境光线不理想、人脸姿态多样等不利条件下较好地召回人脸。

1.2 轻量级人脸口罩分类网络Light MaskNet

由于FaceMaskDetection 即使能尽可能多召回人脸,但是在人脸口罩的分类精度上还存在较大的缺陷,因此,本文设计了基于多层级特征融合的轻量级人脸口罩分类网络Light MaskNet 来弥补FaceMaskDetection 的精度缺陷。

1.2.1 快速特征提取模块FastBlock

MobileNetV2[13]的Bottlneck 包含由非线性分离的后续深度增加扩展( depth-increasing expansion) 和深度减少投影( depth-decreasing projection)逐点卷积(pointwise convolutions)。本文做了创新,交换深度可分离(Depthwise, DW)卷积和1×1 卷积的执行顺序,达到减少DW 卷积和1×1 卷积中间张量的通道数量,进一步降低计算成本的目的,从而提高了特征提取速度。FastBlock 如图1 所示。

图1 快速特征提取模块FastBlock

1.2.2 特征提取器

特征提取器采用128×128 像素的RGB 输入,由3 个2D 卷积、11 个FastBlock 组成(完整布局见表1 特征提取器)。最高张量深度(通道分辨率)为96,而最低空间分辨率为8×8。

表1 特征提取器

1.2.3 网络结构

Light MaskNet 由特征提取器和1 个全连接层组成,其中特征提取器采取多层级特征融合方式进行特征提取,不同层级之间的特征融合可以增大模型的广度,提高模型的鲁棒性。全连接层的输入为896 个神经单元,输出为2 个分类神经单元(即戴口罩与没戴口罩),Light MaskNet 如图2。

图2 Light MaskNet

2 实验与分析

2.1 实验环境

实验在Linux 系统下搭建的Pytorch 环境下进行,CPU 为Intel®Core™i7-8750H2.21 GHz,内存32 GB,显卡为GeForceRTX 2080Ti。

2.2 实验数据

实验数据一部分为公开人脸数据集(MAsked FAces,MAFA)和AIZOO 提供的公开人脸数据集,训练集部分(AIZOO 数据集由Widerface 数据集标注而成,场景种类繁多且复杂);另一部分为网上爬虫人脸样本及相机拍摄人脸样本。经整理数据集共计10 000 张图片(戴口罩人脸与没戴口罩人脸),其中训练集8 000 张图片,测试集2000张图片。

2.3 数据预处理

训练图像进行预处理,所述预处理包括数据扩增和数据归一化处理,数据扩增包括随机裁剪和补边、随机颜色抖动。训练图像大小为128×128。

2.4 损失函数

损失函数选用交叉熵损失公式为

式中:y为真实标签,y′为预测值。

2.5 优化器及超参数

训练优化器Adam;超参数 β1和 β2分别为0.9 和0.999;学习率为0.001;batch size 设置为64,epoch 设置为20;训练时超过5 个 epoch 准确率没有升高则采取early stopping 策略停止训练。

2.6 消融实验

本文为了验证Light MaskNet 算法的有效性,在相同训练集上另外进行了4 组迁移学习训练人脸口罩分类器,分别是基于MobileNetV2、ShuffleNetV2(x1.0)[14]、ShuffleNetV2(x0.5)和Mobile-ViT(xxs)[15]进行迁移学习训练分类器,这4 个网络分别去掉最后的分类层和倒数第1 个全连接层,然后接入自定义的全连接层,输出都为2 个神经元(分别代表戴口罩与没戴口罩),训练图像大小均为224×224,数据预处理方式和损失函数均与Light MaskNet 一致。不同算法在测试集上的测试结果如表2 所示。

表2 不同算法测试结果

实验数据表明,本文提出的Light MaskNet 准确率较其他4 个模型略输,但差距并不大,但在CPU 推理时间、参数量(Params)和乘加累积操作数(MAdds)均优于其他4 个模型,所以结合不同的应用需求可以选择对应的模型,如移动端等计算资源有限的边缘设备优先考虑选择本文提出的Light MaskNet。

2.7 人脸口罩检测

人脸口罩检测方案由FaceMaskDetection 和本文方法级联而成。复杂场景下待检测图像先用FaceMaskDetection 进行人脸口罩检测,将类别为No Mask(算法判断为没戴口罩)的人脸区域从原图裁剪后送入本文方法Light MaskNet 进行进一步的人脸口罩分类。

为了进一步验证本文算法的有效性,本文与FaceMaskDetection 的人脸口罩分类准确率做了比较,验证集为AIZOO 数据集测试集,该数据集场景种类多而复杂,有利于验证算法在复杂场景下的鲁棒性。根据AIZOO 数据标注,从测试集裁出人脸图片(包括戴口罩与不戴口罩)1 840 张。Light MaskNet 和FaceMaskDetection 在测试集上的测试结果如表3 所示。

表3 Light MaskNet 和FaceMaskDetection 测试结果

实际复杂场景下人脸口罩检测对比效果如图3 和图4 所示。其中,图3 (a)为FaceMaskDetection的检测结果,图3 (b)为FaceMaskDetection 和本文方法Light MaskNet 级联检测结果。

图3 人脸口罩检测对比效果1

3 结论

针对FaceMaskDetection 即使能尽可能多召回人脸,但是在人脸口罩的分类精度上还存在较大的缺陷,本文设计了基于多层级特征融合的轻量级人脸口罩分类网络Light MaskNet,并提出快速特征提取模块FastBlock。并设计4 套迁移学习方案与Light MaskNet 做性能、准确率等综合比较,以及基于AIZOO 测试集分析比较Light MaskNet和FaceMaskDetection 的人脸口罩分类准确率,实验数据表明本文方法能弥补FaceMaskDetection 精度低的缺陷,本文方法精度优异,计算量极小,CPU 推理时间仅9.8 ms,GPU 可实现亚毫秒级推理,可很好地满足计算资源有限的移动端和边缘设备的应用需求。

猜你喜欢
人脸特征提取口罩
有特点的人脸
戴口罩的苦与乐
因为一个口罩,我决定离婚了
雾霾口罩
基于Daubechies(dbN)的飞行器音频特征提取
三国漫——人脸解锁
Bagging RCSP脑电特征提取算法
马面部与人脸相似度惊人
基于MED和循环域解调的多故障特征提取
长得象人脸的十种动物