基于YOLOv4的安全帽佩戴检测及工种身份识别①
2022-08-04史建利
王 晨,齐 华,史建利
(西安工业大学 电子信息工程学院,西安 710021)
安全帽是保护头部的重要防护用品[1],施工场景中不允许未佩戴安全帽进入作业场所、不同身份的人越界非法操作等. 不同颜色的安全帽代表不同的身份[2,3],文献[3]通过对安全帽检测和颜色识别的算法,来判定安全帽的佩戴以及身份识别,该方法使用起来比较复杂,首先是要检测安全帽是否佩戴,然后再根据颜色识别算法判定安全帽的颜色,假如安全帽佩戴存在误检那么身份也会存在错误检测. 文献[1]利用SSD 算法[4]对安全帽的佩戴检测平均准确率达到91.7%,虽然他们在原来算法的基础之上通过对网络模型进行了优化以及改进,实现对安全帽佩戴的检测,但是当施工环境相对复杂一些的时候仍然不能满足当前施工现场的需求,如夜间环境,强光照环境下,以及雨天环境等. 文献[5,6]通过利用YOLOv3 算法实现对安全帽检测,平均准确率达到了88%,但目前对施工现场工人是否佩戴安全帽大部分是通过人工监控视频来监督[7],这种方法不仅浪费人力,效率低,而且不具有全面性,综上所述,当前对施工场景下安全帽的佩戴检测以及工种身份的识别均存在要么效率低,要么识别的准确低,要么使用的场景单一,因此安全帽佩戴检测及工种身份识别成为当前检测领域的研究热点[8–10].
随着机器视觉在施工场景中的不断应用[11–13],结合对现有的建筑工地安全帽佩戴检测存在的问题,本文提出了基于YOLOv4 的安全帽佩戴检测及工种身份识别的方法,可以适用于多种施工场景,该方法是通过基于视频监控下对建筑工地进行实时目标行为检测,通过这种方式不仅提高了对工人安全帽是否佩戴检测的监管效率,而且对于不同身份的工人,是否可以进入到某些施工区域进行了很好的监督,达到了对于施工现场的智能化管理.
1 YOLOv4 模型结构及原理
本文的安全帽佩戴检测以及工种身份识别的网络检测模型是基于YOLOv4 模型建立的,YOLOv4 模型分为主干网络、颈部网络及Prediction 输出层. YOLOv4网络结构如图1 所示. 其中,*表示卷积.
图1 YOLOv4 网络结构
YOLOv4 主干特征提取网络为CSPDarknet53,在resblock_body 的结构中使用了CSPnet 结构,CSPnet中存在一个大的残差边,减少了大量数据的重复计算量,同时可以有效地提高在实时检测过程中数据的处理速度,有效地解决了在训练模型中产生的重复数据计算问题. 在特征金字塔部分,YOLOv4 结合了SPP 结构和PANet 结构. SPP 进行最大池化处理. PANet 是获取带的图像特征进行重复提取,在结构中对主干特征提取网络的有效特征层及SPP 网络的输出特征层进行特征融合. PANet 是进行有效特征层及SPP 的输出特征层进行上采样、卷积及堆叠操作,然后在对上述操作进行下采样、卷积及堆叠操作,目的是加强特征融合,提取更有效的特征,对于Prediction 输出层来说,主要是对获取到图像特征进行输出预测判断,预测的结果整体分为大中小3 种类型,最终可以通过预测结果通过不同的类型能够实时的将测试目标检测出来.
2 YOLOv4 模型的优化与改进
本论文的目的是研究出满足精度与速度要求的安全帽检测以及工种身份识别的框架模型,工种身份主要是依据当前工程中安全帽的主要颜色来进行识别,在本论文中主要讨论四种颜色的安全帽佩戴情况同时进行工人工种身份的识别,考虑到精度与速度的平衡本文的检测系统采用基于YOLOv4 作为基础网络模型来进行设计与优化,基于YOLOv4 改进的安全帽检测流程图如图2 所示.
图2 改进的YOLOv4 目标检测过程
2.1 目标建议框设计方案优化
本文通过使用K-means 聚类算法获得适合自身安全帽数据集中尺度分布的anchor box 来代替原始的anchor box 的大小.
K-means 算法对选择初始聚类中心进行优化,能够显著改善聚类结果,鲁棒性更强,加快网络模型的训练速度. 聚类的目的是确定更精准的先验框参数,使先验框和真实框有更大的IOU 值.
通过对安全帽数据集进行K-means 聚类分析之后,为了让目标边界框和真实框的IOU 值更大,因此要得到最佳的聚类中心个数. 在图3 中可以看出,当k>12 时,曲线上升变缓慢,所以k等于12 时是真实框和预测框重合度最高,即最佳的聚类中心个数,对应的anchor 的个数为12.
图3 K-means 算法流程图
2.2 多尺度检测网络的改进
为了提升改进的YOLOv4 对小目标的检测效果,本文对YOLOv4 算法网络架构进行修改,通过选取更大的特征图来提升算法对小目标和遮挡物体的检测能力,在保留原始YOLOv4 算法中13×13、26×26、52×52 三种尺度特征预测前提下,通过对52×52 尺度特征层采用上采样技术,减小感受野,将分辨率提升到104×104 尺度特征层后实现对安全帽的佩戴以及工种身份的识别检测,可以有效地增强了对远处较小目标的敏感度,避免了对远处较小目标检测中存在大量错误检测. 改进后输出的4 种特征图的尺寸是13×13、26×26、52×52、104×104. 同时根据4 种特征图的输出先验框大小得到12 种先验框大小,聚类分析之后得到的4 种特征图对应的输出先验框大小,改进的YOLOv4网络框图如图4 所示. 其中,*表示卷积.
图4 改进的YOLOv4 网络框架图
输出矩阵尺度分别为小尺度特征13×13×30,中尺度特征26×26×30,大尺度特征52×52×30,新尺度特征104×104×30.
4 个尺度层对应的输出先验框大小如图5 所示.
图5 4 个尺度层对应的输出先验框大小
2.3 非极大值抑制的改进
YOLOv4 对目标的检测过程中,由于多尺度特征提取过程会对同一位置生成多种anchor box,导致产生的检测结果往往是冗余的,因此需要通过非极大值抑制的方式对预测框进行处理,在模型检测阶段的后处理操作中,使用NMS 算法过滤掉多余的预测框,只保留预测分数最高的预测框作为识别结果输出.
在改进的YOLOv4 模型检测算法中,当将输入图像尺寸为416×416×3 时,会产生(13×13+26×26+52×52+104×104)×3=14365 个预测框,之后通过非极大值抑制算法,获得最终的预测框. 在施工场地中安全帽检测以及工种身份识别的过程中,经常出现小目标很容易被背景干扰或者两个人头部之间的距离重叠较大等情况,在这些情况下使用仅考虑重叠区域的NMS 算法就会抑制掉一些小目标或被遮挡的目标产生错误的抑制,造成漏检,从而影响检测精度.
3 实验结果分析
3.1 数据集的构建
对于安全帽的佩戴以及工种身份的识别实验中,数据集的建立非常重要. 为保证实验结论的准确性,数据集的构建需要满足: (1)图像包含不同场景、不同姿势、不同拍摄距离或受不同程度遮挡目标的图像,来保证实验结果更具全面性与准确性; (2)保证样本的数量和以及质量.
3.2 数据集标注方案设计
数据集在标注的过程中需要注意以下两点: (1)将施工人员的头部和安全帽一起作为样本特征; (2)施工人员头部的帽子是否为安全帽. 因此,在标注过程中,需要对图像中的作业人员头部+安全帽进行整体合起来标注,而不仅标注图像中的安全帽. 数据集内标注为:红色(red)、黄色(yellow)、白色(white)、蓝色(blue)安全帽和未佩戴(person)安全帽人员.
3.3 检测可视化结果
为进一步直观的展示和评估YOLOv4 和 改进型YOLOv4 在安全帽检测以及工种身份识别检测上的效果,本文分别对两种算法在多目标场景、夜晚场景下进行了测试,如图6 所示.
如图6 所示,对于多目标测试的场景下YOLOv4算法相比较改进之后的YOLOv4 算法效果相对较差,因为基于原YOLOv4 模型来说只有3 个尺度预测层输出,分别为大目标,中目标,小目标,但是对于作业安防的实际场景下可能存在者视频监控下距离目标太远,因此在实时的测试过程中可能存在一定的漏检,或者身份识别错误等情况的出现,但是存在对身份的识别存在错误检测,但是安全帽的检测仍然能够识别出来,但是对于改进之后的YOLOv4 来说效果比YOLOv4本身得到很大的提升,能更好地应用于施工场景下,表1表示改进前后测试结果对比统计.
表1 改进前与改进后测试结果对比
图6 测试效果图
3.4 性能分析
3.4.1 Precision、Recall 和mAP
使用精确率(Precision)和召回率(Recall)等指标来定量的评估算法的检测性能.
如表2 所示,其中,TP 表示预测框和真实的标签框相匹配的数量. FP 表示将背景预测成了目标的数量.FN 表示属于待检测目标但模型未检测出的数量. TN 将正类错误预测为负类数. TP+FN,也就是全体完全满足图片标注的图片的个数,TP+FP,也就是预测的图片中是正类的图片的数目. Precision 是预测的准确度,Recall 表征着预测的目标物体框全的程度. 分析两者的定义公式可以发现,Precision 会随着Recall 的变化而变化.
表2 目标检测的评价指标
图7 是每个类别对应的P-R 曲线图,其中蓝色的曲线代表蓝色安全帽目标,黄色的曲线代表黄色安全帽目标,红色的曲线代表红色安全帽目标,绿色的曲线代表白色安全帽目标,黑色的曲线代表未佩戴安全帽,其中黑色曲线与坐标轴围成面积最大,蓝色曲线与坐标轴围成面积最小,曲线围成的面积表示每一个类检测的精度.mAP代表平均精确率,对于每一类计算平均精确率(AP),然后计算所有类的均值就是mAP的值.M个类的表示公式如式(1).
图7 不同情况处理的P-R 曲线图
3.4.2 Loss 曲线对比图
图8 中将训练的样本在YOLOv4 模型、改进之后的YOLOv4 模型中训练分别得到图8(a),图8(b)的Loss 曲线和mAP值对应的变化曲线图,曲线图纵轴代表损失值大小,横轴代表迭代的次数,模型整体也是趋于收敛的,但是收敛的速度较慢且对应的mAP值较低,经过修改之后的YOLOv4-hat 模型收敛速度较快同时最终得到的mAP值相对原模型提高了0.038,因此修改之后的YOLOv4 模型相对YOLOv4 原型在训练时收敛速度和mAP都有所提高.
图8 Loss 曲线对比图
4 结论与展望
本文提出了基于改进YOLOv4 的安全帽佩戴检测及工种身份识别的方法,根据K-means 聚类出更符合“安全帽+头部”的anchor box; 并根据anchor box 大小修改了网络的输出尺度; 同时通过对非极大值抑制的改进使重叠较大的目标更能识别. 结果表明此方法提升了 YOLOv4 的模型性能,增强了检测的准确性,针对小目标的检测能力有所提高,得到改进之后的YOLOv4模型有较高的检测精度和鲁棒性,达到了安全帽佩戴检测及工种身份识别的实际需要.