基于LSTM循环神经网络的人体骨架行为识别*

2022-12-12 12:03邱熙雯胡文玉何显文
赣南师范大学学报 2022年6期
关键词:骨架人体分类

邱熙雯,胡文玉,†,何显文

(赣南师范大学 a.数学与计算机科学学院;b.信息与教育技术中心,江西 赣州 341000)

1 引言

近些年,计算机视觉领域上的一些应用场景(如智能视频监控[1-2]、智能家居[3]、虚拟现实[4]、视频检索[5]等)越来越受到人们的关注,而这些应用场景的关键技术在于自动从视频中正确判断出人体所执行的动作,因此对人体行为识别方法的研究具有重要意义,这是一个涉及模式识别和计算机视觉领域的重要研究课题.

以往的人体行为识别方法大多使用RGB图像序列[6-8]和深度图像序列[9-10]作为人体行为识别研究的数据模态,但上述两种模态在面对各种各样的干扰因素(例如光照、尺度、遮挡、背景杂乱等)时鲁棒性不足,因此对外界环境的干扰具有很强的适应性的骨架数据逐渐进入了研究者的视野.此外,像Microsoft Kinect这样的传感器[11]和一些先进的人体姿态估计算法[12-14]可以让我们更轻松地获得准确的骨架数据.图1展示了两个动作的骨架序列,从图中可以看出,通过人体骨架序列数据,我们可以毫不费力地辨认出该序列所表达的行为类别.这是因为骨架序列数据提供了人体的关节点位置信息,包含了丰富的特征信息,因此可以直接应用于行为识别任务.

图1 2个20个关节点的骨架序列展示

传统的机器学习方法[15-17]需要人工设计并提取骨架序列的特征,例如关节轨迹的协方差矩阵、关节的相对位置、身体部位之间的旋转和平移等,这些手工特征呈现出较高的冗余度,并且忽略了骨架数据中对人体行为识别及其重要的时间动态信息.鉴于LSTM网络中的递归连接机制可以很好地提取骨架数据中的时间动态信息,本文提出一种基于LSTM网络的人体骨架行为识别方法.现有的基于LSTM的人体骨架行为识别方法[18-23]在LSTM网络的基础上采用关节分组、基于树结构的关节遍历、双流、注意力、自适应视角等策略来更好地提取骨架数据中的时空信息.在我们的方法中,每个骨架序列具有若干个关节点,提取出每个关节点的三维位置信息作为人体姿态的浅层特征,沿时间构成浅层特征序列;然后将所构建的浅层特征序列输入到LSTM神经网络中,学习潜在的时间动态信息;最后将所学习到的时间动态信息输入到分类器中进行分类.为了验证本文方法的有效性,在MSRC-12数据集上进行数值实验,并与其他先进方法进行分类准确率的比较.

2 相关工作

人体骨架行为识别方法的开发主要包括如下步骤:首先,通过深度传感器或人体姿态估计算法获取骨架数据;然后从骨架数据中提取相关特征;最后将提取到的特征用于训练分类器.

传统的人体骨架行为识别方法主要集中于用手工制作的特征来表示骨架序列,这些手工特征可能是关节轨迹的协方差矩阵,关节的相对位置,或身体部位之间的旋转和平移.例如,Hussen等人[15]提出了一种基于协方差矩阵的骨架序列特征,该特征通过计算人体骨架不同关节点的三维坐标的协方差矩阵得到,依时间进行采样,为了编码骨架关节点位置的时间依赖性,通过一种分层机制将一个完整的骨架序列划分成多个等长的子序列,分别计算每个子序列的协方差矩阵;Vemulapalli等人[16]将人体动作建模成李群上的一条曲线,用三维空间中的旋转和平移来建模不同身体部位之间的几何关系,为了便于对这些动作曲线进行分类,又将李群上的动作曲线映射到李代数向量空间中,然后联合使用动态时间规整、傅里叶时间金字塔和线性支持向量机对李代数进行时序建模和分类;类似地,Vemulapalli等人[17]将人体动作建模成李群上的一条曲线,为了便于对这些动作曲线进行分类,通过滚动(Rolling)操作将李群上的动作曲线展开到李代数向量空间中,然后通过线性支持向量机对李代数进行分类.

在现有的基于LSTM的人体骨架行为识别方法中,Shahroudy等人[18]提出局部感知LSTM方法,该方法先将身体关节分成5个组,然后单独将每个关节组输入到LSTM网络中建模各自的运动模式.Liu等人[19]接着提出了基于树结构的关节遍历方法,然后使用带有信任门的LSTM单元来挖掘可靠的树状输入单元的潜在空间信息.Wang等人[20]对骨架数据进行横纵轴的交换形成空间LSTM流来更好地建模空间域信息,与时间LSTM流组成双流LSTM结构来为骨架数据建模时空特征.Liu等人[21]在LSTM网络中添加了全局意识关注模块,通过对行为识别贡献高的关节赋予更大的权重来选择性地关注骨架序列中信息丰富的关节.类似地,Song等人[22]提出了一种端到端的时空注意力模型,该模型不但学习了不同关节的权重,还学习了动作中不同帧的权重,将注意力拓展到了时空领域.Zhang等人[23]则在LSTM网络前加入了自适应视角模块,用于学习最佳的观测视角从而对原骨架数据进行增强.

3 长短时记忆网络

循环神经网络(Recurrent Neural Network, RNN)由于其独特的递归连接机制,在学习时间序列的上下文信息上表现出天然的优势,是一种具有记忆功能的神经网络,适合序列数据的建模.但是当用于训练的单个序列过长时,传统的RNN会很容易忘记前面比较久远的时间段的信息,这在很大程度上限制了RNN的应用.因此,有研究人员设计了一些修正过的循环单元来改进传统的RNN,例如带门控机制的LSTM[24].LSTM循环单元结构如图2所示,该单元利用三个门控机制,有效地传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被遗忘,从而实现较大范围内上下文信息的保存与传输.本文将Sigmoid函数用作门控单元的激活函数,将tanh函数用作单元状态和输出的激活函数.LSTM单元的详细工作原理如下:

图2 LSTM单元结构

遗忘门表示上个时间点的状态信息应该遗忘多少,它决定了上一时刻的单元状态Ct-1有多少保存到当前时刻的单元状态Ct.将来自上一时刻的隐藏状态ht-1和当前时刻的输入xt进行连接形成一个新的特征向量,再与权重参数Wf相乘后输入至sigmoid激活函数,其输出向量ft通过与Ct-1的对应元素进行乘法操作:Ct-1×ft来确定上一时刻的单元状态Ct-1有多少被添加至当前单元状态Ct,ft中的元素越靠近0表示Ct-1中对应的信息被遗忘得越多,相反,ft中的元素越靠近1则表示Ct-1中对应的信息被保留得就越多.ft的计算如式(1)所示:

ft=σ(Wf·[ht-1,xt]+bf)

(1)

其中Wf和bf分别表示遗忘门中sigmoid激活函数的权重参数和偏置项.

It=σ(WI·[ht-1,xt]+bI)

(2)

(3)

其中WI和Wc分别表示输入门中sigmoid和tanh对应的权重参数,bI和bc表示对应的偏置项.那么当前时刻的单元状态Ct的计算方法如式(4)所示:

(4)

输出门表示当前时间点的单元状态信息应该输出多少,它决定了当前时刻的单元状态Ct有多少被输出至单元的隐藏状态ht.单元状态Ct的决策向量ot和单元的隐藏状态ht分别如式(5)和式(6)所示:

ot=σ(Wo·[ht-1,xt]+bo)

(5)

ht=tanh(Ct)×ot

(6)

其中Wo和bo分别表示输出门中sigmoid激活函数的权重参数和偏置项.

综上所述,LSTM通过设置遗忘门、输入门和输出门来灵活传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被遗忘,从而解决一般循环神经网络中普遍存在的长期依赖问题.

4 基于LSTM的人体骨架行为识别方法

图3 基于LSTM的人体骨架行为识别方法

4.1 构造浅层特征序列

4.2 时间动态特征和分类器

由于人体骨架序列的浅层特征仍属于时间序列,所以可以使用LSTM网络来学习对应的时间动态信息.在多个结构相同的LSTM单元组成的时间动态特征提取层中,每个LSTM单元只负责处理一个特征序列,对应到我们的方法中指的是一个骨架关节的一个坐标分量,这样每个LSTM单元都可以学习到对应的时间动态信息.上小节我们为每个人体骨架序列构造了3*K个的浅层特征序列,第m个浅层特征序列在t时刻的值用s(m,t)来表示,那么s(m,:)就是第m个LSTM单元的输入.

本文方法中的分类器是由全连接神经网络层和Softmax层实现的.全连接神经网络层的输入为LSTM层中全部LSTM单元在最后时间步的输出的线性组合,该层的作用是将各个LSTM单元中学习到的不同的时间动态信息结合起来,再将该层的输出送入Softmax层来预测对应的行为类别标签.

5 实验

我们使用Matlab深度学习工具箱来实现并训练所提出的基于LSTM的人体骨架行为识别方法,同时在公开标准数据集MSRC-12上验证本文方法的有效性.

5.1 实验数据集

MSRC-12数据集[25]:MSRC-12数据集是一个单视角骨架数据集,由Kinect深度传感器获取,里面包含了20个骨架关节点的3D坐标.数据集由30个受试者分别演示表1里的12个动作种类,一共有594个动作序列样本数据,总共71 359帧(约6 h 40′),包含了6 244个人体骨架动作序列.

表1 MSRC-12数据集的12个动作类别

5.2 实验设置

已有的研究工作针对不同的数据集设置了不同的测试标准,当在某一个数据集上进行测试时,就必须服从在该数据集上设置的测试标准,从而使得实验结果的对比更有意义.对于MSRC-12数据集而言,本文采用cross-subject的测试标准,即将部分受试者对应的动作片段用于训练,其余受试者对应的动作片段用于测试.我们用Matlab自带的深度神经网络工具箱搭建LSTM神经网络结构.在训练过程中,我们将最小批次数设置为32,每次迭代的训练样本都是通过随机方式进行选择的,初始学习率为0.001.训练网络中的权重通过自适应梯度下降(ADA)算法来进行更新,动量设置为0.9.方法的训练环境配置为1个Intel(R) Iris(R) Xe显卡,1个16 GB的RAM和8个Gen Intel(R) Core(TM) i5-1130G7处理器.

5.3 实验结果

将本文所提出的方法在上述实验配置的条件下编码实现,得到实验结果.图4展示了该分类方法的混淆矩阵,从图中我们可以看出,用训练好的模型对测试样本进行分类后,大多数动作样本能被分类到正确的动作类别标签,这表明本文所提分类方法能取得较好的分类效果,分类准确率高达95.3%.

图4 本文方法在MSRC-12数据集上的混淆矩阵

为了进一步展示本文方法的优越性,我们选择了三种在MSRC-12数据集上取得先进效果的人体骨架行为识别方法与本文提出的基于LSTM的人体骨架行为识别方法进行分类精确度上的比较.其中关节轨迹图(JTM, Joint Trajectory Map)方法[26]将关节轨迹编码成图输入到卷积神经网络中挖掘时空特征;增强的骨架可视化(ESV,Enhanced skeleton visualization)方法[27]将骨架序列进行视角不变的可视化处理后再用于分类模型的训练;生物约束增强方法[28]利用人体骨架的生物特性对骨架数据进行增强后再对骨架序列的时空特征进行挖掘.各种方法的识别精确度如表2所示.可以看出,上述几种方法和本文提出的方法都取得了较高的分类精确度,本文提出的基于LSTM的人体骨架行为识别方法的分类精确度最高,这表明本文提出的基于LSTM的人体骨架行为识别方法是有效的.

表2 4种方法在MSRC-12的分类效果比较

6 结束语

本文提出了一种基于LSTM的人体骨架行为识别方法,该方法通过从骨架数据中提取关节点的位置特征来构建浅层特征序列并用于训练LSTM行为分类器,不仅包含了骨架数据的空间结构信息,还能够学习到人体骨架序列中至关重要的时间动态信息.通过与3个先进的研究成果进行比较,本文提出的人体骨架行为识别方法在MSRC-12数据集上取得了最高的分类准确率.

猜你喜欢
骨架人体分类
人体“修补匠”
浅谈管状骨架喷涂方法
人体冷知识(一)
分类算一算
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
人体可笑堂
分类讨论求坐标
教你一招:数的分类
周博士考察拾零(六十六)日光温室前屋面开机具作业门处骨架的处理方法
说说分类那些事