基于多分支LSTM 网络的行为识别
2021-05-16罗毛欣王天赋白晓晨
罗毛欣 王天赋 白晓晨 周 达
(西安工程大学,陕西 西安710006)
1 概述
分析人类行为一直是机器视觉中最具挑战性的问题之一[1]。行为识别技术的需求发展迅速,并已经扩展到许多领域,比如智慧城市和视频理解[2]。尽管行为识别在过去被广大学者进行了广泛地研究,但动作识别仍然面临着许多的挑战,例如光线变化和背景遮挡。在深度学习技术[3]兴起之前,传统的手工操作的动作识别仍然占有很重的地位。同时,改进的密集轨迹(iDT)[4]通过整合沿着密集轨迹的丰富描述符和补偿相机运动的运动特征,实现了优越的性能。然而,与传统方法相比,其优势并不明显。最近,基于深度学习可以根据输入数据的类型分为基于RGB 和基于骨架的行为识别方法[5],与基于RGB 的动作识别相比,基于骨骼的动作识别可以避免从视频中提取特征的繁琐任务。对于基于骨架的方法,可以简单分为三个大类:二维和三维行为识别及LSTM方式。因此,本文在LSTM架构下构建了深度多分支LSTM 网络来进行行为识别并且在所用数据集上已经取得了良好的行为效果。
在本文工作中,为了更有效的学习骨架坐标数据的特征,通过LSTM 有效的连接和交叉叠加,提取骨架坐标共现特征信息来行为识别。
2 数据集的数据预处理
为了更详细地描述骨架关节信息以及方便所设计网络框架更好的工作,我们需要对图像数据集先进行进一步地处理。首先利用姿态估计框架openpose 和人体检测模型YOLOV3分别检测人体骨架。同时,YOLOv3 模型还可以对骨架图像数据集标记一个动作类别。然后,以身体重心为坐标参考点(0,0),可以将关节的相对位置转换为18 个关节点位置的xy 坐标。转换后的数据集由骨架坐标(x, y)和与之相应的动作标签(0,1,2,…)数字组成。
在本文中,我们使用了RGB 数据集和UTKinect 数据集。RGB 数据集包含很多对象的不同动作样本。UTKinect 数据集有10 种动作类型: 坐下、走路、站起来、捡起、扔出去、推、拉、挥手、抬起来以及拍手的动作。并且有10 个实验对象,每个实验对象操作每个动作共计两次。在实验期间,我们选择其中70%的数据集作为实验的训练集,并选择其中30%作为实验验证集。与此同时,在这些验证集中的80%又属于是测试集。
3 深度多分支LSTM 网络构建
以骨架的为特征选择行为识别,每个关节与其它关节之间并非相互独立的,恰好相反,关节与关节以及关节与动作之间是存在密切联系的关系的,这种联系对于行为识别提高识别率特别重要。因此,考虑关节与关节相互联系并且以此为契机设计一个网络能充分挖掘隐藏信息是网络设计的关键。同时也出于对以下要点的考虑:LSTM 无法直接学习关节坐标特征的高级信息,同时所用的数据集并未携带上下文语义信息。这对直接用LSTM进行识别是不太准确的。因此,综合上述因素同时为了减轻模型过拟合的问题,同时使LSTM更有效地学习坐标数据的共现特征,我们设计了一个基于LSTM 深度多分支LSTM网络用于学习有效的特征并且对时域的动态过程建模,实现端到端的行为识别以及检测。
图1 基于LSTM 的深度多分支LSTM 行为识别框架图
如图1 所示,经过上述过程处理的人体骨架的十八个关节点坐标可作为整个网络的输入,多次经过深度多分支LSTM以及全连接层的多次轮换迭代,最后用softmax 分类器来进行行为分类。具体而言,图中所示的网络体系结构具有N 层的四分支LSTM结构,可以用于学习具有骨架关节的坐标信息,并与N-1个全连接层交错,正是结构多次交错出现,使得很多关节隐藏特征被学习以及进一步挖掘关节之间的各种联系。可以明显看见整个网络后端通过LSTM 层和全连层(FC Layer)组成的深度LSTM 网络(Deep LSTM Network),最后,将输出的结果发送到Classification Network(softmax 分类器)以进行操作判定每帧的动作类别。同时整个网络着重于人体行为动作的特点,于是我们在LSTM网络设计中有意将人体行为动作中关节点具有的共现性特性引入进来,与此同时将其作为网络参数学习的约束来优化整个网络的识别性能。这是因为人的某个行为动作常常和骨架的一些特定关节点构成的集合,以及对应集合中节点是交互相关并且对识别效果影响起着关键作用的。(例如要判别一个人是否在打电话,关节点“手肘”、“手腕”、“肩膀”和“头”的关联动作是最为关键。)而对于不同的行为动作与之密切相关的节点集合又有所不同。(例如一个人“走路”的动作判别关键在于“膝盖”、“脚腕”以及“臀部”等关节点构成具有判别力的节点集合是否能准备识别出来。所以我们可以将这种几个关节点同时影响和决定判别的特性称为共现性(Co-occurrence))。因此在网络整个训练阶段,在目标函数中我们引入了对神经元与关节点相连的权重的约束,从而使得同一组的神经元对某些关节点或者说是关键关节点组成的子集有更大的权重连接,而对其它节点(非关键的关键点)有较小的权重连接,上述操作来进一步去挖掘关节点的共现性。
网络整体优势在于:一方面,本身LSTM充分利用了骨骼关节坐标之间的长期依赖关系,并且通过全连接层学习了关节坐标之间的全局共现特征。另一方面,在此基础上,初始层使用多分支LSTM,使得同一数据的多个输入成为一种优势,这种优势可以在数据增强中发挥作用,以此来减轻模型训练期间过拟合,此外,在最后一层中又加了LSTM用于更好地学习骨架关节的坐标信息。正是因为上述各种LSTM层和全连接层这种交错结构,使得模型达到了良好的识别效果。为了进一步验证所设计网络的行为识别效果,我们将在两个数据集上进行实验并进行相应的对比。本文主要研究了深度多分支LSTM网络与其层数之间的关系,网络层数的变化是否会引起模型泛化能力和网络学习能力和相对应的变化,我们做了如下的参数:所有全连接层神经元个数为100;最初的四分支网络的每一个分支的神经元个数设置为64,在交叉叠加的第二层LSTM 起,我们设置每一个LSTM层神经元个数为128。以此同时,优化算法采取Adam 算法;损失函数我们采用交叉熵损失,最后网络训练批次设置为300 以及批大小设置为128。
4 实验结果与分析
表1 不同LSTM 层数的深度多分支LSTM 网络性能对比
从上述表格可以明显看出,二层的LSTM网络在两个数据集上的训练准确率以及测试准确率效果都不是太好。而且随着层数从2 到6 依次增加的过程中,训练和测试识别率整个呈现出一个上升的趋势,但也并非都是增加,如RGB 数据集上训练准确率在五层就到达峰值,六层反而下降,这也说明了识别率和数据集本身特点有关,而且网络层数不是越深越好,整个走势应该是一个抛物线,当达到一定层数,增加不仅会降低识别率还会带来复杂度大大增大,进一步导致网络训练时间增加以及其它各种问题。总之,在UTKinect 数据集上的6 层的LSTM的训练和测试准确性分别达到94.11%和92.69%,而RGB 数据集上的6 层LSTM 的训练和测试准确性分别达到92.45%和89.5%,这应该是相对于其他层识别率最佳的一种层数吧。其中原因可能如下:
深度多分支LSTM网络结构使用LSTM与全连接的层结合的方式来学习全局共现特征,这可以使深度LSTM可以更好地对学习关节坐标之间的长期依赖关系。此外,相同数据的多个输入可起到增强数据的作用。而且由于LSTM网络对时间序列处理的强大能力,加上联合共现特征判别分类设计,实现了快速准确的行为动作检测。最后我们通过对每组神经元和关节点的连接加入相应约束来达到上述共现性的充分挖掘和利用。但是,因为所用的训练数据集中的数据量特别少,尤其相对于目前常用的大型数据集(计算速度相对快一些)相比,因此难以完全优化深度多分支LSTM网络,并且该网络容易过度拟合。总之,多分支策略适当提高了行为识别的识别率。
5 结论
本文研究了基于骨架关节二维坐标的行为识别方法,并且我们以骨架数据为特征选择的基础上提出了深度多分支LSTM网络结构,通过结构交错重叠发挥挖掘关节隐藏信息的优势,并且引入关节点共现性约束。并且在在实验中比较了不同层数的网络体系结构。实验结果表明,所提出的模型可以提高两个数据集的识别性能,并获得好的结果,同时怎样挖掘关节点之间的隐藏信息以及相互联系会是未来行为识别的大势所趋。