基于深度学习的佩戴口罩检测方法与流程

文档序号:23654309发布日期:2021-01-15 13:51阅读:3275来源:国知局
基于深度学习的佩戴口罩检测方法与流程

本发明属于机器学习领域,特别是涉及一种基于深度学习的佩戴口罩检测方法。



背景技术:

目前急需一种能够在公共区域内自动检测进出人员是否佩戴口罩的检测提醒的应用系统。

目前传统的检测方法利用阈值分割和帧差法检测目标区域,再使用目标区域的色彩分布来进行判断,基于人工设计的传统图像处理算法应用场景单一、不稳定、当场景变化时,准确率严重变化。而现有的深度学习检测方法检测速度相对较慢,而且在获取速度时又损失了相应检测的精度且占用内存较大。

目前在口罩佩戴检测方面需要一种检测速度快,鲁棒性好的检测系统,为此我们提出了基于深度学习的佩戴口罩检测方法。



技术实现要素:

针对现有的目标检测跟踪系统存在应用场景单一、检测识别速度慢、鲁棒性差、占用内存大等缺点,本发明提出了一种基于深度学习的目标检测方法,其包括以下步骤:

s1、采集公共场合下人们佩戴口罩和未佩戴口罩的图像,按清晰度进行筛选;

s11、选择不同地点及环境,使用高清摄相机采集5000张佩戴口罩照片与未佩戴口罩照片作为样本,保证训练数据集的多样性;

s12、对样本数据集进行扩充和旋转处理,使训练出的模型具有高鲁棒性;

s2、对所述图像进行预处理,构建佩戴口罩检测数据集,使用标注工具对数据集图像生成对应的标注、标签信息和位置信息,将数据集按4:1比例随机分为训练数据集和测试集;

s21、使用标注工具对图像进行标注时,对图像中的人脸部分进行标注,当人脸部分有口罩时,标注mask,当人脸部分没有口罩时,标注为nomask;

s3、将所述训练集放入深度神经网络进行模型训练,提取戴口罩与未佩戴口罩的相关特征,通过聚类算法k-means产生预测框;

s4、删减yolov3网络最大尺度的yolo检测层,将卷积层和bn层合并,对所述训练集输入改进后的yolov3网络进行重复训练,获得优选的权重值与偏置值;

s41、将检测层的数量更改至与检测类别的数量相一致,以提高检测精度;

s42、对改进后的网络进行重复训练,获得适用本数据集的最优参数、权重值和偏置;

s5、将目标检测模块与语音模块相连接,根据不同的检测情况发出不同提示声音。

优选地,在训练深度学习网络过程中,对实际现场中出现的人员进行标注,通过更改原有的yolov3网络模型对应的参数与网络层数,能保证精度并加快目标检测速度,通过改变网络层数和参数,能减少检测时间,加强目标检测的实时性。

优选地,将卷积层x1=ω*x+b与bn层的函数公式合并为公式x2=ω1*x+b1,其中,ω为卷积权重、b为卷积偏置、u为bn层中均值、σ为方差、γ为缩放因子、β为偏移、ε≠0,x1为卷积层计算结果,x2为经过卷积计算和bn层后的结果,x为进入卷积计算的计算参数,ω1为合并后新的卷积权重,b1为合并后新的卷积偏置。

优选地,对yolov3网络进行重复性训练时,将网络的的输入尺寸调整为416×416大小,设置交并比iou阈值为0.5、置信度阈值为0.5、冲量momentum为0.9,以提高模型的检测精度。

优选地,将目标检测模块与语音模块相连接,当检测到人佩戴好口罩时,则提示请进,当检测到人未佩戴好口罩时,则提示请佩戴好口罩。

本发明与现有技术相比具有如下优点:

1)通过分析更改yolov3网络,加快检测速度,提高检测精度;

2)提出了基于深度学习的目标检测模块,结合语音播报模块实现对进入公共活动区域人员的佩戴口罩提醒;

3)具有检测速度快,检测目标精准,适宜多场景检测,鲁棒性较好等优点,能够满足目标检测系统的要求。

附图说明

图1为本发明的模型优化流程图;

图2a为本发明的原始网络结构程图、图2b为残差组件改进图;

图3为本发明的改进网络结构图;

图4为本发明的整体流程图;以及

图5为本发明的检测效果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要注意的为,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

一种基于深度学习的佩戴口罩检测方法,其包括如下步骤:

深度模型的优化过程如图1,具体训练过程描述如下:

s1、首先在公路上、景区、超市、公园等各种生活区域拍摄4000-5000张人们佩戴口罩照片以及同等数量的未佩戴口罩照片,并将拍摄到的图片中模糊不清的照片清除出去;

s2、对s1中采集的图像进行预处理,并构建佩戴口罩检测的数据集:

数据集图像使用lablemming标注工具生成对应的标注、标签信息和位置信息,划定脸部区域,标签信息即样本中目标所属类别分为mask和nomask两类,标注信息即样本中目标的位置信息。将数据集使用python文件按照比例4:1随机分为训练数据集和测试集,同时对数据进行扩充操作:图像进行水平翻转、随机裁剪、更改图像对比度。

s3、将s2中处理制作后的数据集放入未改进的yolov3网络进行训练,由于yolov4在做boundingbox预测的时候,用到了anchorboxes,anchors为最有可能的object的width与height,可事先通过聚类得到,比如某一个像素单元,通过这个像素单元预测出一个object,围绕这个像素单元,可以预测出无数种object的形状,并不是随便预测的,要参考anchorbox的大小,即从已标注的数据中通过聚类统计到的最有可能的object的形状,所以为了使模型参数优化本发明使用k-means算法获得最优参数,为深度模型的准确性提供了保证,具体参数如图1所示。详细来说,先将网络的的输入尺寸调整为416×416,并设置交并比iou阈值为0.5,iou为目标检测中使用的一个概念,是产生的候选框candidatebound与原标记框groundtruthbound的交叠率,即它们的交集与并集的比值,最理想情况是完全重叠,即比值为1,,进行训练,获取最优参数值。所有训练图片的一个批次batch,批次大小bat设置置信度阈值为0.5、冲量momentum设置为0.9ch_size的划分根据我们在.cfg文件中设置的subdivisions参数。在我使用的.cfg文件中batch=64,subdivision=8,所以在训练输出中,训练迭代包含了8组,每组又包含了8张图片,跟设定的batch和subdivision的值一致。也就是说每轮迭代会从所有训练集里随机抽取batch=64个样本参与训练,所有这些batch个样本又被均分为subdivision=8次送入网络参与训练,以减轻内存占用的压力。class参数为训练检测的目标数,由于本目标检测的目的为是否佩戴口罩,将class参数设置为2,两种即戴口罩mask和未佩戴口罩nomask。修改好后,修改编译文件makefile,生成可操作的执行文件进行模型训练。

s4、在优化模型参数后,在进行训练前对yolov3网络进行两方面的改进,合并bn层与屏蔽最小尺度的yolo层。

关于合并bn层,本方法首次创新性的对yolov3网络进行bn层与卷积层的合并。详情原理如下:在深度学习中,conv+bn+relu已成为标配,在网络推理阶段,将conv层和bn层进行合并,因为他们都是线性运算。合并后就相当于少了bn层的计算,这样可以加快网络推理。在数学计算上讲,合并的本质其实就是改变了卷积层的权重和偏置。

卷积层的计算x1=ω*x+b

bn层的计算

将bn层合并于conv层后,conv的计算方式如下:

x2=ω1*x+b1,其中,ω为卷积权重、b为卷积偏置、u为bn层中均值、σ为方差、γ为缩放因子、β为偏移、ε≠0,x1为卷积层计算结果,x2为经过卷积计算和bn层后的结果,x为进入卷积计算的计算参数,ω1为合并后新的卷积权重,b1为合并后新的卷积偏置。

这样处理后合并了conv层和bn层加速了模型的推理速度在保证精度度后加快了检测速度,原理如图2b所示。其中cbl为yolov3基本组件由conv层+bn层+leaky_relu激活函数三者组成。在训练深度网络模型时,bn层能够加速网络收敛,并且能够控制过拟合,一般放在卷积层之后。bn层将数据归一化后,能够有效解决梯度消失与梯度爆炸问题。虽然bn层在训练时起到了积极作用,然而,在网络前向推断时多了一些层的运算,影响了模型的性能,且占用了更多的内存或者显存空间。目前,很多先进的网络模型都使用了bn技术,如resnet、mobilenet、xception和shufflenet等,因此,我们有必要将bn层的参数合并到卷积层,来提升模型前向推断的速度。因此本方法创新性的将yolov3.结构中两个基本组件中的卷积层与bn层进行了合并,从而达到加快检测速度的目的。

删减yolo检测层结构的详情如图3所示,yolov3在经过多个卷积和上采样之后最终得到的是三个卷积结果,每一个卷积结果的长和宽分别是(13×13,26×26,52×52),深度信息是[4(box信息)+1(物体判别信息)+80(classnum置信度)]*3(每个点上面计算几个anchor)yolo层的作用就是对这些信息进行解码操作。第一个yolo层是最大的特征图52*52,mask=0,1,2,对应最小的anchorbox,目标检测算法通常对输入图像中的大量区域进行采样,判断这些区域是否包含感兴趣的目标,并调整这些区域的边缘,以便更准确地预测目标的地面真实边界框。不同的模型可能使用不同的区域采样方法。在这里,我们介绍一种这样的方法:它生成多个大小和纵横比不同的边框,同时以每个像素为中心。这些边界框称为锚框即anchorbox。第二个yolo层是中等的特征图38*38,mask=3,4,5,对应中等的anchorbox。第三个yolo层是最小的特征图13*13,mask=6,7,8,对应最大的anchorbox。首先需要明白的是yolo层对3个anchorbox信息不去重,如果三个anchor都满足条件的话都会把信息写入到输出。输出会有一个内存地址专门填写满足条件的检测框的数量信息,这里的满足条件就是在物体判别信息概率大于门限同时在类别中选择置信度最大的一个物体当作类别信息。本发明为对目标进行目标检测。通过删减最大尺度的yolo检测层即最大特征图52x52对应的yolo检测层,加快了模型检测速度。变化前后的结构图对比如图2a到图3的变化。

s5、将通过s4已经训练好的目标检测模块与对应的语音模块相链接,具体检测系统运行为:当检测来人佩戴口罩则发出“请进”的语音,当检测到来人未佩戴口罩时则发出提示语音“请您佩戴好口罩”。整体流程图如图4所示。

本发明利用了基于深度学习的目标检测技术,通过多元化的数据集的收集与处理,本发明克服了检测背景单一这一缺点,可以在日常生活中的各个场景实现对未佩戴口罩人员的检测提醒,通过使用最新的yolov3网络并对其网络进行合并bn层和删除尺度最大的yolo检测层提升了检测速度,克服了检测速度慢的缺点,同时通过多元数据集和对图像进行尺度变换的图像处理方法,加强了系统的鲁棒性。克服了鲁棒性差的缺点。具体效果如图5所示。由图5可以看出本方法可以准确的识别出人们是否佩戴口罩。正如图5所示所有出现在画面中的人都检测到佩戴了口罩标记mask。

以上所述各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应该理解:其依然能对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1