1. 引言
机械作业存在环境复杂、设备种类多以及作业场景多等情况,工人使用机械加工设备时面临高速、强光、高温等危险因素 [1] 。普通的人力监管效率低下,结合人力监督和高清视频监控 [2] 也始终存在疲劳与范围有限等因素,而结合高清视频监控与目标检测技术 [3] 对工人作业视频图像进行违规作业检测,可以做到高效监督,及时警告,大大提高巡查监督效率,同时节省了人力资源。
目标检测分为传统目标检测和基于深度学习的目标检测 [4] - [9] 。传统目标检测方法的检测流程主要分为三个步骤。首先是选取感兴趣的区域,通常是使用滑动窗口的方法来选取可能包含物体的区域;其次是使用人工设计的特征进行特征提取;然后使用预训练好的分类器对提取的特征进行检测分类。Yue等 [10] 采用传统目标检测方法,利用定向梯度直方图(HOG)提取特征,然后采用随机二元测试方法构建分类器,并使用改进的Real AdaBoost算法构建IBRF进行安全帽检测。虽然该文章的算法基本满足检测要求,但检测目标过于单一,只对安全帽进行检测;且传统目标检测方法十分依赖人工设计的特征,这在实际应用中检测精度较低,只适用于特征明显,背景简单的场景;而且其运行速度较慢,可能产生多个正确结果,导致结果冗余和不一致。
除了传统的目标检测之外,基于深度学习的目标检测方法因其较高的精度和良好的实时性备受工业界和学术界的推崇。目前基于深度学习的目标检测主要分为两大类,一类是基于区域的两阶段方法,其主要代表为R-CNN系列算法,包括Faster-RCNN和Mask-RCNN等 [11] [12] 。另一类是基于端到端的单阶段方法,YOLO、SSD [13] [14] 为此类方法的主要代表。Chen等 [15] 针对CNN算法进行剪枝,进一步提高算法运行速度,并引入AlexNet和Inception对网络进行拓宽和深化,最后使用批量归一化方法处理输入批量样本实现对电力工人的穿戴检测。Ji等 [16] 在YOLOv4的基础上,采用基于对象边界框构造位置特征的方法获得表征对象之间相对偏移的特征向量,并通过随机森林算法训练由位置特征组成的数据集,然后进行参数优化,得到分类器。最后通过推理机制分析分类器输出的信息来实现防护装备穿戴检测。Chen等 [17] 在YOLOv5框架的基础上,采用自适应自注意力嵌入模型(ASAE)来改进骨干网络,同时将原有的特征提取网络PA-Net替换为加权特征金字塔模块(WFPN),用以检测工业场所中,工人不戴安全帽和吸烟的不安全行为。当前研究检测的穿戴防护用品类型数量较少,也无法判断工人的防护装备是否穿戴在正确的身体部位,也没有考虑到工人的设备操作行为,且算法模型不具备场景识别能力,无法根据不同的作业场景进行相应规范下的检测。
真实环境下,机械作业场景复杂多样,且不同的机械作业必须恪守相应的规范。因此,要求检测算法具备作业场景辨别能力;上述算法虽能进行目标检测,却无法根据不同的机械作业场景,判别工人操作是否违规。本文针对上述算法存在的问题提出了融合场景机制的机械作业操作识别算法。本文主要工作如下:
1. 针对真实机械作业高质量图片数据不便获取问题,使用COCO数据集上预训练好的YOLOv5s模型进行训练,使用预训练权重代替随机初始化权重训练可以大大提高模型训练效率。
2. 采用模型融合方法,将两个预训练好的YOLOv5s模型进行融合;一个用于机械作业场景识别,另一个用于检测关键目标物。
3. 利用交并比(intersection over union, IoU)构建逻辑函数并对工人作业行为进行判定。
4. 以角磨机作业为例,构建数据集并进行实验验证,对实验结果进行分析。
2. 基于YOLOv5的目标检测与场景识别
YOLOv5网络因其良好的检测精度和检测速度得到了广泛应用。YOLOv5根据网络深度分为YOLOv5s、YOLOv5n、YOLOv5m、YOLOv5l和YOLOv5x。YOLOv5n满足实时性能要求,但识别精度无法满足要求。YOLOv5s结合了YOLOv5x和YOLOv5n的优点。不仅满足实时性要求,而且具有良好的识别精度,因此,该文选择YOLOv5s进行目标检测与场景识别。
2.1. YOLOv5s网络结构
该文采用的YOLOv5s 6.0版本网络模型由Input、Backbone、Neck和Head四部分组成,其网络结构如图1所示。Input端包含了Mosaic数据增强、自适应锚框计算和自适应图像缩放,通过随机缩放、裁剪、排列4张图像,Mosaic数据增强大大提高了数据集质量并增强了网络。BackBone主干网络采用了CSP-Darknet53网络 [18] ,由CBS和SPPF等模块组成。CBS模块由Conv、BN和SiLU组成,通过卷积操作提取局部空间信息,并通过BN层规范化特征值分布,最后通过激活函数SiLU引入非线性变换能力,从而实现对输入特征的转换和提取。SPPF全称为快速空间金字塔池化层,其使用3个kernel = 5的卷积
![](//html.hanspub.org/file/34-2571561x7_hanspub.png?20240522083906975)
Figure 1. YOLOv5s network structure diagram
图1. YOLOv5s网络结构图
块进行最大池化,代替原来的kernel = (5, 9, 13)卷积块。SPPF模块融合了丰富特征图信息,提高了网络运行速度。Neck使用路径聚合网络(PANet),可以将不同尺度特征图进行融合,在PANet中,底层特征使用一种新的特征金字塔网络FPN结构进行传播,PANet可以利用精确的定位信号提高下层物体的定位精度。最后,Head生成三个尺度的特征图,并使用三个kernel = 1的卷积块进行预测。
2.2. 机械作业场景识别
机械作业场景下的违规操作识别需先进行场景识别 [19] ,之后再根据该场景的相关作业规范,针对性地进行目标检测。常用的场景识别方法主要包括基于对象、基于上下文和基于区域。基于对象的场景识别是根据图像中的目标对象,如人、车、建筑等,来识别场景的类别,这种方法需要先进行目标检测,然后根据目标的特征或者与其他目标的关系,来判断场景的类别。上下文的场景识别主要考虑图像中的整体信息,如颜色、纹理、光照等,来识别场景的类别。这种方法不需要进行目标检测,而是利用全局特征或者局部特征,来判断场景的类别。区域的场景识别是根据图像中的不同区域,如天空、水面、草地等,来识别场景的类别。这种方法需要先进行图像分割,然后根据每个区域的特征或者与其他区域的关系,来判断场景的类别。该文选择基于对象的方法,以角磨机作业场景为例,以工人手握角磨机作为场景特征,同样利用YOLOv5s网络提取对象特征,识别角磨机场景。
3. 融合场景机制的机械作业操作识别算法
本文提出的融合场景机制的机械作业操作识别算法,融合两个在COCO数据集上预训练好的YOLOv5s模型,分别进行场景识别与目标检测,然后再根据检测到的目标,使用构建的逻辑函数进行操作判断。COCO数据集是一个用于目标检测、分割的大型数据集,以场景理解为目标,并从复杂的日常生活中截取图像数据;其中包含了80个目标类别和91个stuff类别,共328,000影像数据和2,500,000个标签。
针对机械作业场景种类繁多,需要在识别作业场景的基础上再进行关键目标的检测识别,然后针对不同机械作业的作业规范,对工人的操作进行合法化判定。机械作业的操作识别主要分为穿戴物品识别和设备操作行为识别。本文接下来以角磨机作业为例进行研究。角磨机作业需要工人正确佩戴安全帽、护目镜、手套以及口罩,除此之外,使用角磨机作业时,工人还应正确握持角磨机握把,不能单手操作或是随意握持。
本文首先根据融合模型识别到的场景进行相应的关键目标检测,然后把检测到的目标对应的参数生成一个支持调用的参数列表,该列表中包含了目标的类别信息、识别框中心坐标和边框尺寸。当识别到角磨机场景时,调用图像对应的检测目标参数列表,使安全帽、护目镜、口罩、手套以及场景识别框同时存在,并抑制工人头部和手部的识别框的显示。此外,使用交并比构造判断函数对各个识别框的坐标信息进行位置判断。交并比在目标检测中的一个重要要素,表示预测框与真实框的重叠率,如式(1)。比值为1时即为完全重叠。交并比可以用来评价预测结果的准确性和确定正负样本。
式(1)中
表示目标x1的识别框,以下同理;xhe、xha、xh、xgo、xm、xgl、xgr分别代表工人头部、工人手部、安全帽、护目镜、口罩、手套、握把。
(1)
式(2)表示工人头部与安全帽、护目镜、口罩交并比的乘积。若
,则表示工人作业时没有正确佩戴安全帽、护目镜或者口罩。
(2)
式(3)表示工人手部与手套的重叠程度,若
,则说明工人没有正确佩戴手套。
(3)
式(4)为工人手部、手套以及角磨机握把的重叠程度,若
,则表示工人作业时未正确握持握把。
(4)
该文将式(2)~(4)的阈值统一设定为0.5,当阈值达到0.5时,即判定为正常作业,反之则判定为违规作业。
4. 实验验证
4.1. 数据集与实验配置
本文样本数据集为1445张现场拍摄的角磨机作业图片,其中正常作业图片数量为300张,其余各类违规操作图片数量为1155张。使用labelImg对图片数据进行标注,工人头部标注为Head、工人手部为hand、安全帽为helmet、护目镜为goggles、口罩为mask、手套为gloves、握把为grip。然后将数据集按照7:3的比例划分训练集和测试集。实验所用配置如下:操作系统为Windows10,CPU为Intel(R) Core(TM) i5-8300H CPU@2.30 GHz 2.30 GHz,GPU为GTX1050 Ti,开发框架为Pytorch1.8.1,CUDA10.2.89,CuDNN7.6.5,编程语言为Python3.8.5。
4.2. 评价指标
本文以精确率(Precision, P)、召回率(Recall, R)、平均精度(Mean Average Precision, mAP)等指标衡量算法模型预测的准确程度,上述指标的值越高,则代表模型的预测效果越好。精确率定义为:
(5)
召回率定义为
(6)
平均精度定义为
(7)
(8)
式(6)、(7)中的TP为正样本被正确预测数量,FP为负样本被误测为正样本数量,FN为负样本被误测为正样本数量。
YOLOv5s损失函数包括边框损失(lossbox)、分类损失(losscls)与置信度损失(lossobj),总损失Loss表达式为:
(9)
其中α、β、γ为损失权重。本文使用CIOU Loss作为边框损失,分类损失与置信度损失选择二元交叉熵损失函数,并使用非极大值抑制NMS进行预测框筛选。
4.3. 实验结果分析
将融合模型的迭代次数Epoch设为300,如果模型中途达到最佳训练效果,模型将会自动终止训练,并自动保存最后一次训练参数与最佳训练参数。该文融合模型在训练次数达到269时达到了最佳效果并终止训练。图2为本文模型的精度指标(P、R、mAP)曲线与损失值Loss变化曲线。
![](//html.hanspub.org/file/34-2571561x21_hanspub.png?20240522083906975)
Figure 2. P, R, mAP and Loss variation curve
图2. P、R、mAP、Loss变化曲线
角磨机作业识别结果如图3所示,当工人头部、手部分别与安全帽、护目镜、口罩以及手套、握把等关键目标的识别框满足设定的IoU函数时,即判定为正常作业,并输出作业场景。当识别到非角磨机作业场景时,只需检测通用场景下的目标,例如安全帽。
5. 结论
本文针对当前工业场景下的安全检测算法无法判断工人防护设备是否穿戴正确,没有识别作业场景,
![](//html.hanspub.org/file/34-2571561x22_hanspub.png?20240522083906975)
Figure 3. Inspection results (the picture on the left shows the operation of an angle Grinder, the picture on the right shows the operation of a non-angle grinder)
图3. 检测结果(图左为角磨机作业场景;图右为非角磨机作业场景)
且未考虑工人的设备操作行为等问题,结合预训练模型与模型融合策略,同时利用交并比构建逻辑判断函数,提出了一种融合场景机制的机械作业操作识别算法。本文算法不仅实现了作业场景类型的识别,同时对工人的防护用品穿戴与设备操作行为进行了识别判断。本文以角磨机作业为例,构建样本数据集,经过实验验证,融合算法平均检测精度达到了97.9%,平均检测时间为0.114 s,满足实时性与准确性要求,可以有效进行机械作业场景下的操作识别,大大提高安全监督效率。