基于YOLOv5s的口罩佩戴检测的改进算法

2024-05-18 06:48林子洋郭景娟
电脑知识与技术 2024年8期
关键词:注意力机制目标检测轻量化

林子洋 郭景娟

摘要:针对口罩佩戴的目标检测在复杂场景的误检、漏检和延迟问题,提出了一种基于YOLOv5s模型的改进算法。通过修改YOLOv5s模型,删除检测最大特征图层的部分,并引入通道注意力机制,旨在提高检测效率的同时保持准确率。实验结果表明,该改进算法有效地提升了YOLOv5s的检测效率,降低了对检测设备的需求,更适合应用于实时检测环境中。

关键词:目标检测;YOLOv5s;深度学习;轻量化;注意力机制

中图分类号:TP391        文献标识码:A

文章编号:1009-3044(2024)08-0024-04

开放科学(资源服务)标识码(OSID)

0 引言

目前,口罩在医院、实验室、工厂等环境下需要广泛使用。佩戴口罩可以降低病菌的传播风险,保障公众的健康和安全。随着检测算法的优化与硬件的提升,目标检测被运用到更多的场合。为了对相关人员是否佩戴口罩进行监测,避免工作人员在公共场合或特殊场景下逐人进行检测,占用人力资源,并影响工作效率,因此,开发一种精确、快速的目标检测算法对提升公共卫生安全有着重要的意义。

目前,国内有较多对口罩佩戴检测识别的优秀算法。牛作东等人[1]提出了改进RetinaFace的自然场景口罩佩戴检测算法,对口罩检测的mAP可达84.7%。王艺皓等人[2]使用改进后的YOLOv3算法,对口罩检测的mAP可达90.2%。李小波等人[3]在YOLOv5的基础上作出改进,添加了多种注意力机制,mAP可达86.2%。

在上述学者的研究成果的基础上,本文在YOLOv5提出了一种改进的算法。对YOLOv5s的模型进行修改,结合通道注意力机制,使模型可以更快地检测出口罩。

1 相关工作

1.1 目标检测

目标检测是一项与计算机视觉和图像相关的技术,在日常生活中有着广泛的运用,例如人脸识别、自动驾驶识别和远程监控等。

目标检测按照检测方式可分为两类:两阶段目标检测和单阶段目标检测。R-CNN[4] (Region-based Convolutional Neural Networks)、Fast R-CNN[5]和 Faster R-CNN[6]是代表性的两阶段目标检测算法。这类算法首先专注于定位物体的位置,然后再对检测到的物体进行分类,以提高检测精度。YOLO [7](You Only Look Once) 系列算法和 SSD[8] (Single Shot MultiBox Detector) 算法则是代表性的单阶段目标检测网络,将物体定位和分类合并为一步,大大提高了检测速度,但精确度可能会下降。

YOLO算法是一种基于深度神经网络的对象识别和定位算法。在本文中,使用了识别速度快、占用内存少、在模型快速部署上有优势的YOLO系列中的YOLOv5。相较于之前的版本,YOLOv5 在计算效率和精度上都有所提升,具有更高的扩展性。此外,相较于YOLOv7,YOLOv5 需要的训练和推理速度更快,占用的内存更少。

YOLOv5 是使用深度学习框架 PyTorch 实现的。它的网络结构一共有四个模块:Input、Backbone、Neck 和 Head。在Input模块中,可以进行自适应锚框计算和自适应图片缩放。Backbone模块中包含了Focus结构和CSP结构,用于对图片进行切片操作以获得特征图,并增强CNN的学习能力,从而加快网络的推理速度。Neck模块中包含了FPN和PAN结构,通常用于特征图的融合,生成多尺度的信息特征图,提高目标检测的准确率。Head部分使用CIOU_Loss作为损失函数,进行最终的回归预测。

YOLOv5 有四个版本:s、m、l 和 x。这四个模型的结构相同,区别在于depth_multiple模型的深度和width_multiple模型的宽度参数不同。其中,YOLOv5s 是深度和宽度最小的目标检测模型,其余三种在YOLOv5s基础上进行了深度和宽度的调整。考虑到口罩检测的实时性要求,本文选用了YOLOv5s模型并对其进行了改进。

1.2 注意力机制

在机器翻译或语音识别等实际应用任务中,由于数据集庞大、网络结构复杂且计算资源有限,难以对所有数据进行同样处理。因此,使用注意力机制可以选择性地关注部分数据,提升模型性能和效率。对YOLOv5模型添加注意力机制可以提高模型准确性,改变检测时计算的不同权重,避免不必要的漏检和误检。

SE通道注意力机制[9]是一种轻量级的注意力机制,通过改变特征通道之间的关系提升网络性能。它采用学习方式自动获取每个特征通道的重要程度,从而提升有用特征并抑制对当前任务用处不大的特征,同时提高神经网络的分类能力。由于该注意力机制的计算量较小,可以在增加额外计算量时不会降低太多模型性能。

SE模块的结构如图1所示,给定输入特征图x,经过Ftr转换得到特征图U。接着,特征图U经过Squeeze、Excitation、Reweight操作,最后重新标定前面得到的特征。

Squeeze操作的公式:

[Zc=Fsquc=1H×Wi=1Hj=1wuc(i,j)]

Squeeze操作是指在空间维度上进行特征压缩,主要将高度和寬度(H×W) 压缩成1×1,然后进行全局池化操作。

Excitation操作的公式:

[s=Fexz,W=σgz,W=σ(W2δW1z)]

Excitation操作主要是通过参数w为每个特征通道生成权重,用来建模特征通道间的相关性。在经过Squeeze操作后得到的1×1×C的特征图上,引入一个全连接层,对每个通道进行重要性预测,然后将不同通道的重要性加权到之前特征图的对应通道上。

Reweight操作是将Excitation操作后的特征通过逐通道乘法加权到之前的特征上,完成对特征权重在通道维度上的重新标定。

2 网络架构

2.1 添加注意力机制

通过引入注意力机制,我们可以在众多输入信息中聚焦于当前任务更关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,从而解决信息过载问题,提高任务处理效率和准确性。在YOLOv5s模型的各部分添加了SE和CBAM注意力机制,并进行了测试和数据记录。由于SE注意力机制相较于CBAM注意力机制更加轻量级,所需的计算成本也更少,因此结合最后的训练结果,决定将SE注意力机制添加到head部分的第二个Concat层后。

2.2 删去最大的特征图通道

删除最大的特征图通道可以进一步减少计算量,有利于在资源有限的环境中进行目标检测。YOLOv5采用多尺度融合特征的方式得到最后的结果,以提升精确度。在YOLOv5s中,它使用(80,80,256) 、(40,40,512) 和(20,20,1024) 三个不同大小的特征图通道来得到最终的结果。考虑到口罩佩戴的检测可以忽略小目标检测的影响,而对小目标的检测又是计算最复杂的一步,因此将对小目标检测的计算这一步忽略,以在保证精确度的情况下大幅降低口罩佩戴的检测所需时间。然而,删除的特征通道与输入数据的特征不相关,可能会受到噪声的干扰,从而影响性能。因此,可以删除数据集中具有小而密的检测目标特征图,使模型专注于检测较大、更容易识别的目标。当检测的目标都是较大的目标时,删除最大特征图通道的影响將降低。

2.3 修改后的轻量化YOLOv5s结构

在本次实验中,对YOLOv5s.yaml的文件进行修改,引入一行对原本第18层的Concat模块添加注意力机制的效果,使其更加关注重要的特征部分。同时删除backbone中大小是[1024,3,2]的卷积层和head中的大小是[512,3,2]的卷积层,并对各部分中行数进行修改,使其对应原来的行数。然后将对应的注意力机制代码加入common.py文件中,在yolo.py中添加需要引用的注意力机制的名称。

如图2所示,对YOLOv5s进行了修改,删除了最大特征通道,最终只保留了2个最大特征通道的结果。Concat层用于特征提取和卷积融合,因此删去了多余的卷积层并对各层数做出调整,在中等大小的特征通道的Concat层后添加了SE模块,在图2中用虚线框出所示位置。根据多次实验结果对比,只在第二个Concat层后添加注意力机制是最能有效提升检测精确度同时需要很少计算量的方法,因此只添加了一个SE模块。

3 实验结果与分析

3.1 实验环境与数据集

用于训练模型的硬件环境是:AMD Ryzen 5 5500U处理器,带有Radeon Graphics显卡,主频为2.10 GHz,内存为16GB。软件环境包括Windows 10操作系统和Python 3.9开发语言。在训练参数设置中,使用多次训练后得到的模型,输入图片大小为640×640,权重衰减系数为0.000 5,batch size设置为4,最大迭代次数epoch设置为100。经过训练后,总损失值逐渐下降,稳定在0.045左右。

本次实验所使用的数据均为图片类型。为了获得更好的实验结果,使用了阿里天池获取的正常光照下多种场景的带口罩和不带口罩的数据集(https://tianchi.aliyun.com/dataset/dataDetail?dataId=93678) ,共计1 283张图片。对这些图片进行了调整,删除了只包含较小目标的图片。其中1 023张用作训练集,258张用作验证集。

通过对数据进行可视化分析,如图3所示:通过图(a)中的数据集物体分析可以得到数据集中各类目标的数量;通过图(b)中的数据集物体中心分布可以得到数据集中目标在图片中的位置分布,其中颜色越深,表示目标的数量越多;通过图(c)中的数据集物体大小分布可以得到检测到的小目标较多。

3.2 实验过程

在本文的实验过程中,笔者尝试在YOLOv5s的各个部分添加注意力机制,并比较了两种轻量级的注意力机制在该模型上的效果。经过考虑删除最大特征图层前后的对比,我们得出了在YOLOv5s的head部分的中等大小特征图层的Concat头后添加SE注意力机制为最优的结果。

如表1所示,在使用YOLOv5模型的情况下,平均每张图片的处理时间可达125.4ms。考虑到需要提高检测速率,尤其是对小目标的检测,笔者删除了最大的特征图层,并确定平均准确率只有轻微下降。接着,考虑添加一种计算量较小的注意力机制。笔者选择了SE和CBAM两种注意力机制,并分别进行实验后,对比得到的结果,选择了SE注意力机制进行进一步的研究。笔者分别将SE注意力机制添加在SPPF模块后、第一个Concat头后和第二个Concat头后(在表中表示为backbone、head1和head2) 。实验结果显示,在只在第二个Concat头后添加SE注意力机制的模型中,检测速度最快。与基本的YOLOv5模型相比,平均检测时间快了61.7ms,而mAP只有轻微下降。综上,本文的改进算法可以显著提高检测速率,同时满足口罩检测的基本要求。

3.3 实验结果

在进行了100轮迭代后,添加了通道注意力机制的网络在训练过程中的准确率相较于原本的YOLOv5算法更趋近于稳定值,如图4所示。

在添加通道注意力机制后,对口罩与未佩戴口罩的识别准确率都有所提升。佩戴口罩后,无需辨别鼻子、嘴等特征,所以平均准确率更高。添加了注意力机制后,对各个特征识别的精度也有所提升。相比使用原本模型的YOLOv5,添加SE注意力机制,可以较好地满足口罩检测的需求。在删除了最大的特征图层后,非多个密集的口罩识别也可以达到平均检测的要求。以下是部分检测图片,如图5所示。

4 结论

本文设计并实现了对YOLOv5s模型的轻量化,通过添加注意力机制的同时删除最大的特征图层进行实验。旨在减少对是否佩戴口罩的识别时间,提升检测效率,同时降低对硬件环境的需求。

实验结果表明,SE通道注意力机制在保证识别速度基本不变的情况下,仍能够相对较好地提升图像的识别准确率。在多目标的问题上,也能够更加准确地识别目标。在未來的口罩识别研究中,使用该算法可以有效地提高计算速率。

参考文献:

[1] 牛作东,覃涛,李捍东,等.改进RetinaFace的自然场景口罩佩戴检测算法[J].计算机工程与应用,2020,56(12):1-7.

[2] 王艺皓,丁洪伟,李波,等.复杂场景下基于改进YOLOv3的口罩佩戴检测算法[J].计算机工程,2020,46(11):12-22.

[3] 李小波,李阳贵,郭宁,等.融合注意力机制的YOLOv5口罩检测算法[J].图学学报,2023,44(1):16-25.

[4] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition.June 23-28,2014.Columbus,OH,USA.IEEE,2014:580-587.

[5] GIRSHICK R.Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision (ICCV).December 7-13,2015.Santiago,Chile.IEEE,2015:1440-1448.

[6] REN S Q,HE K M,GIRSHICK R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[C]//Proceedings of the 28th International Conference on Neural Information Processing Systems - Volume 1.December 7 - 12,2015,Montreal,Canada.ACM,2015:91-99.

[7] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:unified,real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).June 27-30,2016.Las Vegas,NV,USA.IEEE,2016:779-788.

[8] LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot MultiBox detector[C]//European Conference on Computer Vision.Cham:Springer,2016:21-37.

[9] HU J,SHEN L,SUN G.Squeeze-and-excitation networks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.June 18-23,2018.Salt Lake City,UT.IEEE,2018:7132-7141.

【通联编辑:唐一东】

猜你喜欢
注意力机制目标检测轻量化
汽车轻量化集成制造专题主编
基于深度学习的问题回答技术研究
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
基于LSTM?Attention神经网络的文本特征提取方法
基于注意力机制的双向LSTM模型在中文商品评论情感分类中的研究
InsunKBQA:一个基于知识库的问答系统
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
移动机器人图像目标识别