一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于人脸图像的口罩检测方法和系统与流程

2022-10-26 20:12:57 来源:中国专利 TAG:


1.本发明涉及一种基于人脸图像的口罩检测方法和系统。


背景技术:

[0002][0003]
口罩检测的方法分为基于传统机器学习模型的方法,以及基于深度学习模型的方法。由于传统的机器学习模型大多将研究重心置于人工特征设计,提取的多为图像的表层特征,表征能力与泛化能力较差。目前基于深度学习的口罩检测方法大多使用卷积神经网络的改进模型进行检测,相比传统的机器学习方法,检测精度高,检测速度快,成为目前口罩检测的主流方法,而现有基于深度学习模型的检测方法检测速度相对较慢,检测精度相对较低。


技术实现要素:

[0004]
发明目的:针对现有技术在基于深度学习模型的检测方法存在着检测速度相对较慢,检测精度相对较低的不足,本发明提供了一种基于人脸图像的口罩检测方法和系统。
[0005]
本发明提供了一种基于人脸图像的口罩检测方法,包括:
[0006]
步骤1:对摄像头的实时视频流或者本地视频文件进行图像截取,通过人工标注的方式制作数据集,并把数据集划分为训练集与验证集。将yolov5m模型作为图像检测器,使用训练集数据进行训练直到yolov5m模型收敛,再通过验证集数据来检验 yolov5m模型的目标检测性能,并对超参数进行调优,最终yolov5m模型能够很好地完成对图像中人脸的边界框检测。
[0007]
步骤2:对于摄像头实时视频流或者本地视频文件,对视频流或视频文件中进出边界的每个人,通过mobilenet检测器选取拍摄角度最好的一张人脸图像保存至本地。每个人只会保存一张人脸图像。
[0008]
步骤3:构建se_resnet18的改进模型m_net,对步骤2保存的人脸图像进行学习训练,直到m_net模型能够对所有的训练集数据是否正确佩戴口罩进行判定。
[0009]
步骤4:使用训练完成的m_net模型,对人脸抓拍模块通过摄像头实时视频流或者本地视频文件保存的人脸图像进行检测,判断是否正确佩戴口罩。
[0010]
步骤2包括:
[0011]
步骤2.1:读取视频流数据或者视频文件数据,将视频的每一帧图像数据输入到训练好的图像检测器中,得到图像中所有人脸的检测框。
[0012]
步骤2.2:通过匈牙利算法将检测框和卡尔曼滤波预测的预测框进行iou匹配,预测框与检测框之间会产生三种结果,分别是:预测框未匹配,检测框未匹配,匹配。(测框与检测框之间会产生三种结果,分别是:预测框未匹配,检测框未匹配,匹配。(重叠的部分与所有面积的比值)
[0013]
步骤2.3:当摄像头实时视频流或者本地视频文件中的人员走出边界后,即分配id 的边界框不再出现在视频中时,停止对该id的边界框进行跟踪,并对截取的所有人脸图像
进行判断,将其中拍摄角度最好的一张图像保存至本地。id就是对每个独立的进出边界的人的自增编号。比如,第一个人进出边界,id号为0,下一个人进出,id号为1,以此类推。
[0014]
步骤2.2包括:
[0015]
步骤2.2.1:如果结果是检测框未匹配,表示跟上一帧的检测框相比,当前帧的检测框新增了目标人脸,预测框不存在所述新增的目标人脸,此时会对检测框分配一个新的id号,表示新增的目标人脸在视频中第一次出现,并将检测框信息送入卡尔曼滤波进行下一时刻的预测。
[0016]
步骤2.2.2:如果结果是匹配,表示所有的预测框与检测框都能一一对应,此时会更新边界框的状态值,并送入卡尔曼滤波进行下一时刻的预测;每经过视频时间1s将此时检测框对应的人脸图添加到该id对应的人脸图列表,并将该id以及对应的人脸图列表以字典形式进行保存;字典是一种数据结构,以key-value形式存储。key是唯一的,一个key对应一个value。
[0017]
步骤2.2.3:如果结果是预测框未匹配,表示目标人脸走出边界从检测框中消失,此时会从人脸图字典中取出预测框对应id的所有人脸图,通过mobilenet检测器选取拍摄角度最好的一张保存至本机,并删除对相应id的人脸预测。
[0018]
步骤3包括:
[0019]
步骤3.1:通过对现有的se_resnet18模型进行改进,构建口罩检测模型m_net,所述m_net模型包括卷积层,bn层,relu层,最大池化层,平均池化层,全连接层以及mnetbasicblock模块;其中mnetbasicblock模块包括卷积层,bn层,最大池化层,以及se模块;se模块包括平均池化层,压缩层和激励层;
[0020]
步骤3.2:通过人脸抓拍模块收集10000张实际场景人脸图,人为对人员是否佩戴口罩进行分类,并将10000张人脸图数据划分为训练集与验证集。这里的训练集与验证集与步骤1中的训练集与验证集并不相同,步骤1是用于目标跟踪,步骤4是用于检测分类;
[0021]
步骤3.3:将训练集的图像数据通过预处理操作后,输入到m_net模型中进行训练直到模型收敛,再通过验证集来检验模型的目标检测性能,并对超参数进行调优,最终m_net模型能够很好地完成对人脸图是否佩戴口罩进行检测。所述预处理操作为常见预处理方式,包括图像尺寸的缩放:将任意尺寸的输入图像的尺寸,长宽缩放到224*224、归一化等。训练调优是指对深度学习模型进行参数调优;
[0022]
步骤3.1中,所述m_net模型对现有模型se_resnet18的主干进行改进,将原有的64个7*7的卷积核,改为32个5*5的卷积核与32个7*7的卷积核,以增加信息的表征能力。
[0023]
步骤3.1中,所述m_net模型对se_resnet18中sebasicblock模块中的 downsample模块进行改进,将原有卷积核的步长从2改为1,以避免信息损失;同时增加了一个最大池化层,以增加信息的特征提取能力。
[0024]
步骤3.1中,卷积层输出的特征的尺寸v如下所示(mnetbasicblock模块是m_net 网络的一部分,是m_net的组成单元之一。这里的卷积层指的是m_net里的所有卷积层,这些卷积层包含mnetbasicblock里的卷积层):
[0025][0026]
其中w为输入特征的宽度,k为卷积核的宽度,p为填充数量,s为卷积核的移动步
长,floor()为向下取整操作,例如floor(57.5)=57,floor(99.8)=99;
[0027]
relu层包括激活函数,用于对输入特征进行线性整流计算,如下所示:
[0028]
f(x)=max(0,x)
[0029]
其中x为输入特征,f(x)为relu层的输出特征,max表示取最大值。
[0030]
bn层(batch normalization),用于对卷积层输出的特征进行标准化处理,避免特征的分布与卷积前相差过大,计算如下所示:
[0031][0032]
其中x为输入特征,μ为输入特征的均值,σ2为输入特征的方差,f(x)为bn层的输出特征;
[0033]
在se模块中,平均池化层对每个通道的特征信息进行平均池化,计算如下所示:
[0034][0035]
其中h表示输入特征的高度,uc表示输入特征x在通道c的特征,pc为se模块中平均池化层的输出特征;
[0036]
压缩层用于获得输入特征每个通道的全局信息,计算如下所示:
[0037]
zc=relu(w1pc)
[0038]
其中,zc表示经过压缩层后的输出特征,为压缩层的全连接权值矩阵。表示矩阵的长宽分别为c/r,c;
[0039]
激励层用于学习得到输入特征每个通道的特征权值,计算公式如下所示:
[0040]
sc=σ(w2relu(zc)
[0041]
其中σ表示sigmoid激活函数,为激励层的全连接权值矩阵,r为中间层的隐层节点数。
[0042]
最后将输入特征在通道c上的特征uc与sc进行点积运算,结果为计算公式如下:
[0043][0044]
步骤4包括:
[0045]
步骤4.1:对人脸抓拍模块新保存的人脸图像进行预处理操作,将输入图片的尺寸缩放到长宽固定的224*224,再通过标准化处理将图像的像素范围从[0,255]标准化至 [0,1];
[0046]
步骤4.2:将预处理后的图像输入m_net模型,最终得到对人脸图像是否佩戴口罩的分类结果。
[0047]
本发明还提供了一种基于人脸图像的口罩检测系统,包括以下模块:
[0048]
人脸图抓拍模块facesnap module,用于对摄像头的实时视频流或者本地视频文件进行目标跟踪处理,通过mobilenet检测器保存人员在进出边界中拍摄角度最好的一张人脸图像。facesnap module模块通过yolov5m检测器得到人脸的检测框,通过卡尔曼滤波得到人脸的预测框,通过匈牙利算法对检测框以及预测框进行匹配,实现人脸的目标跟踪,
并保存拍摄角度最好的一张人脸图像。
[0049]
人脸图二分类模块m_net module,用于对人脸抓拍模块保存的人脸图像进行检测,判断是否正确佩戴口罩。m_net module模块包括m_net模型,m_net模型包括卷积层,bn层,relu层和se模块。se模块包括平均池化层,压缩层和激励层。
[0050]
本发明具有如下有益效果:(1)通过改进现有的se_resnet18模型,提出了m_net 模型。具体表现为,对原有的64个大小为7*7的卷积核,将其中的32个卷积核尺寸修改为5*5,增加了对不同尺度特征的学习,提高了模型的分类性能。相比于现有的se_resnet18模型,减小了模型的参数量,加快了模型的训练以及推理速度。
[0051]
(2)对se_resnet18模型中sebasicblock模块中的downsample模块进行改进,增加了一层最大池化,并且将卷积操作的步长从2修改为1。相比于现有的se_resnet18 模型,增加了模型的深度,提高了模型的检测精度。
[0052]
(3)创新地提出了一种全新的口罩检测流程。相比于现有技术大多数使用yolo 等目标检测器直接对图像内的人有无佩戴口罩进行检测,本发明的检测方法将现有方法拆分成了两步,先进行人脸抓拍,再进行口罩检测,具体表现为:先通过目标追踪的检测方式对进出场所的人员进行抓拍留图,能够对进出场所的每个人保存一张人脸图,之后再基于保存的人脸图进行口罩检测。
[0053]
目标检测器和追踪器能够更加专注于人脸抓拍任务,提高了人脸抓拍精度。分类网络能够专注于口罩检测,利于提升口罩检测精度。在流程上,将人脸抓拍与口罩检测进行了解耦,使得流程更加灵活。人脸抓拍任务可以使用一些带ai算法的摄像机完成,利用边缘计算优势,减轻服务器的运算压力。
附图说明
[0054]
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/ 或其他方面的优点将会变得更加清楚。
[0055]
图1是口罩检测流程简易图。
[0056]
图2是口罩检测流程详细示意图。
[0057]
图3是人脸抓拍流程图。
[0058]
图4是人脸图二分类模块结构图。
[0059]
图5是mnetbasicblock模块结构图。
[0060]
图6a是downsample原模块结构图。
[0061]
图6b是downsample改进模块结构图。
[0062]
图7是se模块结构图。
具体实施方式
[0063]
本发明提供了一种基于人脸图像的口罩检测方法,本方法在具体实施时部署在了食堂场景中(将摄像头部署在食堂中),因此建议在具体实施时,将该方法应用在食堂场景中会获得更佳效果。检测流程如图1、图2所示,包括:
[0064]
人脸图抓取,流程图如图3所示:
[0065]
步骤1:对摄像头实时视频流截取工作日的视频图像共10000张,通过人工标注的
方式制作数据集,并把数据集按照4:1的比例划分为训练集与验证集。本发明将 yolov5m模型作为图像检测器,使用训练集数据进行训练直到模型收敛,再通过验证集来检验模型的目标检测性能,并对超参数进行调优,最终yolov5m模型能够很好地完成对图像中人脸的边界框检测。
[0066]
步骤2:对于摄像头实时视频流中进出边界的每个人,通过mobilenet检测器选取拍摄角度最好的一张人脸图像保存至本地,共保存10000张图片,同样按照4:1的比例划分为训练集与验证集。
[0067]
步骤2包括:
[0068]
2.1:读取视频流数据或者视频文件数据,将视频的每一帧图像数据输入训练完成的yolov5m模型,得到图像中所有人脸的检测框。
[0069]
2.2:通过匈牙利算法将检测框首先和卡尔曼滤波预测的预测框进行iou匹配,预测框与检测框之间会产生三种结果,分别是:预测框未匹配,检测框未匹配,匹配。
[0070]
2.2.1:检测框未匹配,表示跟上一帧的检测框相比,这一帧的检测框新增了目标人脸,预测框不存在该新增目标。此时会对检测框分配一个新的id号,表示该人在视频中第一次出现,并将检测框信息送入卡尔曼滤波进行下一时刻的预测。
[0071]
2.2.2:匹配,表示所有的预测框与检测框都能一一对应,此时会更新边界框的状态值,并送入卡尔曼滤波进行下一时刻的预测。此外,每经过视频时间1s将此时检测框对应的人脸图添加到该id对应的人脸图列表,并更新到以该id为key,id对应的人脸图列表为value的人脸图字典中。
[0072]
2.2.3:预测框未匹配,表示目标人脸走出边界从检测框中消失,此时会从人脸图字典中取出该预测框对应id的所有人脸图,通过mobilenet检测器选取拍摄角度最好的一张保存至本机,并删除对相应id的人脸预测。
[0073]
人脸图检测:
[0074]
步骤3:构建se_resnet18的改进模型m_net,结构如图4、图5、图7所示,对步骤2保存的人脸图像进行学习训练,使用训练集数据进行训练直到模型收敛,再通过验证集数据来检验模型的分类性能,并对超参数进行调优,最终m_net模型能够很好地判断人脸图片是否正确佩戴口罩。
[0075]
步骤3包括:
[0076]
3.1:对现有的se_resnet18模型进行改进,包括对现有模型se_resnet18的主干进行改进,将原有的64个7*7的卷积核(kernel),改为32个5*5的卷积核与32个7*7 的卷积核;以及对se_resnet18中sebasicblock模块中的降采样(downsample)模块进行改进,将原有卷积核的步长(stride)从2改为1,同时增加了一个最大池化层(maxpool)。构建了口罩检测模型m_net。
[0077]
3.2:通过人脸抓拍模块收集10000张实际场景人脸图,人为对人员是否佩戴口罩进行分类,并将10000张人脸图数据同样以4:1的比例划分为训练集与验证集。
[0078]
3.3:将训练集的图像数据通过预处理操作后,输入到m_net模型中进行训练直到模型收敛,再通过验证集来检验模型的目标检测性能,并对超参数进行调优,最终 m_net模型能够很好地完成对人脸图是否佩戴口罩进行检测。
[0079]
步骤4:使用训练完成的m_net模型,对人脸抓拍模块通过摄像头实时视频流或者
本地视频文件保存的人脸图像进行检测,判断是否正确佩戴口罩。
[0080]
步骤4包括:
[0081]
4.1:对人脸抓拍模块新保存的人脸图进行预处理操作,将输入图片的尺寸缩放到长宽固定的224*224,再通过标准化处理将图像的像素范围从[0,255]标准化至[0,1]。
[0082]
4.2:将预处理后的图像输入m_net模型,分别通过改进后的32个7*7的卷积核,以及32个5*5的卷积核进行卷积操作,将两种卷积核卷积操作后得到的特征向量进行拼接并继续输入m_net模型,最终得到对人脸图像是否佩戴口罩的分类结果。
[0083]
具体实现中,本技术提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的一种基于人脸图像的口罩检测方法的发明内容以及各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom) 或随机存储记忆体(random access memory,ram)等。
[0084]
本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机。muu或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0085]
本发明提供了一种基于人脸图像的口罩检测方法和系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献