基于改进的Faster R-CNN的行人口罩检测

2021-11-01 08:53刘玉国张晶
现代计算机 2021年26期
关键词:卷积类别口罩

刘玉国,张晶

(天津工业大学计算机科学与技术学院,天津 300387)

0 引言

疫情期间,正确佩戴口罩是阻止病毒人与人之间传播的重要举措,但公众主动佩戴口罩进行防护的意识还有待增强。因此,在公共场合检测公众是否正确佩戴口罩是十分必要的,此举能够及时提醒人们正确佩戴口罩,降低病毒在公共场所传播的风险[1]。目前主要是由工作人员人工检测体温与行人口罩佩戴情况。但该方法存在大量人力资源浪费及人流较大时效率低下等问题。因此使用深度学习自动检测行人是否佩戴口罩具有重要意义。自2012年Krizhevsky等[2]提出的AlexNet[2]网络在ImageNet[3]图像分类任务的精度上取得显著提升以来,基于深度学习的方法广泛应用于许多视觉任务中。当前基于深度学习的目标检测方法可以分为两种类型:一种是Onestage,另一种是Two-stage。One-stage类的方法直接对输入图像进行卷积特征提取,获得卷积特征图,然后在特征图上进行边界框的回归[4]。将目标检测过程转化为回归问题处理,虽然在检测速度上具有一定的优势,但对于检测图像中的小目标具有一定局限性。而Two-stage类方法在进行目标检测时首先需要在图像上提取卷积特征,生成卷积特征图,然后在卷积特征图上获得感兴趣区域,随后对所生成的区域进行目标分类,所以该类方法更耗时,但有助于提升图像中小目标的检测效率。

1 Faster R-CNN原理

1.1 Faster R-CNN简介

Faster R-CNN[5]是目前Two-stage检测算法中最为经典的目标检测算法,它将Fast R-CNN中的目标区域建议纳入神经网络中使整个运算过程可以在GPU中完成,相比于Fast R-CNN,其综合性能得到大大提升。通过共享卷积,RPN网络生成区域建议框的时间为10 ms[5],因此使得实时检测成为可能。Faster R-CNN的基本框架如图1所示。

图1 Faster R-CNN网络简图

输入的图像首先通过卷积神经网络层提取特征得到卷积特征图[5];然后将其输入区域生成网络,获得一些可能包含所检测物体的建议框,再将这些建议框与卷积特征图相结合[5];最后将卷积特征图上的不同尺寸的建议框固定到统一尺寸,分别输入到两个全连接层进行目标分类和边框回归[5]。

1.2 全卷积模块

Faster R-CNN中的卷积模块由卷积、池化、激活函数3种构成,以VGG16模型为例的卷积网络层,首先将输入的图片缩放到固定大小M×N大小然后输入到全卷积模块[5]。其中包含了13个卷积层,13个激活层和4个池化层,得到大小为(M/16)×(N/16)卷积特征图[5]。

1.3 区域建议网络

与传统的使用滑动窗口+图像金字塔生成检测框或者R-CNN中使用Selective Search方法生成检测框[6]相比,Faster R-CNN直接在在卷积神经网络中使用RPN网络生成检测框,极大提升检测框的生成速度[5]。

RPN网络将通过卷积神经网络得到的卷积特征图作为输入,对特征图上的每个3×3位置进行滑窗,并找出滑窗的中心位置在原始图像上对应的中心点[5]。对于每个中心点通过不同尺度以及不同比例的K个anchor产生2K个类别分数以及4K个位置偏移量,用来分类每一个候选框是否包含目标并通过回归得到目标的具体位置[5]。这也是Faster R-CNN相较于之前目标检测方法的巨大优势,Faster R-CNN中的RPN网络具体如图2所示。

图2 RPN网络结构简图

1.4 感兴趣区域池化层

感兴趣区域池化层有两个输入,分别是通过全卷积模块生成的卷积特征图和通过区域建议网络生成的建议框。首先将建议框在图像上的位置映射到卷积特征图上,得到不同大小的建议框特征图;然后将这些建议框特征图池化到统一大小送入后续的全连接层进行分类和回归[4-5]。相较于传统的目标检测方法直接从原图像中截出一部分或对原图像中的一部分进行缩放达到固定大小相比,此方法不会破坏图像的原有结构信息。

1.5 分类和回归

分类和回归层部分网络结构如图3所示。

图3 分类和回归层网络结构简图

分类和回归层利用ROI Pooling层获得的建议框特征图,通过全连接层与Softmax分类器计算每个建议框中的目标具体属于哪个类别,输出每个类别概率向量[6];同时再次利用边框回归获得每个建议框的位置偏移量,用于回归更加精确的目标检测框[6]。

2 改进的Faster R-CNN算法

2.1 残差网络ResNet 50

通过CNN提取图像的特征,网络的层数越多,意味着能够提取的特征越丰富,而且越深的网络提取的特征越抽象,越具有语义信息[7]。但当CNN的网络达到一定深度后,再增加网络的层数并不会提高网络的性能反而可能是准确率降低。因此本文ResNet残差网络[8]来替代Faster R-CNN算法中的VGG16网络,以便可以从图像中获得更多语义信息。

2.2 区域生成网络的改进

原始的Faster RCNN算法在特征图上的每个3×3位置进行滑窗,每滑动一次都会产生三种不同尺寸和长宽比分别为{1:1,1:2,2:1}的9个anchor。因为原始的Faster RCNN算法中的这些anchor尺寸是作者为VOC[9]等数据集中所有类别设置的[5],这对于本文数据集中的类别并不适用。所以本文采用K-Means聚类方法对数据集中的目标类别重新聚类来生成anchor的尺寸,长宽比不发生改变,具体如表1所示。

表1 原始anchor尺寸及比例与改进anchor尺寸及比例的对比

3 实验数据

本文从中国科学院信息工程研究开源的MAFA数据集[10]中选取了4 065张戴口罩的图片;从香港中文大学发布的WIDER FACE人脸数据集[11]中选取了3 894张不戴口罩的图片。使用PASCAL VOC 2007数据集的格式[8],其中7 000张图像作为训练集数据,959张图像的作为测试集数据。数据集的图像分为两类:mask类别和nomask类别,对于不规范佩戴口罩也划为nomask类别。数据集中图像示例如图4所示。

图4 数据集示例图片

4 实验分析

本文算法与Faster R-CNN算法的检测结果对比如图5所示。

图5 两种算法对检测结果对比

通过对比可以发现两种算法对于图像中像素较大的行人是否佩戴口罩都能很好地识别出来,如图5中的A图和D图,两种算法都能正确检测出来图像中的目标并且置信度都为1。但当图像中人数变多从而导致目标信息的像素变小,Faster R-CNN算法漏检较多,比如B图和E图中的右下角和中间未佩戴口罩的行人,以及C图和F图中戴口罩的顾客,本文算法都能很好地检测出来。故对于目标像素较小时,本文算法优于Faster R-CNN算法。

本文算法与Faster R-CNN算法在性能上的比较如图6所示。可以看出与Faster R-CNN算法比较而言,本文算法对于mask这一类别上平均精确度提升了41%;对于nomask这一类别上平均精确度下降了6%,但所有类别的mAP提升了17.96%。总体而言,本文算法相较于Faster R-CNN算法,改善了对于图像中小目标的检测率,具有较强的鲁棒性,但是仍具有进步的空间。

图6 两种算法的性能比较

5 结语

综上所述,本文通过替换Faster R-CNN算法的主干网络对数据集中的图像进行更多的特征提取,然后通过调整Faster R-CNN算法的anchor尺寸,以便更好地适应图像中目标类别的大小,从而有效提高了对数据集中口罩类别的准确检测率。但由于在公众场所行人佩戴口罩的场景较为复杂,本文算法对图像中目标的检测还存在一定的误差,因此下一步将继续扩充数据集中各种复杂场景下行人佩戴口罩的图像,提升算法的检测精度。

猜你喜欢
卷积类别口罩
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一起去图书馆吧
戴口罩的苦与乐
因为一个口罩,我决定离婚了
基于深度卷积网络与空洞卷积融合的人群计数
雾霾口罩
简析基于概率预测的网络数学模型建构
卷积神经网络概述
选相纸 打照片