APP下载

基于改进时空图卷积神经网络的钻杆计数方法

2023-02-21杜京义党梦珂乔磊魏美婷郝乐

工矿自动化 2023年1期
关键词:钻杆骨架分区

杜京义,党梦珂,乔磊,魏美婷,郝乐

(1.西安科技大学 电气与控制工程学院,陕西 西安 710054;2.西安热工研究院有限公司,陕西 西安 710054;3.西安工程大学 管理学院,陕西 西安 710048;4.西安科技大学 安全科学与工程学院,陕西 西安 710054)

0 引言

深层煤炭开采过程中存在高瓦斯压力不可控因素,极易诱发煤与瓦斯突出事故,从而对煤矿安全生产造成威胁[1-2]。一般采用钻孔抽采和排放煤层内的瓦斯,以降低瓦斯浓度,减少甚至消除煤与瓦斯突出灾害[3-4]。钻孔深度的准确测量是钻孔工作的重要部分,若实际钻孔深度与要求不符,不仅会加剧危险事故的发生,而且会造成人力物力的极大浪费[5]。实际测量中,通常根据钻机每次打入钻杆长度一致的原则,根据钻杆数量得到钻孔深度。

钻杆计数方法根据计数方式的不同,可以分为传统方法与计算机视觉方法。传统方法主要有人员查验法、行程开关法、电驻波法等。人员查验法是指工作人员通过观看打钻录像来记录钻杆数量的方法,其劳动强度大、效率低。行程开关法[6]主要是在钻机上安装行程开关和单片机,当行程开关被钻机触发时,单片机会收到电信号进行判断处理,进而得到钻杆数量,但是行程开关容易被误触,单片机可能会受潮而影响计数精度。电驻波法[7]通过钻杆形成的驻波找到驻波节点,得到钻杆长度,但是有关仪器还未达到矿用的安全要求。计算机视觉方法是指利用视觉图像算法自动分析打钻视频中钻杆数量的方法,该方法因人为干预少、效率高等受到众多研究者的关注。董立红等[8]提出了一种基于改进Camshift算法的钻杆计数方法,通过Camshift算法跟踪钻机标志物,并根据标志物运动轨迹上的波峰数量判断出钻杆数量,但是标志物容易被粉尘污染及被旁物遮挡,进而导致目标丢失甚至跟踪失败。高瑞等[9]提出了一种基于改进ResNet 网络的井下钻杆计数方法,通过ResNet 识别图像上的卸杆与非卸杆动作,并对识别结果进行积分滤波得到置信度曲线,根据下降沿的个数判断出钻杆数量,但是ResNet 未考虑动作的时序信息,在相似背景的图像上容易发生误识别。党伟超等[10]提出了一种利用三维卷积神经网络(3D Convolutional Neural Network,3DCNN)识别钻机卸杆动作的方法,虽然3DCNN 解决了一些时序问题,但同时也学习了大量的图像冗余信息,导致该方法的场景适应性不强。

针对上述问题,本文提出了一种基于改进时空图卷积神经网络的钻杆计数方法。该方法将打钻过程中作业人员的动作划分为上杆、卸杆和其他3 种,在时空图卷积神经网络(Spatial-Temporal Graph Convolution Neural Network,ST-GCN)模型[11]的基础上,采用远空间分区策略与注意力机制设计了一种动作识别精度良好的改进时空图卷积神经网络模型-多空间特征融合时空图卷积神经网络(Multi Spatial-Temporal Graph Convolution Neural Network,MST-GCN)模型,利用MST-GCN 模型识别出打钻视频中的上杆与卸杆动作,确定打钻数量。

1 打钻过程分析

钻机的打钻过程是一个双向过程,即工人先将多根钻杆依次装上钻机并打入煤层,待打孔完成,再将钻机拔出的钻杆依次卸下,根据工人上杆和卸杆动作的次数来判断钻杆数量。然而,该过程内还包含与上杆、卸杆无关的动作。因此,本文将所有的动作类型划分为上杆、卸杆和其他3 种,具体如图1所示。

图1 打钻过程中的3 种动作Fig.1 Three kinds of action during drilling

2 钻杆计数方法原理

基于改进时空图卷积神经网络的钻杆计数方法原理如图2 所示。

图2 基于改进时空图卷积神经网络的钻杆计数方法原理Fig.2 Principle of drill pipe counting method based on improved multi spatial-temporal graph convolution neural network

(1)打钻视频采集。通过矿用监控摄像头获取井下打钻视频数据。

(2)人体骨架数据获取。为了减少图像背景对动作识别的干扰,本文采用高精度人体姿态估计算法-Alphapose算法[12]检测工人的身体关键点信息,得到单帧图像上的人体骨架和连续图像序列上的骨架序列数据。

(3)动作识别。在ST-GCN 模型的基础上,通过远空间分区策略与注意力机制设计了MST-GCN 模型,利用MST-GCN 模型有效识别骨架序列上的动作类型,提高打钻动作的识别精度。

(4)动作开始位置捕获。通过支持向量机(Support Vector Machine,SVM)算法辨识工人的打钻姿势,若判断成功则保存150 帧人体骨架序列,并输入MST-GCN 模型进行识别。

(5)打钻数量计算。为减少模型出错的概率,本文将打钻视频手动分割成上杆视频和卸杆视频,并在每种视频上只识别各自对应的动作。在卸杆视频中,MST-GCN 模型每次都从打钻姿势出现的位置预测1 次动作,若结果为卸杆动作,则卸杆数量加1,并且间隔一段时间后再重新识别。上杆数量的计算同理。最后对上杆数量和卸杆数量求和,取平均值得到钻杆数量。

3 钻杆计数方法具体实现

3.1 人体骨架数据获取

人体关键点即人体拓扑上的重要骨骼部位,如图3(a)中的18 个关键点:鼻、颈、右肩、右肘、右腕、左肩、左肘、左腕、右臀、右膝、右脚踝、左臀、左膝、左脚踝、右眼、左眼、右耳及左耳(编号依次为0,1,…,17)。人体骨架是指将Alphapose 算法检测出的18 个关键点按图3(a)中的方式进行连接。人体骨架序列是指在时间轴上将多帧骨架按照相同编号的关键点进行连接的数据,结构如图3(b)所示。

图3 人体骨架数据Fig.3 Skeleton data of human body

3.2 动作识别

3.2.1 MST-GCN 模型

与ResNet、3DCNN 等模型不同,ST-GCN 模型是一种用于骨架动作识别的序列模型,它利用图卷积神经网络(Graph Convolutional Neural Network,GCN)与时间卷积神经网络(Temporal Convolutional Neural Network,TCN)在骨架序列上自动提取动作特征,可以减少图像背景对动作识别的影响。但是,ST-GCN 模型提取的空间特征仍不够健壮,导致动作识别效果不佳。为此,本文在ST-GCN 模型的基础上重新设计了一种MST-GCN 模型,其原理如图4所示。它由批量标准化层(BatchNormal)、时空特征提取单元层(总共10 个单元,每个单元的时空图卷积核大小均为(15,3))、平均池化层(av-pool)、全连接层(fc)及Softmax 函数组成。其中,BatchNormal层用于规范骨架序列数据的分布,提高模型的泛化能力;时空特征提取单元层在时空维度上提取有效的动作特征,以提高模型精度;av-pool 层用于对高维动作特征进行降维,降低模型计算量;fc 层与Softmax函数先将特征映射到标签空间,再输出动作的置信度向量。图中(M,C,T,V)为特征图,M为人数,C为关键点维数,T为序列长度,V为关键点个数。

图4 MST-GCN 模型原理Fig.4 Principle of multi spatial-temporal graph convolution neural network model

3.2.2 空间分区策略

GCN 在骨架上提取空间特征时,需要使用分区策略来对关键点的邻域集进行划分。空间分区策略是一种构建GCN 的有效策略,其依据身体部位的静止、向心运动和离心运动3 种状态将关键点的邻域集划分为3 个子集:根节点集、向心点集和离心点集。图5 为ST-GCN 中采用的空间分区策略(原空间分区策略),其邻域采样范围D=1,“ ×”为身体重心,“0”为根节点,“1”为向心点,“2”为离心点。

图5 原空间分区策略Fig.5 Original spatial partitioning strategy

当GCN 采用原空间分区策略时,其3 个子集分别被赋予以下权重参数:

式中:lti(vt j) 为全部子集的权重映射函数,t=1,2,···,T,i=0,1,···,17,vt j为第t帧第j(j=0,1,2)个子集的关键点;rj为vt j到重心的距离;ri为根节点到骨架重心的平均距离。

GCN 的实现公式如下:

式中:fout为GCN 的输出结果;为归一化的邻接矩阵;Λj为第j个子集的对角线矩阵;Aj为第j个子集的邻接矩阵;fin为输入特征数据;Wj为第j个子集的权重矩阵;Aj为整体邻接矩阵;A0,A1,A2分别为每个子集的邻接矩阵。

实际打钻过程中,由于工人的身体形态、摄像机角度等原因,会导致同一种作业动作呈现出不同的运动幅度,而采用原空间分区策略只能关注到身体上关键点之间的局部运动,不利于GCN 提取空间特征。为了更好地提取空间特征,即关注到身体上较远关键点(D>1 时的相邻关键点)之间的运动信息,本文将原空间分区策略中的D设置为2,并且将权重参数之间的差值进一步增大,从而得到图6 所示的远空间分区策略。此时,3 个子集的权重参数被重新定义如下:

图6 远空间分区策略Fig.6 Remote spatial partitioning strategy

所以,GCN 实现公式更新为

3.2.3 多空间特征融合

SENet(Squeeze and Excitation Networks)[13]是一种特征通道注意力机制网络,它在训练过程中可以使网络自动选择重要的特征。因此,本文在ST-GCN 中添加SENet 模块来融合不同分区策略的空间特征。该模块融合空间特征的原理如图7 所示,其中X1为GCN 采用原空间分区策略的空间特征,X2为GCN 采用远空间分区策略的空间特征。首先 将2 个大小为 (M,C,T,V)的特征图X1,X2通过堆叠模块(CAT)堆叠为 (M,2C,T,V)的新特征图;然后将新特征图依次经过平均池化层、全连接层1 和全连接层2 压缩成 (M,2C,1,1),并与新特征图按通道相乘;最后使用一个二维卷积将分配权重后的特征图压缩成与输入大小一致的输出特征图。图中ReLu,Sigmoid为激活函数。

图7 SENet 模块融合空间特征Fig.7 Fusion spatial features of the SENet module

3.2.4 时空特征提取单元

时空特征提取单元是MST-GCN 模型中的基本单元,它在时间轴上将空间特征进行聚合,从而得到表征动作的时空特征,其详细结构如图8 所示。首先将2 种空间分区策略下提取的空间特征使用SENet模块进行特征融合;其次使用TCN 提取时间特征;最后使用残差结构保留原始特征信息,实现时空特征提取。图中⊙为矩阵按位相与,X为输入特征图,Y为输出特征图。

图8 时空特征提取单元结构Fig.8 Structure of spatio-temporal feature extraction unit

3.3 动作开始位置捕获

3.3.1 捕获原理

工人准备取放钻杆时,身体会呈现出手持钻杆的姿势,即打钻姿势(图9)。通过打钻姿势确定上杆、卸杆动作在视频中的开始位置,不仅可以避免MST-GCN 模型遍历视频的重复工作,而且能提高计数效率。因此,本文通过区分打钻姿势与非打钻姿势来判断工人是否将要进行上杆或卸杆动作。

图9 打钻姿势与非打钻姿势Fig.9 Drilling posture and non-drilling posture

3.3.2 打钻姿势识别

辨识人体骨架上所表达的姿势类别信息,可以通过卷积神经网络在伪图像上自动提取特征实现分类,也可以通过分类算法对手工特征进行分类[14]。SVM 是一种快速且有效的监督式二分类算法,可对人体骨架上由关节夹角组成的特征向量进行分类,即能够辨识打钻姿势。

辨识打钻姿势的流程如图10 所示。首先通过余弦公式计算人体骨架上的10 个关节夹角:θ0(右颈角)、θ1(左颈角)、θ2(右肩角)、θ3(左肩角)、θ4(右肘角)、θ5(左肘角)、θ6(右跨角)、θ7(左跨角)、θ8(右膝角)和 θ9(左膝角);然后将10 个夹角数据组成1 个特征向量(即关节夹角余弦特征),并使用标准化公式对其进行规范;最后将特征向量送入训练好的SVM 模型进行分类。

图10 打钻姿势识别流程Fig.10 Drill pose recognition process

4 实验与结果分析

为了验证本文方法的可行性与实际效果,对MST-GCN 模型与钻杆计数进行了实验。实验基于64 位Windows 10 操作系统进行,硬件配置:处理器为Intel(R)Xeon(R)E5-1680 v4,内存为32 GB,显卡为NVIDIA TITAN XP 12 GB;软件环境:图形处理加速器为CUDA10.1 和cudnn7.6.5,编程语言为Python3.8,深度学习框架为Pytorch1.7.1。

4.1 数据集制作

为训练和评估 MST-GCN 模型,制作了Drill-action 数据集。原始数据来自于河南某煤矿的机巷里段与集中回风巷,该位置画面整体清晰,且包含多段钻机工作视频。使用视频剪辑软件从原始视频中裁剪出825 个动作,并统一调整成分辨率为640×480、帧率为25 帧/s、时长为8~10 s 的短视频序列。其中,上杆和卸杆动作视频各300 个,剩余为其他动作视频。划分数据集时,随机选出660 个动作作为训练集,剩余为测试集。训练和评估模型前,先采用Alphapose 算法在动作视频上检测出全部的人体骨架信息,再将其设置成大小为(2,3,150,18)的骨架序列数据。其中,“2”为每帧图像上最多保存2 个人体平均置信度排序靠前的骨架,“3”为每个关键点维数,“150”为骨架序列的保存长度,18 为关键点保存个数。人体平均置信度为

式中ci为第i个关键点的置信度。

4.2 MST-GCN 模型实验

4.2.1 模型训练

采用随机梯度下降法(Stochastic Gradient Descent,SGD)作为训练优化器,并设置动量因子为0.9,权重衰减系数为0.000 1,Batchsize 为32,模型迭代次数为100,初始学习率为0.01,在第40,60,80 次迭代时将学习率依次衰减0.1 倍。MST-GCN 与ST-GCN模型的训练损失曲线如图11 所示。

图11 MST-GCN 与ST-GCN 模型的训练损失曲线Fig.11 Training loss curves of MST-GCN model and ST-GCN model

由图11 可看出,在第28 次迭代时,ST-GCN 模型的损失值开始收敛,但MST-GCN 模型仍在下降,并且最终损失值稳定在0.2 以下,说明MST-GCN 模型具有更强的学习能力。

4.2.2 模型评估

为验证对ST-GCN 模型改进的有效性,在Drill-action 数据集上进行了消融实验,并采用3 种类别动作的整体准确率作为评估指标,结果见表1。表中ADD 为常见的特征相加融合方法。

表1 消融实验结果比较Table 1 Comparison of ablation experiment results

比较表2 中“1”,“2”和“3”的结果可知,同时采用2 种空间分区策略的准确率最高,说明远空间分区策略可以改善模型仅使用原空间分区策略的特征提取不足问题;比较“3”和“4”结果可知,采用SENet 进行特征融合可进一步提高模型的准确率。

为进一步证明MST-GCN 模型的识别能力,将文献[15-16]中的模型与之对比,结果见表2。可看出MST-GCN 模型较Alphapose-LSTM(Long Short Term Memory,长短期记忆)和NST-GCN(新分区策略的ST-GCN)模型的准确率分别提高了19.0%和4.8%。

表2 不同模型的动作识别结果Table 2 Action recognition results of different models

4.3 钻杆计数实验

4.3.1 计数方法比较

为说明本文方法采用MST-GCN 模型的计数效果更好,在相同条件下的打钻视频(共2 段打钻视频,真实钻杆数量分别为80 根和100 根,且上杆、卸杆次数与钻杆数量保持一致)上对3 种计数方法进行比较,结果见表3。表中人工方法是指实验室成员通过观看录像进行计数,“0”表示该方法未实现此功能。平均误差是指2 段视频上的平均计数误差,如人工方法平均计数误差为[(80+80)×0.5-80]+[(102+101)×0.5-100]×0.5 次。

表3 3 种计数方法的动作识别结果Table 3 Action recognition results of three counting methods

从表3 可看出,3 种计数方法与真实数量的平均误差依次为0.75,21,0.25 次,显然本文方法的误差最小。经分析可知,人工方法因为实验室成员出现了注意力不集中的情况,从而造成误计数。改进ResNet 方法因为只能识别出卸杆动作的某个简单状态,时序信息太少,所以误计数比较严重。

4.3.2 现场计数测试

为验证本文方法在煤矿井下的应用效果,在河南某煤矿搭建了实验平台进行测试。现场采集2 台钻机的打钻录像,视频画面分辨率为1 280×720,目标分辨率为150×300~500×500,目标之间的遮挡堆叠面积低于目标15%,具体如图12 所示。总共涉及18 处钻孔,共1 300 根钻杆,钻孔编号1-9 为1 号钻机的施工位置,编号10-18 为5 号钻机的施工位置。

图12 现场测试打钻画面Fig.12 Field test drilling screen

计算某钻孔的钻杆数量Hn(n为钻孔个数,1≤n≤18)时,根据以下步骤实现:

(1)根据台账记录的上杆、卸杆时间范围,从录像机中取出关于该钻孔的上杆、卸杆视频。

(2)在上杆视频中使用本文方法只识别上杆动作,并根据经验设置2 次上杆动作的识别间隔为60 s,打钻姿势阈值为0.4,上杆动作的判断阈值为0.4,上杆次数为Un。同理在卸杆视频中只识别卸杆动作,并根据经验设置2 次卸杆动作的识别间隔为8 s,打钻姿势阈值为0.4,卸杆动作的判断阈值为0.45,卸杆次数为Dn。

(3)待上杆和卸杆视频均被识别完后,计算该钻孔的钻杆数量。

所有钻孔的钻杆数量H为

经过上述步骤,计算出18 个钻孔的所有钻杆数量,结果见表4。比较表4 中最后一行数据可知,单独以上杆、卸杆次数作为钻杆数量时,它们与真实钻杆数量的误差分别为46 根和-28 根。其中上杆数量比真实钻杆数量偏大,主要是因为上杆过程中的动作类型比较复杂,模型误识别为上杆动作的概率大;卸杆数量比真实钻杆数量偏小,主要是因为存在多根钻杆连在一起被卸下的情况,而本文方法只能识别为1 个卸杆动作。不过,根据二者平均值计算的钻杆数量与真实数量的误差为9 根,一定程度上降低了误差,结果满足实际应用需求。

表4 全部钻孔的实验结果Table 4 The results of all drilling experiments

5 结论

(1)提出了一种基于改进时空图卷积神经网络的钻杆计数方法。采用Alphapose 算法在图像序列上得到表征人体动作的骨架序列数据;在ST-GCN模型的基础上,采用远空间分区策略关注骨架上距离较远的关键点运动信息,与注意力机制网络SENet 融合2 种空间特征,设计了MST-GCN 模型,可以有效提升动作识别精度;在打钻视频上利用SVM 辨识打钻姿势,利用MST-GCN 模型识别动作类别,并根据实际打钻时间设置相邻动作的识别间隔,从而记录上杆、卸杆动作数量,实现钻杆计数。

(2)为了验证MST-GCN 模型的有效性,在自建的数据集上进行了实验,并与ST-GCN、Alphapose-LSTM 及NST-GCN 模型进行了对比,结果表明:MST-GCN、ST-GCN、Alphapose-LSTM 及NST-GCN模型的识别准确率分别为91.1%、84.9%、72.1%和86.3%,MST-GCN 模型的识别能力更好。在相同条件的打钻视频上,MST-GCN 模型、人工方法和改进ResNet 方法的计数结果平均误差依次为0.25,0.75,21 次,说明MST-GCN 模型的计数效果更好。在真实打钻1 300 根的现场应用中,MST-GCN 模型的平均误差为9 根,误计数结果低,说明了基于改进时空图卷积神经网络的钻杆计数方法的可靠性。

(3)该方法也存在一些不足,比如在频繁发生多根钻杆连接在一起被卸下的情况下,该方法可能会导致少计数问题。下一步工作将对此进行深入研究,以使方法适用于更复杂的工作环境。

猜你喜欢

钻杆骨架分区
贵州省地质灾害易发分区图
浅谈管状骨架喷涂方法
上海实施“分区封控”
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
钻杆接头内螺纹加工自动化试验研究
浪莎 分区而治
大空间建筑防火分区设计的探讨
钻杆焊缝横向侧弯试样断裂原因分析
基于有限元法的钻杆柱纵向振动分析
内支撑骨架封抽技术在突出煤层瓦斯抽采中的应用