基于深度学习的安全帽佩戴状态实时检测研究
2021-10-27齐宇霄
王 正,吕 非,齐宇霄,童 莹
(1.南京工程学院 信息与通信工程学院,江苏 南京 211167;2.南瑞集团有限公司,江苏 南京 211106)
0 引 言
安全帽作为劳保用品的重要部分,应用广泛,但其重要性也容易被部分工作人员忽视,因未佩戴安全帽而造成的事故,后果往往极为严重。为解决传统施工现场存在的安全管理问题,实现施工现场的智能化管理,对施工现场人员进行安全帽佩戴状态实时检测具有重大意义[1]。
计算机视觉领域的发展促进了图像采集设备和图像处理技术的结合应用。将拍摄画面传输到计算端,运用相关算法对场景进行实时分析、目标检测[2]、目标跟踪[3]、图像分割[4]等操作,极大地简化了管理过程。从图像角度看待安全帽的佩戴识别问题,发现安全帽醒目的颜色和外形尤其适合用图像技术进行处理。
现阶段,识别安全帽是否佩戴的方法存在一些缺陷,如脱离人体,将安全帽的检测作为重点,这种方法无法准确判断人体和安全帽的佩戴关系;将佩戴安全帽和未佩戴安全帽的人体分类检测,这种方法利用深度学习技术可以较简单的实现,但训练成本较大,识别效果易受噪声影响。这些方法未能把识别精度和速度相结合,在实际监控应用中效果欠佳。基于上述原因,本文提出了一种基于深度学习的安全帽佩戴状态实时检测方法。
1 安全帽实时检测方案
为了对人员的安全帽佩戴状态进行实时检测,需要对视频流进行目标检测跟踪以及安全帽佩戴检测等处理。方案流程如图1所示,可分为人员区域检测、头部区域提取、安全帽存在性判断3部分。
图1 方案流程
1.1 人员区域检测
在图像目标检测任务中,基于深度学习的方法已被证明优于传统检测方法[5]。效果较好的目标检测框架有Faster R-CNN[6],YOLO,Mask R-CNN[7],RetinaNet[8]等。本文采用的YOLOv3[9]检测框架保证了算法运行的速度,满足了实时性需求,同时也能获得较准确的检测结果。
如图2所示,YOLOv3框架采用Darknet-53作为特征提取的主要网络[10],与传统CNN网络结构不同的是,Darknet-53舍弃了常用的池化层和全连接层,在卷积层后搭载Leaky-ReLU激活函数,并在YOLOv2的基础上[11]借鉴了ResNet的残差块结构,用以解决随着卷积神经网络层数的增加而出现的训练退化现象。为了实现检测框多尺度变化,YOLOv3借 鉴 了 FPN(Feature Pyramid Networks, FPN)[11]网络中的思想,分别在13×13、26×26和52×52三种尺度下进行特征图融合与预测,得到Y1、Y2和Y3三次采样输出结果。
图2 YOLOv3网络结构
YOLOv3目标检测框架可以检测多类物体,训练时也是以多类物体的标签进行训练。在安全帽佩戴识别任务中只关心人员目标,所以在训练时只采用人员类的标签进行训练,以节省训练时间,提高训练效率。在硬件计算能力充足时,也可以直接采用YOLOv3训练好的权重(可以检测多类),提取检测结果中的人员目标,进行后续处理。
1.2 头部区域提取
由于安全帽相对人体区域而言占比较小,为了更高效的对YOLOv3提取出的人员区域图像进行分析,本文进一步提取安全帽可能存在的区域,即头部位置区域,再输入后面的网络进行安全帽存在性判断。由于检测到的人员区域大小存在差异,本文按照长宽比,采取人员区域中靠近上方的正方形区域作为提取区域。提取区域小于人员区域,减少了计算负担;同时,提取区域大于安全帽,增加了容错率。将提取出的区域调整到固定大小(方案中取57×57),便于后续处理。
1.3 安全帽存在性判断
经过前面的检测和提取步骤,这一过程仅需进行安全帽是否存在的二分类工作。采用经典的卷积和全连接CNN+FC(Fully Convolutional Networks, FC)[12]网络架构,能够达到较好的分类效果(相比SVM等传统分类方法)。由于存在全连接层,本文对提取的头部区域进行采样操作,将其变为固定大小的图片输入CNN+FC网络。这部分网络包含2个卷积层,1个池化层和2个全连接层,流程如图3所示。
图3 安全帽存在性判断流程
识别安全帽的CNN+FC网络训练过程可以脱离整体网络进行单独训练。训练数据有2个来源:
(1)通过网络采集安全帽和行人相关的开源图片和标签;
(2)真实环境中通过固定位置摄像头采集的图片,利用YOLOv3提取环境区域作为人体标签。
将全部数据集中,相对于人体的安全帽潜在区域(提取出的头部区域)按是否佩戴作为正样本和负样本保存,如图4和图5所示。在训练时对正负样本进行在线处理(包括水平翻转,放大、缩小裁剪区域,旋转等)进行数据增强。实验中发现,从实际测试场景中采集图片进行训练能够获得更好的识别效果。
图4 部分训练正样本
图5 部分训练负样本
2 实验结果
2.1 结果展示
对于检测出佩戴安全帽的人员,用蓝色框标记;检测出未佩戴安全帽的人员,用红色框标记。图6为一般场景下的识别结果,图7为特定场景下的识别结果。
图6 一般场景下的识别结果
图7 特定场景下的识别结果
2.2 实验结果分析
本方案和传统方案在一般场景中的检测结果见表1所列。
表1 实验结果对比
从表中可以看出,本方案的误报率、漏检率和准确率相比传统方案均有较大改善。在实际应用中,往往会在某一特定场景中进行佩戴检测,在该场景中拍摄更多正、负样本进行训练,检测准确率超0.96。本方案基于目标检测算法,避免了传统方案难以检测静止人员的缺陷。在速度方面,传统方法在800×600大小的图片上进行检测,速度为15 FPS(CPU),本方案在1 280×720大小的图片上进行检测,速度为43 FPS (GPU),具有实时检测的效果。通过网络剪枝等手段优化模型,可以进一步提升检测速度。
3 结 语
为解决如何检测作业人员是否佩戴安全帽的问题,本文提出了一种基于深度学习的安全帽佩戴状态实时检测方法。文本方法检测速度快,平均准确率高,经过本试验和对深度学习的研究,该方法能够较好地实现安全帽佩戴的图像和视频检测效果。下一步的研究方向是,当人员被遮挡或出现低光照等情况时,如何降低这些因素对检测结果的影响。