【论文阅读】Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

在这里插入图片描述

摘要

动态人类骨架能够为人体行为识别传递大量的信息。传统的对人体骨架建模的方法是依赖于手工涉及或者遍历规则的,导致的结果就是表达力不强且泛化困难。在这里提出一种创新的动态骨架建模方法ST-GCN,能自动从数据中学习空间和时间特征。

引言

人体的行为可以由集中形式被识别:外观、光流和骨架。其中骨架蕴含大量信息,所以本文系统地研究了这种形式,将骨架运用到行为识别方向。
动态的骨架能够自然地由2D或者3D的人类关节点坐标的时间序列表示,由此可以分析人体行为的运动模式。以前的方法是简单地使用不同时间点上的关节坐标形成特征向量,然后应用到空间分析上。这种做法不能找到关节点之间的空间关系,空间关系是理解人体行为的关键所在。新的一些利用关节之间自然连接关系的办法也出现了,这些办法揭示了连接性的重要性。但是,这其中的很多办法是依赖于人工设计或者一些规则去分析空间特征。最后的结果就是,这些方法是为特定的应用场景而设计,不具普适性。
本文的方法能够自动地捕获嵌入在空间构型和动态时序中的特征。这就是深度神经网络的厉害之处。骨架作为骨结构,不是2D或者3D的网格形式存在的,因此用卷积神经网络建模就比较困难。最近出现的图卷积神经网络,将CNNs推广到任意的图结构,已经受到大量的关注,也成功应用到诸如图片分类,文件分类和半监督学习中。这些工作的输入都是固定大小的图结构。用GCNs在大规模数据集的基础上对动态图建模,还没有探索过。
因此,本文针对行为识别设计了一种具有普适性的骨骼序列表示法——通过扩展图神经网络到时空图模型上,这个模型被称为ST-GCN。

图1 骨骼序列的时空图结构。蓝色的点表示身体的关节。包含两种类型的连线,分别叫空间连线(spatial edges)时间连线(temporal edges)。身体关节点之间的连线构成了人体自然的连接,这就是spatial edges。同一关节处的连线连接了连续的帧,这是temporal edges。关节点位置就是ST-GCN的输入。多层时空图卷积在此基础上建立,整合了大量的空间和时间维度上的信息。
ST-GCN分层的特点使得其不需要手工设计和遍历的规则。表达力增强且具有普适性。在GCN的基础上,研究了新的设计图卷积核的方法。

相关工作

1.图神经网络。此处所指网络包括循环神经网络和卷积神经网络。作者提到了一些之前的工作,建立GCNs的原则一般有两个流派:
1)基于光的观点,以光分析的形式建立图卷积。
2)基于空间的观点,卷积核直接用于图节点和相邻节点上。
本研究遵循第二个观点。在空间上建立了CNN卷积核,通过将每个卷积核的应用限制到每个空间节点的1个邻节点。
2.基于行为识别的骨架。骨架和关节轨迹在光照变化和场景变化中具铝棒性,且因为高准确度的深度传感器和姿态估计算法,骨架和关节轨迹比较容易获取。有大量的基于骨架的行为识别方法。大致可以分为手工设计方法深度学习方法手工设计方法设计出一些手工特征去捕捉动态的关节运动。这些特征可能是关节轨迹的协方差矩阵,关节相对位置或者是身体部位之间的旋转和平移。深度学习方法使用端到端的循环神经网络和时序CNNs学习行为识别特征。在这些方法中,很多都强调了对身体内关节建模的重要性。但是这些身体部位通常需要使用专业领域知识进行明确分配。ST-GCN是第一个将图CNNs运用到基于骨架的行为识别中的方法。和以前的方法不同,ST-GCN能够通过利用图卷积的局部性和时间动态性来隐式地学习身体部位信息。通过消除手动分配身体部位的需求,该模型更易于设计,并且可以有效地学习更好的动作表示。

时空图卷积

当做动作的时候,人体的关节在局部运动,这个局部就是“身体部位”。现存的方法证明了在建模中引入身体部位的有效性。作者认为这样的有效性主要是因为身体部位限制了关节轨迹模型在“局部区域”中,而不是在整个骨架中,因此用分层的表示方法来表示骨架序列。在图片目标检测任务中,通常通过卷积神经网络的固有属性来实现层次表示和局部性,而不是通过人工分配的方式。

流程概览

骨架数据能够通过运动捕捉设备或者姿态识别算法从视频中得到。通常这些数据是一系列的帧,每一帧都有很多关节坐标。假设关节坐标都是以2D或者3D坐标形式存在,那么将关节作为图节点,将人体结构中天然的连线和帧与帧间时间的连线作为图的连线,建立一个时空图。因此ST-GCN的输入时关节坐标向量。多层时空图卷积操作将会应用在输入数据上,产生更高级的特征图。之后会通过标准的SoftMax分类器进行分类,得到相应的动作分类,整个模型以端到端的方式进行后向传播训练。

骨架图架构

骨架序列通常以每一帧中的每个关节的2D或者3D的坐标表示。之前的工作使用了卷积,连接所有关节的坐标向量形成每帧的特征向量来做骨架行为识别。在本研究中,利用时空图形成分析的骨架序列表达。在骨架序列上,建立无向时空图G=(V, E),其中包含N个关节和T帧,可做体内和帧间的连接。
在图中,点V={vti|t=1, …, T, i=1, …, N},包括骨架序列中的所有关节点。作为ST-GCN的输入,在第t帧的i关节点上的特征向量F(vti)包含坐标向量,同时也包含预估置信度。建立骨架序列的时空图有两个步骤:第一步,根据人体结构,用线把在同一帧中的所有关节连起来。在连续的帧中,每个关节都将与这个关节连接在一起(也就是时间连线)。第一步的工作不需要人工去分配身体部位,也能使得网络结构能够在具有不同数量的关节或者关节连接的数据集中正常运行。例如,在Kinetics数据集中,使用OpenPose得到的2D姿态预估结果,输入18个关节点,在NTU+RGB+D数据集中,使用3D的跟踪结果作为输入,有25个关节点。ST-GCN可以在以上两种情况下运行且能提供一样的极好的性能表现。下面给出一个例子来说明构建图1所示的时空图。
边集E有两个子集,第一个子集描述了每帧骨架内部的连接,用ES = {vtivtj|(i,j)∈H}表示,H表示自然的人体关节点集合。第二个子集包含帧间连线,连接了不同时间帧的同一个关节,用EF ={vtiv(t+1)i}来表示。因此EF中,对于特定关节j的所有连线,将会代表其随着时间的轨迹。

时空卷积神经网络

在进入成熟的ST-GCN研究前,首先看看图CNN模型的一个单独帧。在τ时刻的单独帧中,有N个关节点Vt ,同时有边ES = {vtivtj|(i,j)∈H}。回想一下2D图片或者特征图上的卷积定义,都可以视为2D网格。卷积操作后输出的特征图也是2D网格。当步长为1,padding适当的时候,输出的特征图会和输入的特征图拥有一样的大小。
给定卷积核大小K×K,输入的特征图fin 有c个通道。单通道在空间位置x输入的值可以表达为:
在这里插入图片描述
采样方程p:Z2 ×Z2 →Z2 枚举出了位置x上的邻点。在图片卷积中,可以将p表示为:
p(x,h,w)=x+p’(h,w)
权重方程w:Z2 → Rc 得到在c维空间中的权重向量,再利用维度为c的采样输入特征向量计算内积。注意权重方程和输入的位置x不想管。因此卷积核权重对输入图片共享。图片领域标准的卷积能够对p(x)中的矩形网格编码。
通过将上述公式扩展到位于空间图Vt 的输入特征图的情况,来定义图上的卷积运算。即特征图在这里插入图片描述
在每一个节点上有一个向量,扩展的下一步是重新定义采样函数p和权重函数w。

### 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、付费专栏及课程。

余额充值