深度学习中的安全帽检测算法应用研究综述

2022-08-19 08:19张立艺武文红牛恒茂段凯博苏晨阳
计算机工程与应用 2022年16期
关键词:安全帽速度特征

张立艺,武文红,牛恒茂,石 宝,段凯博,苏晨阳

1.内蒙古工业大学 信息工程学院,呼和浩特 010080

2.内蒙古建筑职业技术学院 建筑工程与测绘学院,呼和浩特 010020

建筑施工现场中因高空坠落、物体打击导致作业人员死亡的事故占比达50%以上,安全帽是保证作业人员免受致命伤害的一种重要防护工具。因此在施工现场安全管理中,对施工人员进行安全帽佩戴检测是重要工作,同时也是未来智能建造平台或智慧工地应用的重要内容。

目标检测作为计算机视觉领域的一个重要研究方向,是很多复杂计算机视觉任务的基础,其基本任务是找出图像中感兴趣的目标并给出目标的类别和位置信息。安全帽检测作为目标检测的具体应用领域,在施工现场智能化监控系统中起关键作用。截至目前,安全帽检测算法的研究主要分为两类:一是基于传感器的安全帽检测算法;二是基于计算机视觉的安全帽检测算法。其中,基于计算机视觉的安全帽检测算法又分为传统安全帽检测算法和基于深度学习的安全帽检测算法。

基于传感器的安全帽检测算法主要依靠定位技术来检测工人和安全帽,现有的基于传感器的检测和跟踪技术需要每个施工人员佩戴物理标签或传感器,这就会对工人的正常作业造成干扰,跟踪设备通常都会有距离限制,并且投资成本很高。因此,该方法具有一定的局限性。传统安全帽检测算法大致可以分为三个阶段:首先通过活动窗口提取出候选区域。其次对这些候选区域进行手工的特征提取,特征提取的方法包括Haar-like特征[1]、方向梯度直方图(histogram of oriented gradient,HOG)[2]和局部二值模式(local binary pattern,LBP)[3]。最后使用AdaBoost[4]、支持向量机(support vector machine,SVM)[5]等方法进行分类识别,进而判断作业人员是否佩戴安全帽。传统安全帽检测算法主要有三种:背景差法[6]、圆霍夫变换法[7]和DPM(deformable part model)算法[8]。目前,安全帽检测大多应用于监控视频中,由于摄像机放置位置不同,会产生近场、远场以及光照强度、背景复杂多变的安全帽特征。传统安全帽检测算法提取的特征基本都是低层次、人工选定的特征,不能够很好地表达大量、多类目标。算法基于滑动窗口的区域选择没有针对性,使得大量窗口冗余,造成算法的时间复杂度高。以上缺陷导致传统安全帽检测算法的准确性差且无法满足实时性要求。

随着深度学习的发展,利用卷积神经网络能够提取更高层、表达能力更好的安全帽特征,相比于用人工选定的特征,极大地提高了安全帽实时检测的准确性。基于深度学习的目标检测算法已经广泛应用于安全帽检测任务当中,具有很大的应用价值。本文首先简述了传统安全帽检测算法并分析其局限性,提出安全帽检测面临的问题;之后简介了当前常用的基于深度学习的安全帽检测算法的应用情况,说明了各类算法的优缺点,重点阐述了基于深度学习的安全帽检测算法的改进、优势以及存在的问题;最后对安全帽检测未来的研究方向进行了分析和讨论。

1 基于深度学习的两阶段安全帽检测算法

基于深度学习的两阶段安全帽检测算法按照两阶段目标检测算法的原则进行检测,其最大的优点是可以充分提取图像的特征,对安全帽实现精确的分类和定位,针对小目标安全帽的检测效果很好,但由于需要分两步进行检测,检测效率偏低。目前,在安全帽检测任务中用到的两阶段目标检测算法有Faster R-CNN 和Cascade R-CNN。

2015年Ren等[9]提出的Faster R-CNN算法是由生成候选框的区域建议网络(region proposal network,RPN)和Fast R-CNN目标检测算法两个模块组成。Faster RCNN 采用RPN 来代替Fast R-CNN 中使用分割算法生成候选框的方式,节约计算成本,真正地实现了端到端训练,对安全帽的检测准确度和检测速度比传统的目标检测算法提高很多,但由于两阶段的算法特性,其检测效率较低。Fang等[10]提出了一种基于Faster R-CNN的自动非硬帽使用(non-hardhat-use,NHU)检测方法,研究分析了建筑工人的各种视觉条件,并根据视觉条件对图像帧进行分类,根据不同的视觉类别,将图像帧输入到Faster R-CNN 模型中进行训练,得到了比传统安全帽检测算法精度更高、速度更快、能有效检测不同施工现场条件下施工人员NHU 的安全帽检测算法,但由于采用最原始的FasterR-CNN算法,只能运用于对实时性要求不高的安全帽检测任务中。仅仅依靠Faster R-CNN算法不能很好地实现安全帽佩戴的图像和视频检测。针对该问题,2020 年邓开发等[11]通过将Faster R-CNN目标检测模型和深度特征流算法(deep feature flow)[12]相结合,实现了对施工现场摄像头监控的视频中安全帽的检测,该方法可以较好地实现安全帽佩戴的图像和视频检测。但是对图像和视频中目标被遮挡和光线变化多样的目标检测效果不好,需要进一步通过改进Faster R-CNN网络来提高检测的准确度。

针对两阶段目标检测算法中单个的IOU 阈值设定使得正负样本不均衡导致检测准确度低的问题,2018年Cai等[13]提出了Cascade R-CNN算法。该算法将对样本的单阈值采样改为多阈值采样,它的重采样机制保证了算法的每一个R-CNN 阶段的检测器都不会过拟合,提高了检测效果。Cascade R-CNN与Faster R-CNN网络结构对比图如图1所示,其中“I”表示输入图片,“Conv”表示骨干卷积神经网络,“Pool”表示按区域提取特征,“H”表示检测头,“B”表示边界框,“C”表示分类类别。相比于Faster R-CNN,Cascade R-CNN 很大程度上提高了检测准确度,但仅能应用于对检测速度要求较低的安全帽检测任务中。

图1 Cascade R-CNN与Faster R-CNN网络结构对比图Fig.1 Comparison of network structures between Cascade R-CNN and Faster R-CNN

随着基于深度学习的目标检测算法的发展,施工现场安全帽检测领域中所用到的算法也不断地更新。由于两阶段安全帽检测算法需要预先生成候选框,再对候选框进行分类和回归,边界框经过两次微调,检测准确度比单阶段安全帽检测算法要高,但损失了检测速度。这就导致两阶段安全帽检测算法不能够适用于对速度要求极高的安全帽检测任务。基于深度学习的两阶段安全帽检测算法可以精准地识别远处小目标安全帽、遮挡的安全帽目标以及处理光线变化等因素导致的检测效果差的安全帽检测问题。然而面对复杂场景的施工现场中的安全帽检测任务,单阶段安全帽检测算法则体现了更高的应用研究价值。

2 基于深度学习的单阶段安全帽检测算法

基于深度学习的单阶段安全帽检测算法模型结构简单且检测速度快,能够很好地应用于安全帽检测任务中,与两阶段安全帽检测算法相比,单阶段安全帽检测算法的检测准确度有所下降。目前,在安全帽检测任务中常用的单阶段目标检测算法包括YOLO 系列算法、SSD算法、RetinaNet和EfficientDet等。

2.1 YOLO系列安全帽检测算法

用于安全帽检测任务中的YOLO 系列算法包括YOLO、YOLOv2、YOLOv3、YOLOv4和YOLOv5算法。

2015 年Redmon 等[14]提出了YOLO(you only look once),该算法将对目标的分类和定位问题转化为回归问题,YOLO网络结构由24个卷积层和2个全连接层构成,通过整张图训练网络模型,能够很好地区分检测目标和背景,通过划分单元格的方式来检测目标,大大提高了检测速度。虽然YOLO 的检测速度获得了极大的提升,但是由于边界框定位不准确导致小目标安全帽检测效果差,存在小目标安全帽漏检的问题。YOLOv2[15]采用YOLO划分单元格的思想,使用由22个卷积层和5个池化层构成的完全卷积网络提取特征,与原始YOLO相比,去掉了dropout层,引入BN操作和锚机制,无全连接层,采用K-means聚类方法获得锚框尺寸,在保持速度的同时提高了检测准确度。YOLOv2 较YOLO 对小目标的检测效果有所提升,但仍没有解决小目标安全帽漏检、错检的问题。将YOLOv3 应用于安全帽检测任务,极大地提高了对小目标安全帽的检测准确度,同时检测速度也有所提升。YOLOv3[16]相比于YOLOv2,采用基于残差网络的DarkNet-53来提取特征,无全连接层和池化层,对特征图进行8、16、32倍下采样实现多尺度检测,使得网络的检测准确度更高,同时加快了检测速度。为了实现复杂场景下对工作人员是否佩戴安全帽的实时检测,2019年林俊等[17]提出将YOLOv3应用于安全帽检测,针对未佩戴安全帽单类检测问题,修改分类器,将输出修改为18维度的张量,将YOLOv3在ImageNet上进行预训练得到预训练模型,然后再在自制数据集上进行训练并优化调参,最终得到的安全帽检测模型检测准确率可达98.7%,平均检测速度达到了35 frame/s,满足实时性的检测要求。总体来说采用YOLOv3 算法作为安全帽检测的基础,通过在自制数据集上进行训练,获得一个最优的模型,并对作业人员安全帽佩戴情况进行有效的检测,该方法的检测准确率大多超过了90%,满足实际需求。虽然YOLOv3 提升了对小目标安全帽的检测效果,但对一些人员密集环境下重叠安全帽检测仍然存在漏检、错检的问题。2020 年Bochkovskiy 等[18]提出YOLOv4,该算法提高了对重叠安全帽检测性能,并且在检测速度和检测准确率平衡方面优于之前的YOLO系列算法,更适用于安全帽检测任务。与YOLOv3 相比,虽然平衡了模型的检测精度和速度,但YOLOv4 的模型尺寸大,检测速度要慢,且无法将其应用于小型设备中。2021 年朱夏晗潇[19]提出一种基于YOLOv4 的安全帽应用检测方法。先通过机器人进行视频数据采集,再经过训练好的YOLOv4模型判断头部和安全帽位置,之后判断出行为人是否佩戴安全帽。通过在自制的数据集上进行训练测试,网络模型的平均精度均值可达91.7%,分别比Faster R-CNN和YOLOv3提高了7.2%和4.1%。YOLOv5沿用了YOLOv4的网络结构,同样采用了Mosaic数据增强方法,采用自适应锚框,检测速度很快,集成了YOLOv3 和YOLOv4 的部分特性,检测速度远超YOLOv4,有多种网络结构,具有更高的灵活性。为了实时监控相关人员是否佩戴安全帽,2021年Yi等[20]采用YOLOv5 目标检测算法检测复杂场景中作业人员安全帽佩戴情况,可以准确检测处于运动状态中的作业人员,对于遮挡的安全帽也有很好的检测效果,检测准确度达到了92.4%。但将YOLOv5 模型应用于小型的嵌入式安全帽检测设备中,还需对YOLOv5模型的网络结构做进一步改进。目前,YOLO系列安全帽检测算法的应用比较广泛,由于YOLO算法的更新,其中YOLOv3及YOLOv4在安全帽检测领域最为常见。

由于单阶段安全帽检测算法不需要预先生成候选区域,直接对图像的各个位置进行分类和回归,检测速度较两阶段安全帽检测算法有所提升,但同时也损失了检测精度。虽然YOLO系列算法经过一步步的更新,对小目标安全帽检测效果有所提升,尤其是在检测速度方面有显著的进步,但是针对遮挡、光线变化环境中的小目标安全帽的检测准确度还是不高。SSD 安全帽检测算法则平衡了两阶段检测算法检测精度高但检测速度慢,和YOLO系列算法检测速度快但对小目标安全帽检测效果不佳的问题。

2.2 SSD安全帽检测算法

2016 年Liu 等[21]提出SSD(single-shot multibox detector)算法,该算法结合了Faster R-CNN和YOLO的思想,采用修改的VGG作为骨干网络,有效地运用多尺度特征图预测的思想,可以有效地检测到相对较小的目标,检测速度方面可以和YOLO 相媲美,检测准确度方面可以和Faster R-CNN相媲美。SSD算法可以很好地解决安全帽检测中背景复杂且干扰性强和待检测目标较小的问题。但随着SSD算法复杂度增加,检测速度也会大幅度下降,难以应用于检测速度要求较高的安全帽检测任务,并且算法模型难以应用到储存和计算能力有限的嵌入式设备中。在现有的SSD安全帽检测算法中,研究人员大多是将改进的SSD 算法应用在安全帽检测任务中。

2.3 新型的单阶段安全帽检测算法

除了上述单阶段目标检测算法之外,一些新型的单阶段目标检测算法也逐渐运用到了安全帽检测任务当中。2017 年Lin 等[22]提出的RetinaNet 指出了正负样本不平衡的问题是导致单阶段目标检测算法的检测准确度普遍低于两阶段目标检测算法的原因,采用加权的交叉熵损失函数,称为焦点损失(focal loss,FL),可以减少正确检测框的损失。该算法基于ResNet和特征金字塔网络(feature pyramid networks,FPN)[23]构建特征提取网络,实现了多尺度检测,达到了与两阶段目标检测算法相当的检测准确度,同时保持了检测速度。2021年王雨生等[24]提出一种基于姿态估计的安全帽佩戴检测方法。使用RetinaNet 检测头部区域安全帽的佩戴情况,解决了安全帽与复杂施工场景类极不平衡的问题,网络模型的平均精度均值可达97.1%,分别比Faster RCNN 和YOLOv3 提高了9.53%和2.8%,但检测速度要逊于YOLOv3。2019年Duan等[25]提出的CenterNet针对CornerNet[26]不能很好地参考被检测对象全局信息而产生部分误检的问题,在CornerNet 的基础上增加了感知视觉模式,通过中心点池化来预测对象的中心点,通过判断检测框的中心区域是否有预测的中心点来消除错误的检测框,提高了检测准确度,但难以解决两个不同的重合中心点的问题,对重合安全帽检测效果差。2020年Tan 等[27]提出了EfficientDet,该算法由特征提取网络EfficientNet 和面向多目标检测的加权双向特征金字塔网络构成,解决了网络的深度、宽度和分辨率值检测不平衡问题,提高了生成模型的泛化能力。该算法的网络结构可以实现多尺度的特征融合,对小目标安全帽的检测起到了显著作用,但由于网络模型的复杂度增大,使得检测速度有所降低。2020 年梅国新等[28]提出了基于EfficientDet 的用于检测边缘环境下面向复杂监控视频背景的安全帽检测算法。通过在SHWD公开数据集上进行训练测试,网络模型检测平均精度均值最高可达92%,比YOLOv3提高了20%,检测速度达到15 frame/s,但检测速度比YOLOv3 要低。EfficientDet 模型克服了检测目标存在明显遮挡、重叠度高和图像分辨率低的问题,取得了比较好的检测效果,同时模型所占空间较小,为模型部署在边缘计算环境上提供了可能,但在检测速度方面还有较大的提升空间。其他未改进的单阶段安全帽检测算法的具体应用见表1。

表1 无改进的基于深度学习的安全帽检测算法Table 1 No improved helmet detection algorithm based on deep learning

3 基于深度学习的安全帽检测算法的改进及应用

仅仅将原始的基于深度学习的目标检测算法应用于安全帽检测任务中具有一定的局限性,研究人员提出了一系列的改进方法。具体方法包括:优化Anchor Box、优化骨干网络、特征融合、引入注意力机制、优化非极大值抑制算法、引入在线困难样本挖掘策略和优化损失函数等。

3.1 优化Anchor Box

优化Anchor Box[41]也就是对锚点数量或锚点尺寸的调整,在基于深度学习的两阶段安全帽检测算法和单阶段安全帽检测算法中都使用了优化Anchor Box的改进方法。两阶段安全帽检测算法中RPN的锚点数量是网络中的一个超参数,直接影响后续候选区域的生成。由于在安全帽检测任务中,需要检测安全帽、人员等多个目标,尤其是向安全帽这种局部的目标检测,小目标是无法避免的,网络默认的锚点参数较大,无法对小目标安全帽进行很好的识别,因此需要对网络默认的参数进行修改或增加。通过优化Anchor Box的改进方式可以有效地解决安全帽检测算法对部分遮挡、尺寸不一和小目标存在检测难度大的问题。2020 年徐守坤等[42]提出了一种改进的Faster R-CNN安全帽检测算法。针对施工现场安全帽检测任务中的小目标,在网络默认锚点数量的基础上,加入了一组64×64 锚点,使得网络可以检测到更多的小目标安全帽。原始的Faster R-CNN使用9 个锚点,而改进之后锚点数量增加到了12 个,分别对应64×64、128×128、256×256 和512×512 这四个尺度大小。通过在自制的数据集上进行训练测试,检测精确度提升了0.79%。该改进方法增强了网络检测不同尺寸目标的鲁棒性,通过增加锚点数量和修改锚框的尺寸,使RPN 得到可以覆盖安全帽佩戴检测所有尺寸的目标框,提高了安全帽的佩戴检测精度,对多尺寸目标和小目标均有较好的检测效果,但由于人员的姿态有所不同,此模型只能粗略地选取安全帽的相对位置,泛化性不高。在单阶段安全帽检测算法中采用的是K-means聚类算法[43]对安全帽数据集进行聚类分析,对目标框的大小进行分类,输出先验框的尺寸,从而达到优化网络内部初始锚框的目的。由于在安全帽检测任务中收集的安全帽数据集有所不同,原网络结构中的锚框尺寸参数不能满足安全帽数据集的检测要求,这就需要对安全帽数据集重新进行聚类,选择合适的先验框。针对施工现场远景视野下安全帽目标较小的特点,常增加特征图尺度个数,再进行聚类得到先验框的尺寸。2021 年郑晓等[44]设计实现了一种基于深度学习的安全帽检测智能监管系统,系统采用YOLOv4 目标检测模型,在数据集上使用K-means算法聚类分析生成新的先验框,并使用新的先验框进行训练。该模型的检测精度可达92%,大大提高了工程现场的生产安全系数和监管效率,但在实际应用当中,对数据集进行聚类分析得到的先验框尺寸不满足待检测的安全帽的大小,导致对小目标安全帽的检测效果较差。

由于使用的安全帽检测数据集有较大差异,除了采用原模型中K-means聚类算法在新数据集上重新聚类得到先验框的尺寸之外,还可以对聚类算法进行优化改进,应用到安全帽检测算法中,得到更加精确的先验框的尺寸大小,进而达到优化Anchor Box的目的,提高模型的检测效果,优化聚类算法是优化Anchor Box 的一种有效方式。然而对于密度不均匀的安全帽检测数据集,聚类效果不是很好。原始的K-means聚类算法,是随机选取数据集中K个点作为聚类中心,这种随机选取的方式导致聚类得到的先验框的尺寸不够准确。2021年孙世丹等[45]对网络模型中的聚类算法进行优化,使用加权核K-means聚类算法对训练数据集聚类分析,选取更适合小目标检测的Anchor Box,提高了检测的平均精度和速度。改进之后的网络模型检测的平均准确率可达到93.5%,比原YOLOv3 提高了7.6%,检测速度达到45 frame/s,但该算法的改进同样是针对安全帽检测数据集的聚类分析,对于现实中的安全帽并不完全适用,对极端大小的安全帽存在漏检、误检问题。

优化Anchor Box的改进方式仅仅是通过对安全帽图像中的目标框进行尺寸判断,进而细化特征图中的锚框,从而提高了对安全帽的检测效果,但对小目标的检测效果有限,要想真正地提高检测性能,需对骨干网络进行改进或替换,提高模型的特征提取能力,使小目标在特征图上更好地表达出来,从而提升模型的检测准确率。

3.2 优化骨干网络

骨干网络(backbone)作为目标检测模型中的特征提取器,特征提取的效果往往直接影响目标检测的性能。两阶段目标检测中常见的骨干网络有SPPNet[46]、VGG-Net[47]和ResNet[48]等。原始Faster R-CNN 算法的骨干网络为VGG,它采用顶层特征做预测会导致底层的位置信息丢失,对深层次的特征信息学习能力不足,降低模型对小目标安全帽的检测准确度,提高特征提取能力需要更多的网络层数,但增加网络层数会加大模型损耗。RestNet网络可以很好地解决由于卷积层加深而导致的模型退化的问题。在安全帽检测任务当中,研究人员通过优化骨干网络,采用ResNet代替原来的VGG-Net,从而达到很好的检测效果。为了解决Faster R-CNN算法在对小物体检测性能方面鲁棒性差的问题,2019年周展博[49]摒弃了原始的VGG-16 基础网络,提出将101 层堆叠的残差学习模块组成的ResNet-101 网络作为新的基础网络。该改进方法提升了安全帽佩戴的检测精度,但由于采用更深网络结构的ResNet以达到更好的检测准确度,网络模型的复杂性更高,在检测速度上未达到实时性级别。

除了两阶段目标检测算法中常用的VGG、ResNet和SPPNet 骨干网络之外,单阶段目标检测算法还用到了MobileNet[50]、DenseNet[51]等。YOLO系列算法采用层数结构不同的DarkNet 来提取特征,网络结构变得复杂,参数量也会随之增加,导致检测速度慢,内存消耗大且对硬件性能要求很高的问题,不利于安全帽的实时性检测。深度可分离卷积网络将区域和通道分开计算,并且对不同的通道进行独立卷积操作,可以大大减小模型的参数量和运算量,得到一个轻量化的模型。2020年朱晓春等[52]提出了改进的基于YOLOv3 的安全帽检测算法,通过深度可分离卷积对DarkNet 网络结构进行改进,优化了骨干网络,减少了模型的参数量,相对于标准卷积运算,降低了模型的计算量,网络结构如图2 所示。该改进算法的检测准确率可达89.67%,检测速度为105 frame/s,检测速度提高了两倍,但由于模型参数量的减少,网络结构相对简单,并没有提高模型的检测准确率。

图2 网络结构Fig.2 Network structure

实际安全帽检测环境下需要把网络模型部署在算力有限的移动端或嵌入式设备中,但将体积偏大的原YOLOv5模型嵌入到设备中,会导致设备无法支持复杂的计算量的问题。2021 年蒋润熙等[53]提出了一种适合部署在移动设备上的轻量级目标检测网络HourGlass-YOLO(HG-YOLO)。该算法以YOLOv5 为基础模型,重构了新的骨干网络来替换原骨干网络,并使用了通道剪枝技术,在保证精度的情况下,减少了模型的参数。通过在公开数据集SHWD 上进行训练测试,网络模型的平均精度均值可达94.4%,虽然检测准确度不如原YOLOv5模型,但检测速度达到9.5 frame/s,参数量达到了最少,可以更好地将算法部署在低端设备,然而由于融合卷积层与批量归一化层,减少了网络层数和参数量,使得模型对小目标安全帽的检测会出现漏检情况。VGG作为SSD的基础网络对SSD算法的检测性能有重要影响,MobileNet网络在参数量、计算量和访存量上都要比VGG 小得多,因此在一些特别的安全帽检测任务中,MobileNet 更加适合。针对在安全帽检测任务中SSD 模型在不使用GPU 加速时检测速度缓慢、内存消耗大以及计算复杂度高的问题,2020年张丽[54]引入轻量型MobileNet来替换SSD中的VGG网络,网络模型检测速度比原SSD 提高了两倍。改进的SSD 安全帽检测算法大幅度提高了检测速度,但其精度却有所损失,因此,在检测速度加快的同时保持检测精度还需要进一步的研究。

虽然优化骨干网络后的检测精度得到了大幅提升,但目前骨干网络仍存在模型复杂等问题,施工现场安全帽检测大多面临复杂背景环境,仅仅替换骨干网络对安全帽小目标的特征提取能力还是不足。如果说优化骨干网络属于从大结构上来改进网络模型,从而提高特征提取效果,那么特征融合则属于从细节上进一步提高模型的特征提取性能。

3.3 特征融合

基于深度学习的目标检测算法一般关注的是中、大目标,利用卷积神经网络提取深层次的特征,具有很好的检测性能。但对于安全帽检测任务中的小目标,深层卷积神经网络的尺寸小且感受野较大,使得小目标会被漏检,浅层卷积神经网络虽然感受野小,但目标特征不强,置信度较低,在检测过程中也会被舍弃。特征融合就是将深层和浅层的卷积特征进行融合,使得产生的候选区域特征同时具有高分辨率特征图的位置信息和低分辨率特征图的语义信息,再由RPN 网络分别预测达到多尺度检测的目的,从而提高网络对小目标的检测能力。但是仅仅采用特征融合的方法都会损失一定的检测速度,研究人员有时会将特征融合方法与其他改进方法配合使用以达到最好的检测效果。2020年吴冬梅等[55]提出了一种基于改进的Faster R-CNN的安全帽佩戴检测及身份识别方法,通过将骨干网络中的5个网络阶段的特征图进行融合,如图3 所示,并将多尺寸的特征图分别输入到RPN网络中,完成特征融合和多尺度检测,改进之后的网络的平均精度均值比原模型提高了16.8%。该改进方法在安全帽特征提取时能充分利用所有特征层信息,大大提升了安全帽检测效果,但由于进行了5个阶段的特征融合,增加了模型的复杂度,使得模型的检测速度有所降低。针对施工现场作业场景的复杂环境,由于工人所佩戴的安全帽在图像中所占的像素较少,导致使用卷积神经网络提取的特征质量不高,极大地影响了检测模型的检测精度。2021年Jin等[56]采用基于特征融合的Faster R-CNN 算法实现了工人安全帽佩戴检测,利用特征映射融合方法获得特征信息更丰富的特征映射,然后利用特征映射对检测模型进行训练,检测准确率可达96%,能有效地检测出工人安全帽佩戴情况。

图3 特征融合金字塔Fig.3 Feature fusion pyramid

在单阶段安全帽检测算法中,采用特征融合使得网络可以得到包含丰富位置信息和语义信息的特征,获得不同尺度的特征图,从而提高网络模型对小目标的检测准确度,增强网络的鲁棒性。针对安全帽检测场景中环境复杂、光照不均匀等各类环境问题,2019 年何超[57]通过对YOLOv3算法进行改进,提出了一种新的特征融合算法,其主要网络结构是深度残差网络,在YOLOv3 的主网络之后又增加了1个卷积层,并同浅层的残差网络做特征融合,从而将网络从3 个尺度扩展为4 个尺度卷积层的特征金字塔,然后对特征金字塔进行2 倍上采样,与前面的深度残差网络进行融合,形成深度融合的快速安全帽检测模型。该网络模型的平均精度均值可达93.61%,比原网络提升了4.51%。但由于有些安全帽检测中的背景较复杂,多尺度检测利用高分辨率特征会引入过多的背景噪声,容易造成模型收敛速度缓慢的结果。2021年肖体刚等[58]提出一种基于改进SSD的安全帽佩戴快速检测算法。通过将SSD中的骨干网络VGG-16替换为轻量型卷积神经网络MobileNetV3-small,减少了模型的参数,同时使用特征金字塔结构将深层特征与浅层特征进行融合,提升了检测精度,网络模型的平均精确率可达91.1%,基于GPU的检测速度为108 frame/s,该改进方法不论是检测速度还是精度都优于原SSD算法。

采用特征融合的方式进行安全帽检测能够将安全帽特征图中的深层特征和浅层特征结合起来,得到多尺度的特征,但特征融合使得特征之间的信息交互不完全,提取特征的相关性不强。而注意力机制通过分配不同的权重来获得安全帽特征信息,具有很好的特征表达效果,使得提取的特征的相关性更强,更大程度地提高安全帽检测性能。

3.4 引入注意力机制

安全帽检测算法的特征提取环节尤为重要,在神经网络中,注意力机制[59]是根据关注对象的重要程度进行不同的资源分配,注意力分配的资源也就是权重。在卷积神经网络当中,卷积核是局部的,为了增大感受野,采用堆叠卷积层的方式将卷积核和原始特征进行线性组合得到输出特征,但是这种方式的效率很低。引入注意力机制可以获得全局信息并选择出对当前任务目标更关键的信息,具有很好的特征表达效果,这就使得提取的特征的相关性更强,捕获到更丰富的高级语义信息,进而提高检测性能,但引入注意力机制后模型的参数量也会随之增加,加大网络的计算量,进而降低模型的收敛速度。2022 年孙国栋等[60]提出了一种基于Faster RCNN的融合注意力机制的安全帽检测算法。该算法通过自注意力层来捕获多个尺度上的全局信息,得到更丰富的高层特征并将更大的感受野范围引入模型,采用ResNet-101 代替原来的VGG-16 骨干网络,同时采用锚点补选增强的方法,强化了网络对小尺度目标的表达能力。改进之后的网络模型的平均精度均值可达94.3%,比传统的Faster R-CNN提高了6.4%。引入注意力机制的改进方法对不同施工现场的安全帽检测任务有着较好的检测效果,但采用注意力机制需要矩阵来存储注意力权重,增大模型的参数量,检测速度有所降低。引入注意力机制的改进方法同样适用于单阶段目标检测算法,自注意力模块通过计算输出特征图每个像素点之间的相互影响,改变每个网络层之间的感受野,从而让网络在向前传播的过程中感受野不断增加,使得检测算法具有全局性和可靠性。施工现场的复杂环境中存在的弱小目标与遮挡目标大多难以得到有效检测,针对该问题,2021年李天宇等[61]在YOLOv3的基础上建立了一种基于注意力机制的双向特征金字塔的安全帽检测卷积神经网络。为了准确检测戴安全帽的工人,减少网络特征损失,引入了双向特征融合的特征金字塔网络PANet,提高了对弱小目标的定位准确性;为了减少遮挡目标被误检,在特征金字塔网络的输出部分引入了注意力模块,网络模型的平均精度均值可达91.96%,比原YOLOv3 提升了0.82%,检测速度可达21 frame/s,能够实现复杂环境下的安全帽精确检测且满足实时性要求,但由于模型的复杂度提高,影响了检测速度。2020年黄勇[62]提出了融入自注意力的SSD 改进算法。通过Self-Attention模块扩大了SSD算法的感受野,增强了算法的识别能力。通过在自制的数据集上进行训练测试,网络模型的检测准确率可达71.7%,比原SSD提升了2.37%。该方法对安全帽的目标小、易形变以及堆叠的情况有很好的检测效果。

通过优化Anchor Box、优化骨干网络、特征融合和引入注意力机制的改进方法,一定程度上可以提升对安全帽小目标的检测能力,但还是解决不了候选框被错误剔除的问题,对一些密集目标还是存在漏检、错检。

3.5 优化非极大值抑制算法

非极大值抑制算法(non-maximum suppression,NMS)[63]的作用是在目标框筛选阶段剔除部分冗余框,解决一个目标被多次检测的问题。但NMS算法始终存在两个问题:一是对于一些目标比较密集的检测任务,在剔除部分冗余框的同时去掉了部分正样本的检测框,如图4所示。二是NMS算法是将大于阈值的目标框直接剔除,但是一个合适的阈值是很难找到的。

图4 NMS的缺陷Fig.4 Defects of NMS

因此,在一些安全帽检测任务中,研究人员通过优化非极大值抑制算法来解决上述问题,进而提高安全帽检测算法的检测效果。具体优化算法包括Soft-NMS和DIOU-NMS等,该方法皆适合于解决较密集的安全帽检测场景下因NMS过程中删除高度重叠目标而造成安全帽漏检的问题。2019 年金肖莹[64]针对分布比较密集的安全帽目标,使用Soft-NMS[65]来替换后处理过程中的NMS,在不重新训练模型的情况下提高了检测的准确性。改进之后的网络的精确度可达88.1%,比传统的Faster R-CNN模型提高了9.5%。通过优化非极大值抑制算法之后的安全帽检测算法在准确率和泛化能力上表现出了很好的性能,但由于本身是两阶段的算法,即使提高了检测准确度,其检测速度还是较低,仍无法解决检测速度要求较高的安全帽检测问题。针对YOLOv5算法检测小目标时存在的漏检和模型收敛速度慢的问题,2021 年Tan 等[66]增加检测规模,并使用DIOU-NMS代替NMS,利用DIOU-NMS 在对候选框进行剔除的同时考虑了重叠区域和两个目标框的中心距离的优点,提高了模型对小目标的检测准确度,模型的检测准确度可达95.68%,检测速度达到98 frame/s,但由于YOLO系列算法网络检测目标的局限性,对严重遮挡安全帽仍存在一定程度的漏检、错检。2020 年邱浩然[67]针对安全帽位置中存在的遮挡和重叠情况,使用Soft-NMS 代替YOLOv3中的NMS算法,提高了模型的检测效果。

以上五种改进方法在两阶段安全帽检测算法和单阶段安全帽检测算法中都比较常见,为了达到最好的检测效果,研究人员常常把多种改进方法结合起来使用,从而在最大程度上提高对安全帽佩戴的检测效果。除了上述改进方法,两种基于深度学习的安全帽检测算法还有各自的改进方法,进一步提升了安全帽检测算法的检测性能。更多相关改进的安全帽检测算法见表2。

表2 (续)

表2 改进的基于深度学习的安全帽检测算法Table 2 Improved helmet detection algorithm based on deep learning

3.6 引入在线困难样本挖掘策略、优化损失函数

在两阶段安全帽检测算法中,通过引入在线困难样本挖掘策略,解决了两阶段安全帽检测算法随机挑选正负样本并设置比例导致样本存在大量无效样本,以及模型参数更新缓慢导致检测效率低的问题。在线困难样本挖掘策略[88]通过自动挖掘损失较高的样本而不需要人为设定正负样本比例,这样有针对性地学习训练,提高了模型的训练速度和检测准确度,但在安全帽检测中由于安全帽检测数据集本身的问题,无法覆盖各种场景的安全帽样本。2020 年王慧[89]针对安全帽数据集中难易样本、正负样本不均衡使得网络后期损失较高的问题,将在线困难样本挖掘机制引入到特征融合后的FasterR-CNN。改进之后的网络模型的平均精度均值可达93.3%,比原模型提高了1.8%,在线困难样本挖掘策略能够挖掘损失较大的困难样本,进行针对性的训练,增强模型背景分辨能力的同时降低了漏检率,但只是基本满足实际应用中的精度要求,对小目标安全帽和遮挡安全帽的检测准确度还有待提高。2020 年徐守坤等[90]在原始Faster R-CNN的基础上使用多层特征融合技术优化区域建议网络产生首选区域特征图,使用在线困难样本挖掘技术训练ROI网络,自动挑选出困难样本使训练更加有效,提高了对部分遮挡和小尺寸目标的检测效果,对环境变化也有很强的适应性。引入在线困难样本挖掘策略提高了检测效率,但采用多特征融合技术增加了模型的复杂程度和参数量,最终导致检测速度有所降低。

在单阶段安全帽检测算法中,YOLOv3利用均方误差(mean squared error,MSE)作为损失函数来进行目标框的回归,利用均方误差评价指标有时候并不能把不同质量的预测结果区分开来。比如说,在YOLOv3中采用交并比(intersection over union,IOU)来判断模型是否检测到目标,模型设定一个IOU 阈值,如果检测目标的IOU 大于设定阈值,则会判断为检测到目标,反之则反。YOLOv3中回归质量的评价采用IOU指标,但是对于IOU 值不同的检测目标可能得到相同的MSE 损失值,如图5所示。

图5 相同MSE下的IOU值Fig.5 IOU value under same MSE

因此,以均方误差作为衡量预测边界框的回归效果的损失值,不能与IOU 很好地联系起来,从而影响了模型的检测性能。2021 年韩锟等[91]针对损失函数与模型检测效果不匹配的问题,使用基于GIOU的损失函数代替均方误差损失函数,更好地匹配了算法损失函数与目标检测评价之间的关系,网络模型检测的平均精度均值可达93.84%,比未改进损失函数的模型提高了2.57%。改进的模型对多样化场景、多尺度目标具有很好的鲁棒性,但没有考虑到天气对图像成像质量的影响,雨雪、雾霾天气会造成摄像头成像质量下降,检测目标模糊,模型的检测性能也会受到影响。在安全帽检测的实际应用场景中,轻量级算法YOLOv3-Tiny 由于参数数量较少,易于在嵌入式设备中部署,但其检测精度较低,不适合检测小目标安全帽。2021 年Cheng 等[92]构造了一种基于深度可卷积和通道注意机制的轻量级模块来代替原有的卷积层,在减少参数和计算量的同时,获得了更多的特征信息,采用CIOU 损失函数代替原损失函数,提高了对小目标的检测效果,与原模型相比,提高了检测精度,检测准确率可达81.6%,但损失了检测速度。为了解决基于深度学习的安全帽检测方法因结构复杂和计算量大而难以应用到嵌入式设备中的问题,2022年农元君等[93]以YOLOv3-Tiny检测网络为基础,通过优化网络结构,引入空间金字塔池化模块丰富特征图的多尺度信息,采用K-means聚类算法重新优化锚框,最后引入了CIOU 边界框回归损失函数提高了检测精度。该改进方法在光线不佳、小目标、密集目标等复杂施工环境下具有良好的适应性和泛化能力,但该改进方法为了满足嵌入式平台的需要,降低了网络参数,减少了运算量,使得检测准确度比YOLOv3要低。

优化损失函数的改进方法弥补了IOU 损失函数的不足,解决了当检测框与真实框没有重合部分时,梯度不存在而无法进行梯度下降优化的问题。但优化损失函数并不是每次都能达到最好的训练结果,损失函数的选择还得依安全帽检测的实际情况而定。

3.7 改进算法模型适应能力的其他方法

在对基于深度学习的安全帽检测算法研究中,除了上述的改进方法之外,研究人员还通过引入其他网络、模型压缩、迁移学习、数据增强以及选择合适的优化器的方法,进一步提高模型的适应能力。

3.7.1 引入其他网络——提高安全帽检测准确度

在将单阶段目标检测算法运用到具体应用中时,通常也采用与其他网络相结合来改进网络模型的方法。这种改进方式使得原网络融合了其他网络结构的优势,提高模型的泛化能力。2021 年钟鑫豪等[94]提出了一种基于改进Tiny-YOLOv3 算法的安全帽佩戴检测模型,在该算法的原网络中加入残差网络模块,避免了小目标的特征随着网络的加深而导致梯度消失的问题,提高了小目标的检测准确率。网络模型检测的平均精度均值比原模型提高了4.1%,检测速度基本与原模型相当。虽然检测精度和速度得到了均衡,但与YOLOv3等大型检测网络相比,小目标安全帽的检测准确度还有待提高,且增加残差网络模块影响检测的实时性。在安全帽检测中,有些检测对象较小,由于其在图片中所占的像素较小,使得在特征提取时会造成特征信息的丢失。针对该问题,2021 年曹燕等[95]将Conv-LSTM 引入到SSD 模型中,改进后的模型可以将高特征信息层与低特征信息层分开,使得小目标信息特征可以充分利用,提高了对小目标检测的检测效果,但由于在SSD网络的基础上增加了Conv-LSTM模块,网络的复杂度提升,降低了检测速度。

3.7.2 模型压缩——提升安全帽检测速度

模型压缩主要是在保持网络精度的前提下,减少模型参数,从而实现模型的压缩,提高模型的检测速度。模型压缩最常用的三种方法是参数量化[96]、模型蒸馏[97]、模型裁剪[98]。为了增加模型的可用性,2019年方明等[99]以YOLOv2 目标检测方法为基础,借鉴了密集连接网络思想,在原网络中加入密集快实现特征融合,利用MobileNet 中的轻量化网络结构对网络进行压缩,缩减了网络,大大提高了检测速度,改进之后的网络模型的检测速度可达148 frame/s,检测精度达到87.42%。该改进方法减少了模型的参数量,增加了模型的可用性,但由于缩减了网络结构,模型对安全帽检测的准确度有待提高。2021年赵红成等[100]提出了一种新型轻量的安全帽佩戴检测模型,通过优化骨干网络,将原始YOLOv5s主干网络更改为MobileNetV2,通过对模型进行压缩,在BN层引入缩放因子进行稀疏化训练,采取模型裁剪方法进一步减少模型推理计算量,最后通过模型蒸馏进行微调得到了YOLO-S。改进的网络模型的检测平均精度可达92.1%,比原模型提高了1.4%,浮点数为YOLOv5s 的1/3,推理速度比其他模型快,可移植性高。模型压缩降低了模型的参数量,显著提升了检测速度,为将安全帽检测算法模型应用于嵌入设备提供了可能,但是损失了一定的检测准确度。该方法需要和其他方法结合使用,从而平衡检测速度和检测准确度。

3.7.3 迁移学习和数据增强——解决安全帽数据集规模小的问题

在安全帽检测任务中,往往在自制的数据集上进行模型训练,为了克服数据不足造成的缺陷,通常也采用迁移学习和数据增强。迁移学习[101]是将网络中每个节点的权重从一个训练好的网络迁移到另一个全新的网络。在安全帽检测任务中,安全帽数据集的样本数量是训练网络性能的限制因素,神经网络训练的数据集数量往往需要达到如ImageNet[102]的量级才能有效地避免网络过拟合。针对安全帽数据集规模小的问题,使用迁移学习策略能够加快安全帽检测模型的训练速度,增强模型的泛化能力。为了解决安全帽数据集规模小导致网络难以充分拟合特征的问题,文献[103-104]采用迁移学习策略克服模型训练困难问题,加快了安全帽检测模型的训练速度。在网络的训练阶段,改进数据增强的方法在扩充数据集的同时还可以增加样本中小目标的数量。2021年赵春晖等[105]提出基于改进YOLOv3的安全帽检测算法,在训练阶段利用目标可占比数据增强方法,增加了小目标的数量,同时在网络中引入了多尺度特征池化模块,使得网络对不同尺度的目标更加敏感。该改进方法的平均精度可达88.63%,比原YOLOv3 提升了1.54%,但改进方法仅提高了对小目标安全帽的检测精度,对于遮挡的安全帽目标检测有待进一步研究,并且模型引入多尺度模块,使得网络参数量增加,影响了模型的检测速度。针对不平衡数据集导致模型检测精度下降的问题,2021 年Geng 等[106]在YOLOv3 目标检测算法的基础上,采用基于加权的高斯模糊数据增强方法对不平衡数据集进行预处理,对YOLOv3 算法进行改进,检测准确度可达98.2%。但由于通过高斯模糊数据增强方法对图像进行处理时,图像离被处理对象越近,其对该像素的影响就越大,然而使用加权平均之后,每个像素使用周围像素的平均值,这就导致了图像中点丢失特征细节,影响了之后模型的检测准确度。

3.7.4 选择合适的优化器——优化检测效果

神经网络中的优化器是用来更新和计算影响模型训练和模型输出的网络参数,使其达到最优值。一个合适的优化器可以加快网络模型的收敛速度,减少训练时间。2020年张业宝等[107]提出基于改进SSD的安全帽检测方法。采用Adam 优化器实现训练过程中神经网络的快速收敛,同时对网络进行迁移学习,加快了训练过程并减少了对数据量的需求,提高了网络模型的检测准确度,但检测速度较原SSD 算法提升不够明显,有待进一步研究。在基于深度学习的目标检测算法中,都会有符合算法的优化器,但是在安全帽检测任务中,有时候通过更换优化器会有意想不到的效果。

以上对提升安全帽检测模型适应能力的有关方法进行了总结,更多采用提高模型适应能力方法的安全帽检测算法见表3。

表3 改进的增强模型适应能力的安全帽检测算法Table 3 Improved helmet detection algorithm to enhance adaptability of model

4 总结与展望

本文深入分析了近年来基于深度学习的目标检测算法在安全帽检测领域的研究,总结了安全帽检测方法的种类,详细阐述了两阶段安全帽检测算法和单阶段安全帽检测算法及其具体改进方法,为智能建造技术领域相关科研人员提供借鉴与思路。当前安全帽检测算法虽然已取得了一定的成果,但将其使用在未来智能建造平台或智慧工地的应用维度上还需继续努力研究。以下提出当前研究过程中的一些问题或建议,同时给出未来发展方向,供大家借鉴。

(1)目前安全帽检测数据集还是太少,难以适应各种复杂场景下网络模型的训练要求。目前,大多数研究人员都是根据安全帽检测的具体应用场景自行构建数据集。综合分析施工现场安全帽数据集的图片来源主要包括以下三个途径:利用搜索引擎从互联网上爬取图片;从施工现场的监控视频中截取视频帧;通过摄像机在施工现场进行手工拍摄。未来,还需要研究人员针对安全帽检测任务构建一套完备的数据集。

(2)安全帽检测数据集中的小目标还是存在一定的误检、漏检,这是安全帽检测领域普遍存在的问题。针对该问题,除了本文提到的改进方法,还需在对安全帽的检测当中充分利用小目标的区域特征,结合上下文信息增强对小目标的检测。Transformer 已经在计算机视觉领域表现出很好的性能,主要运用了自注意力机制,Transformer应用于安全帽检测任务可能会有很好的效果。

(3)安全帽检测算法应用于嵌入式设备中还是有些困难。针对该问题,未来可以对轻量级网络展开研究,采用模型压缩、参数量化等方法减少模型参数量,使其可以应用于嵌入式设备中。

(4)由于摄像机位置角度不同使得数据集中存在遮挡目标,对这种情况同样存在误检、漏检。未来,随着5G 网络时代的发展和硬件技术的更新,智慧工地也会针对性地设计多样化的视频设备来降低误检、漏检概率。

(5)人与安全帽的位置关系不好判断的问题,模型不能很好判断出作业人员是否正确佩戴安全帽。目前,智能建造技术领域已经将基于姿势估计算法的工人关键点提取和基于多目标跟踪算法的工人关键点跟踪应用于工人施工状态识别当中,尽管还不成熟,但是可以预计未来人与安全帽位置关系不好判断的问题,可以通过关键点检测算法和目标检测算法相结合的方式来解决。

利用智能的方法实现施工现场实时监控,既节省人力成本,又提高施工现场安全性,更为我国智能建造平台或智慧工地的发展奠定了良好的基础。在安全帽检测任务中,由于考虑角度不同,有的针对遮挡和小目标安全帽的问题,有的需要应用于嵌入式设备中,有的针对数据集中检测目标不足的问题,有的则更注重模型的收敛速度,因此改进方法有所不同,将基于深度学习的目标检测算法应用于安全帽检测任务中,还需具体问题具体分析。未来,随着深度学习的发展,将会有更多的研究成果应用于安全帽检测领域中。

猜你喜欢
安全帽速度特征
根据方程特征选解法
小小安全帽,生命保护伞
行驶速度
离散型随机变量的分布列与数字特征
速度
爆笑四格
不忠诚的四个特征
危险
比速度更速度——“光脑”来了
秒速5厘米