基于改进YOLOv4的电力高空作业安全带检测

2022-10-28 06:51顿伟超王淑青张鹏飞
湖北工业大学学报 2022年5期
关键词:高空作业先验安全带

顿伟超, 王淑青, 张鹏飞, 王 娟

(湖北工业大学电气与电子工程学院, 湖北 武汉 430068)

随着深度学习的快速兴起,目标检测算法也获得显著发展,基于深度学习的目标检测算法大致可以分为One-stage 和 Two-stage 两大类别。One-stage算法即单阶段目标检测算法,主要包括YOLO系列[1-4]算法和SSD[5]算法,该类算法是基于回归的检测算法,直接利用预训练主干网络产生目标的类别概率和位置坐标,其检测目标精确度相略低于双目标检测算法,但检测速度较快。Two-stage算法即双阶段目标检测算法,主要包括R-CNN[6]、Fast R-CNN[7]、Faster R-CNN[8]、Mask R-CNN[9],该类算法是基于区域建议的检测算法,首先通过RPN网络生成待检测目标的候选区域,然后对这些候选区域进行分类和位置回归,由于该类算法将目标检测分成了两步,所以其检测速度低于单阶段目标检测算法。目前基于深度学习的目标检测算法被广泛应用于各行各业[10-12]。

在电力检修高空作业时,检修人员对佩戴安全带的规定,仅依赖于自身自觉性以及现场监督人员的提醒,但有时由于人手不够,现场并未指派监护人员。同时针对公司指派的临时活,部分工作人员因为怕麻烦就不佩戴安全带,直接进行高空作业,容易导致高空坠落事故的发生。目前现有目标检测方法并未应用于高空电力安全带检测,为确保电力工作人员采用规范的防护措施和操作流程,本文采用目标识别相关算法对施工现场进行合规检测,能够提高工作人员安全防护意识,提升现场安全作业水平,实现对违章人员智能化的安全管理,保障工作人员的生命安全。

针对上述安全管理制度存在的盲点问题,本文将传统YOLOv4深度学习网络的CSPDarknet53替换为MobileNet,同时修改PAnet结构和Head结构中的网络,使用深度可分离卷积网络,降低网络训练的参数,提高网络的检测速度,构建一种改进MobileNet_YOLOv4网络的电力高空作业安全带佩戴检测模型,实现了复杂环境中对检修人员是否佩戴安全带的标记,以及对施工现场监护人员和其它无关人员的标记。针对YOLOv4网络使用的NMS算法使重叠程度较高的物体漏检现象,本文采用Soft-NMS算法对传统的YOLOv4中的 NMS算法进行改进,降低被检测对象目标的漏检率,提升检测精度。

1 网络结构分析算法原理

1.1 YOLOv4目标检测算法

YOLOv4是一种目标检测算法,是YOLOv3模型的进化,相比YOLOv3算法,AP (Average Precision)和FPS (Frames Per Second)分别提升了10%和12%。同时它的检测速度是EfficientDet 的两倍。使用Tesla V100显卡在MS COCO数据集测试其检测精度可达43.5% mAP (65.7% AP50),实时检测速度可达65 FPS[13]。YOLOv4目标检测网络主要包括CSPDarknet53主干特征提取网络、Spatial Pyramid Pooling (SPP)[14]+Path Aggregation Network (PANet)[15]加强特征提取网络和YOLO Head特征图预测网络。

1.2 MobileNet网络结构

MobileNet[16]模型是Google针对手机等嵌入式设备提出的一种轻量级的深层神经网络,其使用的核心思想便是深度可分离卷积块。深度可分离卷积其实是一种可分解卷积操作,其可以分解为两个更小的操作:DK×DK的深度卷积和1×1的逐点卷积[17],如图1所示。深度可分离卷积和标准卷积不同,对于标准卷积,其卷积核是用在所有的输入通道上,而深度可分离卷积针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说深度可分离卷积是Depth级别的操作。而逐点卷积其实就是普通的卷积,只不过其采用1×1的卷积核。

图1 标准卷积和深度可分离卷积结构

假定输入特征图大小是DF×DF×M,而输出特征图大小是DF×DF×N,使用DK×DK卷积核,其中DF是特征图的宽和高,M是输入通道数,N是输出通道数,DK是卷积核的空间维数,那么标准卷积的计算量为:DK×DK×M×N×DF×DF;深度可分离计算量为:DK×DK×M×DF×DF+M×N×DF×DF×DF×DF,深度可分离卷积与标准卷积计量比较如下:

(1)

一般情况下N很大,MobileNet采用3×3的卷积核则深度可分离卷积相对于标准卷积可以降低8-9倍的计算量。

2 改进的YOLOv4网络模型

2.1 主干特征提取网络的替换

将YOLOv4深度学习网络的CSPDarknet53替换为MobileNet作为特征提取网络,替换后的MobileNet_YOLOv4网络结构见图2。同时修改PANet和YOLO Head结构中的网络,将3×3普通卷积块,改为深度可分离卷积块即一个3×3的深度可分离卷积+1×1的普通卷积,替换前后卷积核结构。

图2 MobileNet_YOLOv4网络结构

改进的MobileNet_YOLOv4网络模型仍采用YOLOv4模型中的损失函数CIoU,该损失函数是在YOLOv3模型的基础上得到的,该损失函数由目标位置损失函数、置信度损失函数与分类损失函数三部分组成[18],如下:

Loss=lossloc+lossobj+losscls

(2)

2.2 先验框尺寸与数量的设置

YOLOv4输出的3个尺度特征图分别为:52×52、26×26和13×13,每个尺度的特征图对应3个固定尺寸的先验框。其中尺度为52×52特征图感受野较小,选用尺寸较小的先验框(12,16)、(19,36)和(40,28)检测较小目标,尺度为26×26的特征图选用尺寸中等的先验框(36,75)、(76,55)和(72,146)检测中等大小的目标,尺度为13×13的特征图具有较大的感受野,选用尺寸较大的先验框(142,110)、(192,243)和(459,401)来检测大目标。

YOLOv4模型的先验框是在COCO数据集上聚类得到的,而COCO数据集中有80类待检测目标,这些目标的形状尺寸大小不一,不同类别之间差异较大,导致聚类出来的先验框尺寸不一,且本文的检测目标的形状大多是高大于宽,因此无法使用 YOLOv4模型预设的先验框。本文使用K-means聚类算法获取电力现场作业数据集中的标签情况,生成更加符合高空作业及安全带检测对象的先验框。传统的K-means聚类算法采用欧式距离函数进行聚类,本文采用聚类中心与数据集标签中box的IoU值作为聚类相似度的评判标准,可以极大程度保证获取的先验框与检测目标的尺寸大小更加匹配。聚类距离计算方法如下:

d[box,center]=1-IoU(box,center)

(3)

式(3)中d[box,center]为实际目标框与聚类中心的距离,center为聚类中心。

本文图像的输入尺寸为608×608,采用K-means算法输出9个尺寸的先验框分别应用到不用尺度的检测层中,分配结果见表1。

表1 不同尺寸的特征图对应的先验框尺寸

2.3 空间金字塔池化结构的改进

原YOLOv4模型在空间金字塔池化结构(SPP)分别采用了1×1、5×5、9×9和13×13四个尺度的卷积核对19×19的特征图进行最大池化操作,然后对池化结果进行堆叠,再进行三次卷积操作,来加强图像的特征提取。本文尝试对SPP结构进行适配性的调整,并通过实验来验证不同SPP结构对模型检测效果的影响。实验过程中调整SPP结构为1×1、3×3、5×5池化内核命名为SPP_A,1×1、3×3、5×5、7×7池化内核命名为SPP_B,1×1、5×5、7×7、9×9池化内核命名为SPP_C。

2.4 改进后的NMS算法

在实际的电力高空作业过程中,摄像头可能会捕捉到维修人员相互遮挡的画面,直接使用传统非极大抑制算法(NMS)容易将重叠程度较大的检测框直接删除,造成漏检现象。针对此情况,本文采用Soft-NMS[19]替换原YOLOv4模型中的NMS,改进后非极大抑制中的置信度重置函数为:

(4)

式(4)中Si为第i个预测框的置信度,M为当前得分最高框,bi为待处理的预测框IoU为M和bi交并比,N为设置的阈值。

由式(4)可知,M和bi交并比越大,bi的得分Si就下降得越快,且呈线性衰减。但由于这种衰减方式所产生的函数并不是连续函数,因此采用高斯加权的方式使其成为一个连续的分数重置函数,最终改进如下:

(5)

式(5)中D为检测框集合,σ为超参数。

由公式(5)可知该连续函数对重叠度越高的检测框置信度得分衰减越厉害,对没有重叠的检测框置信度得分保持不变,能够有效避免因强制删除检测框造成的漏检情况,提升检测精度。

3 实验及结果分析

3.1 电力高空作业人员数据集的收集与处理

本次实验采用的数据集来自广东某电厂,共获取1700张高空作业图片作为训练样本,600张高空作业图作为测试样本,获取的图片均为电厂高空作业人员的模拟训练图,保证了此次实验数据的真实性与客观性。然后通过labelimg软件对数据进行标签制作,标签标注格式为txt格式,在对目标进行手工标注时,尽可能准确框出目标的全部样貌,同时避免边界框包含不必要的背景。实验数据共计2300张图像,共制作标签数据11 060个(表2)。

表2 数据集分布情况

标签一共分为4类,分别为:作业现场中包含的人(其中包含监护人员和无关人员)、作业现场中带有的监护袖章(此类人员为监护人员)、作业现场中的离地状态人员(此类人员为高空电力维修人员)、作业现场佩戴的安全带,将这四种类别依次标注为“person”、“garders”、“offgroundperson”、“safebeltperson”。数据标注如图3所示。数据标注后保存的文本文件部分内容见表3。使用代码对标注后的数据集随机划分,将90%的标注图像作为训练集,10%作为测试集。

图3 图像标注

表3 数据标注

表3中的每一行均代表了一个待检测目标的位置信息,x、y、w、h是相对于图片尺度的归一化值,介于0~1之间。x、y分别代表标注框中心点在x轴和y轴方向的坐标;w、h分别为标注框的宽和高。

3.2 实验环境的配置

实验硬件采用Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz,内存为16GB,GPU为NVIDIA GeForce RTX2080Ti,显存11GB。操作平台为Windows 10,加速环境为CUDA10.0和CUDNN7.6.0,深度学习框架为Pytorch1.7.1版本。

实验整个训练过程为200个epoch,其中前100个epoch采用冻结部分网络可以加快训练速度,学习率设置为0.001,batchsize设置为16,后100个epoch的学习率设置为0.0001,batchsize设置为8,优化器均采用Adam。

3.3 评价指标

使用训练好的网络模型对测试集进行检测,按照下式分别计算查准率(Precision)、召回率(Recall)。

(6)

式中:TP为被判为正类的正类;FP为被判为正类的负类;FN为被判为负类的正类。

平均精度(AP)表示Precision-Recall曲线下面的面积,对数据集中每类目标的平均精度求均值即mAP,其计算公式如下:

mAP=∑AP/N

(7)

式中:N为不同类别目标的总和。

3.4 实验结果分析

本文通过设置不同的网络模型的对比实验来确定理想的改进方案,然后用改进的网络模型与常见目标检测算法进行比较,对改进后模型的检测性能进行分析。

3.4.1不同主干特征提取对检测性能的影响为了研究不同的MobileNet检测网络对模型检测性能的影响,分别采用不同特征提取网络MobileNetv1、MobileNetv2、MobileNetv3与YOLOv4相结合,同时修改YOLOv4中的PANet和YOLO Head中的3×3普通卷积为深度可分离卷积,依次记对应为MobileNetv1_YOLOv4、MobileNetv2_YOLOv4与MobileNetv3_YOLOv4模型,训练过程损失函数曲线见图4。

图4 损失函数对比曲线

使用训练好的模型对测试集进行预测,实验结果见表4,通过实验可知MobileNetv2_YOLOv4模型mAP达到87.3%表现最佳,其损失函数值下降速度最快,收敛效果更好,并且该模型的计算量最少,相比YOLOv4降低了83.2%。经过实验分析,针对本文目标检测对象,在使用MobileNetv2作为主干特征提取网络,能够更加有效的学习到目标的特征信息,且网络训练的参数量更少。因此选用MobileNetv2_YOLOv4网络模型完成电力高空作业识别及安全带检测。

表4 不同主干网络检测结果比较

3.4.2空间金字塔池化对模型的影响为了研究SPP结构对模型性能的影响,在模型MobileNetv2_YOLOv4的基础上分别修改SPP结构实验结果见表5。通过实验发现修改后的三种SPP结构均在不同程度上提升了模型的检测能力,其中使用较小的1×1、3×3、5×5、7×7的池化核提升效果最显著,mAP提升了1.3%,表明通过使用不同大小的池化结构能够在不同程度上除去经过深层和浅层特征融合后的冗余特征信息,更加有效的增强图像特征学习范围,帮助模型学习更多的信息,相比于SPP_C结构中9×9的池化核,较小的池化核在识别电力高空作业及安全带检测模型上效果更好。因此采用MobileNetv2_YOLOv4(SPP_B)作为该模型的检测网络,并将该模型命名为Improved_YOLOv4。

表5 不同SPP结构检测结果比较

3.4.3与其它目标检测算法的精度对比在训练平台信息配置不变的条件下,分别使用Faster RCNN(VGG16)、SSD(ResNet50)和YOLOv4深度学习模型在同一数据集上进行训练分析。各网络模型的检测精度(AP)、mAP值、FPS值以及模型权重文件大小详细数据见表6。

表6 不同模型检测精度比较

由表6可知,改进后YOLOv4模型的平均检测精度为88.6%,每秒帧数为66,优于其它3种网络。同时该模型的预训练权重大小仅为53.8M,相比于传统的YOLOv4降低了76%,模型更加轻量化,检测速度更快,更容易将网络模型部署到嵌入式设备中,能够满足电力生产作业过程中对作业人员的实时监控。

3.4.4模型检测结果使用训练好的网络模型对测试集中的图片进行检测,挑选出检测结果中3张具有代表性的图片(图5),其中图a、c、e为YOLOv4检测结果,图b、d、f为本文算法检测结果。由检测对比图可知,图5a中并未检测出监护袖章,并且检测精度不高,图5b使用改进后的算法明显的检测到了监护袖章,并且置信度较高;图5c中对较远拍摄到的目标出现漏检现象,检测效果较差,而图5d中则完全识别出了待检测目标。图5e中未检测到被遮挡的离地维修人员,同时对于佩戴的安全带全部未检测到,而图5f中则完全识别离地维修人员以及佩戴的安全带。从对比图片结果中可以看出,改进后的模型检测结果的置信度更高,对密集目标识别效果较好,并且能够克服YOLOv4模型中的漏检情况,检测效果更好。

图5 YOLOv4与Improved_YOLOv4检测结果

4 结论

本课题使用深度学习的方法,更加精准的识别高空作业人员安全带的佩戴情况,减少传统人工监督的一些客观因素导致的高空坠落事件的发生,同时也提高了现场安全作业的检测效率,为工业检修人员的智能化安全管理提供了新的解决办法,通过使用MobileNetv2网络替换YOLOv4中的CSPDarknet53主干提取网络,可以大幅度降低网络模型的参数量,使网络模型轻量化,提高检测速度;通过K-means聚类算法重新获取先验框,并适配性的调整空间金字塔结构,可以提高模型的检测精度;通过使用Soft-NMS算法能够有效降低待检测目标的漏检率。实验结果表明Improved_YOLOv4比原YOLOv4网络mAP提高3.2%,检测速度提高30fps,模型的训练权重压缩4.16倍,检测效果优于其它常见的目标检测网络。接下来的工作要继续拓展数据集中的检测种类和数量,进一步提高模型的泛化能力。

猜你喜欢
高空作业先验安全带
基于无噪图像块先验的MRI低秩分解去噪算法研究
能救命的安全带和安全气囊
一款剪叉式高空作业平台的设计研究
基于自适应块组割先验的噪声图像超分辨率重建
Let’s Go for a Ride
最甜蜜的安全带
针对明亮区域的自适应全局暗原色先验去雾
高空作业车副车架及支腿结构分析
高空作业车载人作业平台臂架系统优化设计
基于平滑先验法的被动声信号趋势项消除