基于YOLOv5的疫情防控口罩佩戴检测系统设计与实现

2023-06-25 07:42苑颖刘旭峰
现代信息科技 2023年7期
关键词:深度学习

苑颖 刘旭峰

摘  要:面对当前疫情防控的实际需求,自动化检测可以减少管理人员与他人接触感染的风险且能使疫情防控管理更加高效。针对人脸佩戴口罩识别问题,利用深度学习的神经网络自动提取目标特征的优点,将获取的数据集通过LabelImg标注软件进行标注,使用YOLOv5目标检测算法训练网络模型,实现对佩戴口罩和未佩戴口罩的检测;通过PyQt5设计并实现了疫情防控口罩佩戴检测系统,提高了疫情防控效率。

关键词:深度学习;YOLOv5;口罩佩戴检测

中图分类号:TP183  文献标识码:A  文章编号:2096-4706(2023)07-0065-05

Abstract: Faced with the actual needs of current epidemic prevention and control, automated testing can reduce the risk of infection between management personnel and others and make epidemic prevention and control management more efficient. Aiming at the recognition problem of a face mask wearing, the advantage of deep learning neural network to automatically extract target features is utilized. The obtained dataset is labeled using LabelImg labeling software, and the YOLOv5 target detection algorithm is used to train the network model to achieve the detection whether the mask is worn or not; The epidemic prevention and control mask wearing detection system is designed and implemented through PyQt5, improving the efficiency of epidemic prevention and control.

Keywords: deep learning; YOLOv5; mask wearing detection

0  引  言

2019年年底,新冠疫情开始在全球范围蔓延,至此文写成之时仍在全球流行。我国疫情防控仍处于“外防输入,内防反弹”的关键阶段,疫情防控工作面临着巨大的挑战。因病毒主要通过近距离飞沫和密切接触传播,人群普遍易感。规范佩戴口罩能有效避免人们呼吸时吸入空气中的新冠病毒,从而降低被病毒感染的风险[1]。因此佩戴口罩是防止病毒传播的重要手段。国家卫生健康委员会发布的预防新冠感染的指南明确指出,个人在公共场所必须佩戴医用外科口罩。但随着全国疫情防控进入常态化阶段,人们也间歇性出现对自己放松疫情防控管理要求的现象,经常会在公共场所不佩戴口罩及不保持安全距离,这一行为增加了人们感染病毒的风险。

目前在火车站、医院、商场等公共服务的大部分场合对人员是否佩戴口罩都是人工进行检测。但是人工检测存在工作强度大、效率低、覆盖面窄、時效性差等问题[2]。针对此问题,本文利用目标检测算法和计算机视觉设计口罩佩戴检测系统,此系统可以降低一线监管人员的劳动强度,有效规避上述弊端,具有重要的研究意义。

1  目标检测算法YOLO概述

近年来,目标检测任务成为大众焦点,它实现了在不同的场景中标记出需要检测的目标并且确定它们的位置和类别。21世纪初,目标检测在卷积神经网络的大量应用中得到了快速发展。在本系统中口罩佩戴检测本质是在人脸的基础上对是否佩戴口罩进行识别,因此需要使用目标检测类的神经网络。现阶段基于深度学习目标检测算法主要分为两大类:一类是以R-CNN为代表的两阶段检测算法,另一类是以YOLO为代表的一阶段检测算法[3]。两阶段检测算法在特征提取的基础上,先由独立的网络分支生成大量的候选区,再对其进行分类与回归,该算法的优势主要体现在可扩展性和高准确率性方面。一阶段检测算法在生成候选区的同时进行分类和回归,该算法的主要优势是识别速度快,更适合用于需要实时检测的场景[4]。

YOLO算法是2015年Redmon等人提出的一种使用神经网络提供实时对象检测的算法。它将单个卷积神经网络(CNN)应用于整个图像,将图像分成网格,并预测每个网格的类概率和边界框。该算法因其速度快和准确性高[5]而广受欢迎,已广泛应用于检测交通信号、人员、停车计时器和动物中。YOLO算法在发展的过程中推出了很多版本。YOLOv2在YOLO算法的基础上使用卷积层代替了全连接层。YOLOv3为了实现多尺度检测增加了FPN架构,输出3个不同尺度的卷积层进行判断,使网络能够检测不同比例大小的物体[6]。YOLOv4在YOLOv3的基础上加入了Mish激活、加权残差连接等实用技巧,在检测精度和速度上进行了一定取舍,使综合性能进一步提高[7]。并且YOLO算法还在不断的改进和更新,时至今日YOLO算法已经更新到了第5个版本。综合实际应用考虑,在保证实时性和准确率的情况下本系统选用YOLOv5模型进行训练。

2  口罩佩戴检测算法设计

2.1  口罩佩戴检测数据集

本次数据集从CSDN、Roboflow等各大平台以及现场采集共获取了9 848张图片,包括人员佩戴口罩和未佩戴口罩两种情况。将采集的数据按照训练数据与测试数据之比为8:2进行分组,其中训练数据图片有7 803张,测试数据图片有2 045张,图1为数据集中部分图片。

2.2  数据集标注

获取到图像数据之后需要对图像数据进行标注。标注的主要目的是对图片中人脸是否佩戴口罩进行标识。数据集的标注使用的是LabelImg图像标注工具。LabelImg是基于Python语言开发的图形界面的图像标注软件,可以采用多种不同的格式来标注图像,有VOC、YOLO以及createML格式,这里我们选择YOLO格式。

在标注开始之前首先创建一个名为predefined_calsses.txt的文本文件来存放所要标注的类别名称。训练模型的标注分为两个类别:佩戴口罩的人脸标注为Mask,没有佩戴口罩的人脸标注为No_Mask。图2为使用LabelImg图像标注工具对图像进行佩戴口罩标注的示意图,佩戴口罩的标注信息为Mask。

每一张图片经过LabelImg工具标注之后,会生成与图片名字相对应的文本文件。文本文件中的信息为<object-class><x><y><width><height>。<object-class>是标注类别,<x>、<y>是目标的中心坐标,<width>、<height>是目标的宽和高。这些坐标是通过归一化处理过的,其中x、width是使用原图的width进行归一化,而y、height是使用原图的height进行归一化。

2.3  训练模型的选取

在目标检测算法中,YOLOv5算法是YOLO系列的最新算法。YOLOv5官方发布的检测网络共有四个版本,依次为YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s。其中最核心的是YOLOv5s模型。YOLOv5s是YOLOv5系列中深度和特征图宽度均最小的网络模型,其他的三个版本都是在YOLO5s模型的基础上进行加深、加宽处理。

从图3可以看出,YOLOv5s模型在COCO测试数据集上AP值最低,但相对而言识别速度最快。YOLOv5x模型在COCO数据集上AP值最高,识别速度最慢。准确性最高的YOLOv5x模型的网络空间最大,但是推理所需要的时间长,不符合实时检测的要求。YOLOv5s模型网络空间小,推理所需要消耗的时间短。虽然YOLOv5s模型在COCO测试数据集上AP值最低,但因为COCO数据集中有80个类别,而对于口罩佩戴检测的这种两分类目标任务而言,YOLOv5s能完全够满足需求,故模型最终选择YOLOv5s。图4为YOLOv5s模型结构图。

Focus模块将一张640×640×3的彩色图片通过切片操作转化为320×320×12的特征图,然后经过32个卷积核进行卷积操作,最终生成320×320×32的特征图;Conv模块对输入的特征图进行卷积操作进一步地提取特征;BCSPn模块分成了两部分,一部分将输入的特征图分成两半,一半进行两次卷积,将卷积之后的结果与另一半进行相加,实现减少计算量。另一部分将输入的特征图全部进行卷积操作,然后再将卷积之后得到的特征图与之前的特征图进行拼接进行更好的特征融合;SPP模块将上一个模块得到的特征图通过1×1的卷积减少特征图的个数,然后使用13×13、9×9和5×5的池化核进行MaxPool最大值池化减少参数量,并将池化结果进行拼接再通过1×1的卷积减少特征图的个数。

2.4  模型训练流程及参数配置

PyTorch是Facebook人工智能研究院(FAIR)团队开发的一个开源的深度学习框架,是目前主流的深度学习框架之一。在当前开源的框架中,没有哪一个框架在灵活性、易用性、速度这三方面有两个能同时超过PyTorch[8]。因此,本系统所用目标检测模型以PyTorch为训练框架,模型训练基本流程如图5所示。具体如下:

1)将输入模型的图片调整为640×640大小,并将图片进行旋转、平移等数据增强操作。

2)将图像数据输入到YOLOv5s网络模型中(每个神经网络对输入数据进行加权累加再输入到激活函数作为该神经元的输出值)通过前向传播,得到得分值。

3)将得分值输入到损失函数中,与真实值相差较大再计算损失值,通过损失值判断识别程度的好坏。

4)通过反向传播(反向求导,损失函数和网络模型中的每个激活函数都要求,最终目的是使误差最小)来确定梯度向量。

5)最后通过梯度向量来调整每一个权值,使得误差趋于0或者模型趋于最优解。

6)重复上述过程直到设定的次数。

模型选用YOLOv5中网络结构最小的YOLOv5s模型,图片尺度统一缩放为640×640的图片,批处理通道数batch-size设置为8,训练代数(epoch)为300。具体网络参数修改如表1所示。

2.5  模型评估

模型评估是对训练好的模型通过预测结果的精确率、召回率、mAP指标对模型进行评估,并且对模型从现实角度开展实验分析,验证YOLOv5s模型在人脸口罩佩戴检测中的效果。

图6是模型随着训练轮次epoch的数量增加精确率的变化情况。精确率指实际是正样本而模型预测也为正样本占被预测为正样本的比例。计算公式为:

图7为模型随着训练轮次epoch的数量增加召回率的变化情况。召回率指正样本被预测为正样本占总的正样本的比例。值越大,性能越好。召回率直观地反映了模型找到所有正样本的能力。计算公式为:

式中,TP是预测为正且实际为正的样本数量,FP是预测为正但实际为负的样本数量,FN是预测为负但实际为正的样本数量,TN是预测为负且实际为负的样本数量。此外,TP+FP表示预测为正样本的总数,TP+FN表示实际为正样本的总数。

图8为模型隨着训练轮次epoch的数量增加mAP的增长变化。mAP(mean Average precision)是多分类平均精确率,它代表了所有类别的AP平均值。AP(Average precision)是衡量单个类别检测好坏的评价指标。AP计算公式为:

式中:Recall为横坐标,AP为纵坐标,表示P-R曲线下方的面积,AP值越高说明模型的平均准确率越高。

mAP在目标检测中是评估所有类别优劣的一项重要的指标。mAP计算公式为:

3  系统实现

3.1  系统搭建

为了应用基于YOLOv5算法的人脸口罩佩戴检测模型,本系统采用Python中的PyQt5框架进行系统搭建,将系统分为图像检测模块和视频检测模块。运用Python语言和OpenCV计算机视觉库对上传的图像数据、视频数据以及摄像头实时捕获的数据进行处理,将处理好的数据送入模型进行推理,识别出数据中的人脸是否佩戴口罩。最后通过屏幕显示和语音提示提高系统的交互性。系统操作流程如图9所示。

3.2  实现结果

当运行本系统时,可选择图像和视频两种方式进行检测。视频检测模块中若没有上传视频则可以打开摄像头,对摄像头捕获的数据进行检测。在图片检测模块中有GPU和CPU切换的功能,上传视频检测和打开摄像头实时检测默认使用GPU进行检测。检测完成后的结果将显示在屏幕中并进行语音播报。图10(a)中通行人员佩戴口罩,标注为Mask,置信度为0.85,图10(b)中通行人员未佩戴口罩,标注为No_Mask,置信度为0.84。

4  结  论

针对疫情防控的实际需求,通过数据集获取、数据集标注、模型选择与训练、模型评估和系统搭建等一系列工作,设计并实现了基于YOLOv5的疫情防控口罩佩戴检测系统。该系统能有效快捷检测是否佩戴口罩,较好地满足了实际的应用需求。

参考文献:

[1] 何进椅,陈隽,张孝莉,等.预防新型冠状病毒肺炎的医用防护口罩选择及佩戴建议 [J].中华灾害救援医学,2021,9(2):825-828.

[2] 丁培,阿里甫·库尔班,耿丽婷,等.自然环境下实时人脸口罩检测与规范佩戴识别 [J].计算机工程与应用,2021,57(24):268-275.

[3] 陈科圻,朱志亮,邓小明,等.多尺度目标检测的深度学习研究综述 [J].软件学报,2021,32(4):1201-1227.

[4] 肖博健,万烂军,陈俊权.采用YOLOv5模型的口罩佩戴识别研究 [J].福建电脑,2021,37(3):35-37.

[5] 夷德.基于YOLO的目標检测优化算法研究 [D].南京:南京邮电大学,2021.

[6] 宋威,谢豆,石景文,等.一种口罩佩戴和体温检测系统的设计与实现 [J].物联网技术,2022,12(5):30-33.

[7] 孙永豪.基于改进YOLOx的口罩佩戴检测系统设计与实现 [D].合肥:安徽建筑大学,2022.

[8] 陈云.深度学习框架PyTorch入门与实践 [M].北京:电子工业出版社,2018.

作者简介:苑颖(1979—),女,汉族,山西大同人,副教授,硕士研究生,研究方向:数据分析与挖掘、软件工程。

猜你喜欢
深度学习
从合坐走向合学:浅议新学习模式的构建
面向大数据远程开放实验平台构建研究
基于自动智能分类器的图书馆乱架图书检测
搭建深度学习的三级阶梯
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
利用网络技术促进学生深度学习的几大策略
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究