据统计,2004—2013年全国煤矿水害事故起数和死亡人数分别占事故总起数和总死亡人数的3.1%和8.1%[1]。对此,国家煤矿安全监察局在2018年发布的新版《煤矿防治水细则》中规定煤矿应采取“预测预报、有疑必探、先探后掘、先治后采”防治水原则。在探水作业中,煤矿普遍采用监工人员全程观看探水视频的方式来对卸杆作业情况进行监控,效率低下,且极易出错。针对该问题,本文提出利用深度学习技术中的三维卷积神经网络(3D Convolutional Neural Network,3DCNN)对探水作业中的卸杆动作进行识别,进而减少监工人员的工作量,同时达到减员增效、降低生产成本的目的。
传统动作识别方法一般分为动作特征表征和动作特征分类2个步骤[2]。动作特征表征方法包括STIP[3]、SIFT[4-5]、HOG[6-7]和改进稠密光流轨迹[8]等。动作特征分类方法包括支持向量机[9]和神经网络[10]等。传统动作识别方法需要人工设计动作特征,随着深度学习技术的发展,出现了基于深度学习的动作识别方法。 JI Shuiwang等[11]提出将包含时空信息的图片序列同时输入3DCNN进行动作识别。D. Jeff 等[12]提出将包含动作信息的图片序列输入CNN网络进行特征学习,然后将学习结果输入到长短时记忆网络中实现动作识别。S. Karen等[13]提出了双流结构CNN网络,2个CNN网络分别在时间与空间上提取特征,空间流通过帧图像进行识别,时间流则以光流密度为主,将2种特征融合后再进行分类处理。在上述3种基于深度学习的动作识别方法中,利用3DCNN模型来进行动作识别具有模型简单、训练计算量小的优点。
本文利用3DCNN模型来识别探水作业中的卸杆动作,并在3DCNN模型中使用批量归一化(Batch Normalization,BN)层,提高了识别准确率。
动作识别领域最常用的数据集是UCF101。探水作业中的卸杆动作由一系列简单动作组合而成,属于组合动作。为保证每种类型动作分类准确、类间差别明显,需要对卸杆动作进行分解。将卸杆动作分解为4类,如图1所示。钻机拔杆:钻机将钻杆从煤岩中拔出。扳手拧杆:施工人员使用管钳将要卸下的钻杆拧松。拧杆:钻机或者施工人员(1个或者2个)将钻杆完全拧下。转身放杆:施工人员双手或者单手将钻杆撤离钻机工作台并转身放到一起。
(a) 钻机拔杆
(b) 扳手拧杆
(c) 拧杆
(d) 转身放杆
图1 卸杆动作分解
Fig.1 Decomposition of unloading dirll-rods action
本文中视频数据来自3个煤矿的11个不同场景,筛选前视频总时长为4.9 h。在制作数据集时兼顾不同的拍摄角度、拍摄距离、光照条件等,使模型具有较强的鲁棒性。在同一个场景中每类动作截取10段视频。经过筛选之后的数据集,每个类别的动作包括110段视频,共440段视频。得到的数据集中每类动作的视频数量与公共数据集UCF101基本一致,可用于验证模型的泛化能力。
构建的3DCNN模型主要由卷积层、池化层、BN层等组成,模型结构见表1,其中视频采样帧数为10,卷积核尺寸为3×3×3。
图像识别分类效果较好的2DCNN在结构上只考虑如何更好地收集单张图像的特征信息,并不能兼顾到各张图像间的动作变化关系。因此,JI Shuiwang等首次提出使用可以同时学习空间及时间维度特征信息的3DCNN来进行动作识别[11]。3D卷积公式为
(1)
式中:为第i层第j个特征映射经过卷积运算之后在视频序列中第z张图片位置(x,y)上的输出;bij为第i层第j个特征映射的偏置;Pi,Qi,Oi分别为第i层图片的高度、宽度和所在视频序列中的索引;为第i层第j个特征映射的第r张图片中(p,q,o)位置的权重;为第i层第j个特征映射的第r张图片中(p,q,o)位置的输入。
3D卷积过程中,卷积核以固定步长对视频序列进行卷积操作。本文模型在第1、2次和第3、4次进行卷积操作时分别使用32个和64个不同的3D卷积核进行卷积操作,以获得视频中更多的特征值。
表1 3DCNN 模型结构
Table 1 3DCNN model structure
层次层(类型&核尺寸)输出第1层输入层InputLayer(None,32,32,10,3)第2层3D卷积层Conv3d_1(3,3,3)(None,32,32,10,32)第3层BN层BatchNormalization_1(None,32,32,10,32)第4层3D卷积层Conv3d_2(3,3,3)(None,32,32,10,32)第5层BN层BatchNormalization_2(None,32,32,10,32)第6层3D池化层MaxPooling3d_1(3,3,3)(None,11,11,4,32)第7层防过拟合层Dropout_1(0.25)(None,11,11,4,32)第8层3D卷积层Conv3d_3(3,3,3)(None,11,11,4,64)第9层BN层BatchNormalization_3(None,11,11,4,64)第10层3D卷积层Conv3d_4(3,3,3)(None,11,11,4,64)第11层BN层BatchNormalization_4(None,11,11,4,64)第12层3D池化层MaxPooling3d_2(3,3,3)(None,4,4,2,64)第13层防过拟合层Dropout_2(0.25)(None,4,4,2,64)第14层一维化层Flatten_1(None,2048)第15层全连接层Dense_1(None,512)第16层BN层BatchNormalization_5(None,512)第17层防过拟合层Dropout_3(0.25)(None,512)第18层全连接层Dense_2(None,4)
池化层的作用是将特征向量聚合和降维,以达到降低网络复杂度和减少训练计算量的目的。虽然输出的特征映射数量与输入的特征映射数量一致,但每个特征映射中的特征维数成倍减少。对于处理多张图片数据来说,池化层同样需要扩展到三维。如果使用最大池化,那么在位置(m,n,l)的输出为
(2)
式中:δ,ρ,ϖ分别为最大值运算中的迭代算子;S1,S2,S3分别为视频序列中图片的高、宽和所在视频序列的长度;xm×s+δ,n×t+ρ,l×w+ϖ为池化区域内数值的集合;s,t,w分别为池化层的长、宽、高。
本文模型使用了2个最大池化层对特征映射进行降维处理。
BN层主要用于降低梯度对网络中参数值的依赖性,可使网络以较大的学习率进行训练,还可对每层的输出进行归一化[14],并减少Dropout层的使用。主要思路是对每个神经元引入2个可学习参数,其前向传导过程如图2所示。其中d和分别为变换前后的输入数据;μB为小批次(mini-batch)的均值;σB为mini-batch的标准差;ε为保证分母大于零引入的一个非常小的常数;γ,β为需要学习的参数。
图2 BN层前向传导过程
Fig.2 Forward conduction process of batch normalization layer
BN层实现方法是在每层输入时,插入归一化层,将输入数据归一化为均值是0、方差是1的标准正态分布。图2中阶段①实现输入数据的归一化,由于层与层之间进行归一化处理后会改变数据分布,破坏学习特征,所以,利用阶段②实现变换重构,以恢复该层学习特征。
训练阶段用每个mini-batch中的方差和均值来代替整个训练集的方差和均值,作为对整体的估计。测试阶段,均值和方差不是针对某个批次(batch),而是针对整个数据集。因此,在训练中除了正常的前向传播和反向求导外,还需记录每个batch的均值和方差,以便训练完成后按式(3)与式(4)计算整体的均值和方差。
E[d]=EB[μB]
(3)
(4)
式中:E[d]为训练集的均值;EB[μB]为所有mini-batch的均值;Var[d]为训练集的方差;f为mini-batch的数量;为mini-batch标准差平方的均值。
基于3DCNN的动作识别方法在UCF101数据集上进行分类,种类多达101种。煤矿探水作业动作识别视为4分类问题,将3DCNN模型全连接层节点减少为4个,同时使用Softmax函数作为分类层的激活函数[15],确定探水作业卸杆动作最终的识别结果。
首先,对数据集进行预处理,从每段视频中均匀抽取几帧图像作为此动作的代表,并将这些图片进行一定程度的缩小,处理为相同尺寸,以降低其分辨率。然后,对视频进行训练,并保存训练好的权重文件。最后,将权重值导入3DCNN模型对测试集进行测试,得出视频的分类结果和此次训练的准确率。3DCNN模型训练和识别过程如图3所示。
图3 3DCNN模型训练和识别过程
Fig.3 3DCNN model training and recognition process
实验中采用了基于Python的深度学习框架Keras(以tensorflow为后端)构建3DCNN模型,同时使用GPU(型号为NVIDIA GeForce RTX 2080Ti)对模型进行加速训练。将数据集按照每个动作类型4∶1的比例组成训练集和测试集,其中训练集为352个,测试集为88个。
在实验过程中,采用Xavier方法对模型中权重和偏置参数进行初始化。假设3DCNN中某层的输入维度为a,输出维度为c,则该层的参数将均匀分布在之间。该方法可以使每层输出的方差几乎相等,从而使模型收敛速度更快。
在4类动作中,因作业人员工作习惯、钻机型号等不同,视频长度区别较大,采样帧数越多,提供给模型的信息越详细,但也增加了模型的复杂度和训练时长。为此,从每个视频中分别抽取5,10,15,20,25,30帧图像,再利用OpenCV将每帧图像尺寸转换为32×32。在进行模型训练时,设置batch-size为20,模型迭代训练500次,结果见表2。
表2 不同采样帧数的准确率
Table 2 Accuracy of different sample frames
采样帧数准确率/%参数量/105训练时长/s594.327.262061098.8612.53051596.5912.54112098.8617.75112597.7317.76163098.8623.0707
从表2可看出,采样帧数为5时准确率最低,随着采样帧数的增加,准确率会有一定程度的提高,而模型参数量和训练时长都大幅增加。对于该模型来说,当采样帧数为10时,既能保证准确率,又能兼顾较少的模型参数量和训练时长。
在确定采样帧数的情况下,每帧图像的分辨率越高,提供给模型的信息越丰富,但也会增加运算的开销和模型复杂度。为此,从每段视频中抽取10帧图像,利用OpenCV将这些图像尺寸处理为16×16,32×32,64×64,128×128,并分别进行训练。设置batch-size为20,模型迭代训练500次,结果见表3。
表3 不同分辨率的准确率
Table 3 Accuracy of different resolutions
分辨率准确率/%参数量/105训练时长/s16×1689.774.6416732×3298.8612.530564×6497.7344.0989128×12898.86149.473679
从表3可看出,分辨率为16×16时,准确率最低;随着分辨率的提高,准确率也会提高,但也会增加模型参数量和训练时长。综合考虑准确率、模型参数量和训练时长,将图像的分辨率定为32×32。
为对比学习率对准确率和收敛速度的影响,从每个视频中均匀抽取10帧图像,并将这些图像尺寸处理为32×32。在训练时,设置batch-size为20,学习率为0.000 1,0.000 5,0.001,模型迭代训练500次,结果如图4所示。
图4 不同学习率的准确率
Fig.4 Accuracy of different learning rates
从图4可看出,学习率对迭代次数的影响可以忽略不计;学习率为0.000 1时,模型准确率更为稳定,最高准确率为98.86%。
为了验证加入BN层的效果,从每个视频中抽取10帧图像,将图像尺寸处理为32×32。在训练时,设置batch-size为20,学习率为0.000 1,模型迭代训练500次,结果如图5所示。
图5 加入和未加入BN层的准确率
Fig.5 Accuracy of whether to add BN layer
从图5可看出,在网络中加入BN层,模型在迭代50次之后,准确率基本稳定,可以认为模型已经达到最佳的拟合效果,准确率最高可达98.86%;未加入BN层时,准确率最高为86.36%。
提出一种基于3DCNN的煤矿探水作业卸杆动作识别方法。3DCNN模型使用3D卷积层自动完成动作特征的提取,通过3D池化层对动作特征进行降维,通过Softmax分类处理实现煤矿探水作业中典型动作的识别,并使用BN层提高了模型收敛速度和识别准确率。实验对比了不同采样帧数、分辨率、学习率及是否加入BN层时模型的准确率。结果表明,设置采样帧数为10帧、分辨率为32×32、学习率为0.000 1 时,模型在加入BN层之后,3DCNN模型对卸杆动作的识别准确率最高可达98.86%。
[1] 孙继平.煤矿事故分析与煤矿大数据和物联网[J].工矿自动化,2015,41(3):1-5.
SUN Jiping.Accident analysis and big data and Internet of things in coal mine[J].Industry and Mine Automation,2015,41(3):1-5.
[2] 徐光祐,曹媛媛.动作识别与行为理解综述[J].中国图象图形学报,2009,14(2):189-195.
XU Guangyou,CAO Yuanyuan.Action recognition and activity understanding:a review[J].Journal of Image and Graphics,2009,14(2):189-195.
[3] ZHU Yu,CHEN Wenbin,GUO Guodong.Evaluating spatiotemporal interest point features for depth-based action recognition[J].Image and Vision Computing,2014,32(8):453-464.
[4] 杨世沛,陈杰,周莉,等.一种基于SIFT的图像特征匹配方法[J].电子测量技术,2014,37(6):50-53.
YANG Shipei,CHEN Jie,ZHOU Li,et al.Image feature matching method based on SIFT[J].Electronic Measurement Technology,2014,37(6):50-53.
[5] 宋健明,张桦,高赞,等.基于多时空特征的人体动作识别算法[J].光电子激光,2014,25(10):2009-2017.
SONG Jianming,ZHANG Hua,GAO Zan,et al.Human action recognition based on multi-spatio-temporal features[J].Journal of Optoelectronics·Laser,2014,25(10):2009-2017.
[6] ZHU Yu,CHEN Wenbin,GUO Guodong.Fusing multiple features for depth-based action recognition[J].ACM Transactions on Intelligent Systems and Technology,2015,6(2):1-20.
[7] 卜庆志,裘君,胡超.基于HOG特征提取与SVM驾驶员注意力分散行为检测方法研究[J].集成技术,2019,8(4):69-75.
BU Qingzhi,QIU Jun,HU Chao.Research on driver's distracted behavior detection method based on histogram of oriented gradient feature extraction and support vector machine[J].Journal of Integration Technology,2019,8(4):69-75.
[8] 孙玉玲.基于改进稠密轨迹的人体行为识别方法研究[D].天津:天津工业大学,2017.
SUN Yuling.Research on human behavior recognition method based on improved dense trajectory[D].Tianjin:Tianjin Polytechinc University,2017.
[9] 沈舒,吴聪,李勃,等.基于优化SVM的高速公路交通事件检测[J].电子测量技术,2012,35(5):40-44.
SHEN Shu,WU Cong,LI Bo,et al.Freeway traffic incident detection based on an optimized SVM model[J].Electronic Measurement Technology,2012,35(5):40-44.
[10] 罗志增,熊静,刘志宏.一种基于WPT和LVQ神经网络的手部动作识别方法[J].模式识别与人工智能,2010,23(5):695-700.
LUO Zhizeng,XIONG Jing,LIU Zhihong.Pattern recognition of hand motions based on WPT and LVQ[J].Pattern Recognition and Artificial Intelligence,2010,23(5):695-700.
[11] JI Shuiwang,XU Wei,YANG Ming,et al.3D convolutional neural networks for human action recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(1):495-502.
[12] JEFFREY D,LISA A H,MARCUS R,et al.Long-term recurrent convolutional networks for visual recognition and description[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2017,39(4):677-691.
[13] KAREN S,ANDREW Z.Two-stream convolutional networks for action recognition in videos[C]//Advances in Neural Information Processing Systems,2014:568-576.
[14] SERGEY I,CHRISTIAN S.Batch normalization:accelerating deep network training by reducing internal covariate shift[C]//Proceedings of the 32nd International Conference on Machine Learning,2015:448-456.
[15] 王俊,郑彤,雷鹏,等.基于卷积神经网络的手势动作雷达识别方法[J].北京航空航天大学学报,2018,44(6):1117-1123.
WANG Jun,ZHENG Tong,LEI Peng,et al.Hand gesture recognition method by radar based on convolutional neural network[J].Journal of Beijing University of Aeronautics and Astronautics,2018,44(6):1117-1123.
DANG Weichao,YAO Yuan,BAI Shangwang,et al.Research on unloading drill-rod action identification in coal mine water exploration[J].Industry and Mine Automation,2020,46(7):107-112.