1. 引言
自2019年末以来,新型冠状病毒以极快的传播速度在全球肆意蔓延,给各地疫情防控工作带来了巨大的挑战。在这一背景下,全球范围内推广佩戴口罩成为一项重要的防控措施,它能有效地阻隔空气中的飞沫以及游离病毒进入呼吸道,从而减少感染几率。如在人口密集的公共场所(机场、车站、商场、学校等)应用口罩佩戴识别系统可以帮助卫生部门和政府实时监测佩戴率,提前发现和控制潜在的传染风险,从而保障公众健康安全。
目前有两种主要的目标检测算法,一种是基于图像处理的传统目标检测算法,另一种是基于卷积神经网络的目标检测算法。传统的目标检测算法通过不同尺寸的滑动窗口或图像分割技术形成大量候选框,在对每个区域的图像特征,如方向梯度直方图、尺度不变特征 [1] 进行提取之后,传递给分类器,如支持向量机(SVM) [2] 、K近邻(KNN)、决策树(Decision Tree)等对该候选区域的分类。由于使用人工提取特征的方法,传统的目标检测存在特征表达能力弱、检测准确度不高、窗口冗余等问题。随着深度学习技术的不断发展,基于深度学习的目标检测算法在准确率和效率方面持续改进,成为目前主流的研究方向。其中,著名的算法包括Faster R-CNN、YOLO (You Only Look Once)、SSD (Single Shot Multibox Detector)等。这些方法能够高效地检测图像中的目标,并且在复杂场景下表现较好。YOLOv3是YOLO系列的第三代算法,最早由Joseph Redmon等人在2018年提出 [3] 。自发布以来,许多研究人员对YOLOv3进行了优化和改进。如张富凯等人在YOLOv3网络的基础上,提出了改进的快速车辆检测方法 [4] ,孙迎春等人提出了交通灯检测算法 [5] ,葛雯等人提出了行人识别算法 [6] ,这些改进后的YOLOv3算法在特定场景下表现出了不错的检测效果。
本文针对人群环境下口罩佩戴检测中存在的中小尺寸目标等问题,对基于YOLOv3算法的模型进行改进与优化,以实现人群口罩佩戴检测任务。
2. 基于YOLOv3的改进目标检测识别算法
2.1. YOLOv3模型简介
YOLOv3是单阶段检测的一种经典算法,它的优点在于简化了目标识别过程,直接通过对视频、实时源、图像等进行卷积网络回归而实现对物体的检测,大幅度提高了检测的效率,具有优异的时效性。
YOLOv3主干网络采用了darknet-53网络,一共提取了三个特征层进行目标检测,分别位于主干特征提取网络的中间层、中下层和底层,用于对大、中、小目标物体进行多尺度的检测。为了获得更强的特征表现力,将3个不同尺寸的特征图进行特征融合,中间经过上采样以及下采样,使特征图大小相同,然后进行堆叠、融合及相应的卷积等操作后,得到最终的3个特征层。结构图1中,DBL为YOLOv3的基本组件,在卷积部分使用了特有的DarkNetconv2D结构,卷积后进行了标准化与Leaky ReLU激活。另外,YOLOv3最重要的改进为引用了ResNet深度残差网络,通过使用这种改进措施可以增加网络结构层数,利用恒等映射的优势,对模型训练和图像特征提取效果起到质的突破。

Figure 1. Diagram of YOLOv3 network architecture
图1. YOLOv3网络结构图
YOLOv3相比于初代YOLO网络在精度和速度上有了很大程度的提高,但针对输入的图像目标尺寸过小、具体应用场景复杂等情况,该算法仍然存在敏感程度一般、精确度较低、达不到实时性要求等问题。针对以上问题,本文从网络结构和损失函数入手进行改进,以提高检测系统识别中小尺寸目标时的检测精度。
2.2. 模型改进
2.2.1. 基于稠密网络的YOLOv3检测模型
口罩作为小目标物体在目标检测中常常存在轮廓模糊,不易识别的问题,在实际应用中很容易被错检或误检。本文提出一种融合YOLOv3和DenseNet的改进网络。在该网络中,用稠密模块取代传统的残差模块,以获得更加丰富的低层细节特征信息。通过对该尺度目标进行集中优化训练,能够有效提升对中小尺度目标的敏感程度。
DenseNet是由Gao Huang [7] 等人于2016年提出,其主要特点是通过在网络层之间构建紧密的连接,从而使其在训练过程中更加紧凑和稠密,同时还能有效解决梯度消失问题。DenseNet的核心思想是在每一层将前面所有层的特征图连接在一起。具体来说,DenseNet由多个密集块(Dense Block)和过渡层(Transition Layer)组成,其结构图如图2所示。

Figure 2. Schematic diagram of Dense Block Structure
图2. Dense Block结构示意图
图2中,X0是H1的输入,H2的输入为X0和X1,H3的输入为X0、X1、X2,H3的输出即为H3,则第P层的输出可表示为式1。
(1)
其中,
是一个非线性组合函数,
是表示一个通道合并运算,用于表示前P − 1层特征图的输出。
密集块是网络中的基本模块,它由多个卷积层组成,每个卷积层之后都紧密连接着前面所有层的特征图。这样的连接方式有助于信息的充分传递,同时减少了特征图的重复计算,使得网络更加高效,具备抗拟合性和参数效率高的优势,为提升口罩佩戴检测模型的性能提供了新思路。
将YOLOv3网络结构中的Residual Block替换为Dense Block,并更改其连接方式,即可完成替代工作。将Darknet-53网络中用于提取52 × 52、26 × 26、13 × 13三种尺度特征图的残差块替换成密集连接块,即密集连接块是由多个结构相同的Resnet残差单元组成的密集连接网络,其结构如图3所示。

Figure 3. Diagram of Dense connection block with Resnet
图3. 含有Resnet的密集连接块
具体来说,即用4个改进后的Resnet残差块将13 × 13特征图密集连接块以稠密连接方式连接在一起;而用于提取52 × 52、26 × 26特征图的密集连接块由8个改进后的Resnet残差块以密集连接方式连接在一起,将该模型记为DS-YOLOv3模型,其网络结构如图4所示。

Figure 4. Diagram of DS-YOLOv3 network architecture
图4. DS-YOLOv3网络结构图
2.2.2. 改进损失函数
在YOLOv3中,损失函数包含三个主要组成部分:边界框回归损失、目标置信度损失以及分类损失。计算公式如式2。
(2)
其中,边界框回归损失衡量了预测边界框和真实边界框之间的位置误差,计算公式如式3。
(3)
在置信度和分类损失上采用的是二元交叉熵损失函数,如式4和式5所示。
(4)
(5)
其中,S是每个边界框预测的网格单元数,B是每个网格单元预测的边界框数量,λcoord是边界框回归损失的权重系数,i表示第i个网格单元,j表示第j个边界框,
是一个指示函数,当网格单元i的第j个边界框包含对象时为1,否则为0。C是类别数,
是预测网格单元i的第j个边界框属于类别c的置信度,
是真实标签中网格单元i的第j个边界框属于类别c的标签值。
IOU表示检测结果的矩形框与样本标注的矩形框之间的交并比,用于反映预测框和真实框之间的关联程度。

Figure 5. Diagram of intersection-over-union
图5. 交并比IOU
如图5所示,红框为预测框,记为
,绿框为目标框,记为
,
相交区域为
,
合并区域为
,则IOU的计算公式如式6。
(6)
IOU作为评价预测准确性的指标,在对检测框进行判定时,通常设定一个阈值,当IOU大于阈值时,则认为检测到口罩。在YOLOv3中,目标物体边界框的回归损失用均方误差MSE来表示,但这种方法没有关注到预测框与真实框位置和宽高比的问题。为解决这一问题,本文引入CIOU作为损失函数 [8] ,在原有的基础上,考虑预测框和真实框重合率及两者中心点之间的距离和宽高比,可有效地提高算法的收敛速度和检测的准确度,其计算公式如下。
(7)
(8)
(9)
式中,α为加权系数,
、
分别表示预测框和真实框的中心点,
表示
与
之间的欧几里得距离 [9] ,w、h分别为预测框的宽和高,ν表示宽高比的相似性。
3. 数据集
3.1. 数据收集与处理
口罩佩戴识别训练数据集主要来源于网络爬虫,部分数据由手机拍摄获得,剔除过于模糊、口罩被遮盖、角度较偏、距离过远等图像,共收集图像2199张。按照随机划分的方式将其分为训练集和验证集,数量比例为9:1。
为了增强数据的多样性,在采集数据时尽可能多地获取了不同环境、不同角度下的样本数据,并利用数据增强的手段,对图像进行了平移、翻转、裁剪等操作,以提高检测模型的鲁棒性和准确性。
3.2. 数据集的标注
利用Labelimg软件对样本数据采样框及类别进行标注时,标签文件格式为Pascal Voc,提取出数据中佩戴口罩的样本区域并标注为(mask)类,结合(EYES)类对于样本识别准确性有较大提升。对图片进行标注时,用矩形框框选眼部及佩戴口罩的部分,并保存为与图像对应的xml文件,如图6所示。
4. 实验
4.1. 实验环境
本文实验的具体配置如表1所示。

Table 1. Experimental environment configuration data
表1. 实验环境配置
4.2. 实验参数
实验中,各参数量的设置如表2所示。
在训练过程中,采用了动态调整学习率的策略,以便更好地收敛到最优解。设定初始学习率为0.01,

Table 2. Parameters data of network training
表2. 网络训练主要参数设置
当模型连续2个Epoch的损失不再下降时,将学习率减少为原来的一半。batchsize为同时代入训练模型的样本集,其大小会影响模型的优化程度和速度。综合考虑到硬件设施水平和网络的收敛速度,最终将batchsize确定为256。将训练所得的最优权重进行测试,第一次采用默认值moduel_image_size_1 = 416*416。在该参数下,部分结果中能准确识别已佩戴口罩的人员,但并不能完全识别出所有对象。可能的原因是初次采样比例过高造成的要素丢失,考虑到设备算力较高,故将moduel_image_size_2 = 960*960作为测试参数。
4.3. 评价指标与实验结果分析
4.3.1. 评价指标
本文采用三个常见的性能评价指标:使用平均精度(AP)、平均精度均值(mAP)以及每秒检测图片的帧数(FPS)来评估改进算法的性能。AP和mAP计算公式如式10和式11。
(10)
(11)
在目标检测中,对样本数据的分类判断有四种可能的结果,分别是正确地识别正样本(True positives),记为TP;正确识别出负样本(True negatives),记为TN;原为负样本,被误判成了正样本(False positives),用FP表示;原为正样本,将其错判成了负样本(False negatives),用FN表示,如表3所示。

Table 3. Classification results of sample data
表3. 样本数据分类结果
Precision (准确率),是指正样本占所有样本中预测正确的百分比;Recall (召回率),是指被正确识别的正样本占所有正样本的百分比 [10] ,计算公式如下。
(12)
(13)
当改变阈值时,Precision和Recall的值也随之改变,以召回率为横坐标,精确率为纵坐标,可得到PR曲线,用于描述Precision和Recall之间的关系。
4.3.2. 实验结果分析
在测试集上进行测试,得到DS-YOLOv3算法PR曲线如图7所示。结果表明,两类样本均具有较高的识别准确率。对于have_mask目标类别,AP值为96.13%,而对于no_mask目标类别,AP值为94.57%。

Figure 7. Improved YOLOv3 Algorithm PR curve
图7. 改进的YOLOv3算法PR曲线
将改进的DS-YOLOv3算法与YOLOv3算法性能指标进行比较,对比结果如表4所示。

Table 4. The detection speed of YOLOv3
表4. YOLOv3的检测速度
与原始YOLOv3算法相比,佩戴口罩的一类AP值提高4.08%,未佩戴口罩的一类AP值提高了4.89%,mAP值提升了4.49%。在单张图片检测速率上,检测每张图片时间增加了0.351秒,速度略慢于原YOLOv3。在FPS上,DS-YOLOv3算法FPS为25.4,与原YOLOv3相比,帧率降低了7.2,但仍大于25,可以达到实时性要求。综上所述,该改进的算法具有较高的检测精度和时效性,且在小目标物体的检测效果上有显著的提升。
5. 结语
本文基于目标检测中口罩佩戴识别的相关研究,针对人群环境下口罩佩戴检测中中小尺寸目标识别等问题,在YOLOv3算法模型的基础上进行改进与优化。首先,对YOLOv3的网络结构进行改进,通过在原网络中用稠密模块代替原有的残差模块,有效解决了对小尺寸目标识别度低的问题。接着,对损失函数进行了改进。利用CIOU损失函数进行边框回归,提高模型的定位精度。最后,在构建的数据集上进行训练和测试,对改进前后算法的检测效果进行比较。实验结果显示,改进后的算法在对口罩进行识别时平均精度达到了95.35%,相较于原YOLOv3算法提升了4.49%,同时该算法还保持了较高的检测速度,能够满足实时检测的需求。此外,该系统具有参数少,量级小的优点,在实际应用中可以将其嵌入移动式设备,能够有效解放人力,减少管理成本。
参考文献