基于视频数据的煤矿井下不安全行为识别分析方法
2023-11-13侯艳文姚有利贾泽琳王晓义
侯艳文,姚有利,贾泽琳,苏 丹,王晓义,郭 康
(山西大同大学 煤炭工程学院,山西 大同 037003)
据统计约95%的矿山事故发生都直接与人的不安全行为有关[1]。此外在煤矿井下,员工的不安全行为是事故发生的直接原因[2]。同时,随着互联网技术的快速发展,监控视频进入各个行业,煤矿井下人员安全管理进入智能化阶段。虽然视频监控系统已经在矿工不安全行为监测中发挥一定作用,但智能化水平较低[3],还需要靠人在监控室里面观察,然而在长时间的工作环境中,工作人员的注意力无法一直保持较高状态,所以人工监控效率极低。因此对视频数据进行智能实时分析,可以很大程度提高监控效率。
现今,对煤矿井下人员的不安全行为研究主要是针对人员的自身行为和安全着装两方面进行的。人员自身行为识别主要是通过对图像中特征信息的提取,通过特征以达到图像分类的结果,如佟瑞鹏等[4]提出将3种人工智能技术融合应用在矿工不安全行为识别,提高了识别矿工跌倒行为的效果;温廷新等[5]通过迁移学习与参差网络建立模型用于识别矿工的跌倒及投掷不安全行为。另一方面也有很多学者利用卷积神经网络对安全帽进行识别检测,不断将算法优化改进以提高安全帽检测效率及准确率。但由于煤矿井下情况复杂多变,仅仅是单个行为或者单个物体检测不能达到预期的效果。OpenPose人体姿态模型,能更好地定位人的关键点,并可利用这些关键点设定标准,来识别人员的行为特征[6],对监控复杂的煤矿井下人员有重要意义。
根据上述描述,文章提出一种基于视频数据对煤矿井下不安全行为的识别方法。利用目标检测算法,OpenPose人体姿态算法,提出一种实时分析物的不安全状态和人的不安全行为的方法,并利用OpenPose算法设定了分析人的行为的判定方法,可以分析视频数据中的物的不安全状态和人的不安全行为,并及时上报进行预警。该方法对煤矿井下人员的不安全行为及物的不安全状态进行智能化分析,为矿工不安全行为智能识别和预警提供新的思路和方法。
1 视频数据整体检测流程
视频数据整体检测流程如图1所示。
图1 视频分析框架整体流程
将视频分析物的不安全状态和人的不安全行为的过程分为以下流程:
1) 获取视频文件并打开视频流;
2) 从视频流中取得视频帧;
3) 运用YOLOv5目标检测算法进行分析,获取目标类型和位置;
4) 判断目标类别中是否含有人类;
5) 若目标类型中包含人员信息,则利用OpenPose算法对视频帧进行人体姿态估计操作,然后进行物的不安全状态分析以及人的不安全行为分析;
6) 如果目标中不含人类则进行物的不安全状态分析,判断其是否安全;
7) 如果是不安全行为或者是不安全场景则上报警告;
8) 一张视频帧的分析到此结束,然后返回第二步开始运行,依照上述流程不断分析返回结果。
2 关键核心算法
2.1 基于YOLOv5的目标检测
视频分析框架中一个重要模块是基于YOLOv5的目标检测算法研究,其多用于在视频或图像中识别和定位物体。通过模型训练快速识别图像类别。目标检测常用于从图像中找到感兴趣的目标,并获取物体的位置以及对物体进行分类。目标检测算法应用广泛,目标检测模型也有多种系列,下面主要使用YOLOv5进行目标检测。
YOLOv5是一种目标检测模型,用于在视频或图像中识别和定位物体。它是在YOLOv4的基础上进行了改进。且YOLOv5是一种端到端的深度学习模型,可以直接从原始图像中检测和定位目标。它使用卷积神经网络(CNN)来学习图像中物体的特征,并使用多尺度预测和网格分割来检测和定位目标。YOLOv5的优势在于它可以在高速运行,并且可以在不同的图像分辨率上很好地工作。总的来说,YOLOv5是一种高效的目标检测模型,可以应用于许多不同的场景,包括自动驾驶、机器人感知、图像分析等。
YOLOv5有4个模型,但文章选用YOLOv5s模型,因其相对其他模型深度最小,特征图宽度最小。YOLOv5s网络整体结构图如图2所示。YOLOv5模型包含4个核心模块,分别是输入端、Backbone、Neck和输出端。
图2 YOLOv5s网路整体结构图
输入端(Input):在模型训练阶段,对输入的图片进行数据处理,其处理主要运用Mosaic数据增强,自适应锚框计算、自适应图片缩放对图像进行缩放,对原始图片添加最少的黑边。
基准网路(Backbone):其是提取图片特征的主干网络,主要包含Focus和CSP两种结构,其中CSP结构包含两种结构分别为:CSP1_X结构和CSP2_X结构。CSP1_X结构应用于Backbone中,另一种CSP2_X结构应用于Neck中。Focus结构关键的是切片操作。
颈网络(Neck):其采用FPN+PAN结构,并且上述中提到的CSP2_X结构也应用其中。FPN层自顶向下传达强语义特征,而特征金字塔是自底向上传达强定位特征,双向进行操作,从不同的主干层对不同的检测层进行参数聚合,大大增强检测效果[7]。
输出端:主要是目标最终预测及输出。采用CIOU_Loss做Bounding box的损失函数,对预测框进行优化,并利用nms非极大值抑制对很多目标框进行筛选输出。
2.2 基于OpenPose的人体行为识别
视频分析框架的另一个模块是基于OpenPose对人体行为进行识别,对从视频数据中获取的视频帧(图片)进行人体姿态估计进而判断出人体行为。人体行为识别是指通过计算机视觉技术、人工智能等知识和技术对监控视频中的图像进行分析,从而实现人体行为识别。
OpenPose是一个开源库,可以将检测到的人体关节点正确联系起来,实现人体动作、躯干、手指运达等姿态估计,以实现人体姿态估计。OpenPose是一种自底向上(Bottom-Up)的算法,首先先得到人体的每一个关键点,其次再通过部分亲和场(PAF Part Affine Field)将关键点分给每个人[8],并找到当前最适合的拼接方式,对包含人的图像进行人体姿态估计。而基于OpenPose算法的人体行为识别的核心就是行为识别模型的构建,通过构建可达到识别视频数据中人体行为特征。根据提取到的行为特征与数据集中的人体行为进行对比识别,进一步加强人体行为的特征提取,例如站立、行走、翻越栏杆等。
OpenPose 的主要流程:图像输入后先通过 VGG19 网络提取输入视频帧的特征,然后将特征图经过一个二分支网络预测,一个CNN分支预测获取人的所有关键点(如头部,脊柱等),并将这些关键点组成置信图,另一个分支通过CNN网络计算得到所有肢体的部分亲和场(Part Affine Field),最后得到了人体姿态估计。如图3所示为OpenPose神经网络结构图,识别人体姿态的整个过程。
图3 OpenPose神经网络结构图
OpenPose推断原理:调用模型,输入一张图片时输出特征图个数和人体关节点个数相同,再利用这些特征图把人体关节的位置和置信度提取出来,然后计算每一个关节点的亲和场,选择亲和场特征比较明显的关键点,作为两个关键点的肢体连接线。
利用OpenPose方法对视频中每一帧人体进行姿态估计:首先回归人体关节点,得到每个人的18个骨骼关节点信息,同时这18个骨骼关节点分别对应着从0~17的编号,每个骨骼关节点都有1个编号,例如0为鼻子,1为脖子等;其次找到肢体连接;然后拼接肢体构成人体形态。一种基于视觉的行为检测和活动识别,利用人体骨架估计可以进行人体行为特征提取,所以可利用人体关节点信息对人体行为进行分析。OpenPose分析效果如图4所示。
图4 OpenPose分析效果图
3 煤矿井下的不安全分析
不安全分析包括物的不安全状态分析和人的不安全行为分析,两者区别在于视频中是否有人员出现是否需要进行人体行为分析。如图1所示,可从视频分析整体框架流程中得到,如果目标检测没有检测到人,则直接进行物的不安全状态分析,否则对视频中所获取的视频帧继续进行人体姿态估计,之后进行人的不安全行为以及物的不安全状态分析。其中,物的不安全状态分析利用的是目标检测算法判断人员,但不包括人体姿态估计,而人的不安全行为分析可同时利用两种算法进行分析。
3.1 物的不安全状态分析
对物的不安全状态分析主要利用的是YOLOv5目标检测算法。值得注意的是,物的不安全状态分析可以利用人体的目标检测,但不包括人体姿态行为识别分析。可从未带安全帽、未佩戴口罩等进行物的不安全状态分析。
3.1.1 未戴安全帽
针对人员头部是否带安全帽,首先训练一个通用的头部检测模型,然后设置检测框并裁剪头部区域,之后训练一个佩戴安全帽的分类器,完成对安全帽佩戴的分类识别。YOLO模型可以直接判断人员是否佩戴安全帽,故当检测到未带安全帽,就直接上报警告。
3.1.2 未佩戴口罩
首先针对人员是否戴口罩,进行数据集获取(网络开源数据集),对采集的数据集进行标注,将数据集划分为训练集和验证集,将YOLOv5s(预训练权重)作为预训练模型,然后运用修改的数据集对模型进行训练。然后通过视频数据检测人员是否佩戴口罩,若未带口罩,则上报。
3.2 人的不安全行为分析
对人体进行姿态识别并且对人体不安全行为设定判定标准,用来识别矿工的不安全行为。利用OpenPose算法从视频中获取视频流从而得到视频帧,然后对每一帧中的人体行为进行分析。
3.2.1 人体行走、站立行为判定
正常人脊柱线一般垂直于地面,例如当人体站立或者行走时人体的脊柱线都可能与水平方向的夹角呈90°,所以先判断脊柱线是否与水平方向呈90°夹角,首先,先得到8(右腰)和11(左腰)中间点a,则脊柱线为人体关键点的1到a的连线,若其呈90°夹角可以利用站立与行走时左右脚踝之间的距离进一步进行判断,所使用的关键节点的编号为10(右侧脚踝)、13(左侧脚踝)。当人体站立时左右脚踝之间的距离不会特别大,但当人体做出走路姿态时人体的左右脚踝之间的距离就会相差较大。如图5所显示的是不同姿态矿工关键部位识别。
图5 不同姿态矿工关键部位识别
3.2.2 人体倒地不安全行为判定
由上述可知,正常人体脊柱线一般是与地面垂直的,所以判断人体是否倒地可以利用人体的脊柱线进行识别判断。当脊柱线与水平方向的夹角小于30°时,可以判定为人体倒地或摔倒。
3.2.3 人体翻越不安全行为判定
当人体做出翻越动作时比如翻越护栏、扒车等,就会出现抬腿,跨等动作,而这时就会出现两侧脚踝和膝盖高低不一现象,一侧膝盖和脚关节点位置高于另一侧,所以判断人体是否有翻越动作可以利用人体的两侧脚踝和膝盖关键点来进行判断,而所使用的关键点的编号为9(右侧膝盖)、10(右侧脚踝)、12(左侧膝盖)、13(左侧脚踝)。若一侧脚的关键点高于或等于另一侧的膝盖关键点则判定为有翻越行为。
图6 人员倒地
图7 人员翻越
利用这些判定标准以及从视频帧中获取到的人体关键点坐标信息,可以判断该视频中人体行为特征。
4 结 语
文章提出将YOLOv5和OpenPose算法进行结合,提出了另一种分析人体行为的方法,提升了基于视频监控的安全管控效率。文章提出的分析框架将YOLOv5目标检测算法和OpenPose人体姿态估计算法结合,发挥了各自的优势,能更好地识别物的不安全状态及人的不安全行为,其具有更广阔的研究及应用前景。未来可将研究进一步推进,拓展可识别物的状态类别及行为类别,提高智能矿井预警系统的实时性。