基于骨架的动作识别方法:ST-GCN

前言

毕设要用到基于图神经网络的动作识别方法,因此要阅读一系列GCN相关文章,后面会出一个专门关于GCN的专栏。

论文全称:Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition,AAAI 2018。

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

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

摘要与论文贡献

人体骨骼间的相互作用为人类的动作识别提供了重要的信息。传统的骨骼建模方法通常依赖于特别制定的模块或相关的遍历规则,从而导致了有限的表达能力和泛化困难。在这项工作中,这篇提出了一种新的动态骨架模型,称为时空图卷积网络(ST-GCN),它通过自动从数据中学习空间和时间维度的信息为下游任务做准备。这一方法不仅有强大的表达能力,而且具有更强的泛化能力,在动力学数据集和NTU-RGBD上比主流方法具有实质性的改进。

  1. 提出了ST-GCN,一个通用的基于图的动态骨架建模算法,它是第一个将基于图的神经网络用于人体动作识别任务的算法

  1. 提出了在动作识别中实现ST-GCN卷积的相关原则,以满足骨架建模的具体要求

  1. 在两个任务为动作识别的大规模数据集上,与以往使用手工模块或遍历规则的方法相比,该模型取得了更好的性能,而人工设计的工作量相当少

ST-GCN模型

  1. 总体描述

图一 动作识别流程图

从图一可以看出,将ST-GCN运用于动作识别任务中首先需要通过运动捕捉设备或视频姿态估计算法获得基于骨骼的数据。这些数据通常有一系列的帧,每一帧将有一组联合坐标,从而构建了按照规定顺序以二维或三维坐标的形式构造的以关节为图节点,人体结构和时间为图边的时空图。ST-GCN的输入是图节点上的联合坐标。这可以被认为是一种类似于基于图像的CNN,对输入数据进行多层的时空图卷积运算,并在图上生成更高层次的特征映射,然后通过SoftMax分类器将将其分类为相应的动作类别,整个模型以反向传播的方式进行训练。下面将详细介绍ST-GCN模型中的组件。

  1. 骨架图构造

在一个具有N个关节和T帧间连接的骨架序列上构造了一个无向时空图G =(V,E)

输入:点集V = {vti|t = 1,……,T,i = 1,……,N},包括一个骨架序列中的所有关节,vti上的特征向量由t帧上第i个关节的坐标向量以及估计置信度组成。

时空图:分两步构造,如图二所示,首先根据人体骨架的连接性,将一帧内的具有物理连接的关节进行连接,然后每个关节都将被连接到连续帧中的同一个关节上。边缘集E由两个子集组成,第一个子集描述了每一帧的骨架内连接,表示为ES = {vtivtj |(i,j)∈H},其中H是自然连接的人体关节的集合。第二个子集包含帧间的连接,它们与EF = {vtiv(t+1)i}在连续的帧中连接相同的关节。因此,EF中对于一个特定关节i的所有边都将表示其随时间变化的轨迹。

图二 时空图例子

  1. 空间图卷积神经网络

在深入研究成熟的ST-GCN之前,首先在一帧内查看图CNN模型。在这种情况下,在时间τ的单个帧上,将有N个关节节点Vt,以及骨架边缘ES(τ)={vtivtj|t=τ,(i,j)∈H}。给定一个核大小为K×K的卷积算子,以及一个通道数为c的输入特征映射,在空间位置x处的单个通道的输出值可以写为

采样函数p枚举了位置x的邻居;权值函数w在c维空间中提供了一个权值向量,用于计算具有c维的采样输入特征向量的内积,权重函数与输入位置x无关,滤波器的权值在输入图像上到处共享。

采样函数:在图像上,采样函数p(h,w)被定义在相对于中心位置x的相邻节点上。在图上,同样可以去掉一个节点vti的邻域集B(vti)= {vtj |d(vtj,vti)≤D}上的采样函数。这里的d(vtj,vti)表示从vtj到vti的任意路径的最小长度。在这项工作中,我们对所有情况都使用D = 1,即联合节点的1阶邻域集。

权重函数:通过将节点vti的邻居集B(vti)划分为固定数量的K个子集来简化这个过程,其中每个子集都有一个数字标记。因此,我们可以有一个映射lti: B(vti)→{0,……,K−1},它将附近的一个节点映射到它的子集标签。 具体的划分子集策略在后面介绍。

空间图卷积:利用上述定义好的采样函数和权值函数,重写了等式1在图的卷积方面为

如果将一个图像视为一个规则的二维网格,这个公式可以类似于标准的二维卷积。例如,为了类似于3×3的卷积操作,我们在以一个节点为中心的3×3网格中有一个有9个节点的邻居。然后,应该将邻居集划分为9个子集,每个子集都有一个节点。

空间时间建模:在制定了空间图CNN之后,我们现在开始了在骨架序列内的时空动态建模的任务。首先之前的操作中扩展了邻域的概念,也包括时间维度连接的节点:

参数Γ控制要包含在邻居图中的时间范围,称为时间核大小。为了完成时空图上的卷积运算,我们还需要采样函数以及权值函数。由于时间轴是有序的,我们直接修改为一个基于vti的时空时间邻域:

lti(vtj)是在vti上的单帧情况的标签映射。

  1. 分区策略

讨论了三种分区策略,为了简单起见,只讨论单帧中的情况,可以使用等式8自然地扩展到时空域 。

图三 一阶领域和三种分区策略图

统一标签法:如图三(b)所示,最简单和最直接的划分策略是子集为整个邻域集本身。即K = 1和lti(vtj)= 0,∀i,j∈V。

距离划分法:如图三(c)所示,根据节点到根节点vti的距离d(·,vti)对邻居集进行划分。在这项工作中,设置了D = 1,邻居集将被分成两个子集,其中d = 0是指根节点本身,其余的邻居节点在D = 1子集中。因此将有两个不同的权值向量,形式上,有K = 2和lti(vtj)= d(vtj,vti)。

空间配置分区:如图三(d)所示,设计了一种策略,将邻居集划分为三个子集: 1)根节点本身;2)向心群:与根节点相比,更接近骨架重心的相邻节点;3)离心群。在这里,一个框架中骨架中所有关节的平均坐标被视为其重心。

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

  1. 可学习的边缘权重

在每一层时空图卷积上添加了一个可学习的掩模M。该掩模将根据ES中每个空间图边的学习重要性权重来缩放节点的特征对其邻近节点的贡献。实验结果表明,添加该掩模可以进一步提高ST-GCN的识别性能。

  1. 实现ST-GCN

单帧内关节的体内连接由邻接矩阵A和表示自连接的单位矩阵I表示。在单帧情况下,具有第一个划分策略的ST-GCN可以通过以下公式实现:

这里将多个输出通道的权值向量叠加形成权值矩阵W。在实际应用中,在时空情况下可以将输入特征映射表示为(C、V、T)维数的张量。图卷积是通过执行1×Γ标准二维卷积来实现的,并将结果张量与第二维上的标准化邻接矩阵Λ−1/2 (A+I)Λ−1/2 相乘。

对于具有多个子集的划分策略,即距离划分和空间配置划分,再次利用上述方式这个实现。但是现在注意邻接矩阵被分解成几个矩阵Aj。例如,在距离划分策略中,A0 = I和A1 = A。

在实现可学习的边缘重要性加权方面,对于每个邻接矩阵,附带一个可学习的权值矩阵m。分别用(A + I)⊗M和Aj⊗M代替(A + I)和Aj,这里的⊗表示两个矩阵之间的元素级乘积。掩模M被初始化为一个全1矩阵。

  1. 网络架构和训练过程

在实验中,首先将输入骨架输入到一个批处理归一化层来对数据进行归一化。ST-GCN模型由9层空间时间图卷积算子(ST-GCN单位)组成。前三层有64个通道进行输,。中间的三层有128个通道用于输出,最后三层有256个输出通道,每层时间核大小为9。Resnet机制应用于每个ST-GCN装置。将第4层和第7层时间卷积层的步幅设置为2作为池化层,然后对得到的张量进行全局池化,得到每个序列的256维特征向量。最后,我们将它们提供给一个SoftMax分类器。该模型采用随机梯度下降法进行学习,学习速率为0.01,我们在每10个时代后将学习率衰减0.1。

总结

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

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值