留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于注意力机制的光线昏暗条件下口罩佩戴检测

郭磊 王邱龙 薛伟 郭济

郭磊, 王邱龙, 薛伟, 郭济. 基于注意力机制的光线昏暗条件下口罩佩戴检测[J]. 电子科技大学学报, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
引用本文: 郭磊, 王邱龙, 薛伟, 郭济. 基于注意力机制的光线昏暗条件下口罩佩戴检测[J]. 电子科技大学学报, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
GUO Lei, WANG Qiulong, XUE Wei, GUO Ji. Detection of Mask Wearing in Dim Light Based on Attention Mechanism[J]. Journal of University of Electronic Science and Technology of China, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
Citation: GUO Lei, WANG Qiulong, XUE Wei, GUO Ji. Detection of Mask Wearing in Dim Light Based on Attention Mechanism[J]. Journal of University of Electronic Science and Technology of China, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222

基于注意力机制的光线昏暗条件下口罩佩戴检测

doi: 10.12178/1001-0548.2021222
基金项目: 国家重点研发计划(2018YFC0831800)
详细信息
    作者简介:

    郭磊(1971 − ),男,博士,副教授,主要从事机器学习、视频理解、嵌入式系统方面的研究

    通讯作者: 郭磊,E-mail:leiguo@uestc.edu.cn
  • 中图分类号: TP39

Detection of Mask Wearing in Dim Light Based on Attention Mechanism

图(11) / 表(2)
计量
  • 文章访问数:  4838
  • HTML全文浏览量:  1481
  • PDF下载量:  105
  • 被引次数: 0
出版历程
  • 收稿日期:  2021-06-14
  • 修回日期:  2021-11-05
  • 录用日期:  2021-09-01
  • 网络出版日期:  2022-01-14
  • 刊出日期:  2022-01-15

基于注意力机制的光线昏暗条件下口罩佩戴检测

doi: 10.12178/1001-0548.2021222
    基金项目:  国家重点研发计划(2018YFC0831800)
    作者简介:

    郭磊(1971 − ),男,博士,副教授,主要从事机器学习、视频理解、嵌入式系统方面的研究

    通讯作者: 郭磊,E-mail:leiguo@uestc.edu.cn
  • 中图分类号: TP39

摘要: 自新冠肺炎疫情爆发以来,口罩佩戴检测成为疫情防控的必备操作。该文针对在光线昏暗条件下口罩佩戴检测准确率较低的问题,提出了将注意力机制引入YOLOv5网络进行口罩佩戴检测的方法。首先对训练集图片使用图像增强算法进行预处理,然后将图片送入到引入了注意力机制的YOLOv5网络中进行迭代训练,完成训练后,将最优权重模型保存并在测试集上测试。实验结果表明,在注意力的加持下,该模型能有效增强人脸和口罩等关键点信息的提取,提高模型的鲁棒性,在光线昏暗条件下对口罩佩戴的检测准确率能达到92%,能够有效满足实际需求。

pn1https://github.com/aky15/AIZOO_torch

English Abstract

郭磊, 王邱龙, 薛伟, 郭济. 基于注意力机制的光线昏暗条件下口罩佩戴检测[J]. 电子科技大学学报, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
引用本文: 郭磊, 王邱龙, 薛伟, 郭济. 基于注意力机制的光线昏暗条件下口罩佩戴检测[J]. 电子科技大学学报, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
GUO Lei, WANG Qiulong, XUE Wei, GUO Ji. Detection of Mask Wearing in Dim Light Based on Attention Mechanism[J]. Journal of University of Electronic Science and Technology of China, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
Citation: GUO Lei, WANG Qiulong, XUE Wei, GUO Ji. Detection of Mask Wearing in Dim Light Based on Attention Mechanism[J]. Journal of University of Electronic Science and Technology of China, 2022, 51(1): 123-129. doi: 10.12178/1001-0548.2021222
  • 新冠肺炎疫情爆发后,人类健康受到巨大威胁,人们正常的工作与生活也受到了极大影响。为避免新冠肺炎疫情传播,规范佩戴口罩便成为了一项有效的防控手段。仅靠人工方式对流动人员进行口罩佩戴检测不仅效率低,且会耗费大量人力物力,同时由于新冠肺炎病毒易发生变异,且传染性极强,因此,做好公共卫生干预措施,检测活动人员在各类车站、大型商场等公共场合的口罩佩戴情况,对疫情防控具有重要的现实意义。

    基于深度学习的目标检测算法主要分为两大类,一类是以R-CNN[1]、Fast-RCNN[2]等为代表的两阶段检测算法,该类算法在特征提取的基础上,由独立的网络分支先生成大量的候选区,再对其进行分类和回归。另一类是以SSD[3]、YOLO系列算法为代表的一阶段检测算法,该类算法在生成候选框的同时进行分类和回归任务。

    针对口罩佩戴检测这一特定问题,目前国内外有许多学者进行了研究。文献[4]将ReinaNet网络应用在口罩佩戴检测上,在验证集上AP达到86.5%。文献[5]将YCrCb方法引入YOLOv3中,对正确佩戴口罩的识别准确率达82.5%。文献[6]在RetinaFace算法上进行改进,引入自注意力机制,检测效果较好。AIZOO(https://github.com/aky15/AIZOO_torch)也提出了一种基于Fast-RCNN和YOLOv3的目标检测方法,在口罩佩戴检测任务上取得了不错的成绩,但在可见度不高、光照强度不强的昏暗条件下,其检测精度仍有待提高。

    本文主要针对在可见度不高、光线昏暗的场景下,利用图像增强算法对图片进行预处理,将通道注意力和空间注意力结合,充分挖掘人脸口罩等关键特征点,同时对YOLOv5网络的损失函数进行相应的改进,提高模型在昏暗条件下的鲁棒性。

    • YOLO是一个基于深度神经网络的目标识别定位算法,其最大的特点是运行速度快,且检测精度较好,能运用于实时系统,现在YOLO系列已经发展到v5版本。YOLOv1[7]将目标检测问题看作空间上的多个边界框和与边界框对应类别概率的回归问题,令人耳目一新。随后,YOLOv2[8]引入批量标准化方法,使用高分辨率图像微调分类模型,采用先验框并使用聚类提取先验框尺度,约束先验框尺度等多种技巧,使得预测更加准确、检测速度更快、识别对象更多,由于YOLOv2能识别并定位9000种不同的对象,因此也被称为YOLO9000。YOLOv3[9]使用Darknet53网络作为骨干网络完成对图像的特征提取,并利用多尺度特征进行对象检测,加速了目标检测在工业界的落地。YOLOv4[10]设计了一种强大而高效的目标检测模型,使得其能够在在一块普通的GPU(如GTX1080Ti)上训练超快而精准的目标检测器。YOLOv5与YOLOv4相比,结构更加小巧,配置更加灵活,图像推理速度更快,能够更好地满足视频图像实时性检测的需求。YOLOv5自身也有其版本迭代,现已更迭至v5.0版本,本文使用最新版本v5.0。YOLOv5算法具有4个大小不同的模型,具体包括:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。本文使用YOLOv5s,其他的版本都是在该版本的基础上对网络进行加深与加宽,可以通过配置文件方便地进行修改。

      YOLOv5的网络结构如图1所示,对于一个通用的目标检测算法而言,主要分为4个基础组件:输入端、基准Backbone骨干网络、Neck网络与Head输出端。其中输入端表示要输入的图片。在输入端中通常会对原始图片进行相应的预处理,即对输入图像缩放到网络的输入大小,并采取归一化等操作,最终转化为640×640×3的张量输入到网络中。在YOLOv5中,还使用了Mosaic数据增强操作来提升模型的训练速度和网络的精度。基准Backbone骨干网络主要用来提取图片中的某些特征供后面的网络使用,通常采用Resnet、VGG等典型网络。YOLOv5中使用的是CSPDarknet53[11]结构,并删除了先前版本中的BottleneckCSP中的部分Conv模块,经过改进后的BottleneckCSP称为C3模块,它将梯度的变化从头到尾地集中到特征图中,使得YOLOv5网络能够具有很好的学习能力,能够在轻量化的同时保持较好的准确率,同时降低了计算瓶颈和内存成本,在YOLOv5中有两种C3模块,以有无残差边为标准,分为C3-False和C3-True。YOLOv5还在Backbone骨干网络中引入了Focus模块,它与4个Conv模块实现对输入图片的32倍下采样。Focus模块将输入图像进行切片操作,每隔一个像素取一个值,与邻近下采样类似,将原始图像数据切分为4份数据,接着在通道维度上进行拼接,最后进行卷积操作。这一过程将图片长、宽维度上的信息集中到了通道维度,因此没有造成信息的丢失,Focus模块减少了卷积的成本,用重置张量维度的方法巧妙地实现了下采样并增加了通道维数。Neck网络通常位于基准Backbone网络和Head网络的中间位置,利用它可以进一步提升特征的多样性及鲁棒性,更好地利用Backbone网络提取到的特征,YOLOv5中使用了SPP(spatial pyramid pooling)[12]模块、FPN(feature pyramid network)[13]模块、PAN(path aggregation network)[14]模块完成信息的传递融合。Head输出层主要利用之前提取的特征做出预测。

      图  1  YOLO网络结构图

    • YOLO系列算法已在长期的实践中被证明是一个优秀的目标检测算法,YOLOv5更是在其内部针对目标检测中的各种常见问题做出了较大的优化改进,因此本文选择YOLOv5作为口罩佩戴检测模型的基础网络是可行的。注意力机制最早在2014年率先被Google Deep Mind团队引入RNN模型上来实现图像的分类[15],实现了图像中多个物体对象的高效准确的识别。在卷积神经网络中,注意力机制作用在特征图上,通过获取特征图中的可用注意力信息,能够达到更好的任务效果[16]

      在昏暗条件下,光照强度不大,可见度低,难以对人脸进行精确定位,口罩佩戴检测任务的难度也更为困难,因此需要对YOLOv5网络做进一步的结构优化和调整。

    • 在目标检测中,损失函数通常由定位损失、分类损失和置信度损失3部分组成,如式(1)所示。常见的计算定位损失函数有GIOU Loss[17]、DIOU Loss[18]和CIOU Loss[19],经过对比实验,本文使用CIOU Loss来计算目标框的定位损失:

      $$ \begin{split} {\rm{Loss}} =& {\rm{Localization}}\;{\rm{Loss}} + {\rm{Confidence}}\;{\rm{Loss}} + \\ &{\rm{Classification}}\;{\rm{Loss}} \end{split} $$ (1)
      $$ {\text{Localization Loss}} = 1 - ({\text{IOU}} - \frac{{d_1^2}}{{d_2^2}} - \alpha \beta ) $$ (2)
      $$ \alpha = \frac{4}{{{{\text{π }}^2}}}({\tan ^{ - 1}}\frac{{{w^{{\text{GT}}}}}}{{{g^{{\text{GT}}}}}} - {\tan ^{ - 1}}\frac{w}{h}) $$
      $$ \beta = \frac{\alpha }{{(1 - {\text{IOU}}) + \alpha }} $$

      式中,IOU是预测框与真实框GT(ground truth)的重叠面积;${d_1}$是预测框中心点到真实框中心点的距离;${d_2}$是覆盖预测框与真实框的最小外接矩形的对角线长度。

      可以看出CIOU Loss不仅考虑了预测框与真实框的重叠面积,还兼顾了两者中心点之间的距离和两者的长宽比,因此在口罩佩戴检测实例中,表现比其他两种定位损失更好。针对置信度损失和分类损失,实验中采用交叉熵损失函数进行计算,分别如式(3)和式(4)所示,采用交叉熵损失函数能使得网络中的参数更新加快,让模型更快地达到收敛状态。

      $$ \begin{split} & {\text{Confidence Loss}} = \\ &\quad\quad - \sum\limits_{i = 0}^{K \times K} {I_{ij}^{{\text{obj}}}} [\hat C_i^j\log (C_i^j) + (1 - \hat C_i^j)\log (1 - C_i^j)] - \\ &\quad\quad {\lambda _{{\text{noobj}}}}\sum\limits_{i = 0}^{K \times K} {\sum\limits_{j = 0}^M {I_{ij}^{{\text{noobj}}}} } [\hat C_i^j\log (C_i^j) + (1 - \hat C_i^j)\log (1 - C_i^j)] \end{split} $$ (3)
      $$ \begin{split} & {\text{Classification Loss}} = \\ &\quad\quad - \sum\limits_{i = 0}^{K \times K} {I_{ij}^{{\text{obj}}}} \sum\limits_{c \in {\text{classes}}} {[\hat P_i^j\log (P_i^j) + (1 - \hat P_i^j)\log (1 - P_i^j)]} \end{split} $$ (4)
    • 在原始的YOLOv5网络的基础上,添加卷积注意力模块(convolutional block attention module, CBAM)[20]。CBAM是一种用于前馈卷积神经网络的简单且有效的注意力模块,它能将给定的特征图依次沿着通道注意力模块(channel attention module, CAM)和空间注意力模块(spatial attention module, SAM)推断出注意力图,然后将输入特征图与注意力图相乘进行自适应特征优化,突出主要特征,抑制无关特征,从而使网络更加关注需要检测目标的内容信息和位置信息,以提高网络的检测精度。CBAM整体结构如图2所示。

      图  2  CBAM网络结构

      在CAM中,特征图的每一个通道都可以看成是一个特征检测器。通道注意力模块关注的是特征在通道与通道之间的关系,主要提取输入图像中有意义的内容信息,压缩输入特征图的空间信息。对给定特征图$F \in {R^{{\text{C}} \times H \times W}}$,采用全局平均池化和全局最大池化,分别生成两个不同的空间信息描述特征图${F_{{\text{avg}}}} \in {R^{C \times 1 \times 1}}$${F_{\max }} \in {R^{C \times 1 \times 1}}$,再将这两个特征图送入一个含有一个隐藏层的多层感知机的共享网络中进行计算得到通道注意力图,最后通过点像素逐位相加将共享网络输出的两个向量融合得到最终的通道注意力特征图${M_{\text{c}}} \in {R^{C \times 1 \times 1}}$。CAM的结构如图3所示。

      图  3  CAM结构

      SAM更关注特征在空间上的关系,主要提取输入图像中目标的位置信息,与通道注意力模块相互补充。它将CAM的输出特征图作为本模块的输出特征图。它首先做一个基于通道的全局最大池化和全局平均池化,分别得到$ F_s^{\max } \in {R^{1 \times H \times W}} $$ F_s^{{\text{avg}}} \in {R^{1 \times H \times W}} $两个特征图,然后将这两个特征图串联,基于通道做拼接操作,再经过一个7×7卷积操作生成空间注意力特征$ M_s^{} \in {R^{1 \times H \times W}} $。SAM的结构如图4所示。

      由于CBAM模型在CAM中加入了全局最大池化操作,它能在一定程度上弥补了全局平均池化所丢失的信息。其次,生成的二维空间注意力图使用卷积核大小为7的卷积层进行编码,较大的卷积核对于保留重要的空间区域有良好的帮助。添加了CBAM的YOLOv5网络不仅能更准确地对目标进行分类识别,而且能更精准地定位目标所在的位置。

      图  4  SAM结构

    • 目前开源的口罩佩戴检测数据集较少,因此实验通过网络爬取与自行拍摄相结合的方式制作数据集,数据集中80%来源于网络,20%来源于实际拍摄。昏暗条件下的口罩佩戴图片相对缺乏,实际拍摄主要获取的是这类图片,实验过程中从楼道、室内等光线昏暗的场所进行了图片采集,同时也在傍晚和清晨等光线较弱的环境下进行了拍摄。数据集部分图片如图5所示。

      图  5  数据集部分图片

      实验数据集共包含9000张图片,对其进行手工标注,标注工具使用LabelImg。该数据集分为两种类别,分别是bad和good,bad表示人员未佩戴或未按规范佩戴口罩,good表示正确佩戴口罩。训练集与测试集的划分如表1所示。

      表 1  口罩数据集划分

      参数数值/张
      训练集 8000
      测试集 1000
      总计 9000

      本文使用图像增强技术,对原始图片进行图像平移、翻转、旋转、缩放,分离3个颜色通道并添加随机噪声,图像增强后的数据集类别分布如图6所示。

      图  6  数据集类别分布

      对增强后的数据进行可视化,如图7所示,图7a中表示中心点位置分布,图7b中表示物体的大小分布,可以看出进行数据增强后的数据物体中心点的分布较为均匀,物体大小以中小物体为主,符合日常生活场景。

      图  7  数据集可视化分析

      本文具体实验环境如表2所示。

      表 2  实验环境配置

      参数配置
      操作系统 Ubuntu 18.04
      CPU Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40 GHz
      GPU GeForce GTX 1080Ti
      编程语言 Python(版本-3.7.4)
      深度学习框架 Pytorch(版本-1.9.0)
      加速环境 CUDA(版本-11.4)
    • 模型评估指标主要包括平均精度均值(mean average precision, mAP)、召回率(recall)、精度(precision)。mAP即所有类别的平均精度求和除以数据集中所有类的平均精度,召回率表示原始样本中的正例有多少被预测正确的比率,精确率表示预测结果中预测为正的样本中有多少是真正的正样本的比率。在本次实验中,TP、FP和FN分别表示正确检测框、误检框和漏检框的数量:

      $$ {\text{mAP}} = \frac{{\displaystyle\sum\limits_{i = 1}^N {{\text{A}}{{\text{P}}_i}} }}{N} $$ (5)
      $$ {\text{Recall = }}\frac{{{\text{TP}}}}{{{\text{TP + FN}}}} $$ (6)
      $$ {{\rm{Precision}}} = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FP}}}} $$ (7)

      图8a中可以看出,当迭代次数接近400次左右时,MAP的数值接近于0.996;从图8b中可以看出,当迭代次数接近450次左右时,召回率近1;从图8c中可以看出,当迭代次数接近500次时,准确率接近0.995。

      图  8  模型性能评估

      网络模型训练阶段,迭代批量大小设置为32,总迭代次数为600次。初始学习率设置为0.001,采用小批量梯度下降法,并使用Adam优化器计算每个参数的自适应学习率。大约在350次迭代后,模型开始逐渐收敛。

    • 模型训练完成后,将得到的模型与参考文献[5]中的方法和AIZOO方法的口罩检测模型进行对比实验,分别在光照强度为30-75Lux(昏暗),75-250Lux(较昏暗)和250-1000Lux(正常光照)的条件下进行对别实验,实验结果如图9所示。其中,光照强度是指单位面积上所接受可见光的能量,常用于指示光照的强弱和物体表面积的被照明程度,单位是Lux,光照强度越大,表明光照越强,物体表面被照的越亮。

      图  9  3种方法实验结果

      可以看出,在一定的光照强度范围内,随着光照强度的增加,本文方法与文献[5]和AIZOO方法对口罩佩戴检测的准确率也逐渐增加。在光照强度为250~1 000 Lux的正常光照条件下,本文方法与文献[5]和AIZOO方法对口罩佩戴检测的准确率接近。在光照强度为75~250 Lux的较昏暗条件下,文献[5]和AIZOO方法对口罩佩戴检测的准确率比较接近,但本文方法对口罩佩戴检测的准确率比文献[5]和AIZOO方法分别高5.6%、4.8%。在光照强度为30~75 Lux的昏暗条件下,文献[5]和AIZOO方法对口罩佩戴检测的准确率相差不大,在图像增强和注意力机制的加持下,经过改进的YOLOv5模型实现了口罩佩戴的高效检测,对是否正确佩戴口罩做出了正确的判断。在光线昏暗的条件下,本文方法的检测精度要比文献[5]的方法和AIZOO方法高10.2%、9.3%。

      本文将算法应用在在实际场景中,实验的结果如图10所示,图中每一列分别是使用参考文献[5]、AIZOO与本文方法的检测效果。从图10a中可以看出,在光照正常的条件下,本文方法与参考文献[5]中的方法和AIZOO方法均实现了口罩佩戴的检测,正确地检测出了图片中的目标。图10b中,在光线较昏暗的条件下,文献[5]的方法和AIZOO方法能检测出人脸信息和口罩佩戴状态,但本文方法检测出的目标的置信度比其他两种方法要高。图10c中,在可见度不高、光线昏暗的条件下,识别人脸信息和口罩的难度增大,文献[5]中的方法和AIZOO方法无法获取到人脸口罩关键点信息,导致目标检测失败,但本文方法不仅成功地检测到了人脸信息,而且正确地检测出口罩佩戴的状态,并给出了对应的置信度。

      图  10  口罩佩戴检测效果实际场景对比示例

      实验结果表明,在可见度不高、光照强度不大的昏暗条件下,与文献[5]和AIZOO的方法相比,本文方法使用图像增强能改善图片的质量,通过注意力机制能更加准确地提取人脸口罩关键点特征,使得检测的准确率更高,具有较强的鲁棒性和扩展性,基本能够达到视频图像实时性的要求。

    • 本文提出的基于注意力机制的光线昏暗条件下的口罩检测方法可应用在口罩佩戴识别系统中,具有较强的鲁棒性和扩展性,对推进口罩佩戴检测的自动化、智能化,实现疫情防控和公共卫生安全具有重要的现实意义。

参考文献 (20)

目录

    /

    返回文章
    返回