APP下载

基于人工智能技术的口罩佩戴检测系统的设计与实现

2021-12-22韩其凯

科学与生活 2021年8期
关键词:目标检测计算机视觉深度学习

韩其凯

摘要:在本项目中,我们依托于机器视觉的相关技术,采用了当下速率和准确率最先进的端到端的目标检测算法--YOLOv4,来实现人脸是否口罩佩戴的检测识别。在数据集采集方面,我们采用的是WIDER_FACE数据集,部分开源数据集和大量自采数据集,进行手工标注,训练。经过实际效果检测,训练出的算法模型的准确率和召回率均达到较高水平。在项目部署方面,我们采用了基于浏览器-服务器端和基于客户端两方面的部署,服务器端使用Flask高性能web框架实现。客户端使用基于python的GUI编程工具PyQt5实现。浏览器端和客户端相结合,项目真正落地,具有实用性。该项目已部署至网站hanqikai.com,进行实际的运行测试,并不断进行维护。

关键词:计算机视觉 深度学习 目标检测 端到端神经网络

近年来,随着人工智能的不断发展和机器学习,深度学习领域的不断突破,计算机视觉技术日趋成熟。目标检测,语义分割,动作视觉,三维重建等技术迅速发展起来,并且得到了日益广泛的应用。在抗击新冠肺炎疫情的时代背景下,疫情防控进入常态化时期,我们将深度学习和计算机视觉技术应用到了现实场景中,采用机器视觉中的目标检测技术,进行了口罩佩戴检测系统的开发,并将该系统部署到了上位机上。该系统可以对人群中的人脸是否佩戴口罩的情况进行识别检测,从而帮助疫情防控人员进行人群口罩佩戴的检测,有效减少了他们接触疑似新冠肺炎患者的风险,实现人工智能技术的落地应用,使用人工智能技术解决了社会难题。人工智能作为战“疫”的强有力的工具将服务于社会大众。

1 YOLOv4算法原理及模型构建

在目标检测的算法模型上,我们采用端到端的目标检测算法—YOLOv4。何为端到端?如何理解端到端?端到端指的是输入图像的特征(图像的特征由原始图像通过多个卷积层进行维度的变换进行特征的提取),输出的是最后分类得到的结果。通俗地讲,该算法是直接将问题当作回归求解问题,具体做法是将输入图片划分为S*S个网格,每个网格负责检测落入其中的物体,如果物体的中心落入该网格,则该网格就负责检测这些物体,并输出图像中物体的类别,置信度,以及物体的位置等信息。因此yolo也被称为单阶段的目标检测网络。对于二阶段的目标检测网络(如RCNN网络)该网络的基本思想是先将图像进行各个维度的卷积提取图像的特征,然后进行目标区域的搜索,将搜索到的含有物体的框进行汇总,再将这些框分别进行物体的分类,最后完成对图片中物体的检测。对比这两种目标检测算法我们可以得知,单阶段的目标检测算法具有较快的检测速度,因为输入图片经过一次检测便可以输出结果。对于二阶段的网络RCNN系列,需要先进行目标区域的搜索,再进行物体的分类,显然这样做比较费时,不适合实时性的目标检测工作,但好处是识别精度高,适用于比较看重识别效果的场景。

该目标检测网络的结构大体分为主干特征提取和特征处理两大部分,其中主干特征提取是对图像进行不同维度的特征提取。YOLOv4由CSPDarknet53作为主干特征提取网络Backbone。具体的处理流程是将原始输入图片喂入卷积块,这个卷积块包含了卷积、批标准化和Mish激活函数三种操作,将图片的通道数变成32,再将这个结果经过五个Resblock_body,抽取图像中各个维度的特征,抽取的特征从低维到高纬,构成特征金字塔,最后抽取的特征金字塔送入YOLO-Head网络进行预测以及解码。

在特征金字塔部分,YOLOv4使用了两种结构,分别为SPP结构和PANet结构。其中,SPP的网络结构能够极大地增加感受野,分离出最显著的上下文特征,PANet结构,是一种实例分割算法,其基本思想是从不同维度的信息中反复提取图片中的特征,既包括从高维度到低维度的特征融合,也包括从低维度到高维度的特征融合,即特征的反复提取,使得提取出的特征既具有大物体部分的特征,也有小物体部分的特征,提取出的特征的内容更加丰富。

YOLO Head层利用或得到的特征进行预测,在特征层的利用部分,YOLOv4提取多特征层进行目标检测,一共提取三个特征层,分别位于中间层,中下层,底层,三个特征层的维度大小分别为(76,76,256)、(38,38,512),(19,19,1024)。输出层的维度大小分别为(19,19,75),(38,38,75),(76,76,75),最后一个维度是75的原因是我们是基于voc数据集的,它的类为20种,YOLOv4针对每一个特征层存在三个先验框,所以最后维度为3x25。因此我们可以获得三个特征层的预测结果。但是这个预测结果并不对应着嘴中的预测框在图片上的位置,还需要解码才可以完成。解码的过程如下:

我们知道特征层的预测结果对应着三个预测框的位置,分别为(N,19,19,3,25),(N,38,38,3,25),(N,76,76,3,25),其中,N代表输入图片的数量,第二,第三维度代表预测框的位置,第四维度代表先验框的个数,最后一个维度代表x_offset(x的偏移量),y_offset(y的偏移量),h(偏移高度),w(偏移宽度),置信度,分类结果(20类)。YOLOv4的解码过程就是将每个网格点加上对应的x_offset和y_offset,加完之后的結果就是预测框的中心,然后利用先验框和h,w计算出预测框的长和宽,这样便可以得到整个预测框的位置了。在计算损失函数的时候,实际上就是预测框和真实框之间的对比。将预测出的包含物体的框和我们手工标注的框进行对比,求出两种框的偏移量,将偏差算到损失函数中去,然后经过神经网络的反向传播不断减小loss值,最终训练出理想的神经网络模型,这便是loss函数的作用。

对于口罩佩戴系统的检测,我们采用的数据集为WIDER_FACE数据集以及大量自己采集的数据集,自己采集的数据集包括自己拍摄,网络爬虫爬取等方法。总数据集一共有1165张图像,其中戴口罩类514张,没有戴口罩类651张。戴口罩类的图像都是通过网络爬虫爬取获得,没有戴口罩的图像是WIDER_FACE数据集,VOC2007数据集进行拼凑而成。对于数据标注,我们采用labelme软件进行手工标注,共分为两类,mask类和no_mask类。最后形成四个文件夹,image_mask文件夹是存储的人脸戴口罩的图像,image_nomask文件夹是存储的人脸没有戴口罩的图像,label_mask文件夹是存储的人脸戴口罩图像的标签,label_nomask文件夹是存储的人脸没有戴口罩图像的标签。

我们将YOLOv4网络加载到开发环境Pycharm中,加入训练数据及其标签,写好训练脚本,就可以利用yolov4算法进行口罩佩戴模型的训练,经过漫长时间的训练过程,训练出了我们自己的网络模型,接下来使用几张图片检测训练效果,测试图片如图1所示。测试结果如图2所示。

由此可见,训练出的模型的效果还是非常好的,比较准确地标注出了人群中是否佩戴口罩的情况。

2 项目的两方面部署

在训练好我们的模型以后,接下来考虑的就是如何将该项目部署落地的问题。基于这个问题,我们采取了两方面的部署措施。第一个是将该系统通过服务器和浏览器部署到web端,第二个部署方案是直接部署到本地客户端。使用服务端-浏览器进行访问时,可以将图片或者视频通过前端页面接口传输到服务器上,利用服务器的算力进行识别推理,将结果回显到页面中。适用于对图片或视频中的人流进行检测,进行口罩佩戴的检测。前端页面效果及其识别接口请访问http://hanqikai.com。

使用本地客户端时可以直接调用摄像头进行检测识别,适用于对出入口闸机进行检测,通过捕捉摄像头的视频流进行检测。使用python的图形界面编程工具PyQt5进行技术实现,提供实时识别检测功能,可以调用本地计算机的摄像头进行实时监测口罩的佩戴情况,客户端页面以及识别效果如图3,图4所示。

3 项目分析

在本项目中,网络模型的选择是最重要的问题,选择一个合适的网络模型对于项目的部署和运行都起着重要的作用。在本项目中,我们对比了多种网络模型,比如GoogLeNet,Faster-RCNN,YOLOv4等,在充分了解这些目标检测算法模型的优缺点及其应用场景后,我们最终选择YOLOv4目标检测网络作为口罩佩戴识别检测项目的核心检测算法。在训练自己的网络模型中,数据集的采集和处理也是一个重要的问题。在本项目中,由于手头没有数据集,因此我门使用了python網络爬虫技术在网络上爬取了大量人脸数据集进行手工标注,结合部分开源数据集,最后拼凑的数据集的总数为1165张图像,这些数据集经过训练之后所得出的效果并不好,有很多人脸没有被检测出来,甚至出现错误检测的情况。经过和指导老师的交流后,我们采取Mosaic数据增强方法。通过这个方法不仅丰富了数据集,而且丰富了检测物体的背景,在最后训练出的模型效果中,新模型取得了非常好的效果。

在实现了口罩识别检测系统之后,我们下一步计划将该项目与计算机硬件的相关模块结合,实现根据是否佩戴口罩进行出入口的自动控制,戴口罩者通过入口时,闸机自动开放,当没有戴口罩的人通过入口时,闸机自动关闭,并向防控人员发出警报信息。同时可以结合数据库系统,实现口罩佩戴的检测以及数据库系统的匹配,判断人流中的某个个体是否属于该小区人员或学校学生。结合红外热像体温自动检测系统,将通过入口人员进行口罩佩戴和体温监测的同时检测识别,有效帮助疫情防控人员进行全面检测,全面防控,排查可疑人员,为帮助疫情防控常态化工作作出更大的贡献。

参考文献:

[1]周志华.机器学习[M].1版.北京:清华大学出版社,2016:5-6.

[2](美)Martin T. Hagan.神经网络设计[M].戴葵,译. 北京:机械工业出版社,2002.9:6-12.

[3]李航.统计学习方法[M].1版.北京:清华大学出版社,2012:6-8.

[4] Alexey Bochkovskiy. YOLOv4: Optimal Speed and Accuracy of Object Detection[J]. CVPR, 2020(1).

[5] Google Inc. Going deeper with convolutions[J]. CVPR, 2014(1).

曲阜师范大学 山东省 276800

猜你喜欢

目标检测计算机视觉深度学习
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
机器视觉技术发展及其工业应用
危险气体罐车液位计算机视觉监控识别报警系统设计
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
移动机器人图像目标识别
基于P3电位的目标检测研究