2. 中南大学 自动化学院, 长沙 410083
2. School of Automation, Central South University, Changsha 410083, China
开放科学(资源服务)标志码(OSID):
近日,全球多国面临新一轮疫情冲击,且病株变异等情况也为疫情防控增添了更多的不确定风险,在疫情防控常态化的情况下,佩戴口罩是极为有效且经济的防控手段,因此,公共场合的口罩佩戴检测成为一项重要工作。在日常生活中,面对经呼吸道传播的传染性疾病或工厂生产过程中产生的有害颗粒物,佩戴口罩也可保护生命安全,减少危害源的接触,提高安全卫生等级。以人工的方式对活动人员进行监督检测耗时耗力,且近距离接触待检测人员存在一定的安全风险,因此,构建自动监控系统检测活动人员的口罩佩戴情况,对日常防护工作具有重要意义。
人脸口罩佩戴检测属于计算机视觉中的物体检测范畴,在过去的二十年中,物体检测的发展大致可分为2个阶段,即2014年以前的传统目标检测以及2014年以后的基于深度学习的目标检测[1]。随着GPU和大数据的发展,传统机器学习多阶段才能实现的功能可由深度学习串联完成,输入大量图像、语音和文本信息即可直接进行端到端的训练[2-3],因此,深度学习在物体检测、图像分割等领域展现出远超传统算法的能力。
为了使人脸口罩佩戴监督功能更易获取,口罩检测网络模型的轻量化也是一个必须要考虑的问题。当前经典的物体检测算法大多依赖卷积网络[4-6]进行特征提取,一系列优秀的基础网络(如VGGNet[7]、ResNet[8]、DenseNet[9]等)被提出,但是这些网络计算量往往较大,很难达到实时运行的工业应用要求,于是轻量化网络应运而生。SqueezeNet[10]从网络结构优化出发,先压缩再扩展,使用常见的模型压缩技术,在性能与AlexNet[11]相近的基础上,模型参数仅为AlexNet的1/50。但该网络仍然采用标准的卷积计算方式,之后的MobileNet[12]采用更加有效的深度可分离卷积,提高了网络速度并进一步促进了卷积神经网络在移动端的应用,同时通过较少的计算量获得了较高的精度。但是在理论上,MobileNet的计算量仍然可以继续降低。ShuffleNet[13]利用组卷积和通道混洗的操作有效降低了点卷积的计算量,实现了更为优越的性能。随着移动设备的进步和应用场景多样化的发展,轻量化网络展现出了更高的工程价值[14]。
针对人脸口罩佩戴检测的精度和速度问题,多位学者进行了各种尝试。文献[15]提出一种基于RetinaNet的人脸口罩佩戴检测方法,其通过迁移学习并利用预训练的ResNet模型帮助新模型训练,在验证集上的AP值达到86.45%。文献[16]基于YOLOv3网络模型,引入改进的空间金字塔池化结构并优化多尺度预测网络,同时替换损失函数,相较YOLOv3,其准确率提升14.9%。文献[17]基于YOLOv5网络模型,在原数据集的基础上进行扩充,采用翻转和旋转2种方式得到30 000张图片用于训练,最终准确率达到92.4%。
本文提出一种改进的口罩佩戴检测方法。为在模型精度和速度间取得平衡,设计更为轻量化的改进YOLOv5模型,在几乎不降低模型精度的情况下实现模型压缩并加快推理速度,同时降低对硬件环境的依赖性。针对实际应用场景中由距离摄像头远近不同而导致的一张图片中存在物体尺度面积不平衡的问题,使用YOLOv5分别进行20×20、40×40、80×80的多尺度检测,从而提升模型对于小物体的检测性能。
1 基础理论 1.1 YOLOv5算法原理YOLO(You Only Look Once)是一个高性能的通用目标检测模型,YOLOv1[18]使用一阶结构完成了分类与目标定位2个任务,随后的YOLOv2[19]与YOLOv3[20]在速度和精度上取得提升,进一步促进了物体检测在工业界的应用,YOLOv4[21]则实现了在一块普通的GPU(1080Ti)上完成模型训练。从YOLOv1至今,YOLO系列已经发展至YOLOv5,相较YOLOv4,YOLOv5更加灵活,它提供了4个大小的版本,分别为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,4个版本模型大小与精度依次递增,根据Bottleneck数目区分,采用了类似EfficienctNet[22]的channel和layer控制因子来实现版本的变化,在实际应用中,可以根据具体场景的不同来选取合适大小的模型。本文主要实现模型压缩及加速,使其更易应用于资源有限的嵌入式设备,因此,选择YOLOv5s系列作为基准模型。
YOLOv5也有着版本迭代更新,目前已更新至v5.0,其中,v3.0、v4.0、v5.0各有优势,v4.0与v5.0中的YOLOv5-P5模型结构相同,v5.0新提出YOLOv5-P6模型,较已有版本,其添加了1个输出层,共计P3、P4、P5和P6这4个输出层,对应下采样幅度分别为8、16、32和64,新增加的检验层有利于检测较大的物体,可以通过更高分辨率的训练获得更高的精度。此外,YOLOv5-P5模型使用PyTorch1.7中新支持的SiLU()激活函数替换了先前版本中使用的LeakyReLU()和HardSwish()激活函数,使得网络中任何一个模块都只使用SiLU激活函数,并删减了先前版本中BottleneckCSP的部分Conv模块。先前版本的BottleneckCSP以及YOLOv5-P5中的改进BottleneckCSP对比如图 1所示,改进BottleneckCSP也称为C3模块。
![]() |
Download:
|
图 1 BottleneckCSP和C3模块 Fig. 1 BottleneckCSP and C3 module |
可以看到,C3模块由于消除了每个瓶颈结构中的一个卷积,导致新版YOLOv5-P5的尺寸都稍小,能够得到更小的模型,且推理速度也有少量提升,对于较大的YOLOv5x,推理时间由6.9 ms降低至6 ms,即模型越大,从这个变化中受益越大。表 1所示为YOLOv5s各版本的性能比较,可以看到,虽然YOLOv5s-P5精度较YOLOv5s-3.0有0.8%的下降,但是速度和参数量都更为优秀,YOLOv5s-P6虽然精度最高,但是无论是高分辨率的输入还是增加的检测头,都为设备资源分配增加了更大的负担。综合考量,本文最终选择YOLOv5s-P5作为基准实验模型,以其为baseline进行模型优化。本文中后续出现的YOLOv5一词,若没有特别说明,均指YOLOv5s-P5。
![]() |
下载CSV 表 1 YOLOv5s各版本性能分析 Table 1 Performance analysis of various versions of YOLOv5s |
YOLOv5由Backbone与Head 2个部分组成,Backbone主要有Focus、C3以及SPP模块,Head包括PANet以及Detect模块。
在Backbone部分,通过1个Focus模块、4个Conv模块实现32倍下采样,其中,Focus模块将输入数据切分为4份,每份数据都是相当于2倍下采样得到的,然后在channel维度进行拼接,最后再进行卷积操作,Focus模块减少了卷积的成本,以reshape tensor实现下采样并增加channel维度,可以减少FLOPs并提升速度。
C3模块参照CSPNet结构[23],将一个阶段中基础层的特征图分成2个部分,拆分和合并策略被跨阶段使用,较好地降低了信息集成过程中重复的概率,重复梯度信息的减少,使得YOLOv5网络能够有更好的学习能力,推理计算也有一定的减少。YOLOv4中也使用了CSP模块,但YOLOv5中做出创新,以有无残差边为区分标准设计2种CSP模块,分别为CSP-False和CSP-True,以shortcut的取值False或True来控制改变。
加入SPP模块[24]至CSP模块之后,使用组合的3个多尺度最大池化层,在几乎没有速度损失的情况下大幅提升了感受野,提取出了最重要的特征,同时也有效降低了直接将图片进行伸缩而导致的图片信息丢失的可能性,进一步提升了模型精度。
在Head部分,通过将高层特征信息上采样的方式与低层特征信息进行传递融合,实现了自顶向下的信息流动,再通过步长为2的卷积进行处理,将低层特征与高层特征作Concat操作,使低层分辨率高的特征容易传到上层,从而实现了PANet[25]操作,更好地将低层特征与高层特征进行优势互补,有效解决了多尺度问题。
YOLOv5网络结构如图 2所示。
![]() |
Download:
|
图 2 YOLOv5网络结构 Fig. 2 Network structure of YOLOv5 |
GhostNet提出了一个创新性的模块Ghost,其通过更少的参数量和计算量生成了更多的特征图[26]。Ghost的实现分为2个部分,一个是普通卷积,另一个是具有更少参数量和计算量的线性操作。先通过有限的普通卷积得到一部分特征图,再将所得的特征图通过线性操作生成更多的特征图,最后将2组特征图在指定维度进行拼接。Ghost的操作原理如图 3所示。
![]() |
Download:
|
图 3 普通卷积与Ghost模块的对比 Fig. 3 Comparison between ordinary convolution and Ghost module |
普通卷积层的运算可以表示为:
$ \boldsymbol{Y}=\boldsymbol{X}{*}\boldsymbol{\omega }+b $ | (1) |
其中:
$ {\boldsymbol{Y}}^{'}=\boldsymbol{X}\mathrm{*}{\boldsymbol{\omega }}^{'} $ | (2) |
$ {\boldsymbol{Y}}_{ij}={{\mathit{\Phi}} }_{i, j}\left({\boldsymbol{Y}}_{\boldsymbol{i}}^{\boldsymbol{'}}\right), i\in \left[1, m\right], j\in \left[1, s\right] $ | (3) |
其中:
出于提高处理速度的目的,考虑到设备部署时的实用性,相较使用具有不同形状和参数的线性运算,本文全部使用
$\begin{array}{l} {c}_{\mathrm{c}\mathrm{o}\mathrm{m}\mathrm{p}\mathrm{a}\mathrm{r}{\mathrm{e}}_{s}}=\\ \frac{{h}^{'}\times {w}^{'}\times n\times c\times k\times k}{{h}^{'}\times {w}^{'}\times c\times k\times k\times m+d\times d\times {h}^{'}\times {w}^{'}\times \left(n-m\right)}=\\ \frac{{h}^{'}\times {w}^{'}\times n\times c\times k\times k}{{h}^{'}\times {w}^{'}\times c\times k\times k\times \frac{n}{s}+d\times d\times {h}^{'}\times {w}^{'}\times \frac{n}{s}\times \left(s-1\right)}=\\ \frac{c\times k\times k}{c\times k\times k\times \frac{1}{s}+d\times d\times \frac{s-1}{s}}\approx\\ \frac{c\times s}{c+s-1}\approx s \end{array}$ | (4) |
这里的
![]() |
Download:
|
图 4 GhostBottleneck和GhostBottleneckCSP模块结构 Fig. 4 GhostBottleneck and GhostBottleneckCSP module structure |
图 4中的
当前优秀的轻量级网络绝大部分都使用组卷积或深度可分离卷积来降低卷积操作所产生的计算量,但是,为了实现通道间的特征融合,这些网络中使用的
![]() |
Download:
|
图 5 通道混洗的实现过程 Fig. 5 Realization process of channel shuffle |
图 5中的数字是输入通道的编号,使用Reshape操作将通道扩展为两维,并通过Transpose对扩展出的2个维度进行置换,通过这个操作能够在不增加计算量的情况下使组卷积通道之间的信息完成融合,最后Flatten操作将2个维度复原为原来的初始维度,完成通道混洗。基于以上原理,可以认为一个逐点卷积可以使用一个
YOLOv5具有较好的工程实用性,选择其作为口罩检测模型的基准网络具有可行性。但是,从目前的研究和应用情况来看,YOLOv5仍可以进行进一步改进。结合1.2节及1.3节的内容,得到本文改进后的YOLOv5网络,其整体结构如表 2所示。
![]() |
下载CSV 表 2 改进的YOLOv5网络整体结构 Table 2 Overall structure of improved YOLOv5 network |
在表 2中:第2列的-1是指输入来自上一层输出;最后1列的值依次对应该模块的输入通道数、输出通道数、卷积核大小、步长信息;第4列GhostBottleneckCSPn模块中的n代表该模块内GhostBottleneck的数量。经过计算,改进YOLOv5模型总计367层,2 419 191个参数,计算量为5.5GFLOPs。初始YOLOv5模型共计7 066 239个参数,计算量为16.4GFLOPs。两者比较,优化后的模型参数量减少为原来模型的34.24%,计算量减少为原来模型的33.54%,实现了较大程度的模型压缩。
2.2 损失函数模型损失函数由分类损失(classification loss)、定位损失(localization loss)、目标置信度损失(confidence loss)组成。YOLOv5使用二元交叉熵损失函数计算类别概率和目标置信度得分的损失,通过实验,本文在GIOU Loss[27]和CIOU Loss[28]之间最终选定效果略好的CIOU Loss作为bounding box回归的损失函数。CIOU Loss计算公式如下:
$ {L}_{\mathrm{C}\mathrm{I}\mathrm{O}\mathrm{U}\;\mathrm{L}\mathrm{o}\mathrm{s}\mathrm{s}}=1-\left({I}_{\mathrm{I}\mathrm{o}\mathrm{U}}-\frac{{d}_{1}^{2}}{{d}_{2}^{2}}-\beta \alpha \right) $ | (5) |
其中:
本文模型训练算法实现过程描述如算法1所示。
算法1 模型训练算法
输入 人脸口罩数据集图片及标记文件
输出本次训练中性能最佳的检测模型
初始化参数 训练epoch数,学习率,批次大小,输入图片大小,网络模型配置yaml文件,标签与anchor的IoU阈值,损失系数,数据增强系数,标签与anchor的长宽比阈值
图片预处理 调整图片亮度、对比度、饱和度并进行Mosaic处理
步骤1 准备数据,制作数据集并划分训练集和验证集。
步骤2 加载数据配置信息及初始化参数,输入数据并对其进行预处理。
步骤3 加载网络模型,并对输入图片进行特征提取及物体定位分类。
步骤4 随着迭代次数的增加,使用SGD对网络中各组参数进行更新优化。
步骤5 若当前epoch不是最后一轮,则在验证集上计算当前模型的mAP,若计算得到的模型性能更佳,则更新存储的最佳模型。
步骤6 在训练完所设置的迭代数后,获得训练好的最佳性能模型和最近一次训练的模型。
步骤7 输出性能最佳的模型。
2.3.2 整体实现流程本文方法整体实现流程如图 6所示:首先准备数据,进行人脸口罩佩戴图片筛选及标记,制作数据集并随机划分训练集、验证集、测试集;接着按照算法1进行模型训练,得到性能最佳的人脸口罩佩戴检测模型;之后对测试集数据进行测试,并在测试图片上呈现最终的识别结果,即人脸位置和口罩佩戴状态。
![]() |
Download:
|
图 6 本文方法整体流程 Fig. 6 Overall process of this method |
本文实验的机器操作系统版本为Ubuntu 9.3.0-10ubuntu2,CPU型号为Intel® CoreTM i3-9100F CPU@3.60 GHz,GPU型号为GeForce RTX 2080 Ti,显存大小为11 GB,内存大小为31 GB。所有模型基于PyTorch 1.8,并使用cuda 10.1和cudnn 7.6.5对GPU进行加速。
实验使用的数据集来自AIZOO团队整理的开源数据集,该数据集主要从WIDER Face及MAFA公开数据集中筛选得到,从中分别选择3 894张及4 064张图片,并对其进行二次筛选及扩充,删除错误标签,加入部分ROBOFLOW开放的口罩数据集,最终得到训练集6 110张,验证集1 832张,共计7 942张图片。将图片预定义为佩戴口罩和未佩戴口罩两类,佩戴口罩标签为face-mask,未佩戴口罩标签为face。
为了避免将捂嘴动作预测为佩戴口罩,实验数据集中加入了嘴巴被手或衣物等其他物品捂住的数据,从而有效过滤了此类干扰。数据集部分图片如图 7所示。
![]() |
Download:
|
图 7 数据集部分图片 Fig. 7 Partial pictures of dataset |
通过对数据集进行分析得到可视化结果如图 8所示:图 8(b)中x、y指中心点位置,颜色越深代表该点位置目标框的中心点越集中;图 8(c)中width、height分别代表图片中物体的宽、高。从图 8(b)、图 8(c)可以看出,数据集物体分布比较均匀,且中小物体占比更大,存在物体间遮挡的情况,符合日常实际应用场景,但数据集存在轻微的类别间样本不平衡问题,该问题将在数据预处理中得到缓解。
![]() |
Download:
|
图 8 数据集分析结果 Fig. 8 Dataset analysis results |
实验数据集为PASCAL VOC格式,但YOLOv5所需为YOLO格式的txt标记文件,具体格式为(class_id,x,y,w,h),且都是归一化后的值,因此,需要做相应转换,具体运算规则如下所示:
$ x={x}_{\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{r}}/\mathrm{w}\mathrm{i}\mathrm{d}\mathrm{t}\mathrm{h} $ | (6) |
$ y={y}_{\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{e}\mathrm{r}}/\mathrm{h}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t} $ | (7) |
$ w=({x}_{\mathrm{m}\mathrm{a}\mathrm{x}}-{x}_{\mathrm{m}\mathrm{i}\mathrm{n}})/\mathrm{w}\mathrm{i}\mathrm{d}\mathrm{t}\mathrm{h} $ | (8) |
$ h=({y}_{\mathrm{m}\mathrm{a}\mathrm{x}}-{y}_{\mathrm{m}\mathrm{i}\mathrm{n}})/\mathrm{h}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t} $ | (9) |
其中:
本文所用数据集存在轻微的类间不平衡问题,这也是物体检测中的一个常见问题,模型训练时样本过少的类别的参考性较小,可能会使模型主要关注样本较多的类别,模型参数也主要根据样本多的类别的损失进行调整,最终导致针对少样本类别的检测精度有所下降。
为了解决上述问题,本文采用自适应图片采样策略,根据物体类别的数量占比及每张图片中各类物体的出现频数,生成每张图片的采样权重,再根据图片的采样权重生成采样的索引序列,类别数量和频数与类别权重成反比,若某张图片频数最高的类别的数量占比也较其他类别高,则这张图片被采样的概率就会降低,通过这种采样方式可以有效缓解类间不平衡问题。
3.2.3 anchor设置对于目标检测任务,设置合适的anchor直接影响模型的最终表现。合适的anchor是根据数据集物体大小而确定的,利用预设值anchor,基于shape阈值对bbox计算可能的最优召回率。如果召回率大于0.98,则无需优化,直接返回;如果召回率小于0.98,则利用遗传算法与k-means重新设置anchor。本文模型在人脸口罩数据集上可能的最优召回率为0.997 8,因此,使用YOLOv5的初始anchor值
本文实验的Mosaic数据增强参考CutMix[29]:随机选取4张图片并对其进行随机裁剪、排布和缩放,然后完成拼接,得到的效果如图 9所示。这种方式随机扩充了数据集,特别是随机缩放增加了小目标,使得网络的鲁棒性得到一定提升。经过Mosaic数据增强后相当于一次性处理了4张图片,batch size隐性增加,初始设置的batch size值无需很大也可以得到一个性能较好的模型,对GPU性能要求相对降低。
![]() |
Download:
|
图 9 Mosaic数据增强效果 Fig. 9 Mosaic data enhancement effect |
除此之外,本文还进行了改变亮度、对比度、饱和度等常规数据增强方法,与Mosaic相结合,在一定程度上有效防止了过拟合问题,能够实现更长时间的训练从而获得更优的模型性能。
3.3 结果分析本文所有实验中学习率均使用Warmup[30]训练,避免模型训练时初始学习率过高引起模型振荡,以便维持模型的稳定性。在Warmup阶段,采用一维线性插值对每次迭代的学习率进行更新,bias层的学习率从0.1下降到基准学习率0.01,其他参数学习率从0增加到0.01。在Warmup阶段之后,采用余弦退火算法[31]对学习率进行更新。实验中BN层、权重weight层、bais层的学习率分别为lr0、lr1、lr2,所有实验均训练300个epoch,batch size设为32。学习率的变化曲线如图 10所示,其中,lr0和lr1曲线变化相同。
![]() |
Download:
|
图 10 学习率变化曲线 Fig. 10 Curve of learning rate |
从mAP(0.5)、mAP(0.5∶0.95)、召回率Recall、准确率Precision、平均检测处理时间、参数量、计算量、模型大小这8个角度对模型性能进行衡量。上述部分评价指标的具体计算公式如下:
$ {P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{P}}}=\frac{{T}_{\mathrm{P}}}{\mathrm{a}\mathrm{l}\mathrm{l}\;\mathrm{d}\mathrm{e}\mathrm{t}\mathrm{e}\mathrm{c}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}} $ | (10) |
$ {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{N}}}=\frac{{T}_{\mathrm{P}}}{\mathrm{a}\mathrm{l}\mathrm{l}\;\mathrm{g}\mathrm{r}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{d}\;\mathrm{t}\mathrm{r}\mathrm{u}\mathrm{t}\mathrm{h}\mathrm{s}} $ | (11) |
$ {A}_{\mathrm{A}\mathrm{P}}={{\int }_{0}^{1}P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}\mathrm{d}{R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}} $ | (12) |
$ {m}_{\mathrm{m}\mathrm{A}\mathrm{P}}=\frac{\sum \limits_{i=1}^{N}{A}_{\mathrm{A}{\mathrm{P}}_{i}}}{N} $ | (13) |
其中:
通过消融实验来逐步验证网络结构改变所引起的性能变化,本节3个实验分别训练YOLOv5、Ghost-YOLOv5、Ghost-YOLOv5-Shuffle这3个网络,实验测试结果分别如图 11、图 12、表 3所示,其中,曲线灰度依次递增分别代表YOLOv5、Ghost-YOLOv5-Shuffle和Ghost-YOLOv5。
![]() |
Download:
|
图 11 各模型在人脸口罩数据集上的实验结果 Fig. 11 Experimental results of each model on face mask dataset |
![]() |
Download:
|
图 12 各模型的所有类别AP值对比 Fig. 12 Comparison of AP values of all categories of each model |
![]() |
下载CSV 表 3 各模型的性能对比结果 Table 3 Performance comparison results of each model |
从表 3可以看出,使用GhostBottleneck替换YOLOv5中所有的Bottleneck模块后,模型计算量和参数量分别压缩为原来的63.41%和68.98%,在使用GPU或CPU的情况下分别有13.64%和16.37%的速度提升,并且模型大小变为原来的69.34%,但同时,从图 11(c)中也可以看出,模型精确度有了明显损失,且波动更为剧烈,这在验证集的类别损失曲线中也有所体现,所幸在训练后期,Ghost-YOLOv5模型与YOLOv5之间精确度的差值较初期有所下降,除此之外,从图 12可知,Ghost-YOLOv5模型最终的所有类别平均AP较YOLOv5仅下降0.3%。
在继续将标准卷积替换为ShuffleConv后,模型计算量和参数量进一步压缩,分别为原来的33.54%和34.24%,在使用GPU情况下处理时间仍然保持1.9 ms不变,但CPU速度较YOLOv5提升了28.25%,模型大小压缩至原来的35.77%。GPU情况下速度没有提升,原因是在算力足够的GPU平台上,组卷积虽然降低了运算量和参数量,但是由于内存交换速度的限制,ShuffleConv的瓶颈并非是计算强度,因此,此模块对GPU环境下的影响微乎其微,但当在计算能力有限的CPU平台上,计算速度便会有相当的提升,更适合部署在资源有限的嵌入式设备上。此外,Ghost-YOLOv5-Shuffle在Ghost-YOLOv5的基础上精度有所提升,从各个衡量标准来看都与YOLOv5的检测能力更加贴近,且从分类损失曲线来看,在一定程度上证实了组卷积的正则化效果,由图 12可知,Ghost-YOLOv5-Shuffle的最终mAP(0.5)为0.950,较YOLOv5的0.951几乎没有精度下降,且各类间差值都在0.003范围之内。
YOLOv5与Ghost-YOLOv5-Shuffle实际运行效果如图 13所示,每个小图中的左边图片为YOLOv5,右边图片为Ghost-YOLOv5-Shuffle。通过图 13的实际检测效果对比可以看出,改进后的模型在进行非极小物体的识别时与基准模型几乎没有区别,面对分布极为密集的模糊小物体时,基准模型比改进模型略微精确,但改进模型对绝大部分小物体还是能够实现正确识别。
![]() |
Download:
|
图 13 复杂场景下的实际检测效果 Fig. 13 Actual detection effect in complex scenes |
为了进一步验证本文所提模块及网络的高效性,将其与同类轻量级网络YOLOv3-tiny、YOLOv4-tiny等进行对比,结果如表 4所示。其中,实验5、实验6第2列括号中的数字代表模型中前3个GhostBottleneckCSP中GhostBottleneck的个数。从表 4可以得出:
![]() |
下载CSV 表 4 不同网络的性能对比 Table 4 Performance comparison of different networks |
1)由实验0、实验2、实验4、实验6的对比可以看出,本文模型相较YOLOv3-tiny、YOLOv4-tiny、YOLOv5-P6具有绝对优势,其模型大小分别仅为上述模型的30.12%、40.65%、20.9%,但mAP明显大于YOLOv3-tiny、YOLOv4-tiny,且与YOLOv5-P6的mAP(0.5)大小相同,即选择本文所提网络结构进行人脸口罩佩戴检测是合理且经济的。
2)通过实验0和实验1、实验2和实验3这两组对比实验可以验证GhostBottleneckCSP和ShuffleConv模块在其他网络上的优化通用性,加入GhostBottleneckCSP和ShuffleConv模块的YOLOv3-tiny模型大小仅为原模型的8.43%,大量的
3)通过实验5、实验6可以说明,适当调整GhostBottleneckCSP中的GhostBottleneck数量能够在一定程度上提升模型对小物体的检测能力,在本文所提模型的基础上,将第2个和第3个GhostBottleneckCSP中的GhostBottleneck数量分别设为1和3,对应实验2、实验3,更大数量的模型的精度有轻微提升,且对小物体的检测能力更强。在实际应用场景中,可根据任务需要适当调整GhostBottleneck模块的数量,以达到模型大小与精度之间的平衡,实现更好的检测性能。
4 结束语本文设计并实现了一种轻量化的YOLOv5增强网络模型,该模型可以压缩大小并加快推理速度,模型精度得到一定程度的优化,同时极大降低了对硬件环境的依赖性,能够满足实际应用的需求。后续将在移动端进行模型部署,在实际应用场景中验证并完善所提模型,此外,将口罩佩戴特征与其他关联特征相结合,实现实用性更强的安全卫生监督系统,以更好地满足社会与日常生活的实际需求,也是下一步的研究方向。
[1] |
ZOU Z, SHI Z, GUO Y, et al. Object detection in 20 years: a survey[EB/OL]. [2021-03-05]. https://arxiv.org/pdf/1905.05055.pdf.
|
[2] |
LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539 |
[3] |
SEJNOWSKI T J. The deep learning revolution[M]. Cambridge, USA: MIT Press, 2018.
|
[4] |
JI Y Z, ZHANG H J, ZHANG Z, et al. CNN-based encoder-decoder networks for salient object detection: a comprehensive review and recent advances[J]. Information Sciences, 2021, 546: 835-857. DOI:10.1016/j.ins.2020.09.003 |
[5] |
LIU L L, ZHANG H J, XU X F, et al. Collocating clothes with generative adversarial networks cosupervised by categories and attributes: a multidiscriminator framework[J]. IEEE Transactions on Neural Networks and Learning Systems, 2020, 31(9): 3540-3554. DOI:10.1109/TNNLS.2019.2944979 |
[6] |
GAO X J, ZHANG Z, MU T T, et al. Self-attention driven adversarial similarity learning network[J]. Pattern Recognition, 2020, 105: 107331. DOI:10.1016/j.patcog.2020.107331 |
[7] |
SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. [2021-03-05]. https://arxiv.org/abs/1409.1556.
|
[8] |
HE K M, ZHANG X Y, REN S Q, et al. Deep residual learning for image recognition[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 770-778.
|
[9] |
HUANG G, LIU Z, VAN DER MAATEN L, et al. Densely connected convolutional networks[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 2261-2269.
|
[10] |
IANDOLA F N, HAN S, MOSKEWICZ M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5 MB model size[EB/OL]. [2021-03-05]. https://arxiv.org/abs/1602.07360.
|
[11] |
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84-90. DOI:10.1145/3065386 |
[12] |
HOWARD A G, ZHU M, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL]. [2021-03-05]. https://arxiv.org/pdf/1704.04861.pdf.
|
[13] |
ZHANG X Y, ZHOU X Y, LIN M X, et al. ShuffleNet: an extremely efficient convolutional neural network for mobile devices[C]//Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2018: 6848-6856.
|
[14] |
王军, 冯孙铖, 程勇. 深度学习的轻量化神经网络结构研究综述[J]. 计算机工程, 2021, 47(8): 1-13. WANG J, FENG S C, CHENG Y. Survey of research on lightweight neural network structures for deep learning[J]. Computer Engineering, 2021, 47(8): 1-13. (in Chinese) |
[15] |
邓黄潇. 基于迁移学习与RetinaNet的口罩佩戴检测的方法[J]. 电子技术与软件工程, 2020(5): 209-211. DENG H X. Method of mask wearing detection based on transfer learning and RetinaNet[J]. Electronic Technology & Software Engineering, 2020(5): 209-211. (in Chinese) |
[16] |
王艺皓, 丁洪伟, 李波, 等. 复杂场景下基于改进YOLOv3的口罩佩戴检测算法[J]. 计算机工程, 2020, 46(11): 12-22. WANG Y H, DING H W, LI B, et al. Mask wearing detection algorithm based on improved YOLOv3 in complex scenes[J]. Computer Engineering, 2020, 46(11): 12-22. (in Chinese) |
[17] |
谈世磊, 别雄波, 卢功林, 等. 基于YOLOv5网络模型的人员口罩佩戴实时检测[J]. 激光杂志, 2021, 42(2): 147-150. TAN S L, BIE X B, LU G L, et al. Real-time detection for mask-wearing of personnel based on YOLOv5 network model[J]. Laser Journal, 2021, 42(2): 147-150. (in Chinese) |
[18] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 779-788.
|
[19] |
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 6517-6525.
|
[20] |
REDMON J, FARHADI A. YOLOv3: an incremental improvement[EB/OL]. [2021-03-05]. https://arxiv.org/abs/1804.02767.
|
[21] |
BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection[EB/OL]. [2021-03-05]. https://arxiv.org/abs/2004.10934.
|
[22] |
TAN M X, LE Q V. EfficientNet: rethinking model scaling for convolutional neural networks[EB/OL]. [2021-03-05]. https://arxiv.org/abs/1905.11946.
|
[23] |
WANG C Y, MARK LIAO H Y, WU Y H, et al. CSPNet: a new backbone that can enhance learning capability of CNN[C]//Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2020: 1571-1580.
|
[24] |
HE K M, ZHANG X Y, REN S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916. DOI:10.1109/TPAMI.2015.2389824 |
[25] |
LIU S, QI L, QIN H F, et al. Path aggregation network for instance segmentation[C]//Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2018: 8759-8768.
|
[26] |
HAN K, WANG Y H, TIAN Q, et al. GhostNet: more features from cheap operations[C]//Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2020: 1577-1586.
|
[27] |
REZATOFIGHI H, TSOI N, GWAK J, et al. Generalized intersection over union: a metric and a loss for bounding box regression[C]//Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2019: 658-666.
|
[28] |
ZHENG Z H, WANG P, LIU W, et al. Distance-IoU loss: faster and better learning for bounding box regression[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2020, 34(7): 12993-13000. |
[29] |
YUN S, HAN D, CHUN S, et al. CutMix: regularization strategy to train strong classifiers with localizable features[C]//Proceedings of IEEE/CVF International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2019: 6022-6031.
|
[30] |
XIONG R B, YANG Y C, HE D, et al. On layer normalization in the transformer architecture[EB/OL]. [2021-03-05]. https://arxiv.org/abs/2002.04745.
|
[31] |
LOSHCHILOV I, HUTTER F. SGDR: stochastic gradient descent with warm restarts[EB/OL]. [2021-03-05]. https://arxiv.org/abs/1608.03983.
|