APP下载

基于轻量级OpenPose的井下人员行为检测算法研究

2024-05-10阮进林赵明辉

煤炭工程 2024年4期
关键词:夹角骨骼姿态

阮进林,高 鹏,孙 源,赵明辉

(1.国能神东煤炭集团公司保德煤矿,山西 忻州 036600;2.同济大学 电子与信息工程学院,上海 201804;3.中煤科工集团上海有限公司,上海 200030)

随着智能化技术的普及,智能制造也逐渐成为现代先进制造业的新方向。大数据、人工智能、云计算、互联网等新兴技术被深度融合进现代智慧矿山理念[1]中。煤矿井下的工作人员在煤矿行业中发挥着重要的作用,这些人员的行为直接关系到煤矿井下的管理和发展。近几年,因为井下人员不安全行为,井下人员受伤事件频发[2],如何使用新兴技术保证井下工作人员安全是重中之重。因此需要一种具备动态检测,快速分析和实时报警提示功能的智能姿态检测系统,实时督查人员的不安全行为,并且当发现违规行为或不安全行为时发出相应的提示,保证煤矿工作的正常运行。

传统目标行为分析主要分为基于模型的方法[3]和基于相似度量的方法[4],然而这些方法复杂且冗余度很高,普遍实用性差。为了有效分析人员行为,文献[5]采用长短时记忆网络算法对多传感器采集的现场数据进行处理,该算法的训练速度快,并且模型内存占用较低,在人体行为检测上可以取到很好的准确率。文献[6]基于惯性传感器设计一种自适应的误差四元数无迹卡尔曼滤波(DAUKF)算法,并引入渐消记忆法自适应地调整观测噪声协方差,以减少系统本身和环境对姿态检测的干扰,所提方法提高了姿态检测精度。然而对于多人检测时,这些方法会面临着设备复杂并且成本相对较高等问题。

目前结合深度学习[7-9]和机器学习[10,11]实现人体姿态检测的算法,已在很多场景得到了广泛的运用,并且精度也可以得到保证。其中,OpenPose网络结构[12]由于具备有效提取人体骨骼点的能力而被运用于姿态检测。郑雪晨[13]等人使用OpenPose算法获取视频中人体的骨骼点,并结合SVM算法实现人体异常跌倒姿态的检测,可以实时检测老人的姿态。朱建宝[14]等人在OpenPose多人姿态估计算法的基础上,提出了一种人员危险行为检测模型,该方法可以有效的检测多人的行为是否是危险行为。伏娜娜[15]等人在 Yolov5s人体目标检测算法的基础上结合轻量级OpenPose人体姿态估计模型,并且通过自定义跌倒检测算法检测人员是否摔倒,该算法有较高的特异度并且检测的误报率低。除了可以使用自下而上的OpenPose算法进行人体姿态估计,自上而下的AlphaPose[16]算法也被广泛的应用在人体姿态检测中,陈博[17]等人运用AlphaPose人体姿态检测算法对人体关键点进行提取,构建特征向量,通过支持向量机分类算法得到姿态类别,再通过滑动窗口法判断是否有异常行为,当发生异常时进行本地提醒和远程报警,可以实时实现多人的姿态检测。与传统仅使用单一的骨骼点检测算法不同,邓伟男[18]结合OpenPose和AlphaPose骨骼点检测算法提出状态检测方法,可以有效地检测多人的姿态,并且可以判断出是否有疲劳的风险。

目前,面向煤矿井下人员的姿态检测应用比较少,本文在现有的人体姿态检测算法的基础上设计了一套智能辅助姿态检测管理系统,检测速度达到30 f/s,姿态识别整体准确率86.35%,可自动检测井下工作人员是否有摔倒、攀爬和推搡不安全行为。该系统具备报警信息输出功能,提示相应的工作人员,减少不安全行为的发生。

1 算法设计

1.1 OpenPose姿态检测模型

OpenPose网络结构是由美国卡耐基梅隆大学的研究人员通过神经网络和监督学习提出的自下而上的人体姿态评估算法。可以对人体的动作、面部的表情以及手指的运动等姿态进行估计。OpenPose使用VGG-19卷积神经网络对输入图像进行预处理,得到特征图F。然后将特征图输入到运算分支ρt和φt,其中分支ρt用于预测骨骼点置信图PCM,另一路分支φt用于预测骨骼点亲和域PAF,t为阶段即表示串行的模块,一般取值为5,6,7。

每一阶段的骨骼点置信图PCM与骨骼点亲和域PAF的输出结果分别记为St和Lt。

在第一阶段中输入的是VGG-19网络输出的特征图F,其他阶段输入的数据为VGG-19输出的特征图F和上阶段输出的骨骼点置信图PCM与骨骼点亲和域PAF。

St和Lt表达式见式(1)。

1.2 轻量级OpenPose姿态检测模型

为了提高姿态检测模型的计算效率,需要对原始的网络模型进行轻量化操作,以期实现在识别精度丢失不大的情况下完成实时姿态检测。本文主要是针对骨干网络选取轻量化的网络进行替代,具体如下:

Backbone改进:轻量级OpenPose网络结构[19]是OpenPose网络结构的改进版,Daniil Osokin等尝试使用MobileNet网络替换掉VGG-19设计轻量级OpenPose算法,并进行改进时发现使用扩张卷积可以显著提升轻量级OpenPose的识别精度,由37.9 AP提升至42.8 AP。然此精度相对原本OpenPose下降幅度仍然很大。原因可能为Mobilenet在提取特征语义信息方面表现不佳,使用扩张卷积虽然有助于获取特征语义信息,但提升幅度有限。SUN等人[20]提出一种称为HRNet的高分辨率网络,网络结构如图1所示,该网络在整个计算过程中始终保持高分辨率,可以并行连接从高分辨率到低分辨率的卷积流,并且实现了跨层信息交换,因而生成的特征图包含更丰富语义信息,在空间识别上更精确。 经测试发现HRNet18的计算量仅为3.2 GFLOPS是VGG19(19.2 GFLOPS)的16%,因而可采用HRNet18替换VGG19设计轻量化的OpenPose。

图1 HRNet网络结构Fig.1 Structure of HRNet network

1)HRNet18在同一个阶段中,最后两层保持两路分支结构,其余的层合并为单路结构,能够实现骨骼点置信图PCM与骨骼点亲和域PAF共享参数。

2)对原版7×7卷积核进行了改良,将其改为1×1、3×3、3×3的组合结构卷积核,并且最后一个3×3卷积核膨胀系数设为2,可以保持初始感受视野一致。经过这样改进运算参数量降为二阶OpenPose算法的15%,但是性能和准确率并没有受到影响,而且算法的运行速度大大提高。轻量级OpenPose算法改良部分如图2所示。

图2 轻量级OpenPose改进结构Fig.2 Improved architecture of the lightweight OpenPose

该轻量OpenPose推理在识别精度稍微下降的情况下推理性能提升了近3倍。不同版本的OpenPose的FLOPS、GPU推理性能、识别精度见表1。

表1 OpenPose性能与精度测试Table 1 Performance and accuracy test of OpenPose

1.3 煤矿井下姿态检测

轻量级OpenPose网络结构可以将图像或视频中人体进行姿态估计,并实时的输出眼睛、手臂、膝盖等18个关键的骨骼点,人体骨架如图3(a)所示。在获取到骨骼点后,本文通过自定义的姿态检测规则对摔倒姿态、攀爬姿态以及推搡姿态进行检测和分类。摔倒姿态检测、攀爬姿态检测以及推搡姿态检测的定义对应如图3所示。

图3 人体骨架与姿态对应Fig.3 Human skeleton models corresponding to different postures

1.3.1 摔倒姿态检测的定义

在判别摔倒姿态时,本文设计了两种检测摔倒姿态的算法。

1)当视频中只有一个人,使用以下的方法判别是否摔倒。分别记18个部位的骨骼点在图像中的坐标为(xi,yi),下标i表示第i个部位的关节点。使用Lbody来表示人体躯干长度,其中x1,x8,x11,y1,y8,y11分别表示颈部、左右腰骨骼点的坐标。Lbody的计算见式(2)。

2)当视频中有两个人以上的人时,使用1)的方法需要加上追踪,在计算力方面要求比较高,因此本文设计另一种方法检测摔倒姿态。在正常情况下,在煤矿井下的工作人员不会主动躺在崎岖且潮湿的地面,因此以这个设想为主体,只需要通过检测人体脊椎与水平的夹角大小是否小于设定阈值来判定人员是否摔倒。但是为了防止人弯腰时可能导致脊椎水平夹角变小,另外借助大腿与水平的夹角是否小于设定的夹角阈值来辅助判定是否摔倒。

判定条件:骨骼点8号和11号的中心点记为C,骨骼点1号和C连成脊椎直线l。骨骼点8号和9号连起来记为大腿直线l1,人体骨骼点11号和12号连起来记为大腿直线l2,直线l与水平的夹角记为γ,直线l1与水平的夹角记为γ1,直线l2与水平的夹角记为γ2。

如果夹角γ<γa和γ1<γb时,或者夹角γ<γa和γ2<γb时,识别为摔倒姿态。根据实验和实际情况,角度γa和γb可设在30°左右。

1.3.2 攀爬姿态检测算法

根据人员在攀爬的过程中会做出高抬腿的动作,并且攀爬的高度越高,抬腿的动作就会更加明显的常识,因此基于高抬腿的动作来判断人员是否存在攀爬的行为。为了能够更加有效的判别是否有攀爬的行为,在基于高抬腿动作判定攀爬姿态的同时加入入侵检测。

判定条件:骨骼点9号和10号连起来记为小腿直线l3,直线l1和直线l3的内测的夹角记为αA。同样,骨骼点12号和13号连起来记为小腿直线l4,直线l2和直线l4的内测的夹角记为αB.骨骼点8号和11号的中心点记为C,骨骼点1号和C连成脊椎直线l5。直线l1和直线l的内测的夹角记为βA,直线l2和直线l的内测的夹角记为βB。

当夹角αA

通过测试得到角度a和b可设在90°左右,角度c和d可设在150°左右。

1.3.3 推搡姿态检测算法

根据实地考察,矿下少有矿工在正常工作情况下会肢体接触,工作地点有所间隔,活动多为并排行走。根据考察信息推搡多为并排行走时互推,或面对面互推。因此,通过判断上肢末梢与他人躯干或肩膀的相对距离变化关系来判断是否发生推搡。

判定条件:当手部骨骼点(4号和7号)与其他人肩部骨骼点(2号或5号)的距离d除以他人脊椎长度Lbody小于系数ϑ时,则识别为推搡姿态。但是推搡作用点不完全是肩骨骼点,也可能作用在手臂或胸与背上,根据测试,系数应该定为0.5~0.7左右。系数ϑ的计算见式(5)。

2 系统设计

2.1 系统框架

煤矿井下智能检测系统框架如图4所示。在整个系统架构中可以支持4路红外摄像头,但在实际运行时使用2路红外摄像头。通过接入红外摄像头的视频数据,然后工控机对视频里面的人体骨骼点进行智能检测提取,并且进行姿态识别分类,当检测到摔倒态、攀爬姿态以及推搡姿态中的一种或几种时,直接将相应的时间和类别信息以及实时的视频通过socket通信传到PC端,并且在PC端的界面上显示相应信息,以及进行远程报警系统还支持在工控机上进行本地配置和根据实际情况设置相关参数,以及可以在远程实时查看检测结果和报警信息。

图4 系统架构Fig.4 System architecture

2.2 系统功能

煤矿井下智能检测系统的主要功能如下:①本地报警:当检测到工作人员有不安全行为的时候进行本地报警;②远程提示:当检测到工作人员有不安全行为时报送给相关管理部门;③本地配置:系统支持设置检测区域、检测行为类别等参数,以及报警相关接口;④信息记录:系统可以将检测到异常行为的相关信息进行记录保存;⑤远程查看:系统支持用户远程查看视频,并且可以查看检测到的相关信息;⑥人员进出统计:每个出入口安装一台摄像仪通过分析装置对进出人员数量进行统计;⑦区域人数统计:系统可以统计当前区域中的人员个数。

2.3 检测流程

系统的检测流程主要包括以下几个步骤:①场景主要是对应煤矿井下特定的矿道;②红外摄像机采集视频并且对视频进行编码,再通过局域网进行传输;③工控机接收到视频信号后、先对视频进行解码,然后检测出视频中人体的骨骼点;④将姿态分为摔倒姿态、攀爬姿态以及推搡姿态,选出特定的骨骼点并根据骨骼点之间的联系和利用自定义的姿态判别方法对姿态进行检测;⑤将检测到的结果通过警报器进行提示并且在界面上显示时间和类别。

由于煤矿井下的环境复杂,工作人员距离摄像头的距离存在差异,因此检测出的人体大小和骨骼点的个数都会有所差异,对于特有的关键点可能出现误差,但是对于特定区域内可以做到有效的检测。系统监测流程如图5所示。

图5 系统监测流程Fig.5 System monitoring process

2.4 系统应用

利用煤矿井下智能检测系统可以实现矿井下特定场景人员安全行为的检测,如果检测到攀爬姿态不安全行为,则会通过提醒语音对人员进行提醒。因为矿井下环境比较灰暗,如果检测到摔倒姿态不安全行为,可通过提示语音提示在同一个场景下的其他工作人员上前帮助,降低人员的受伤程度。如果检测到推搡姿态不安全行为,可同通过警报语音进行其进行警告,管控人员的行为规范。

2.5 测试结果

为了验证煤矿井下智能检测系统能够有效的进行姿态检测识别和分类,分别采集楼道和煤矿井下工作人员的视频,并且对视频中的数据进行分析,检测是否存在不安全的行为。下面给出三种姿态检测的检测说明。

对于摔倒姿态的检测主要分中距离摔倒、远距离摔倒、近距离摔倒三种;在矿井下,主要需要检测的攀爬姿态有爬梯子、近处侧爬、远处侧爬;在检测推搡姿态时,主要是检测侧面相推和正面相推。

2.6 模型训练与测试

整套系统的工作设备主要包括红外摄像头、工控机、显示屏。工作环境以及相应的设备常数见表2。本文使用公共COCO数据集的人体关键点作为训练数据集(包含大约57000张图像,150000个人体),煤矿井下的视频中的样本图片作为测试数据集,来源于宁夏红柳煤矿,其中筛选出测试集样本数1436张,包含类别数见表3。本文所使用的姿态判别阈值设定见表4。

表2 实验环境和参数Table 2 Experimental environment and parameters

表3 测试集样本类别描述Table 3 Description of test set sample category

表4 姿态判别阈值设定表Table 4 Settings for posture discrimination thresholds

训练过程:输入的图片的大小是432×368,一次性训练所有的样本,每个批次的输入16张图片,学习率设置为0.0001,循环训练60次。每训练一百个批次就输出一个热力图的损失值和部分亲和立场的损失值。热力图和部分亲和力场的损失随训练次数的变化分别如图6和图7所示。从图中可以明显的看出,随着训练批次的不断增加,热力图和亲和力场的损失函数不断地下降。

图6 热力图损失随训练次数的变化Fig.6 Variation of thermogram loss with number of training sessions

图7 部分亲和力场损失随训练次数的变化Fig.7 Variation of partial affinity field loss with training times

测试过程:从煤矿井下的视频中随机抽取出若干图片进行测试,从图8中可以看出,人体姿态检测模型的效果较好,可以较好地将骨骼点检测出来,再通过摔倒、攀爬以及推搡姿态算法可以有效地将这三类姿态分类。

图8 姿态检测测试Fig.8 Posture detection test

2.7 算法比较分析

本文基于以上3种类型的数据分别对OpenPose模型下的VGG19版本、MobileNet版本以及本文使用的HRNet18版本使用本文定义的姿态类别进行结果比较分析见表5,准确率计算公式如下:

表5 算法结果分析Table 5 Algorithm results analysis

Acc_classi=Pre_classi/total_classi×100

式中,i为姿态类别;Pre_classi为姿态类别i预测正确个数;total_classi为姿态类别i的总数;Acc_classi为对应姿态类别i的识别准确率。

由表5可知,本研究所使用的HRNet18模型较之VGG19而言在精度丢失不大的情况下速率得到大幅的上升,维持在30 f/s以上;另外与MobileNet模型相比,速率几乎无差但是精度提升很大,提升至少4%,达到整体识别准确率86.35%;因此本文所使用的HRNet18网络模型能够更加适用于对矿井下人员不安全行为的识别。相比其他OpenPose方案[18],本文采用低精度的float16数据进行训练和预测,提升了识别速度,适应煤矿环境。

3 结 语

为了适应传统矿山逐渐朝智慧矿山发展的趋势,本文设计了一种基于轻量级OpenPose模型的煤矿井下人员不安全行为的智能检测识别系统。该系统可以自动的识别出人员是否存在摔倒姿态、攀爬姿态以及推搡姿态,可以实时检测识别和及时报警提示。由于煤矿井下环境复杂,也会出现一些漏检的情况,原因主要是井下灯光不足图像不清晰、拍摄镜头被灰尘遮挡、摄像头布置点位受限导致设备遮挡人体无法拍摄到完整肢体图片,后续工作会继续优化。

猜你喜欢

夹角骨骼姿态
做家务的女性骨骼更强壮
三减三健全民行动——健康骨骼
探究钟表上的夹角
求解异面直线夹角问题的两个路径
攀爬的姿态
全新一代宋的新姿态
跑与走的姿态
任意夹角交叉封闭边界内平面流线计算及应用
骨骼和肌肉
直线转角塔L形绝缘子串夹角取值分析