深入理解时空图卷积(ST-GCN)

深入理解时空图卷积(ST-GCN)

  • 整体描述
  • 空间上的图卷积
    • 举个例子
    • 回归ST-GCN
  • 时间上的卷积

前言:本文试图从代码角度解读ST-GCN(不包含图卷积理论知识),希望对研究行为识别的同学有所帮助,不正确的地方请指正。

整体描述

Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
ST-GCN的文章着实不好理解,但是当读懂代码之后,再返回来对应论文会有豁然开朗的感觉。
整体结构:时空图卷积分为空间图卷积时间图卷积,其中空间图卷积是核心部分。一个空间图卷积加上一个时间卷积就是一层,一共10层,但是第一层没有残差结构,所以大部分文献都称它9层。原代码里的空间图卷积对应名称gcn,时间对应tcn。每一层的结构如下。
深入理解时空图卷积(ST-GCN)_第1张图片

空间上的图卷积

要理解图卷积,首先就要类比普通的卷积。从原文或是其他基于ST-GCN的改进方法中都有提到,图卷积是将卷积泛化到非欧几里得结构上的一种方法
要知道卷积为什么有效?卷积的本质是什么?答:卷积的本质就是聚合邻域信息。 那么,图卷积要做的事情也是聚合邻域信息,不同的是,面对是非欧形式的数据。

举个例子

为了简化数据,我们假设人的骨骼图结构是一张包含5个关节点的骨骼图,首先我们看看把普通的卷积用在该骨骼数据上会有什么效果。我们以最常见的方法将骨骼数据处理成(N,C,T,V)这样四维的形式。其中N为样本数,C为通道数,T为帧数,V为关节点个数,对于我们的假设,V等于5,通道C等于3(每个关节点有xyz三个坐标)。现在我们想在单帧上对关节点进行卷积,所以选择卷积核大小为1*3的2D卷积。如果对关节点B进行卷积,则是红色框,如果对关节点C卷积,是绿色框。可以看到有什么问题?
上文我们说卷积的作用是聚合邻域信息,那对于骨骼图来说,对关节点B进行卷积的时候,聚集到邻域信息有A和C,然而可以看到我们的骨骼图里面A并不是B的邻居;对于C节点的卷积也一样,邻域信息不全。所以图卷积的方法应运而生。

怎么样实现 图卷积 ,其实图卷积的核心就是做矩阵乘法。在我们的例子中,可以根据图的结构得到一个5*5的邻接矩阵,这个矩阵描述的是关节点之间的连接关系。如果我们用特征图与邻接矩阵做矩阵乘法,会是什么样的情况?如图所示。可以看到,原本A0 的位置包含了A0C0 的信息;原本B0 的位置包含了B0C0 的信息,这样就实现了聚合邻域信息的效果。

深入理解时空图卷积(ST-GCN)_第2张图片

回归ST-GCN

时间上的卷积

持续更新中…

你可能感兴趣的:(图卷积,基于骨骼的行为识别,深度学习,神经网络,人工智能)