基于YOLO5Face在火车站口罩佩戴的检测系统

2022-01-22 11:21朱鑫鹏李丹
电子测试 2021年24期
关键词:火车站人脸口罩

朱鑫鹏,李丹

(四川大学锦城学院计算机与软件学院,四川成都,611731)

0 引言

近年来伴随着深度学习的发展,以及卷积神经网络在对于人脸检测方面得取得的巨大的研究成果以及技术性的突破,对于社会以及设备对于人脸检测的需要也变得更加严谨,在疫情尚未完全散去的环境中,在火车站对于人们是否佩戴口罩,这一项具有需要耗费大量人力的工作,但是通过我们YOLO5Face算法的遮挡人脸检测,就可以解放大量人力,来实现机器来自动检测并且提醒未佩戴口罩的人们。本文将通过介绍YOLO5Face算法结构,优劣性能对比,以及最终在火车站的人脸检测的实现,来展开说明。

1 研究背景

1.1 算法来源

在2015年诞生的YOLO算法,它与当时流行的twostage方法不用。它没有将对象检测看作分类问题,而是视为一个回归问题。在所有基础阶段,它使用单个神经网络就可以完成,并且可以取得优于其他算法的检测性能,以及具有更快的实时处理的速度和能力。

在接下来这六年中,YOLO[2]算法更新了五个版本,前三个版本均有YOLO算法作者开发而成,YOLOv3[3]是这些算法是使用最为广泛的一个,也是后代算法衍生出来的基础,它主要使用了Darknet-53作为主干网络,以及弃用了softmax损失函数,用二元交叉熵损失函数来取代,在性能和速度以及稳定性上都有了很大的提高。

1.2 选取该算法原因

我们在项目开始初期我们找到了很多图片,对于这些图片上的人脸识别,验证,跟踪,以及自动选取锚框,自动对齐,表达分析等等做了深入的分析。人脸检测作为一个重要的计算机视觉项目,在不同的算法,不同的网络层数,得到的结果都会是有所差异的。在做这些工作之间,我们去学习了CNN网络的设计、损失函数的选取、数据增强以及训练方法。最终我们通过对比YOLOv3[3],YOLOv4[1],YOLOv5,通过对于深度学习以及算法的了解,我们最终选择了YOLO5Face,一个基于YOLOv5的人脸检测算法。它从数据角度,将人脸具有的属性,姿势,大体轮廓,遮挡程度,外界的光线照明程度,以及在人们在活动的时候造成的重影模糊等。再如不同的人,面部表情的不同,或者有些人化妆等,都可以很有效的进行识别。YOLO5Face中加入的Landmars,在目标预测定位中是非常简便,特别适用于大规模的,人脸非常小,以及人脸密集的场景。

2 YOLO5Face的改进

我们使用的YOLO5Face的网络结构,它与YOLOv5很相似,但其作者对于他的网络结构有所更改,以便于提高了整体的平均精度和运行速度。使用了一种新设计的主干网CSPNet[5],在neck中使用了SPP[35]和PAN[36]用来聚合特征。

(1)用Stem块 结 构 取 代YOLOv5的Focus层,是YOLO5Face中与YOLOv5的差异之处,YOLO5Face使用了Stem structure[38],目的为了提高泛化能力和降级计算复杂度。

(2)将YOLOv5的内核大小进行了更改,目的为了提高检验精度,以及对head的输出标签的修改,其中landmarks是YOLO5Face刚增加的,是对于YOLOv5算法的优化和改进,是一个 具有landmarks输出的面部检测器。

(3)主要是损失函数的修改,使用了wingloss损失函数,目的是为了在使用landmarks的应用场景下面变得更加有用,定位也将更加准确。

(4)增加了一个P6输出块,目的是有助于检测到较大的人脸。因为现在的很多人脸探测器都专注于去攻破和提高对于很小的人脸进行检测,也就以至于对大人脸的检测很容易出现差错,这里加入了P6输出块,也就是来弥补大人脸检测的漏洞。

(5)对SPP块进行了改变,对于这个块,YOLOv5和YOLO5Face之间最大的区别就是两者的内核大小不同,使用一个更小的内核。提高检测效率和性能。

3 实验结果

3.1 数据集的选取

遮挡的人脸检测是一个很有难度的项目,有两个主要原因:(1)在现在的数据集中,大部分都是无遮挡的人脸,对于带着口罩的人脸数据集很少。(2)口罩可以遮挡住大半张脸,也就会导致面部线索过少,会导致识别的效果不高,训练困难,最终导致成功率不高。

近日期全球新型冠状病毒肆虐,疫情严重地区每个人都需要佩戴口罩,遮挡数据集数量提高,该数据集用于帮助公共场所以及社区设计相应的数据支持,用于人员进出管控,车站,地铁站,大商场,机场的人脸识别,也可用于社区和单位的门禁管理。

这里使用了遮挡人脸检测数据集MAFA,这个数据集包括了30811张图像,35806个遮挡人脸,图像中每个人脸的形态各不相同,有着不同的朝向和遮挡程度,每张图像中都至少有一个人脸被遮挡。首先我们对每个遮挡人脸人工标定属性,由with_mask[3]作为佩戴口罩标签,mask_weared_incorrect作为未正确佩戴口罩标签,without_mask作为未佩戴口罩标签,通过使用MAFA数据集,以及实验结果的表现,都证明这个方法更加优越。

3.2 系统框架流程说明

我们的系统程序主要通过了三个结构层次,来实现在火车站口罩佩戴的人脸检测的界面交互以及算法功能。

图1 系统框架结构图

实体层:我们通过连接各大车站以及人群密集的大型商场的出入口摄像头,来对于人群进行实时的采样和收集传回,并且存储在一个函数之中。

识别层:识别层也就是我们主要的人脸检测层,图像处理层,将回传的图像通过YOLO5Face算法模型来进行对于其中人群佩戴口罩的情况进行检测,通过与预判值进行对比,得到每个人脸的实际值,通过与我们预先设置的值进行比较,在一定范围之内则会判定为正确佩戴口罩,最终将差别出入很大的结果返回给服务层。

服务层:这个也就是人机交互层,可以让通过人员时刻收到信息和监控图像,接受上层传送回来的检测结果,再由工作人员在现场进行实时的管理和组织。

3.3 系统优化过程

在图2是我们系统通过调参获得的梯度下降图片。图2中Objectness:是目标检测loss均值,越小目标检测越准确,Classification:是分类loss均值,越小分类越准确,Precision:准确率,就是找对的/找到的比值。Recall:为召回率,是找对的/该找对的比值。mAP@0.5 &mAP@0.5:0.95:就是AP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。

图2 梯度下降

我们主要通过修改epochs,默认为300,由于数据集过大,为了节省时间,我们将epoch修改为了10轮。通过修改了超参数进化evolve,其中第一个参数parent我们选择了single只选择上一代中最好的结果,第二个参数method改为了2,通过第二个模式来进化。其中使用了cache_images:将我们预处理后的训练数据存在RAM中,来提高训练速度,对于batch_size电脑原因我们使用的16,在img_size使用的[640,640],device参数方面由于速度以及电脑的原因,我们选择的CUDA。

4 火车站口罩检测系统

在最近疫情还没有平静的时期,我们设计出一个关于人们是否佩戴口罩的检测系统,以用于去提高各大城市火车站安全性,来协助工作人员来判断被检测者是否佩戴了口罩,以及口罩是否佩戴正确,虽然在全球新冠的影响之下,佩戴口罩已经是非常正常不过的事情,但是仍有小部分人不去佩戴口罩,对于大城市,一天万计的人流量,属实会让工作人员感觉到疲惫,有了口罩佩戴检测系统,就会自动检测出未带口罩的人,或者口罩佩戴不正确的人,然后发出警报,提醒佩戴口罩,这个系统十分重要,对于疫情的防控,已经人力的解放都有着十分重要的作用。当然也可以通过视频监控对于过往的人来进行识别,可以将其监控返回给工作人员,有效的管理监督公共场所佩戴口罩问题。

车站在不同场景有着不用情况的检测需求,如果在车站门口,在我们这个系统上面增加口罩-体温检测,也只需要在此模型上增加现有的体温检测系统,既可以实现自动化的通行。

我们在MAFA[4]数据集上关于检测口罩佩戴情况表现优秀,结果如下,基本上都可以很快的而且很正确的识别和鉴定出是否佩戴口罩,并且对于口罩佩戴不正确的人,也有着,较高的检测准确性。如图3中所示,粉红色框:代表着检测的人正确佩戴口罩(with_mask),在中间图中的红色框:代表着未佩戴口罩(without_mask),而在最右边的橘色框,则是表示口罩为佩戴正确(mask_weared_incorrect)。

图3 实验结果图

在各城市火车站,人流量巨大,而且会有很多外来人员,也就会导致会有疫情出现的可能,所以安排工作人员进行监督和管理是必不可少的,随着深度学习的发展和进步,人脸检测技术的提高,也就可以将昂贵的人工成本降低,来使用机器检测,如图3中所示,无论是正脸侧脸,不管是近距离的大脸还是远距离的小脸,都可以很准确,此模型都可以很好的应对。

5 结束语

该系统的意图是在疫情这个大环境下,对于人们的出行,以及在各城市的火车站中,为了监督人们佩戴口罩的工作人员,减轻工作负担,解放劳动力,此系统可以更准确的识别戴口罩和未戴口罩,以及口罩佩戴错误的人们,进行识别。该系统目前仍处于实验初期,存在着许多不足之处,后期我们会结合更好的数据集,来进行系统的优化和改进,争取去实现一个更完美的系统。

猜你喜欢
火车站人脸口罩
有特点的人脸
一起学画人脸
火车站英语
Train Station火车站
戴口罩的苦与乐
因为一个口罩,我决定离婚了
雾霾口罩
肚子里有个火车站(下)
肚子里有个火车站(上)
三国漫——人脸解锁