APP下载

基于YOLO改进算法的安全帽和口罩佩戴自动同时检测

2021-09-18孙世丹郑佳春赵世佳黄一琦

关键词:安全帽尺度准确率

孙世丹,郑佳春,赵世佳,黄一琦

(1.集美大学海洋信息工程学院,福建 厦门 361021;2.集美大学航海学院,福建 厦门 361021)

0 引言

新冠肺炎疫情,让人们认识到佩戴口罩的重要性;而在工地、危险区域进行作业活动,佩戴安全帽是安全规范要求。因此,为了确保安全,同时检测安全帽和口罩佩戴的问题应运而生。目前,针对口罩佩戴的检测主要采用人脸检测算法,例如,牛作东[1]等采用改进retinaface算法,通过人脸关键的三位分析,提高了口罩佩戴的检测速度。由于复杂场景中目标遮挡、人群密集、小尺度等问题,造成使用目标检测算法检测是否佩戴口罩的效果并不理想。对安全帽佩戴的检测研究主要采用基于深度学习的目标检测模型,通过训练和优化各种深度学习模型算法[2-4]来实现图像特征提取,获得安全帽的颜色、形状及佩戴是否正确等信息。

Girshick等提出的区域卷积神经网络(R-CNN)[5]、快速区域卷积神经网络(Fast R-CNN)[6]和超快区域卷积神经网络(Faster R-CNN)[7]大大提高了检测速度;Liu等[8]提出的端到端多尺度检测算法SSD(Single ShotMultiBox Detector),在检测精度和检测时间上取得了良好的效果;Redmon等[9-11]提出了YOLOv1、v2、v3检测算法。YOLOv3由于融合了不同的特征尺度,可进行分别检测,加上在检测效率、精确性的优势,在工程应用上更适合用于多种不同小目标的同时检测[12-13]。YOLOv3是在YOLOv2算法基础上进行一系列改进而成的:YOLOv3采用Darknet-53网络进行特征提取,利用一系列的卷积和上采样对提取的特征进行解析并标记输出;加入了FPN网络[14]中的多尺度网络架构,融合了不同尺度的特征图以提高预测效果;通过K-means[15]对数据集标签进行聚类分析得到默认框的尺寸;将ResNET[16]架构融合进Darknet-19中改变其网络的背景架构;采取平均交并比作为度量标签相似性的指标;每一个卷积层后都会有批量归一化操作[17]和去除dropout操作,防止出现过拟合现象;使用全卷积结构,在每个比例尺上,输出层后都会跟随着3×3和1×1的卷积层,以简化损失函数的计算,提高检测速度;采用上采样和融合做法将三个不同尺度的特征图融合然后对目标进行检测,提高算法对小目标检测的精确度。

综上所述,YOLOv3是适合用于安全帽、口罩等尺寸中偏小物体的检测与识别的,但是,还需要进一步优化。因而,针对安全帽、口罩佩戴的同时检测问题以及实际情况,本文提出一种以YOLOv3算法为基础,以YOLO算法为one-stage网络架构的目标检测算法。由于其不需要先检测待测物体的位置而是直接进行特征检测,大大提高了检测速度。

1 YOLOv3算法优化

为了提升安全帽、口罩佩戴的同时检测性能,本文对YOLOv3算法做了聚类算法优化和Darknet特征网络层优化。

1.1 聚类算法优化

YOLOv3运用K-means聚类算法[15]对输入端的数据集进行处理,以达到优化网络内部初始瞄框选取的目的。对数据集通过目标框的大小进行分类,得到9个先验框的大小。而先验框的大小与其尺度有关,尺度越大时得到的先验框越小,因而可以以此来获得更细致的目标边缘信息。聚类算法本质是计算每个样本点簇中心的距离。选取距离各点的均值最小的点作为新的点簇中心,之后依照新的点簇中心作为判断依据,将各点分配到距离最近的点簇中的一类,依次迭代循环直到点簇中心稳定收敛,收敛结果即是最后的聚类效果。核方法(kernel methods)[18]则是将输入空间映射到高维的特征空间上来划分类别。将二维平面中的样本特征映射到高维的特征空间,使得在平面上无法分类或无法正确分类的特征变得线性可分,以此来区分不同类别的样本中心,等分类完成后映射回二维平面上。加权核K-means算法则是在核函数的基础上对不同占比的类别进行权重的分配,选取更加合适的瞄框。

YOLOv3通常将公开数据集coco所训练得到的瞄框的尺寸作为默认框,其大小为(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。在实际的安全帽、口罩佩戴的检测中,由于安全帽的目标尺寸与coco数据集的差异较大,使用YOLOv3默认框的检验效果并不好。而使用改进的聚类算法对自制安全帽数据集进行分析后,得到了9组先验框的大小:(5,7),(10,13),(12,15),(18,23),(24,30),(33,50),(57,72),(113,127),(221,201),再按照先验框的尺度分配规律分别分配给3个尺度的特征图。经实验验证,优化后的K-means算法的检测效果提升明显。

1.2 Darknet特征网络层优化

YOLOv3将Darknet53作为骨架网络对输入图片进行特征提取,提取后的特征图经过一系列的解析操作得到最后的多尺度输出。其借鉴了FPN网络中多尺度预测的方法来提高检测结果。输入目标在 Darknet53网络中经过5次降采样,分别以8倍、16倍、32倍的降采样结果传输,再经过上采样和张量拼接出的特征图最终被输出检测。这样的网络对于小目标的检测能力是不足的,当检测目标小于8×8像素时,特征网络将会很难检测出来。为了提高网络对于头盔、口罩这类小目标物体的检测率,将4倍降采样的特征信息进行一次上采样,之后与上一层的2倍下采样信息进行特征融合,得到融合后的2倍下采样融合图作为52×52的尺度特征图检测,融合图与之后的降采样信息进行卷积,将融合之后的4倍、8倍、16倍降采样一同输送到后续网络中,以提高小目标的检测特征,进而增大小目标特征的占比,最终增加小目标的检测率。

2 实验与分析

2.1 创建数据集

由于缺少公开的安全帽和口罩佩戴的数据集,研究团队通过整合各种资源,自建一份安全帽和口罩佩戴的数据集,共10664张图。其中:戴有安全帽的图4604张,主要为施工工地工人佩戴环境;戴有口罩的图2023张,主要为口罩佩戴展示及公共场所行人佩戴环境;同时戴有安全帽和口罩的对比图2782张,主要为疫情期间工人佩戴;未佩戴两者的对比图1255张。采用平均准确率(mean average precision,mAP) 作为评价指标,与原网络进行比较实验。

2.2 实验环境与实验计划

本实验环境配置在UBUNTU18.04操作系统、TITAN RTX2080GPU、CUDA10.1、CUDNN、128GB内存平台上,采用pytorch1.2.0框架进行训练。为了验证算法的有效性,本研究进行了以下三种不同情况的实验。

1)实验一 单检测安全帽佩戴的实验。以建筑工地为实验场景,用安全帽佩戴数据集进行网络训练和检测实验。每批次随机选取8张图,初始学习率为5×10-4,且逐步递减, IOU 置为0.5。采用反向传播对网络参数进行微调。将数据集划分为训练集和验证集分别进行评估。共100个epoch 对网络参数进行优化。

2)实验二 单检测口罩佩戴的实验。以各大公共区域为实验场景,每批次随机选取8张图,初始学习率为5×10-4,且逐步递减, IOU 置为0.5。采用反向传播对网络参数进行微调。将数据集划分为训练集和验证集分别进行评估。共100个epoch对网络参数进行优化。

3)实验三 同时检测安全帽和口罩佩戴的实验。在安全帽佩戴数据集和口罩佩戴数据集上添加工地上同时戴有安全帽和口罩的图2782张,进行网络训练,同时检测安全帽和口罩的佩戴情况。训练批大小选取64张图,验证批大小选取2张图,初始学习率为1×10-4,且逐步递减,但不小于1×10-6, IOU 置为0.5。采用反向传播对网络参数进行微调。将数据集划分为训练集和验证集分别进行评估。前20个epoch先对最后一层网络参数进行优化,后30个epoch对整个网络的网络参数进行调整。

2.3 实验结果分析

本研究针对两大类目标进行检测,为区分优化前后对比效果,分别将单戴有口罩或安全帽的图进行了优化前后的检测对比,以及同时戴有安全帽和口罩的图进行优化前后的检测对比。为评估改进后的算法模型的性能,将各检测结果的准确率、平均准确率(mAP)作为模型性能的评估指标,并与YOLOv3算法进行对比。

2.3.1实验一结果分析

图1展示了工地上建筑工人戴有安全帽的图优化前后的对比效果,改进后安全帽佩戴的单检测效果明显高于原YOLOv3算法。算法优化前戴有安全帽的图的检测准确率为87.4%,未戴安全帽的图的检测准确率为84.5%,平均准确率为85.9%;优化后分别为97.6%,89.3%,93.5%。改进后的YOLOv3对单检测安全帽佩戴的平均准确率提高了7.6%。

2.3.2实验二结果分析

图2展示了车站场景下戴有口罩的图优化前后的对比效果。算法优化前戴有口罩的图的检测准确率为82.4%,未佩戴口罩的图的检测准确率为80.2%,平均准确率为81.3%;优化后分别为93.6%,87.0%,90.3%。改进后的YOLOv3对单检测口罩佩戴的平均准确率提高了9%。

2.3.3实验三结果分析

图3显示出多人同时佩戴安全帽和口罩场景下的实验效果。为了方便查看,这里省去了口罩检测的准确率,只标识出了预测框。可以看出,用本算法优化后同时检测安全帽和口罩佩戴的准确率均有所提高。

由表1可见,同时检测安全帽和口罩佩戴的准确率,改进后的算法相较于原算法均提升了15.3%,而平均准确率则提高了11.3%。而相对于SSD算法,改进后的YOLO算法对于同时检测安全帽和口罩佩戴的准确率更高,速度也相比于SSD算法快了5f·s-1。

表1 YOLOv3优化前后检测准确度

4 结束语

本文研究了基于YOLO同时检测安全帽和口罩佩戴的算法改进。该算法通过优化K-means聚类算法来选取更合适的瞄框以适应数据集,优化Darknet网络内部结构以及一些网络微调,多次提取小目标的特征来增强其特征提取的效果。实验分析结果表明:通过优化后该算法能够满足在实际场景中安全帽、口罩佩戴的同时检测需求,可以应用于智慧工地、港口码头、危化矿区等安全监管,具有一定的应用与市场价值。接下来,会将算法移植到实际系统中实验应用并开展算法升级研究,以进一步提升佩戴安全帽和口罩的检测性能。

猜你喜欢

安全帽尺度准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
论社会进步的评价尺度
爆笑四格
危险
宇宙的尺度
9
“多功能”安全帽