翻译:Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition (ST-GCN)

本文提出了一种基于骨架的动作识别模型——时空图卷积网络(ST-GCN),它在骨架序列上构建了一系列时空图卷积,超越了以往方法的局限性。在Kinetics和NTU-RGBD两个大型数据集上,ST-GCN模型显著提升了动作识别的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章链接:https://arxiv.org/abs/1801.07455

Github 代码:https://github.com/yysijie/st-gcn

参考博客:https://blog.youkuaiyun.com/qq_36893052/article/details/79860328

Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition 

基于骨架动作识别时空图卷积网络

 

摘要

人体骨骼动力学传达了人类行为识别的重要信息。传统的应用程序骨架建模通常依赖手工制作的部件或遍历规则,从而导致表达能力有限和推广困难。在这项工作中,我们提出了一种新的动态骨骼模型,叫做时空图卷积网络(ST-GCN),它通过从数据中自动学习时空图,超越了以往方法的局限性。该公式不仅具有更大的表达能力,而且具有更强的泛化能力。在两个大型数据集(KineticsNTU-RGBD)上,它比主流方法有了实质性的改进。

1 介绍

人类行为识别近年来已成为一个活跃的研究领域,因为它在视频理解中发挥着重要作用一般而言,人类行为识别有着多种模态(Simonyan and Zisserman 2014; Tran et al. 2015; Wang, Qiao, and Tang 2015; Wang et al. 2016; Zhao et al. 2017),例如外观、深度、光流和身体骨骼(Du, Wang, and Wang 2015; Liu et al. 2016)等。在这些模态当中,动态人类骨通常能与其他模态相辅相成,传达重要信息。然而,比起外观和光流建模,动态骨骼建模受到的关注较少。在这篇论文中,作者系统地研究这种模态,旨在开发一种原则性且有效的方法模拟动态骨骼,并利用它们进行人类行为识别。

动态骨架模态可以通过人体关节位置的时间序列自然地以2D或3D坐标的形式表示。 然后,通过分析其动作模式可以做到人类行为识别。早期基于骨进行动作识别的方法只是在各个时间步骤使用关节坐标形成特征向量,并对其进行时序分析 (Wang et al. 2012; Fernando et al. 2015)。但这些方法能力有限,因为它们没有明确利用人类关节的空间关系,而这种空间关系对理解人类行为而言至关重要。最近,研究者开发了试图利用关节间自然连接的新方法 (Shahroudy et al. 2016; Du, Wang, and Wang 2015)。这些方法的改进令人鼓舞,表明了骨骼连通性的重要性。然而,现有的大多数方法依赖手动划分的部分或手动设定的规则来分析空间模式。因此,为特定应用设计的模型难以在其他任务中推广。

为了超越这些限制,我们需要一种新的方法,能够自动捕获嵌入关节空间配置中的模式以及关节动力学。这就是深度神经网络的优势所在。然而,如前所述,骨架是以图形的形式而不是二维或三维网格的形式出现的,这使得使用像卷积网络这样的成熟模型变得困难。最近,将卷积神经网络(CNN)泛化到任意结构图形的图卷积网络(GCN)得到了越来越多的关注,而且被成功应用于图像分类 (Bruna et al. 2014)、文献分类 (Defferrard, Bresson, and Vandergheynst 2016)、半监督学习 (Kipf and Welling 2017) 等领域。但是,顺着这条思路,大部分前人的工作都把输入假定为一个固定的图形。GCN在大规模数据集上的动态图模型应用,例如人类骨骼序列,还有待探索

本文提出了一种将图神经网络扩展到时空图模型(ST-GCN)中设计一种用于动作识别骨架序列的通用表示方法。如图1所示,该模型是在一系列骨架图的基础上建立的,其中每个节点对应于人体的一个关节。有两种边缘类型,即与关节的自然连接相联系的空间边缘和跨连续时间步连接相同关节的临时边缘。在此基础上构造了多个时空图卷积层,使得信息能够沿着时空维度进行集成。

图 1 在该工作中使用的骨架序列的空间时间图,其中所提出的ST-GCN在其上运行。蓝点表示身体关节。 身体关节之间的体内边缘基于人体的自然连接来定义。框架间边缘连接连续框架之间的相同关节。 关节坐标用作ST-GCN的输入。

 

ST-GCN的层次性质消除了手工制作的部件分配或遍历规则的需要。 这不仅有助于提高表现力,从而提高性能(如我们的实验所示),而且还可以很容易地推广到不同的背景。 在通用GCN 公式的基础上,我们还研究了设计图形卷积内核的新策略,以及图像模型的灵感。

这项工作的主要贡献在于三个方面:1)我们提出了一种基于通用图的动态骨架建模公式GCN,这是第一个针对这项任务应用基于图的神经网络。2)提出了ST-GCN中卷积核的设计原则,以满足骨架建模的具体要求。3)在两个用于基于骨架的动作识别的大规模数据集上,与以前的方法相比,所提出的模型使用手工绘制的部件或遍历规则获得了更好的性能,而在人工设计方面的工作量则要小得多。ST-GCN的代码和型号已公开发布。

2相关工作

图的神经网络将神经网络推广到具有图形结构的数据是深度学习研究中的一个新兴课题。所讨论的神经网络结构包括循环神经网络(Tai, Socher, and Manning 2015; Van Oord, Kalchbrenner, and Kavukcuoglu 2016) 和卷积神经网络(CNNs) (Bruna et al. 2014; Henaff, Bruna, and LeCun 2015; Duvenaud et al. 2015; Li et al. 2016; Defferrard, Bresson, and Vandergheynst 2016)这项工作更多地与CNN的泛化或图形卷积网络(GCN)有关 在图形上构造GCN的原理大体上遵循两条流:1)光谱透视,在光谱分析的形式中考虑图形卷积的位置 (Henaff, Bruna, and LeCun 2015; Duvenaud et al. 2015; Li et al. 2016; Kipf and Welling 2017);2)空间透视,其中卷积直接应用于图节点及其邻居(Bruna et al. 2014; Niepert, Ahmed, and Kutzkov 2016).这篇文章遵循第二个方法。我们通过将每个卷积核的应用限制在每个节点的1-邻居上,在空间域上构造CNN卷积核。

基于骨架的动作识别人体骨架和关节对光照变化和场景变化具有较强的鲁棒性,很容易得到高精度的深度传感器或姿态估计算法(Shotton et al. 2011; Cao et al. 2017a)。因此,有大量基于骨架的动作识别方法。这些方法可以分为基于特征的方法和深度学习方法。第一类方法设计了几个手工特征来捕捉关节运动的动力学。这些可以是关节轨迹的协方差矩阵(Hussein et al. 2013),关节的相对位置(Wang et al. 2012)或身体部位之间的旋转和平移(Vemulapalli, Arrate, and Chellappa 2014)最近深度学习的成功导致了基于深度学习的骨架建模方法的激增。 这些工作一直使用循环神经网络(Shahroudy et al. 2016; Zhu et al. 2016; Liu et al. 2016; Zhang, Liu, and Xiao 2017) 和时间 CNNs (Li et al. 2017; Ke et al. 2017; Kim and Reiter 2017)以端到端的方式学习动作识别模型在这些方法中,许多都强调了人体内关节建模的重要性。但这些部分通常是使用领域知识明确地指定的。我们的ST-GCN是第一个将图形CNN应用于基于骨架的交互识别的任务。它区别于以前的方法,它可以通过利用图卷积的局部性和时间动力学来隐式地学习零件信息。通过消除手工零件分配的需要,该模型更容易设计,学习更好的表示。

3 时空图卷积网络

当运动的时候,人体在小范围运动的关节称之为“body parts”。现在基于骨骼点的动作识别方法都是具有在建模中具有明确的身体部分(Shahroudy et al. 2016; Liu et al. 2016; Zhang, Liu, and Xiao 2017)我们认为,这种改进很大程度上是由于该部分限制了与“整体骨架”相比“局部区域”内关节轨迹的建模,从而形成了骨架序列的高层次表示。 在图像对象识别等任务中,层次表示和局部性通常由卷积神经网络的内在性质来实现(Krizhevsky, Sutskever, and Hinton 2012)而不是手动分配对象部件。它促使我们将CNN的亲和力引入到基于骨架的动作识别中。这一尝试的结果是ST-GCN模型。

3.1 管道概述

基于骨骼的数据可以从运动捕捉设备或视频的姿态估计算法中获得。通常来说,数据是一系列的帧,每一帧都有一组联合坐标。给定 2D 或 3D 坐标系下的身体关节序列,我们就能构造一个时空图。其中,人体关节对应图的节点,人体身体结构的连通性和时间上的连通性对应图的两类边。因此,ST-GCN 的输入是图节点的联合坐标向量。这可以被认为是一个基于图像的 CNN 模拟,其中输入由 2D 图像网格上的像素强度矢量形成。对输入数据应用多层的时空图卷积操作,可以生成更高级别的特征图。然后,它将被标准的 SoftMax 分类器分类到相应的动作类别。整个模型用反向传播进行端对端方式的训练。现在,我们将介绍 ST-GCN 模型的各个部分。

3.2 骨架图结构

骨架序列通常由每个帧中每个人类关节的2D或3D坐标表示。 以前的工作使用卷积进行骨骼动作识别(Kim and Reiter 2017)连接所有关节的坐标向量,以形成每帧一个特征向量。在我们的工作中,我们利用空间时间图形成骨架序列的层次表示。特别地,我们构造了一个无向时空图G = (V, E)在骨架序列中,N个关节和T帧特征同时具有体内和帧间连接

 在图中,节点矩阵集合V={vti|t=1,...,T,i=1,...N}包括骨骼序列上的所有的关节点。当ST-GCN作为输入的时候,关键点上的第t帧、第i个关节点的特征向量F(vti)是由坐标点坐标以及置信度组成。使用两步构建骨骼序列的时空图。第一步,帧与帧之间的边表示人体对应骨骼点的时序关系;第二步,在每一帧内部,按照人体的自然骨架连接关系构造空间图。这种链接的建立是依靠自然结构的,没有人工手动设计的。这个模型也支持不同数量的骨骼点集上使用。例如,Kinect dataset,我们使用OpenPose(Cao et al. 2017b)工具在2D姿态估计中得到18个骨骼点,在NTU-RCB+D数据集(Shahroudy et al. 2016),我们是用3D骨骼跟踪的输出作为本模型的输入,产生25个骨骼点。ST-GCN可以在两种情况下运行,并提供一致的卓越性能。 图2描述了构建的时空图的示例。

图2:我们对视频进行姿势估计,并在骨架序列上构建时空图。将应用多层时空图卷积(ST-GCN),逐步在图上生成更高层次的特征图,然后用标准的SoftMax分类器将其分类到相应的作用类别。

 

 形式上,边的集合E有两个子集组成,第一个子集是每一帧帧内骨骼点的链接Es={vtivtj|(i,j)∈H},H表示人体骨骼点集合。第二个子集表示不同帧间的链接,EF={vtiv(t+1)i}。因此EF中的每一个边代表一个特定的关节随着时间推移其轨迹。

3.3 空间图卷积神经网络

在深入了解成熟的ST-GCN之前,我们先看单帧内的图CNN模型。在实例中,在时间t的单帧中,有N个关键点Vt,骨骼内的边Es(t)={{vtivtj|(i,j)∈H}。从回想一下,2D自然图像或特征图上的卷积运算的定义来看,它们可被视为二维网格。卷积操作输出的特征图也是一个2D网格。当选用步长为1及恰当的padding,可以使得输出特征图与输入图像保持一样的大小。我们将在下面的讨论中假设这个条件。设一个大小为K x K的卷积核,输入图像为fin,通道数为c。单个通道在空间位置x的输出值可以写为:

    其中采样函数p :Z2Z2→Z2表示位置x及其邻域。在图像卷积中,它也可以表示为pp(x,h,w)=x+p'(h,w)。权重函数w : Z2→Rc表示权重w提供c维实空间中的权向量,用于计算具有维度c的采样输入特征向量的内积。权重函数与输入x的位置无关。因此,输入图像上的所有权重都是共享的。图像域的标准卷积,通过对p(x)中的矩形网格进行编码来实现。该配方的更详细的解释和其他应用可参见(Dai et al. 2017)

 然后将上述公式的卷及操作应用到空间图Vt的特征图。其中特征图fint:Vt→Rc 为在图上的每一个节点的向量扩展的下一步是重新定义采样函数p和权重函数w

采样函数在图上,采样函数p(h,w)被定义为中心像素x的邻域像素。在图上,我们同样定义节点vti邻域集的采样函数B(vti)={vtj|d(vtj,vtiD)}。这里d(vtj,vti)为vtj到vti的最小路径。因此采样函数p:B(vti)→V可以写做

在工作我们对所有情况采用D=1,即关节点为1域集,更多的d留作以后的工作。

权重函数采样函数相比,权值函数更难以定义。 在2D卷积中,中心位置周围自然存在一个刚性网格。所以相邻像素可以具有固定的空间顺序。 然后可以通过根据空间顺序索引(cKK)维度的张量来实现权重函数。对于像我们刚构建的图一般的图,没有这种规律的排布这个问题首先在(Niepert,Ahmed,and Kutzkov,2016)中进行了研究,其中顺序是由根节点周围的领域图中的图标记过程定义的。我们遵循这个想法来构建我们的权重函数。我们不是给每一个域节点一个独的标签,而是通过将一个骨骼点vti的邻居集B(vti)划分成固定数量的K个子集来简化过程,其中每个子集都有一个数字标签。因此我们可以有一个映射lti:B(vti) →{0, . . . , K −1}将邻域中的节点映射到其子集标签权重函数 w(vtj,vti):B(vti)Rc可以通过索引(c,k)维的张量来实现或者

我们将在3.4中讨论几种分区策略

空间图卷积利用改进的采样函数和权重函数,我们现在将图表卷积中的公式1改写为

其中正则化项Zti(vtj)=|{vtk|lti(vtk)=lti(vtj)}|等于相应子集的基数。这一项增加了不同子集的贡献。从公式2,3,4中我们可以得出:

值得注意的是,如果我们将图像视为常规2D网格,则此公式可以类似于标准2D卷积。 例如为了类似于一个3×3旋转操作,我们在3×3网格中以一个像素为中心有一个9像素的邻域,然后将邻域集分割为9个子集,每个子集有一个像素。

时空建模在制定了空间图CNN之后,我们现在开始着手于骨架序列中的时空动力学建模。在图形的构造中,图形的时间方面是通过连接跨连续帧的相同关节来构造的。这使我们能够定义一个非常简单的策略来将空间图CNN扩展到空间TEM通道域。也就是说,我们扩展了邻域的概念,也包括临时连接的关节写做

参数Γ控制时间范围以包含在邻居图中,因此可以称为时间内核大小。为了完成ST图上的卷积运算,我们还需要采样函数权重函数采样函数与空间图唯一的情况相同,并且权重功能,或者特别是标签图lST。 因为时间轴是有序的,所以我们直接修改了标签图lST,将基于vti的时空邻域修改为

其中lti(vtj)vti中单帧情况的标签映射。通过这种方式,我们在构造的空间时间图上有一个明确定义的卷积运算

3.4分区策略

鉴于空间时间图卷积的高级公式,设计分区策略以实现标签图L是很重要的。在这项工作中,我们探讨了几种分区策略为简单起见,我们仅讨论单个帧中的情况,因为它们可以使用公式7自然地扩展到空间 - 时间域

标签。最简单和最直接的竞争策略是拥有子集,即整个邻域集本身。在该策略中,每个邻近节点上的特征向量将具有具有相同权重向量的内积。 实际上,这种策略类似于 Kipf and Welling 2017)中引入的传播规则。 它有一个明显的缺点,即在单帧情况下,使用这种策略相当于计算权重向量和所有相邻节点的平均特征向量之间的内积。 这对于骨架序列分类来说是次优的,因为在该操作中可能丢失局部差分属性。形式上,我们有K = 1lti(vtj)= 0,∀i,j∈V

距离分区另一种自然划分策略是根据节点到根节点vti的距离d(.,vti)来划分邻域集。在这项工作中,因为我们设置了D=1,所以邻居集将被分成两个子集,其中d=0表示根节点本身,其余的邻居节点位于d=1子集中。因此,我们将有两个不同的权重向量,它们能够模拟局部微分特性,例如关节之间的相对平移。形式上,我们有K = 1lti(vtj)=d(vtj,vti)

空间配置分区。由于身体骨架是空间定位的,我们仍然可以在分割过程中利用这个特定的空间配置。我们设计了一种策略,将相邻集分成三个子集:1)根节点本身;2)向心群:比根节点更接近骨架重心的相邻节点;3)离心群。在这里,框架中所有关节的平均坐标被视为其重心。这一策略的灵感来源于这样一个事实:身体部位的运动可以大致分为同心运动和偏心运动。形式上,我们有

其中其中ri是训练集中所有帧上从重心到关节i的平均距离

 三种分区策略的可视化如图3所示。我们将在基于骨架的动作识别实验中对所提出的分割策略进行实证研究。预计更高级的分区策略将带来更好的建模能力和识别性能。

图3 本文提出的用于构建卷积操作的分割策略。从左到右:(a)输入骨骼的框架示例。身体关节以蓝点表示。D=1 的卷积核感受野由红色的虚线画出。(b)单标签划分策略。其中近邻的所有节点标签相同(绿色)。(c)距离划分。这两个子集是距离为 0 的根节点本身,和距离为 1 的根节点相邻节点(蓝色)。(d)空间构型划分。根据节点到骨架重心(图中黑色十字)的距离和到根节点(绿色)的距离的比较进行标记。向心节点(蓝色)到骨架重心的距离比根节点到骨架重心的距离短,而离心节点(黄色)到骨架重心的距离比根节点长。

 

3.5 可学习的边缘重要性加权

虽然人们在做动作时关节是成组移动的,但一个关节可能出现在多个身体部位。然而,这些外观在建模这些部件的动力学时应该具有不同的重要性。在这个意义上,我们在时空图卷积的每一层上都添加了一个可学习的掩模M。该遮罩将根据ES中每个空间图形边缘的已知重要性权重,缩放节点特征对相邻节点的贡献。实验结果表明,加入该掩模可以进一步提高ST-GCN的识别性能。因此,也可以有一个与数据相关的注意地图。我们把这个留给将来的工作

3.6 实现 ST-GCN

基于图形的卷积的实现不像2D或3D卷积那样简单。 在这里,我们提供了有关实现ST-GCN基于骨架的动作识别的详细信息。我们采用类似于图形卷积的实现(Kipf和Welling 2017)。单个帧内的关节的体内连接由相邻矩阵A和表示自连接的单位矩阵I表示。 在单帧情况下,具有第一个分区策略的ST-GCN可以使用以下公式实现(Kipf和Welling 2017)

其中Λii = j(Aij + Iij ).这里,多个输出通道的权重向量被堆叠以形成权重矩阵W.实际上,在空间时间情况下,我们可以将输入特征图表示为(C,V,T)维度的张量。 通过形成1×Γ标准2D卷积并将得到的张量与第二维上的归一化邻接矩阵Λ-1/2(A + I)Λ-1/2相乘来实现图卷积。

 对于具有多个子集的分区策略,即距离分区和空间配置分区,我们再次利用该实现。但请注意,现在邻接矩阵被拆分成几个矩阵Aj,即A + I =ΣjAj。 例如,在距离分区策略中,A0 = I 和A1 = A公式9转化为

其中近似的Λjii = k(Ajik )+α。这里设置α = 0.001避免Aj中出现空行

 实现可学习的边缘重要性加权是直截了当的。 对于每个邻接矩阵,我们伴随着可学习的权重矩阵M并且我们分别用(A + I)MAjM代替等式9中的矩阵A + IAj在等式10中的矩阵Aj。这里表示两个矩阵之间的元素积。掩码M被初始化为一个全一矩阵

网络架构和训练由于ST-GCN在不同节点上共享权重,因此保持输入数据的规模在不同关节上保持一致是很重要的。在我们的实验中,我们首先将输入骨架提供给批量标准化层以标准化数据。 ST-GCN模型由9层空间时间图卷积算子(ST-GCN单元)组成。前三层有64个输出通道。 以下三层有128个输出通道。 最后三层有256个输出通道。 这些层具有9个临时内核大小。 Resnet机制适用于每个ST-GCN单元。并且我们在每个ST-GCN单元之后以0.5概率随机丢弃特征以避免过度拟合。第4和第7时间卷积层的步幅被设置为2作为汇集层。 之后,在重新生成的张量上执行全局池,以获得每个序列的256维特征向量。 最后,我们将它们提供给SoftMax分类器。 利用随机梯度下降学习模型,学习率为0.01。 我们在10个时期之后将学习率降低了0.1。为了避免过度拟合,我们在对Kinetics数据集进行训练时执行两种增强来替换丢失层(Kay et al.2017)。首先,为了模拟相机运动,我们对所有帧的骨架序列进行随机仿射变换。 特别地,从第一帧到最后一帧,我们选择几个固定角度,平移和缩放因子作为候选,并且随机采样三个因子的两个组合以产生仿射变换。 对于中间帧插入此变换以生成效果,就好像我们在回放期间平滑地移动视点一样。 我们将这种增强命名为随机移动。 其次,我们在训练中随机对原始骨架序列中的片段进行采样,并使用测试中的所有帧。 网络顶部的全局池使网络能够以无限长度处理输入序列我们还将ST-GCN模型与此数据集上先前最先进的方法进行了比较。 由于此数据集的约束性质,我们在训练ST-GCN模型时不使用任何数据扩充。 我们遵循文献中的标准实践,根据top-1个分类准确度报告跨主题(X-Sub)和交叉视图(X-View)识别性能。

4 实验

在本节中,我们评估了ST-GCN在基于骨架的动作识别实验中的性能。 我们在具有巨大不同性质的两个大规模动作识别数据集上进行实验:Kinetics人类行为数据集(Kinetics)(Kay等人2017)是迄今为止最大的无约束动作识别数据集,以及NTU-RGB + D(Shahroudy等人。 2016)最大的内部捕获动作识别数据集。 特别是,我们首先对Kinetics数据集进行详细的消融研究,以提出所提出的模型组件对识别性能的贡献。 然后我们将ST-GCN的识别结果与其他最先进的方法和其他输入方式进行比较。 为了验证我们在无约束设置中获得的体验是否是通用的,我们尝试NTU-RGB + D上的约束设置,并将ST-GCN与其他最先进的方法进行比较。 所有实验均在使用8个TITANX GPU的PyTorch深度学习框架上进行。

4.1 数据集和评估指标

KineticsDeepmind Kinetics人类行为数据集(Kayet al.2017)包含从YouTube检索到的约300,000个视频剪辑。 这些视频涵盖多达400个人类行动课程,从日常活动,运动场景到复杂的互动行动。 Kinetics中的每个片段持续约10秒。

此Kinetics数据集仅提供没有骨架数据的原始视频剪辑。 在这项工作中,我们专注于基于骨架的动作识别,因此我们使用像素坐标系中的估计关节位置作为输入并丢弃原始RGB帧。 为了获得关节位置,我们首先将所有视频调整为340×256的分辨率,并将帧速率转换为30 FPS。 然后我们使用公共可用的OpenPose(Cao等人2017b)工具箱来估计剪辑的每个帧上18个关节的位置。 工具箱给出了像素坐标系中的2D坐标(X,Y)和18个人体关节的置信度分数C. 因此,我们用(X,Y,C)元组表示每个关节,并且骨架框架被记录为18个元组的数组。 对于多人案例,我们选择每个片段中平均关节置信度最高的2个人。 以这种方式,具有T帧的一个剪辑被转换为这些元组的骨架序列。 在实践中,我们用(3,T,18,2)维度的张量表示剪辑。 为简单起见,我们通过从一开始重放序列来填充每个剪辑,使其具有T = 300.我们将在Kinetics上释放估计的关节位置以再现结果。

我们根据数据集作者推荐的top-1和top-5分类准确度来评估识别性能(Kay等人2017)。 该数据集提供240,000个剪辑的训练集和20,000的验证集。 我们在训练集上训练比较模型,并在验证集上报告准确度

NTU-RGB+D: NTU-RGB+D(Shahroudy et al. 2016)是目前最大的具有三维关节注释的人工动作识别任务数据集。 该数据集包含60个动作类中的56,000个动作片段。 这些剪辑全部​​由在受限制的实验室环境中捕获的40名志愿者完成,同时记录三个摄像机视图。所提供的注释在摄像机坐标系中给出3D关节位置(X,Y,Z),由Kinect深度传感器检测 。 骨架序列中每个受试者有25个关节。 每个剪辑保证最多有2个主题。

该数据集的作者推荐了两个基准:1)交叉主题(X-Sub)基准40,320和16,560个剪辑用于训练和评估。在此设置中,训练片段来自演员的一个子集,模型将根据其余演员的剪辑进行评估; 2)交叉视图(X-View)基准37,920和18,960个剪辑。 此设置中的训练片段来自摄像机视图2和3,评估片段全部来自摄像机视图1.我们遵循此约定并报告两个基准测试的top-1个识别准确度

4.2 消融研究

我们通过Kinetics数据集上的动作识别实验检验了ST-GCN中提出的组分的有效性(Kay et al.2017)

时空图卷积首先,我们评估了使用时空图卷积运算的必要性。我们使用基线网络架构(Kim和Reiter,2017年),其中所有时空卷积仅由时间卷积重新放置。也就是说,我们将所有的输入关节位置连接起来,在每一帧T上形成输入特征。然后时间卷积将对这个输入和随时间卷积进行操作。我们称这种型号为“基线TCN”。这种识别模型在约束数据集(如NTU-RGB+D)上工作良好(Kim和Reiter,2017年)从表1中看到具有时空图卷积的模型,具有合理的划分策略,在Kinetics上始终优于基线模型。实际上,这种时间卷积等价于完全连接的关节图上具有非共享权重的时空图卷积。因此,基线模型和ST-GCN模型的主要区别在于卷积运算中稀疏的自然连接和共享权重。此外,我们评估了基线模型和ST-GCN之间的中间模型,称为“局部卷积”。在该模型中,我们使用稀疏关节图作为ST-GCN,但使用非共享权重的卷积滤波器,我们相信基于ST-GCN的模型的较好性能可以证明基于骨架的动作识别中时空图卷积的力。

表1:Kinetics 数据集的消融研究。 “ST-GCN + Imp”用于与其他最先进的方法进行比较。 有关各设置的含义,请参阅4.3节  

 

分区策略在这项工作中,我们提出了三种分区策略:1)单标签;2)距离分区;3)空间配置分区。我们用这些划分策略评估ST-GCN的性能,结果汇总在表1中。我们观察到,使用多个子集进行划分通常比使用单标签要好得多。这与单标签明显存在的问题一致,即它相当于卷积运算前简单地求特征的平均值。鉴于这一观察结果,我们在距离分割和单标签之间进行了一个中间试验,称为“距离分割*”。在此设置中,我们将距离分区中的两个子集的权重绑定为仅通过缩放因子-1或w0 = -w1而不同。 此设置仍然实现了比单标签更好的性能,这再次证明了使用多个子集进行分区的重要性。 在多子集划分策略中,空间配置划分实现了更好的性能。这证实了我们设计该策略的动机,其考虑了同心和偏心运动模式。 基于这些观察,我们在以下实验中使用空间配置分区策略

可学习边缘重要性加权ST-GCN的另一个组成部分是可学习边缘重要性加权。我们尝试在ST-GCN模型上添加该组件,并对其进行空间配置划分。这在表1中称为“ST-GCN+IMP”。考虑到高性能的Vanilla ST-GCN,该组件仍然能够将识别性能提高1%以上。回想一下,该组件的灵感来源于不同部件中的关节具有不同的重要性。结果表明,ST-GCN模型能较好地表达联合重要性,提高识别性能。基于这一观察,我们总是将此组件与ST-GCN与其他最先进的模型进行比较。

4.3 与最新技术的比较

为了验证ST-GCN在无约束和约束环境下的性能,我们分别对Kinetics数据集进行了实验(Kay等人以及NTU-RGB+D数据集(Shahroudy等人2016年)

KineticsKinetics上,我们比较了基于骨架的动作识别的三种特征方法。 第一个是针对手工制作的特征的特征编码方法(Fernando等人2015),在表2中称为“特征编码”。我们还Kinetics实施了两种基于深度学习,即深度LSTM(Shahroudyet al.2016) )和Temporal ConvNet(Kim和Reiter 2017)。我们比较了这些方法在top-1和top-5精度方面的识别性能。 在表2中,ST-GCN能够胜过以前的代表性方法。 作为参考,我们列出了使用RGB帧和光流进行识别的性能(Kay et al.2017

表2:基于Kinetics 数据集的骨架模型的动作识别性能。在表的顶部,我们列出了基于帧的方法的性能

表3:NTU-RGB+D数据集上基于骨架的动作识别性能。我们报告了交叉主题(X-SUB)和交叉视图(X-VIEW)基准点的精度。

NTU-RGB+DNTU-RGB+D数据集是在一个约束环境中捕获的,该环境允许需要良好稳定的骨架序列才能正常工作的方法。我们还将ST-GCN模型与此数据集上先前最先进的方法进行了比较。 由于此数据集的约束性质,我们在训练ST-GCN模型时不使用任何数据扩充。 我们遵循文献中的标准实践,根据前1个分类准确度报告交叉主题(X-Sub)和交叉视图(X-View)识别性能。比较方法包括Lie Group(Veeriah,Zhuang和Qi 2015),Hierarchical RNN(Du,Wang和Wang 2015),Deep LSTM(Shahroudyet al.2016),Part-Aware LSTM(PA-LSTM)(Shahroudy等)。 2016),具有信任门的空间时间LSTM(ST-LSTM + TS)(Liu等人2016),时间卷积神经网络(Temporal Conv。)(Kim和Reiter 2017),以及Clips CNN +多任务学习(C-CNN + MTLN)(Ke等人,2017)。 我们的ST-GCN模型具有相当简单的架构,并且没有(Kim和Reiter 2017; Ke等人.2017)中使用的数据增强,能够超越此数据集上先前的最先进方法

讨论实验中的两个数据集具有非常不同的性质。 在Kinetics上,输入是用深度神经网络检测的2D骨架(Cao等人,2017a),而在NTU-RGB + D上,输入来自Kinect深度传感器。 在NTU-RGB + D上,摄像机是固定的,而在Kinetics上,视频通常由手持设备拍摄,导致大镜头运动。 所提出的ST-GCN在两个数据集上都能很好地工作的事实证明了所提出的时空图卷积运算和所得到的ST-GCN模型的有效性。我们还注意到,在Kinetics方面,基于骨架的方法的精确度低于基于视频帧的模型(Kay等人2017年)。我们认为,这是由于Kinetics中的许多动作类需要识别参与者正在与之交互的对象和场景。为了验证这一点,我们选择了30个与身体运动密切相关的类的子集,命名为“Kinetics Motion”,并在表4中列出了骨架和基于框架模型(Kay等人,2017)的平均类精度。我们可以看到,在这个子集上,性能差距要小得多。我们还探讨了利用ST-GCN在双流式动作识别中捕捉动作信息的方法。如表5所示,我们的基于骨架的模型ST-GCN还可以为RGB和光流模型提供补充信息。我们训练标准TSN(Wang等人2016年)用RGB和光流模型从Kinetics划分中得出的模型。将ST-GCN加入到RGB模型中,得到了0.9%的增长,甚至优于光流(0.8%)。结合RGB、光流和ST-GCN,性能进一步提高到71.7%。结果清楚地表明,当有效利用(例如使用ST-GCN)时,骨架可以提供补充信息。

表4:Kinetics 数据集的子集“Kinetics Motion”的平均等级精度。这一子集包含了30个与身体运动密切相关的Kinetics动作类。

 

表5:没有ImageNet预训练的Kinects数据集的类精度。 虽然我们基于骨架的模型ST-GCN无法实现对RGB和光流模式执行的最先进模型的精确度,但它可以提供比基于光流模型更强的补充信息

 

5 总结

本文提出了一种新的基于骨架的动作识别模型-时空图卷积网络(ST-GCN)。该模型在骨架序列上构造了一组时空图卷积。在两个具有挑战性的大规模数据集上,所提出的ST-GCN优于先前最先进的基于骨架的模型。此外,ST-GCN还可以捕获动态骨架序列中的运动信息,这是对RGB模态的补充。基于骨架的模型和基于帧的模型的组合进一步改善了动作识别中的性能。ST-GCN模型的灵活性也为今后的工作开辟了许多可能的方向。例如,如何将场景、对象和交互等上下文信息合并到ST-GCN中成为一个自然问题。

 

 

### Skeleton-Based Action Recognition Research and Techniques In the field of skeleton-based action recognition, researchers have developed various methods to interpret human actions from skeletal data. These approaches leverage deep learning models that can effectively capture spatial-temporal features inherent in sequences of joint positions over time. One prominent technique involves utilizing recurrent neural networks (RNNs), particularly long short-term memory (LSTM) units or gated recurrent units (GRUs). Such architectures are adept at handling sequential information due to their ability to maintain a form of memory across timesteps[^1]. This characteristic makes them suitable for modeling temporal dependencies present within motion capture datasets. Convolutional Neural Networks (CNNs) also play an essential role when applied on graphs representing skeletons as nodes connected by edges denoting limb segments between joints. Graph Convolutional Networks (GCNs) extend traditional CNN operations onto non-Euclidean domains like point clouds or meshes formed around articulated bodies during movement execution phases[^2]. Furthermore, some studies integrate both RNN variants with GCN layers into hybrid frameworks designed specifically for this task domain; these combined structures aim to simultaneously exploit local appearance cues alongside global structural patterns exhibited throughout entire pose configurations captured frame-by-frame via sensors such as Microsoft Kinect devices or other depth cameras capable of tracking multiple individuals performing diverse activities indoors under varying lighting conditions without requiring any wearable markers attached directly onto participants' limbs/skin surfaces. ```python import torch.nn.functional as F from torch_geometric.nn import GCNConv class ST_GCN(torch.nn.Module): def __init__(self, num_features, hidden_channels, class_num): super(ST_GCN, self).__init__() self.conv1 = GCNConv(num_features, hidden_channels) self.fc1 = Linear(hidden_channels, class_num) def forward(self, x, edge_index): h = self.conv1(x, edge_index) h = F.relu(h) h = F.dropout(h, training=self.training) z = self.fc1(h) return F.log_softmax(z, dim=1) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值