基于改进双流算法的矿工行为识别方法研究
2021-05-19闫雨寒徐达伟刘忠育丁恩杰
陈 天,闫雨寒,徐达伟,刘忠育,丁恩杰
(中国矿业大学a.矿山物联网应用技术国家地方联合工程实验室;b.信息与控制工程学院,江苏 徐州 221008)
0 引言
煤炭行业是以矿工为主体的劳动密集型产业,尽管煤炭开采技术能够实现自动化和机械化,但目前还做不到“无人化”。人的不安全行为是导致安全事故发生的最主要原因,严重制约着煤矿企业的安全生产和发展。由于矿工行为与环境交互密集,不仅对环境更加敏感,在识别时需要融合环境特征和行为特征,而且行为之间有一定相似度,需要进行细粒性识别分析,因此,矿工行为识别与普通行为识别相比具有更大的识别难度。
目前,针对行为识别的方法主要分3种:基于骨骼点的行为识别[1-4]、基于图像的行为识别[5-6]以及基于视频的行为识别[7-10]。国内主要利用矿工佩戴传感器采集的骨骼点数据,构造运动姿态相对位置特征、角度特征和帧间位移特征来对矿工行为进行描述[11-12]。这种方法虽然能够在光线昏暗的环境中准确捕捉到人的行为,但却忽略了行为与环境之间的交互,且无法识别易混淆的动作。为此,文献[13-14]将矿工行为的骨骼点特征和视频图像特征进行特征降维,再通过支持向量机对融合的行为特征进行分类。但由于矿工行为数据量庞大,手工提取上述特征十分困难,因此该方法在数据集应用方面具有一定的局限性。
针对目前研究存在的问题,本文提出了一种端到端的方法自主学习矿工行为特征并实现行为分类。利用双流法[15]模型从原始视频中获取描述矿工动作的时间特征和空间特征,在学习行为时域变化的同时,还构建了场景和目标信息,能准确识别出人与物、人与场景交互的行为。同时,提出了量子遗传优化双流模型算法,探索在分类网络识别达到极限时,利用全局搜索算法进一步提高模型识别的准确率和鲁棒性。
1 行为识别特征的提取
1.1 双流网络的构建
双流网络包含两个分支,一流是时间流,采用提取的光流特征图构建时间特征,利用图像序列中像素的时域变化和相关性来确定各像素位置的“运动”。光流表达了图像的变化,因此可被观察者用来确定目标的运动情况。还有一流是空间流,空间流由三原色(red,green and blue,RGB)图像构成,不仅用于提取矿工的行为特征,还携带了视频描绘的场景和目标信息,可以解决行为与环境交互的问题。
从原始矿工视频中分别提取RGB图像和光流图,RGB图像序列由通过将视频分段后随机从每段视频中抽取1帧关键帧构成。光流特征图的提取方法见1.2节。将RGB图像和光流特征图作为网络的输入,分别送入由卷积神经网络构成的时间流网络和空间流网络中进行特征提取和分类,在softmax层后进行分数融合得出最终的分类结果。
本文主要采用3种主流的识别网络实现矿工行为的识别:Two-Stream ConvNet[15]、TSN[16]和I3D[17]。Two-Stream ConvNet要求输入的RGB特征图为给定视频里的任意一帧,网络结构由5层卷积层和2层全连接层构成,两流拓扑结构相同,softmax层的融合方法为计算两流的平均分数或者将两流分数作为特征训练再进行支持向量机(support vector machine,SVM)分类。TSN的结构与Two-Stream ConvNet相同,但它将整个视频分为3段,对提取的每段特征进行学习训练,最后做叠加。I3D是一个基于3D卷积的双流模型,将Inception-v1网络中的2D卷积核和pooling核膨胀成3D、H、W,对应的参数均直接从Inception中获取,仅需要训练D参数。
1.2 光流特征图的提取
光流特征图的实质是描述视频中两张相邻图像中像素点信息移动的图像。假设一个像素点在某一帧(t时刻)的光强度为I(x,y,t)=I(x+dx,y+dy,t+dt),经过dt的时间移动了(dx,dy)的距离到达下一帧。由于同一目标在不同帧间运动时,其亮度不会发生改变,因此得到:
I(x,y,t)=I(x+dx,y+dy,t+dt)。
(1)
将式(1)用泰勒展开得:
(2)
由此可得:
(3)
Ixu+Iyv+It=0,
(4)
其中:Ix、Iy和It均可由图像数据求得。
这只是一个约束方程,由此不能求出确切的参数u和v,因此需要引入一个约束条件,即基于梯度的光流估计算法。利用时变图像灰度的时空微分来计算像素的速度矢量,在方程(4)的基础上附加了全局平滑假设,假设在整个图像上光流的变化是光滑的,在目标像素的m×m区域内每个像素的光流矢量相同。最后对光流表达式的加权平方和最小化估算出光流矢量。
2 双流网络优化模型的实现
2.1 量子遗传基本理论
量子遗传算法[18]是一种概率搜索算法,在量子遗传算法中染色体上的一个基因用量子态表示,量子态的表示为:
ψ〉=α0〉+β1〉。
(5)
量子比特0〉和1〉表示微观粒子的两种基本状态,其中,α,β均是复数,分别表示状态0和1的概率幅,且满足:
(6)
则n个量子位的染色体形式为:
(7)
因此,每条染色体包含上下两条基因链,每条基因链是优化问题的一个候选解。由此可知,量子遗传算法在种群规模不变的情况下,候选解个数比遗传算法多1倍,增加了解空间的多样性,提高了寻优成功的概率。
由于量子染色体呈现多态,因此量子位的更新除了通过染色体交叉变异外,采用量子旋转门改变量子比特相位,以更新量子位的概率幅,从而达到基因变异的效果。设[αi,βi]′是经旋转后的第i个量子位,θi为旋转角,则更新过程为:
(8)
其中:Ui为量子旋转门,其形式如下:
(9)
2.2 量子遗传优化双流网络过程
量子遗传算法与经典遗传算法最大的不同就是,不再采用二进制位来对解空间中的可行解进行编码,而是采用具有01叠加态的量子位编码。由量子信息的叠加性表达基因包含所有可能的信息,使得量子遗传在用同等长度的位数进行编码时比经典遗传算法表示出更多的信息。
利用量子遗传算法优化网络主要是先通过对双流网络中的卷积核参数进行量子编码,将n×n维的卷积核伸展成n2×1的向量,对n2的参数进行优化后再重塑成n×n维的卷积核。接着再利用量子交叉、量子门旋转实现染色体交叉变异,最终达到种群进化的目的。量子遗传优化算法流程如图1所示。
图1 量子遗传优化算法流程图
由于梯度下降算法[19]具有使模型实现较快收敛、搜索到相对优越的模型参数等优点,本文引入梯度下降法对双流网络进行训练。但它也伴随着容易使模型陷入局部最优的缺点,因此需要对梯度下降算法进行改进。先利用量子遗传优化算法搜索出多个最优参数的可能出现区域,再利用梯度下降法从多个局部参数盆地中搜索出最小值以获得最佳参数模型。
首先,随机产生规模为n的一代种群,即初始卷积核。由于种群中每个个体的染色体由量子位表示,因此需要将量子态染色体转化为二进制串。构造策略为:对于每个染色体的每个量子位,产生一个[0,1]的随机数γ,若对应位的αi的范数平方值大于γ,则该位取 1,否则取 0。该策略也称为测量。
其次,评价种群中各个个体的适应值。将编码后的卷积核送入双流网络中,配合梯度下降法进行训练,将双流网络每次训练得到的损失值的相反数作为对应个体的适应度。双流网络通过训练得到的损失函数值越小,种群适应度函数越大,选取适应度最大的个体作为种群最好个体,在进行下一代进化时,所有个体都朝着这个个体的方向进化。
最后,对种群个体进行交叉变异。进行量子交叉实现种群个体更新,即相互配对的两个染色体,在编码串中随机选取两个交叉点,然后两者互换交叉点之间的部分,从而产生两个新个体。当交叉产生的最优个体适应度不再变化时,意味着算法早熟。通过比较当前个体和最优个体的染色体适应度值,选择量子旋转的方向和角度,利用量子旋转门进行变异。如此迭代,直到适应度值和网络识别准确率达到标准,则停止迭代。
3 实验结果与分析
3.1 数据集构建及双流法识别
本实验构建了矿工行为数据集,利用Kinect[20]设备对10个实验对象进行动作采集,每个动作重复3次。数据集包含单人、人与物交互、人与人交互等50种矿工行为,其中交互行为20种,文件大小共1.5 GB,图像大小为640 pixels×480 pixels。首先,对视频帧随机剪裁成大小为224 pixels×224 pixels的图片,从原始视频中提取出光流特征图和单帧的RGB图像,并为每个动作做标签。
在3种主流的识别网络中,Two-Stream ConvNet和TSN的输入均为从动作视频中采样的25个RGB帧和光流堆,而I3D是将RGB和光流分开训练的,对光流特征提取主要是尽量选择前面的帧以保证光流帧的数目足够多。对70%的视频片段进行训练,30%的视频片段进行测试,Two-Stream ConvNet在测试集上的识别准确率为55.33%,TSN和I3D的识别准确率分别为60.71%和71.97%。
图2 交互行为对混淆矩阵
对比3种网络识别准确率可知,Two-Stream ConvNet识别率较低,I3D识别准确率最好。这是由于Two-Stream ConvNet的网络结构较简单,并且只随机抽取了一帧视频作为RGB特征图。而TSN将视频分成3段,每部分分别送入双流网络进行识别,这样处理有效提高了识别准备率。I3D结构最为复杂,并且采用3D卷积核代替2D卷积核,由于其网络参数成倍增长,训练时间也最长。
为了分析双流网络对交互行为识别准确率的影响,本文绘制了10种交互行为对混淆矩阵,如图2所示。从图2可以看出: 摘安全帽和戴安全帽的动作是两个互逆的动作,无论是空间特征还是时间特征都有着极高的相似度,因此识别准确率较低。涉及人与人交互的打斗行为识别准确率较高,达到了83%。需要注意的是,本文运用的模型可以对抽烟、喝酒、吃东西3个行为作出细节判断,三者都有抬手动作,但双流网络可以捕获除此之外的目标信息并进行分类,这是骨骼点识别做不到的。
3.2 量子遗传优化双流网络识别
本文设置种群规模为15,量子旋转角大小为0.02π,对双流网络中的卷积核进行量子编码并训练,将每次训练得到的损失函数作为目标函数,共执行20个进化循环。以TSN为例,经过20代后,各代准确率、适应度函数以及适应度方差如表1所示。
表1 识别准确率随量子遗传进化代数的变化
由表1可以看出:在初始代时,最好个体的识别准确率为57.79%,在进化结束时,最好个体的识别准确率提升为61.58%。个体平均识别准确率随着进化的推进逐步提高,平均损失值逐步下降,这表明种群中个体的识别准确率普遍得到了提升。虽然进化前期出现了识别准确率波动的情况,但个体间损失值方差却在逐步下降,说明种群整体得到进化。
表2是量子遗传算法参与双流网络前后识别准确率对比结果。由表2可知:3种网络在识别准确率方面都得到了提升,其中对于Two-Stream ConvNet的影响较大。这是由于量子遗传算法虽然能够跳出局部最优解,但在参数量较大时,全局搜索能力受到限制。即便如此,量子遗传的优化算法仍可以探索在梯度下降法搜索能力达到极限时的全局最优解,使得网络的分类能力得到提升。
表2 双流网络优化前后识别准确率对比表 %
图3 量子遗传算法优化网络前后损失值对比
图3是在Two-Stream ConvNet网络上应用量子遗传算法优化前后的损失值对比结果。不采用量子遗传优化时,一代表示网络完全训练一次。由图3可知:不使用量子遗传优化时,测试集损失值呈现振荡趋势,通过反复训练网络,虽有下降但效果不明显;优化网络后,测试集损失值偶有波动,但总体趋势呈下降状态,到第20代时测试集损失值已下降到45.50%。
为论证所提方法的有效性,本文对比了基于骨骼点的矿工识别方法。对50种矿工行为进行了基于骨骼点特征的识别验证,采用随机森林的模型对关节点特征及骨骼点角度特征进行行为分类。从多角度进行了识别有效性的对比,结果如表3所示。其中,单行为识别耗时是指利用训练好的模型测试一个不经特征提取的原始输入所耗时间,以此来验证模型的实时性。
表3 双流法与骨骼点构建法识别对比表
由表3可以看出:基于骨骼点的行为识别方法比双流法平均识别准确率低了14.19%,这是由于数据集中存在大量相似动作,如喝酒、抽烟、喝水,骨骼点构建法只能识别出抬手动作,无法做出细粒性识别。双流法的准确率方差较小,鲁棒性较好,普适性强,对动作识别的准确差别较小。在单行为耗时方面,双流法实现了端到端识别,无需自主提取特征即可得到识别结果,在实时性方面有较好的表现。而骨骼点构建法需要手动提取骨骼点特征,再将特征送入网络中,无法做到端到端,也无法达到实时识别的效果。
本文与国内其他矿工行为识别的方法进行了对比。为了增加实验的可对比性,实验均在本文构建的数据集上进行。由于目前国内的矿工行为识别基本都是在小数据上进行,没有在像本文构建的大数据集上试验,因此本文分别对比了10种经典动作和50种普遍动作的识别准确率。10种经典动作即走、坐、站、捡、提、扔、推、拉、攀爬、摘安全帽,50种普通动作即数据集的全部行为。表4是矿工行为识别方法的准确率对比。
表4 矿工行为识别方法准确率对比 %
由表4可以看出:基于骨骼点的行为识别[21-22]在小数据集上展现出优势,在区分度较大的数据集上识别准确率较高,但在大数据集上不仅耗时(无法自主生成特征),而且识别准确率很低。而基于图像的行为识别在处理相似动作时细粒度较高,并且可以有监督的自主学习特征,在大数据上识别准确率下降相对低一些。而本文提出的基于量子遗传优化的双流算法由于融合特征较多、网络较深,在两种数据集上都达到了最高的识别准确率。
4 结束语
本文提出了一种改进双流算法的行为识别方法,可以自动学习矿工视频数据集上的空间信息和时间信息并对行为进行分类。该方法可以解决以往矿工行为识别方法中手动提取特征耗时,背景识别不敏感等问题。从原始视频中提取RGB特征和光流特征,再分别送入时域网络和空域网络,实现网络自主学习和行为分类。为了提高模型的准确率,采用量子遗传寻优的方法寻找参数的全局最优解。通过对自建的矿工数据集进行实验以及和其他矿工行为识别方法进行对比,验证了基于量子遗传算法优化的双流网络在识别矿工行为方面的有效性。