APP下载

改进YOLOv5s的人脸口罩佩戴检测

2023-04-07詹鹏程

中国新技术新产品 2023年1期
关键词:轻量化均值口罩

詹鹏程

(武汉轻工大学电气与电子工程学院,湖北 武汉 430000)

0 引言

佩戴口罩是防控疫情的重要环节,能够有效防止疫情的传播。现在主流的目标检测算法[1]分为两阶段算法和单阶段算法。两阶段算法基于检测框和分类器,存在的问题为网络结构一般比较复杂,检测速度慢,对硬件设施要求很高。单阶段算法基于回归,它的特点是准确的定位效果和相对较快的检测速度,如SSD、YOLO。该文在YOLO 系列算法基础上提出了改进的YOLOv5s 算法方案,它能够在检测出人脸的同时并标记是否佩戴口罩。它针对现有的问题,在提高模型的识别精度方面,以损失函数为出发点进行改进;在降低运行设备的硬件性能要求方面,以轻量化网络作为出发点进行改进。

该文的主要内容:首先通过自建数据集,提高口罩检测的泛化能力。其次通过改进损失函数提高算法的检测精度。最后通过轻量化网络降低模型对硬件性能的要求[2]。

试验验证表明:通过EIOU损失函数改进YOLOv5s,其人脸口罩检测算法的平均精度均值为94.6%,提高了1.8%,能够有效提高检测精度。结合Alpha-IOU 和MobileNetV3_Small,改进算法的平均精度均值由92.8%降至91.9%,仍然能够满足检测的精度要求且单张检测的处理速度提升为6.5ms,达到了轻量化的目的。

1 YOLOv5算法改进

1.1 主干网络的轻量化

Shufflenetv2 有2 个结构:Shufflenetv2 基本模块Shufflenetv2 下采样模块,如图1 和图2 所示。

图1 Shufflenetv2 基本模块

图2 Shufflenetv2 下采样模块

通过Channel Split 替代分组卷积,满足4条设计准则,达到了速度和精度的最优权衡。为了解决GConv 导致的不同group 之间没有信息交流,只在同一个group 内进行特征提取的问题[3],Shufflenetv2 设计了Channel Shuffle 操作进行通道重排,跨group 信息交流。

MobileNetV3 是谷歌提出的轻量化网络架构,在前2 个版本的基础上加入神经网络架构搜索(NAS)和h-swish 激活函数,并引入SE 通道注意力机制,性能和速度都表现优异,MobileNetV3 中的Block 模块如图3 所示。

图3 MobileNetV3 中的Block 模块

MobileNetV3 的主要特点:网络的架构基于NAS 实现的MnasNet,由NAS 搜索获取参数,在计算和参数量受限的前提下搜索网络的各个模块,为模块级的搜索。引入MobileNetV1 的深度可分离卷积。引入MobileNetV2[4]的具有线性瓶颈的倒残差结构。引入基于Squeeze and Excitation 结构的轻量级注意力模型(SE)。使用了一种新的激活函数h-swish(x)。在网络结构搜索中,结合资源受限的NAS 与NetAdapt,将其用于对各个模块确定之后网络层的微调;对全局的网络结构搜索,使用了与Mnasnet 中相同的且基于RNN 的控制器和分级的搜索空间,并针对特定的硬件平台进行精度-延时平衡优化,在目标延时(~80ms)范围内进行搜索。随后利用NetAdapt方法来对每层按照序列的方式进行调优。在尽量优化模型延时的同时保持精度,缩减扩充层和每层中瓶颈的大小。

1.2 损失函数

YOLOv5s 中包括3 种损失函数,即矩形框损失(lossrect)、置信度损失(lossobj)和分类损失(lossclc)。YOLOv5s 网络的损失函数定义式如公式(1)所示。

YOLOv5s 使用CIOU loss 来衡量矩形框(lossrect)的损失。CIOU 的计算如公式(2)所示。

式中:ρ为预测框和GT 框的中心点的距离;c 为预测框和GT 框最小包围矩形的对角线长度;v 用来衡量预测框和真实框的宽和高之间的比例一致性,其表达式如公式(3)所示。

式中:wgt和hgt为GT 框的的宽和高;w和h为预测框的宽和高。

β为v的影响因子,其表达式如公式(4)所示。

CIOU 损失是在DIOU 损失的基础上添加了衡量预测框和GT 框纵横比v,在一定程度上可以加快预测框的回归速度,DIOU 表达式如公式(5)所示。

公式(5)中,IOU是2 个区域重叠的部分除以2 个区域的集合部分得出的结果,但是仍然存在问题:在预测框回归过程中,一旦预测框和GT 框的宽、高纵横比呈现线性比例时,CIOU 中添加的相对比例的惩罚项便不再起作用,w和h在其中一个值增大时,另外一个值必须减少,它俩不能保持同增同减。为了解决这个问题,该文引入了EIOU,采用直接对w和h的预测结果进行惩罚的损失函数表达式,如公式(6)所示。

式中:cW2和ch2分别为预测框和GT 框最小外接矩形的宽和高;EIOU 将损失函数分成预测框和GT 框的重叠损失γEIOU、预测框和GT 框的中心距离损失γdis、预测框和GT 框的宽和高损失γasp。

Alpha-IOU Loss[5]是基于现有IOU Loss 的统一幂化,对所有的IOU Loss 增加α幂,对CIOU Loss 进行幂化,其表达式如公式(8)所示。

α-IOU 损失显著地超过现有的基于IOU 的损失。调节α,使检测器在实现不同水平的bbox 回归精度方面具有更大的灵活性,对小数据集和噪声的鲁棒性更强。α对不同的模型或数据集并不过度敏感,通过多组试验,该文的试验测试选取为α=3。

2 试验结果

2.1 试验条件参数和评价指标

该文的试验硬件:CPU 为Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz 2.69 GHz。GPU为NVIDIAGeForceRTX2080ti 4GB。辅助工具为matplotlib、OPEN CV 和tensorboard。框架为Pytorch。对模型训练的基本参数动量0.937,权重衰减0.0005,初始学习率设定0.01。试验结果的评价指标有精确度、召回率、平均精度和平均精度均值,其中平均精度的计算公式如公式(9)所示,平均精度均值的计算公式如公式(10)所示。

式中:n为数据集中的类别数。在口罩佩戴检测中设定n为2,设定AP的IOU 检测阈值为0.5,所以评价指标为mAP@0.5。

2.2 试验细节

该文的主要目的是对人脸佩戴口罩进行检测,主要分为佩戴口罩和未佩戴口罩2 种情况,所以该文结合网络资源和MaskedFace 数据集挑选了2000 张照片,分为训练集1600 张和测试集400 张,将其作为自建数据集。标签类型分为mask_face 和no_mask_face。

在自建数据集上对改进的模型进行训练100epoch 后,对测试结果进行对比,选取最优,对模型的改进方向为主干网络的轻量化和损失函数。第一步是将shufflenetv2 和MobileNetV3_Small 进行对比,将2 种轻量化网络分别加入YOLOv5s 中,试验结果见表1。

表1 轻量化网络对比

将表3 中的数据结合参数量、计算量以及平均精度均值可以得出使用MoblieNetV3_Small 轻量化网络效果更好。

将CIOU、EIOU[6]和Alpha-IOU 这3 种改进效果进行对比,试验结果见表2。

表2 损失函数改进对比

从表1 可以分析出,YOLOv5s 在进行EIOU 替换CIOU后,平均精度均值提高了1.8%;YOLOv5s 在进行Alpha-IOU 替换CIOU 后,平均精度均值提高了1%。由此可以得出EIOU 的改进在二者中效果更好。

通过消融试验验证改进的有效性,测试结果见表3。

2.3 结果分析

从表3 可以分析,EIOU 和Alpha-IOU 改进对YOLOv5s平均精度均值分别有1.8%和1%的提升;MobileNetV3_Small 结 合EIOU 改 进 和MobileNetV3_Small 改 进 相 比,平均精度均值下降了0.5%,说明EIOU 的改进并不适合MobileNetV3_Small 网络;MobileNetV3_Small 结合Alpha-IOU 改进和MobileNetV3_Small 改进相比,平均精度均值提高了0.6%,说明Alpha-IOU 对MobileNetV3_Small 网络有提升作用;shufflenetv2 结合EIOU 改进和shufflenetv2改进相比,平均精度均值提高了0.5%,说明EIOU 对shufflenetv2 网络有一定的提升作用;shufflenetv2 结合Alpha-IOU 改进和shufflenetv2 改进相比,平均精度均值下降了0.7%,说明Alpha-IOU 改进不适合shufflenetv2 网络。shufflenetv2 结合EIOU 改进和MobileNetV3_Small 结合Alpha-IOU 改进的平均精度均值一样,二者的改进方向都是以轻量化为主,结合测试的单张图片检测速度对比,MobileNetV3_Small 结合Alpha-IOU 改进的单张检测速度比shufflenetv2 结合EIOU 改进的单张检测速度快。

表3 消融试验结果

3 结论

该文提出了2 种基于YOLOv5s 改进的口罩佩戴检测算法,为提高检测精度和轻量化,选择从改进损失函数提高检测精度,替换Backbone 网络完成轻量化。最后的试验数据对比表明,在硬件设备性能足够的场景中,可以选择采用EIOU 损失函数改进,它的平均精度均值是本次改进方案中精度提高效果最好的。在硬件设备性能较低的场景中,可以使用Alpha-IOU 结合MobileNetV3_Small 改进的YOLOv5s 算法,它能够实现参数量和浮点计算量减半,可提高检测速度,口罩佩戴的平均精度值为91.9%。在后续工作中,可以扩大数据集的规模,还可以尝试对结构进行进一步调整,提高算法的检测精度,进一步优化算法。

猜你喜欢

轻量化均值口罩
汽车轻量化集成制造专题主编
因为一个口罩,我决定离婚了
雾霾口罩
均值不等式失效时的解决方法
瞄准挂车轻量化 锣响挂车正式挂牌成立
均值与方差在生活中的应用
用户:轻量化挂车的使用体验
关于均值有界变差函数的重要不等式
对偶均值积分的Marcus-Lopes不等式