这篇文章应该算是图神经网络&动作识别领域最早的文章之一了,作者提出一个“时空图卷积网络”来解决动作分类任务。
时空骨骼序列
作者将骨骼的时间序列建模为一个时空图
骨架序列的空间时间图。蓝点表示身体关节。身体关节之间的边缘是根据人体的自然连接定义的,帧间边缘则连接连续帧之间的相同关节。关节坐标用作 ST-GCN 的输入。图节点的向量是关节位置坐标,类似于像素图中的RGB强度。
模型结构
ST-GCN对上述的时空图进行处理,最后通过Softmax分类动作标签。
作者对CNN卷积泛化到Graphic卷积作了一大堆理论的推导,给出了Sampling function,Weight function这些的定义,可以参考原文。
简单来说,一个图像卷积核的计算可以被写成
其中p负责采样节点,w是卷积核中这个位置的权重向量,而推广到图,我们需要重新定义采样函数。
此外,因为每个节点连接的节点数量不同,我们需要定义一种分割方法(Partition Strategies)。
作者提出三种分割方法:
- Uni-label:把所有相邻的节点视作一个子集,用一个1x1的卷积核去处理它。它有一个明显的缺点,即在单帧情况下,使用这种策略相当于计算权重向量与所有相邻节点的平均特征向量之间的内积。这对于骨架序列分类来说不是最佳选择,因为在这一操作中可能会丢失局部差分特性。
- Distance:本节点视为一个子集,相邻1条边的节点视为另一个子集,这样就有2个子集,用1x2的卷积核来处理。因此,我们将有两个不同的权重向量,它们能够模拟局部差异特性,如关节间的相对平移。
- Spatial:本节点视为一个子集,本节点到质心之间的节点视为一个子集,本节点到质心之外的节点视为另一个子集,这样就有3个子集,用1x3的卷积核来处理。这一策略的灵感来源于身体部位的运动可大致分为同心运动和偏心运动。
此外,为了考虑不同节点的重要性差异,每层加了一个可学习的Mask,缩放特征向量,主要的insight是每个节点的重要性不一样,相当于一种attention
实验结果
Ablation
Baseline TCN直接把所有节点concat起来,然后用temporal convolution去处理,没有考虑空间连接,可以看到结果是比较差的。
Local Convolution没有使用共享权重,而是类似全连接的方式进行。
关于分割方式,使用多个子集进行分区通常比单一子集要好得多。因为单一子集里面只进行了简单的平均处理。
有鉴于此,我们尝试了一种介于距离分割和单标签之间的方法,为 "Distance partitioning*"。在这种情况下,我们将距离分割法中两个子集的权重绑定为仅相差一个缩放因子-1,即 w0 = -w1。这样参数没有增加,但效果仍然变好了,证明分组有效。
在多子集分割策略中,空间配置分割策略的性能更好,这也印证了我们设计这一策略的动机,即考虑同心和偏心运动模式。
Imp是Learnable edge importance weighting,证明了可以提高性能。
Benchmark
Kinetics
NTU-RGB+D
在Kinetics上,基于骨骼的方法的精确度不如基于视频帧的模型,作者认为Kinetics要求识别演员与之互动的物体和场景,为了验证这一点,我们选择了与身体运动密切相关的 30 个类别子集,命名为 "Kinetics-Motion",并在表 4 中列出了基于骨骼和图像的模型(Kay 等人,2017 年)在该子集上的平均类别精确度,我们可以看到,在这一子集上,性能差距要小得多。
如图 5 所示,我们基于骨架的 ST-GCN 模型还能为 RGB 和光流模型提供补充信息。我们用 RGB 和光流模型训练来自 Kinetics 上划痕的标准 TSN(Wang 等人,2016 年)模型。将 STGCN 添加到 RGB 模型中可提高 0:9%,甚至优于光流(0:8%)。将 RGB、光流和 ST-GCN 结合使用,性能进一步提高到 71:7%。这些结果清楚地表明,如果有效地利用骨架(例如使用 ST-GCN),骨架可以提供互补信息。