掌桥专利:专业的专利平台
掌桥专利
首页

一种基于优化SSD算法的口罩佩戴检测方法

文献发布时间:2023-06-19 13:49:36


一种基于优化SSD算法的口罩佩戴检测方法

技术领域

本发明属于目标检测技术领域,特别涉及一种基于优化SSD算法的口罩佩戴检测方法。

背景技术

最近这些年以来,基于深度学习的神经网络对输入图片的特征提取方式快速发展, 极大地提升了对目标的定位、分类、识别等检测效果,这使得很多的计算机视觉的学者开始在这方面投入大量的精力去研究各种目标检测算法,因此创造出了很多非常具 有代表性的目标检测算法。

Girshick等人于2014年将候选区域的算法与卷积神经网络(CNN)结合在了一起形成了R-CNN(Regions with CNN features)。从此开始,基于深度学习的特征提取检测 算法开始广泛流行。而后,在2015年,他们基于之前提出的RCNN算法进行优化得 到了Fast-RCNN。将RCNN众多的算法步骤合并在一起,对图片进行整个卷积而不是 对单个的区域卷积,这样不仅提高了检测速度,也提高了对于目标检测的精确性。在 2015年Ren等基于Fast-RCNN将区域搜索网络和卷积网络结合在一起形成了 Faster-RCNN。在当年的COCO和ILSVRV竞赛当中获得了多个项目的第一,将对物 体的检测速度进一步缩短。Redmon等在2016年提出了端到端的目标检测算法YOLO, 把RCNN系列的检测结果划分成两部分进行求解,即分类问题和回归问题。从此一步 策略检测方法开始盛行。

在YOLO发布不久,Liu等迅速推出了同属一步策略检测的SSD检测算法。也就 是本设计所采用的目标检测模型,SSD算法在对目标的检测速度上在当时是最快的, 其检测的准确度也非常的高,但不可否认的是,SSD算法也存在一步策略检测在当时 都存在的缺陷,那就是它对于小物体的检测效率不行以及鲁棒性不够的问题比较明显。 在这之后,Redmon等针对当时一步策略检测算法的缺陷对YOLO算法进行改进推出 了YOLOv2以及YOLOv3。

神经网络算法:

神经网络算法是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络算法主要结构为输入层,隐藏层和输出层。输入层负责输入特征值,输出层则 是输出预测结果或分类结果。隐藏层由连接的神经元组成。在深度学习中,为了加深 神经网络,增加神经网络层数,引入了激活函数。激活函数通过抛弃部分神经元,达 到加深神经网络并提高预测或分类准确率的目的。

卷积:

卷积过程中的卷积核就是一个像素过滤器,将输入图像的特征进行提取并形成一个新的特征图。关于卷积核大小选择问题,在进行目标检测算法的时候一般选择3×3 和5×5大小的卷积核,而3×3大小的卷积核是最常用的选择,因为这样情况下的训练 效率和速度会更好。在卷积核中每个单元格的数值是我们训练模型过程中的权重,也 就是卷积神经网络的神经元参数。在模型训练的一开始,会给有随机的初始值权重, 然后在不断地训练当中,权重文件会在不断地反向传播中更新其中的权重参数,通过 损失函数(loss)进行评价最优的权重参数,以此方法不断地进行训练,一直到找到最 优的权重参数为止。

VGG16网络:

VGG16最早是由牛津大学的K.Simonyan和A.Zisserman提出,VGG16网络模型 拥有很好的图像分类和物体定位能力,它是VGGNet系列中最为著名的模型。VGG16 网络模型结构拥有16个网络层次,其中有2个包含64个单独卷积核的卷积层、2个 包含128个单独卷积核的卷积层、3个包含256个单独卷积核的卷积层、6个包含512 个单独卷积核的卷积层、2个包含4096个单独神经元的全连接层、1个包含1000个神 经元的全连接层,而VGG16模型的名字就取自于此,它是一个非常深层的卷积神经 网络。VGG16模型中每一段都存在一个或几个卷积层,且每个段的最后面都会有一个 池化层(使用最大池化)用于缩小图像的尺寸大小。

SSD(Single Shot MultiBox Detector)算法:

SSD是基于回归的目标检测算法,而基于回归的目标检测算法中对于目标的检测以及目标的分类是同时进行的,主要的原理是使用卷积神经网络(CNN)从输入图片 中提取特征之后,均匀且随机的在输入图片的不同位置进行密集采样,采样的同时使 用不同大小的尺寸,目标物体的预测框和分类操作共同进行,所以在这个过程之中只 需要一步,因而其速度非常快。但其缺点也很明显,均匀且随机的在输入图片的不同 位置中密集采样会造成正样本和负样本的比例变得非常不平衡,从而对于模型的训练 会比较困难,训练出来的模型准确性也会相对而言比较低。

改进的SSD算法:

在原始SSD目标检测算法的主干网络上对输入图片大小进行改进,将原始的 300×300×3的输入图像优化为512×512×3,一定程度上提高了SSD目标检测算法对于小 目标物体的检测效率和精准度;之后又增加了卷积感受野模块(RFB)对SSD算法进 行改进,提升了在小数据集情况下卷积神经网络(CNN)对深层网络的特征学习率, 从而使得检测的模型更加精准和快速。

发明内容

发明目的:针对现有技术中存在的问题,本发明提出一种提升原始SSD算法对小目标检测效果,增强浅层网络的感受野的基于优化的SSD算法口罩佩戴检测方法。

技术方案:为解决上述技术问题,本发明提供一种基于优化的SSD算法口罩佩 戴检测方法,具体步骤如下:

(1)收集、制作和整理人脸佩戴口罩的数据集,设置口罩佩戴类别标签;

(2)搭建SSD512-RFB算法的神经网络模型;

(3)使用提取的口罩佩戴特征和口罩标签训练神经网络模型;

(4)训练模型用于人脸口罩佩戴检测。

进一步的,所述步骤(1)中设置口罩佩戴类别标签的具体步骤如下:

(1.1)收集AIZOO、WIDER Face、RMFD、MAFA开源平台下的口罩佩戴数据 集中的一部分图片,且收集了网络上和自己拍摄的口罩佩戴数据集;

(1.2)对现有数据集进行缩放、剪裁、拉伸、选择截取等方法扩充数据集;

(1.3)使用Labelimg标注工具对数据集中的图片进行标注;

(1.4)将数据集统一标准化,全部转换为VOC 2007的数据集格式;

(1.5)将口罩佩戴检测划分为两大类,人脸口罩佩戴标签分别为mask与nomask。

进一步的,所述步骤(2)中搭建SSD512-RFB算法的神经网络模型的具体步骤 如下:

(2.1)搭建VGG16神经网络模型;

(2.2)构建原始SSD300×300×3算法模型;

(2.3)在已经搭建好的SSD300300×300×3神经网络模型上进行尺度和先验框的调整得到最优大小512×512×3;

(2.4)再将VGG16主干网络中的FC7层以及FC6层改为卷积层并用于次采样参 数,同时把Pool5从2×2-S2改为3×3-S1(其中S1、S2分别代表步长为1和2),使用 膨胀卷积填充空缺部分以及所有的dropout层和移除FC8层;

(2.5)最后提取第四个卷积层的第三次卷积特征与FC7层提取出的特征进行组合,在通过RFB模块扩大感受野,再将SSD512对应的19×19×1024、10×10×512以及 5×5×256卷积层替换为RFB感受野模块。

进一步的,所述步骤(3)中使用提取的口罩佩戴特征和口罩标签训练神经网络 模型的具体步骤如下:

(3.1)设置起始世代Init_Epoch=0,损失函数不变化世代数n=0;

(3.2)训练模型更新权重文件,Epoch=Epoch+1;

(3.3)当Epoch<=50执行步骤404,当50<=Epoch<=100执行步骤408,否则执 行步骤411;

(3.4)训练所有卷积层,计算损失函数不变化世代数n,设置 BATCH_SIZE=4,lr=0.0005,损失函数为val_loss,激活函数为ReLu;

(3.5)当n<=3时执行步骤402,当3<=n<10时执行步骤406,当n=10时执行步 骤407;

(3.6)将当前学习率下降为当前的一半;

(3.7)设置Epoch=50,n=0,进行第二次精细化模型训练;

(3.8)训练所有卷积层,计算损失函数不变化世代数n,设置 BATCH_SIZE=2,lr=0.0001,损失函数为val_loss,激活函数为ReLu;

(3.9)当n<=3时执行步骤402,当3<=n<10时执行步骤410,当n=10时执行步 骤411;

(3.10)将当前学习率下降为当前的一半;

(3.11)保存训练模型的权重文件rfb.h5;

(3.12)模型训练完毕。

进一步的,所述步骤(4)中训练模型用于人脸口罩佩戴检测的具体步骤如下:

(4.1)调用摄像头或视频进行检测,获取其中的某一帧转为一张张图片;

(4.2)将获取到的图片投入训练好的SSD512-RFB神经网络中;

(4.3)获得口罩佩戴的目标以及标记出来。

与现有技术相比,本发明的优点在于:

本发明创造性的提出了一种基于优化的SSD算法口罩佩戴检测方法,本方法在SSD目标检测网络上加入RFB模块,很大程度上解决了被遮挡目标的检测错误和对小 目标的漏检问题。通过在SSD的VGG16主干网络上的浅层网络中加入RFB模块,扩 大了浅层网络的卷积感受野,也在很大程度上增强了对于浅层网络的特征信息提取能 力,对于被遮挡目标和小目标的目标检测效果和性能指标都拥有比较好的表现。

附图说明

图1为本发明的总体流程图;

图2为图1中设置口罩佩戴类别标签的流程图;

图3为图1中搭建SSD512-RFB算法的神经网络模型的流程图;

图4为图1中使用提取的口罩佩戴特征和口罩标签训练神经网络模型的流程图;

图5为图1中训练模型用于人脸口罩佩戴检测的流程图。

具体实施方式

下面结合附图和具体实施方式,进一步阐明本发明。

如图1-5所示,本发明包括如下步骤:

步骤一:如附图2,从收集、制作和整理人脸佩戴口罩的数据集,设置口罩佩戴 类别标签步骤101从步骤201到步骤205:

步骤201:收集AIZOO、WIDER Face、RMFD、MAFA开源平台下的口罩佩戴数 据集中的一部分图片,且收集了网络上和自己拍摄的口罩佩戴数据集;

步骤202:对现有数据集进行缩放、剪裁、拉伸、选择截取等方法扩充数据集;

步骤203:使用Labelimg标注工具对数据集中的图片进行标注;

步骤204:将数据集统一标准化,全部转换为VOC 2007的数据集格式;

步骤205:将口罩佩戴检测划分为两大类,人脸口罩佩戴标签分别为mask与nomask。

步骤二:如附图3,搭建SSD512-RFB算法的神经网络模型步骤102从步骤301 到步骤304:

步骤301:搭建VGG16神经网络模型;

步骤302:构建原始SSD300×300×3算法模型;

步骤303:在已经搭建好的SSD300300×300×3神经网络模型上进行尺度和先验框的调整得到最优大小512×512×3;

步骤304:再将VGG16主干网络中的FC7层以及FC6层改为卷积层并用于次采 样参数,同时把Pool5从2×2-S2改为3×3-S1(其中S1、S2分别代表步长为1和2), 使用膨胀卷积填充空缺部分以及所有的dropout层和移除FC8层;

步骤305:最后提取第四个卷积层的第三次卷积特征与FC7层提取出的特征进行组合,在通过RFB模块扩大感受野,再将SSD512对应的19×19×1024、10×10×512 以及5×5×256卷积层替换为RFB感受野模块。

步骤三:如附图4,使用提取的口罩佩戴特征和口罩标签训练神经网络模型步骤103从步骤401到步骤414:

步骤401:设置起始世代Init_Epoch=0,损失函数不变化世代数n=0;

步骤402:训练模型更新权重文件,Epoch=Epoch+1;

步骤403:当Epoch<=50执行步骤404,当50<=Epoch<=100执行步骤408,否则 执行步骤411;

步骤404:训练所有卷积层,计算损失函数不变化世代数n,设置 BATCH_SIZE=4,lr=0.0005,损失函数为val_loss,激活函数为ReLu;

步骤405:当n<=3时执行步骤402,当3<=n<10时执行步骤406,当n=10时执 行步骤407;

步骤406:将当前学习率下降为当前的一半;

步骤407:设置Epoch=50,n=0,进行第二次精细化模型训练;

步骤408:训练所有卷积层,计算损失函数不变化世代数n,设置 BATCH_SIZE=2,lr=0.0001,损失函数为val_loss,激活函数为ReLu;

步骤409:当n<=3时执行步骤402,当3<=n<10时执行步骤410,当n=10时执 行步骤411;

步骤410:将当前学习率下降为当前的一半;

步骤411:保存训练模型的权重文件rfb.h5;

步骤412:模型训练完毕。

步骤四:如附图5,训练模型用于人脸口罩佩戴检测步骤104从步骤501到步骤503;

步骤501:调用摄像头或视频进行检测,获取其中的某一帧转为一张张图片;

步骤502:将获取到的图片投入训练好的SSD512-RFB神经网络中;

步骤503:获得口罩佩戴的目标以及标记出来。

为了更好的说明本方法的有效性,通过对自己构造的人脸佩戴口罩数据集进行测试,对比了SSD300、YOLOv3、SSD512和本发明改进的SSD512-RFB算法对人脸佩 戴口罩的检测,实验结果表明,使用改进的SSD512-RFB算法,对口罩佩戴检测效果 高于其它三种神经网络模型。

本发明提出的SSD512-RFB口罩佩戴目标检测算法与原始的SSD300和SSD512 在自己构造的人脸口罩数据集上进行测试,在性能指标上进行对比,本文所提出的算 法要比原始的SSD300和SSD512算法对于口罩佩戴的检测性能更高,效果更佳。在 原始SSD300的基础上改变输入图片的尺度大小为SSD512,扩大了低层网络的小目标 信息提取,缩小了低层网络的网格大小,以至于更好的识别小目标。而在SSD目标检 测网络上加入RFB模块,很大程度上解决了被遮挡目标的检测错误和对小目标的漏检 问题。通过在SSD的VGG16主干网络上的浅层网络中加入RFB模块,扩大了浅层网 络的卷积感受野,也在很大程度上增强了对于浅层网络的特征信息提取能力。在目前 的新冠疫情大肆虐的情况下,对于疫情防控工作上拥有着极大的助力以及实际应用的 前景。

以上所述仅为本发明的实施例子而已,并不用于限制本发明。凡在本发明的原则之内,所作的等同替换,均应包含在本发明的保护范围之内。本发明未作详细阐述的 内容属于本专业领域技术人员公知的已有技术。

技术分类

06120113821658