基于关联分区和ST-GCN的人体行为识别
2021-07-14刘锁兰顾嘉晖王洪元张云鹏
刘锁兰,顾嘉晖,王洪元,张云鹏
常州大学,信息科学与工程学院,江苏 常州213164
人体行为识别(human action recognition)是计算机视觉及机器学习方面的热门研究领域。它在对视频中的人类行为进行运动分析、行为识别乃至延伸至人机交互领域都有着非常广泛的应用。研究初期,人体行为识别主要是以基于静态图像为研究对象。通过提取静态图像中的人体动作特征并对动作进行分类。然而仅基于静态图像来进行识别人体行为的局限性在于人体行为是连续、动态的,单凭一张静态图像无法进行判断识别。而基于视频为研究对象,可以将视频看作连续静态图像的时间序列。近两年,很多基于视频为对象的人体行为识别取得了不错的成果,例如,Gao等人[1]以多视角的视频为基础开发出了一种自适应融合和类别级词典学习模型。除此之外,Akula等人[2]以红外图像为对象提出了一种用于人类动作识别的深度学习方法。因此本文选用基于视频为研究对象。
在通常情况下,人体行为识别有着例如外观、光流、身体骨骼和深度等多种模态[3-7],人们可以通过这些模态建模并传达重要信息进而实现人体行为识别。近几年,比较热门的深度领域有着很多的成果,Kamel 等人[8]利用使用卷积神经网络从深度图和姿势数据中进行人体行为识别。Ji等人[9]利用深度图来将骨骼信息嵌入从而达到对人体进行分区的目的,以及Zhao等人[10]提出了一种贝叶斯分层动态模型用于人类动作识别也取得了不错的效果。而在这些模态当中,人类身体骨骼通常能与其他模态相辅相成并传达重要信息。同时也因为骨骼信息的清晰直观且不易受到人体外观等其他因素的影响,具有良好的鲁棒性。目前,通过系统研究开发具有原则性且有效的方法模拟身体骨骼并提取骨骼信息来实现基于视频的人体行为识别,成为了该领域的热门课题。
通过人体关节位置的时间序列,身体骨骼模态一般以2D 或者3D 坐标的形式来表示,进而分析动作模式,并识别人体行为。早期基于骨骼信息进行人体行为识别仅仅是使用坐标标记关节信息,例如Wang 等[11]和Fernando等人[12]将骨骼信息作为一组坐标点,利用关节之间多种基于位置的特征来形成特征向量,然后进行时序分析达到对人体行为的识别。但是这些方法并不能明确利用人类关节的空间关系,因此识别能力有限,这也对人们理解人体行为造成了很大的阻碍。近些年来一些研究表明,Shahroudy 等人[13]通过关节间的自然连接的行为识别方法,Pham 等人[14]通过利用深度残差网络有效地学习RGB 图像中携带的时空动态信息,以及Song 等人[15]通过基于时空注意力的LSTM 网络将其用于3D动作识别检测都证明了关于人类关节之间的空间关系的重要性。虽然一些模型作为特定的应用设计有着不错的效果,但难以推广到普遍的任务中来,主要原因在于这些方法在分析空间模式时过多依赖手工标注或人为设定的规则。
通常情况下,人体可以看作是由刚性骨骼和铰链关节所组成的铰接系统[16]。躯干和四肢则由骨骼和铰链关节进一步的组合而成。人体行为是由这些躯干和肢体的运动组成。因此,需要一种新的方法用以加强关节之间的空间关系。同时,该方法能够自动捕获并嵌入关节空间配置及其动态模式。基于此,本文在近年热门的时空模型(ST-GCN)[17]基础上提出了一种新型的分区策略。本文的主要贡献如下:首先,提出的分区策略,在基于时空模型基础上相比于传统的ST-GCN方法加强了身体部分的相对位置之间的联系,有利于提高骨架关节点信息在时间和空间上的识别精度;其次,分析了学习率对该模型识别效果的影响。通过设置每轮迭代的学习率达到在一定程度上提升识别精度的目的。
1 相关工作
近些年来,一些基于深度学习的人体行为识别方法在计算机视觉领域有着非常不错的成绩。一个新兴课题就是将神经网络推广到具有图形结构的数据中,其中神经网络主要包括递归神经网络[18-20]和卷积神经网络[21-23],以及对图像卷积网络(CNN)或图卷积网络(GCN)的泛化。构造GCN 的原理一般分为两种:(1)光谱视角,例如Duvenaud 等人[21]使用光谱分析的形式考虑图卷积的局部性;(2)空间视角,Niepert等人[24]将卷积滤波器直接应用于图节点及其相邻节点。提出的时空图卷积网络(ST-GCN)模型遵循第二种精神,通过将每个卷积核的应用限制在每个节点的相邻距离为1的位置上,然后将CNN 卷积核构造在空间域上,从而完成在图形结构上构造图卷积神经网络(GCN)的工作。
如文献所述,基于骨架的人体行为识别方法因对复杂场景具有较强的鲁棒性,因此近些年涌现很多基于骨架的动作识别方法[25]。一般分为两种方法:(1)基于人工特征选择的方法,通过人工设定的特性来捕捉关节运动动态。例如关节的相对位置[26]、关节轨迹的协方差矩阵[27]或是身体部分之间的平移旋转[28]等特性。(2)深度学习方法,基于深度学习进行骨架建模,端到端的动作识别模型通过使用递归神经网络[7,13,29-30]和临时CNNs[31-33]来学习。ST-GCN不同于这些方法,虽然强调了人体关节建模的重要性,但这些部分一般使用领域知识明确分配指定。ST-GCN 将GCN 应用于基于骨架的人体行为识别系统中,在此基础上加入了对识别人体行为非常重要的关节之间的空间关系这一因素,以人体关节为节点,同时连接关节之间的自然联系和相同关节的跨连续时间联系,然后以此为基础构造多个时空图卷积层,沿时空维度进行集成信息。人类对事物的感知取决于先前的记忆活动,而不是从零开始的。例如,当一个人在读一本书的时候,他总是借助记忆中的前一帧内容来理解当前帧内容。换言之,人类思维的过程是连续的。而ST-GCN通过跨连续时间连接空间相同关节的临时边缘使得前后帧关节信息管理具有连续性。因此,ST-GCN相比于传统的骨架建模具有更大的表现能力和更强的泛化能力。图1 所示为在序列骨架图的基础上建立的ST-GCN 示意图。图中每个节点对应于人体的一个关节,主要分为与关节的自然连接相联系的空间边缘,以及连续帧间连接相同关节的临时边缘。
图1 ST-GCN示意图
然而,图1模型在划分骨架关节节点提取节点信息方面仅仅是将相邻节点信息进行聚合。在人身体部分之间的联系方面主要使用了三种分区策略:单标签、距离分区和空间配置分区。这三种分区策略仅仅考虑到了相邻节点之间的联系,并不能充分考虑到人体身体部分之间相对位置的联系对行为识别所起到的重要作用。为了充分发挥ST-GCN 模型在时空域上对骨架关节点信息的重要作用,在原有ST-GCN时空模型的基础上提出了一种新的骨架关节点分区策略,以进一步提高识别的准确率。此外,根据小批量梯度下降思想,本文在训练数据集过程中通过设置不同的迭代学习率,可以有效改善识别准确度且不会增加训练时间。
2 本文算法
ST-GCN是基于图卷积神经网络基础上加强了时空联系的一类模型。相关研究表明局部区域内的关节轨迹的建模会受到整个骨架的限制而形成骨架序列的层次表示,使得这些人体行为识别方法得到了极大的改进。层次表示和局部化在图像对象识别等任务中一般通过卷积神经网络的固有特性来实现。这也是STGCN 模型将CNNs 引入到基于骨架的人体行为识别中的重要原因。它所提出的跨连续时间内对相同关节点进行连接和信息集成,极大地增强了运动连续性信息的关联。
如图2 为本文所提模型结构图。其中输入视频利用OpenPose 提取骨架关节点,在骨架序列中构造时空图,利用新的分区策略和跨连续时间连接空间的方式,提取骨架信息生成更高层次的特征图,然后通过标准的SoftMax 分类器进行动作分类识别。可以从运动捕捉设备或视频的姿态估计算法(OpenPose)中得到基于身体骨骼的数据。通常情况下数据是一系列的帧,每一帧都有一组联合坐标。如图2 所示,根据给定的2D 或3D坐标系下的身体关节序列构造一个时空图。人体关节对应图的节点,而人体身体结构的连通性及时间上的连通性对应图的两类边。因此,图节点的联合坐标向量即为该模型的输入。下面将以ST-GCN模型为基础,介绍应用新型分区策略所做的工作。
图2 本文模型结构图
基于图的卷积的实现不同于2D 或3D 卷积。从传统的2D 自然图像或特征图上的卷积运算的定义来看,它们可被视为二维网格。卷积操作输出的特征图也是一个2D 网格。设一个大小为K×K的卷积核,输入图像为fin,通道数为c。则单个通道在空间位置x的输出值可以写为:
其中,采样函数p表示位置x及其邻域。权重函数w表示权重ω提供c维空间中的权向量,用于计算具有维度c的采样输入特征向量的内积。根据上述公式的卷积操作将其应用到空间图Vt的特征图中,然后下一步是重新定义采样函数p和权重函数w。在图像上,中心像素x的邻域像素为采样函数p(h,ω)。而在图上,定义节点vti邻域集的采样函数B(vti)={vtj|d(vtj,vti)≤D}。其中d(vtj,vti)为vti到vtj的最小路径。因此改进后的采样函数p写作(在这项工作中,选择D=2 来表示所有的根节点的相邻节点集合):
图中的顺序通常是由根节点周围邻域图中的图标记过程定义的[24]。每个根节点的邻居节点都不会拥有独有的标签,而是通过将一个关节节点vti的邻居集B=(vti)划分为固定数量的K个子集来简化这个过程,其中每个子集都有一个数字标签。因此,可以建立一个映射lti:B(vti)→{0,1,…,K-1},将邻域中的节点映射到其子集标签上。构造的权重函数w(vti,vtj)表示为:
将改进的采样函数(2)和权重函数(3)用来表达图卷积公式,得到:
为了充分利用ST-GCN 在时空邻域关节信息集成的优势,本文在设计分区策略中使用了新的分区策略。该分区策略首先在单个帧中使用再扩展至空间-时间域。根据节点到根节点之间的距离来划分邻域集。如图3所示,在该项工作中将D设置为2,并将邻域集分成3 个子集:(1)根节点本身;(2)距离根节点d=1 的邻居节点位于d=1 子集中;(3)剩余距离根节点d=2 的节点位于d=2 子集中。提出的分区策略主要考虑到人体在进行活动时关节的移动形式是以局部小组为单位,及上文所提到的人体身体部分的运动组成。将D设置为2,扩大了整个邻域集,通过关联根节点与更远节点之间的联系从而加强身体各部分信息的关联,使得模型对身体局部信息的感知更具敏感性,从而进一步提升识别精度。
图3 本文分区策略
图3 为本文所提用于构造卷积运算的分区策略。其中,图3(a)为输入框架示例:身体的关节用蓝点表示。D=1 的过滤器的接受域用红色虚线圈表示;图3(b)为所提出的分区策略:这3 个子集分别表示距离为0 的根节点本身(红色),距离为1 的相邻节点(蓝色),以及距离为2的其余相邻节点(黄色)。
为实现基于ST-GCN骨架的动作识别,采用类似于图卷积的表达形式[34]。单帧内关节的自连接由单位矩阵I和表示体内连接的相邻矩阵A表示,在单帧情况下,所提出的分区策略的ST-GCN 可以使用以下公式实现:
对于具有多个子集的分区策略,其中邻接矩阵被拆分成几个矩阵Aj,即在该策略分区中,A0=I和A1+A2=A。
在训练过程中,文献[17]采取了随机梯度下降学习模型,即每次迭代仅使用一个样本来对参数进行更新以加快训练速度,但存在准确度下降以及仅收敛到局部最优等明显缺陷。基于此,根据小批量梯度下降的思想,通过重复实验对比得到每轮迭代所相适应的学习率,在改善收敛性问题的同时并不会增加训练时间,且得到了更高的识别准确度。
3 实验与分析
通过实验评估了ST-GCN 采用新型划分策略之后的识别性能。实验采用了两个不同性质的大规模动作识别数据集:NTU-RGB+D 和Kinetics。由于ST-GCN本身在不同节点上共享权重,所以还需要在不同关节上保持输入数据规模的一致性。首先,在实验中需要将输入骨架提供给批量标准化层以标准化数据。ST-GCN模型主要由9 层空间-时间图卷积算子(ST-GCN 单元)组成。其中前3 层有64 个输出通道,中间3 层128 个输出通道,最后3 层有256 个输出通道。这些层具有9 个临时内核大小。Resnet机制适用于每个ST-GCN单元。并且在每个ST-GCN单元之后以0.5的概率随机丢弃特征以避免过度拟合。其中第4和第7时间卷积层的步幅被设置为2作为汇集层。然后,在重新生成的张量上执行全局池,用来获得每个序列的256 维特征向量。最后,将其提供给SoftMax 分类器。而为了验证相适应的学习率对识别精度提升的有效性,尝试通过人工设置每轮迭代的学习率,并将结果与原始模型中随机梯度下降法的识别结果进行比对。所有实验均在使用1 个1060 6 GB GPU的PyTorch深度学习框架上进行。
3.1 数据集与预处理
NTU-RGB+D:NTU-RGB+D数据集[13]包含了56 880个视频,分为60 个动作类,包括40 种日常动作,9 种运动动作,以及11 种人际互动动作。这些动作由40 名志愿者在实验室环境中采用3 个摄像机同时记录。通过Kinect深度传感器检测并提供注释,在摄像机坐标系中给出3D 关节位置(X,Y,Z),主要包含了人体25 个关节点。
该数据集的作者提供了两种评价方式:(1)基于不同行为主体的评价(X-Sub)。将40 名受试者分为两组。第一组有40 320 个视频用于训练样本,第二组有16 560 个视频作为测试样本。(2)基于不同拍摄视角的评价(X-View)。视频由3 个不同角度的摄像机记录。该设置中的训练片段则是来源于摄像机视图2 和3,共计37 920 个视频。摄像机视图1 提供全部测试样本共计18 960 个视频。根据该设置进行了相关实验并报告两个基准测试的top-1识别准确率。
Kinetics:Deepmind Kinetics 数据集[35]的数据相对丰富,包含了从YouTube 检索到的大约300 000 个视频剪辑。这些视频涵盖了多达400个人类行为,从日常活动及运动场景再到复杂的互动行为,每个动作片段持续约10 s。Kinetics数据集仅提供没有骨架数据的原始视频剪辑。而在这项工作中专注于基于骨架关节的动作识别,所以选择放弃原始RGB 帧而使用像素坐标系中的估计关节位置来作为输入。首先将所有视频的分辨率调整为340×256,同时将帧速率转换为30 frame/s。然后使用OpenPose[25]工具箱来估计剪辑的每个帧上18个关节的位置。根据18个关节点的置信度分数C和像素坐标系中的2D坐标(X,Y),用(X,Y,C)元组来表示每个关节,同时骨架框架被记录为18 个元组的数组。对于多人情况,每个片段中选择平均关节置信度最高的。通过这种方式,一个具有T帧的剪辑被转换为这些元组的骨架序列。关于在实践中表示剪辑,使用(3,T,18,2)维度的张量。
3.2 不同分区策略的ST-GCN实验对比
本文主要提出了一种新的分区策略:将骨架关节点分为3个子集,分别为随机根节点集合,距离根节点为1的关节点集合,以及距离根节点为2的关节点集合。将原始模型中的3种分区策略与本文所提出的分区策略用于Kinetics 数据集和NTU-RGB+D 数据集上,进行对比实验。同时,对新的分区策略通过设置不同的学习率和随机梯度下降学习两种条件下的实验结果进行了比较。
(1)NTU-RGB+D(X-View)实验结果与分析
表1 为基于骨架的NTU-RGC+D 数据集的动作识别性能。采用基于不同拍摄视角(X-View)的实验方法对比了几种分区策略的准确性,其中,*号表示人工设置每轮迭代的学习率参数下新的分区策略的识别率。
从表1的对比结果可以看出,本文所提分区策略得到的识别率相较于原分区策略中的uniform 和distance均有明显提升。仅在第3 种spatial 分区迭代训练至40时比本文的分区策略在top-1高了2.39个百分点。这证明在相同的实验条件下,本文所提分区策略在一定程度上要优于原始分区方法。而在对每轮进行相适应的学习率设置之后,ours*呈现的最优实验结果比ours 结果分别提高3.38个百分点和1.01个百分点。同时,相比于之前的3 种分区方法,无论top-1 还是top-5 的精度均有较大提升,最高由原来的83.42%提升至86.89%,以及98.20%提升至99.11%。
表1 NTU-RGB+D(X-View)实验结果 %
(2)NTU-RGB+D(X-Sub)实验结果与分析
表2 为基于骨架的NTU-RGC+D 数据集的动作识别性能。采用基于不同的行为主体(X-Sub)的实验方法对比了几种分区策略的准确性。可以看出本文的分区策略在NTU-RGB+D的评估下,最终训练结果相比于原文中的3 种分区策略中最好的训练结果在top-1 上有了0.13 个百分点的提升,而在top-5 上仅仅相差了0.05 个百分点。但是,在变化每轮迭代学习率参数之后,可以看出本文的分区策略在top-1 和top-5 的精度相比于采用固定的学习率分别具有0.67 个百分点和0.59 个百分点的提高。这也进一步证明了合适的学习率参数对训练结果有着积极的影响。
表2 NTU-RGB+D(X-Sub)实验结果 %
(3)Kinetics实验结果与分析
表3 为基于骨架的Kinetics 数据集的动作识别性能。从表3可以看出,通过设置相适应的迭代学习率之后,本文的训练结果在top-1和top-5上相比于原文中的distance分区策略识别精度提升最为显著,分别达到4.26个百分点和3.76个百分点。但是,相比于NTU-RGB+D数据集,此处识别精度没有达到预期的提升效果,这主要是由于NTU-RGB+D采集数据时摄像机是固定的,而Kinetics 数据集上视频通常由手持设备拍摄,大镜头运动导致数据稳定性差,从而加大了对身体相对位置之间信息关联的难度。
表3 Kinetics实验结果 %
3.3 不同视角的ST-GCN实验对比
NTU-RGB+D 数据集为在实验室环境中采集。因此,对数据集中的动作以正面和两个侧面视角的数据作为训练集,而将左右45 度视角的数据作为测试集。实验结果如表4所示。
表4 不同视角下的比较 %
通过表4中的数据比对,发现在相同的行为下对不同视角拍摄的数据进行行为识别时,top-1 和top-5 的精确度与训练状态下的最优识别率相当,最大差距约0.1个百分点。可以得出结论,新型分区策略在不同的视角下的行为识别仍具有较高的鲁棒性。
3.4 与其他几种识别技术的对比
为了验证ST-GCN在无约束和约束环境下的性能,将本文所提新型分区策略下的识别方法与当前几种研究热门的识别技术进行识别精确度的对比实验。
(1)在Kinetics 数据集上的对比。主要比较了基于骨架特征的3 种识别方法,即基于是特征编码的方法Feature Enc.,以及基于深度学习的两种方法Deep LSTM和Temporal ConvNet。比较了在top-1 和top-5 精度方面的识别性能,结果如表5所示。
表5 在Kinetics数据集上几种识别技术的对比 %
通过表5 可以发现,新型分区策略下的ST-GCN 相比于其他3种方法中效果最好的Temporal ConvNet,在top-1和top-5的精确度分别提高了2.64个百分点和2.31个百分点。
(2)在NTU-RGB+D 数据集上的对比。与该数据集上,将ST-GCN模型与当前研究先进的几种方法进行比较,包括Lie Group、Deep-LSTM、Temporal ConvNet 以及ClipsCNN+MTLN。分别采用了基于不同拍摄视角(X-View)和不同行为主体(X-Sub)的实验方法来进行实验。实验结果如表6所示。
表6 NTU-RGB+D数据集上与最新技术的比较 %
通过表6 可以发现,新型分区策略下的ST-GCN 相比于其他几种方法中效果最好的ClipsCNN+MTLN,在X-View 和X-Sub 两种实验方法下的识别精度仍分别提高了2.09个百分点和2.59个百分点。同时,对比几种识别方法可以发现,在不同视角下的识别精度整体上均优于不同行为主体实验下的识别精度,最高相差8.8%。这主要是由于不同行为人即便在完成相同动作时仍因行为习惯等因素,导致动作存在较大的差异,这对识别准确率会产生直接影响。
4 结论
本文提出了一种基于ST-GCN 的新型分区策略。不同于ST-GCN原始的分区方法,本文更注重人体身体部分之间的联系对行为的影响,加强了身体相对位置之间的信息关联。在两个具有挑战性的大规模数据集上的测试效果皆呈现部分程度的提高。此外,通过对比实验,证实了变化每轮迭代的学习率相比于随机梯度下降学习法可以进一步提升识别精度。新型分区策略的思想也为今后的工作提供了思路,如何在进行人体行为识别的时候更加注重身体每个部分之间的关联,成为了提升识别率的一个可以深入研究的课题。