1 网络特色
1.传统的骨骼建模方法通常依赖于手工制作的部件或遍历规则,从而导致表达能力有限和泛化困难。这里提出了一种新的动态骨架模型,它通过自动从数据中学习空间和时间模式,超越了以前方法的限制。
2.骨架是以图形的形式,不是2D或3D坐标形式,这使得使用卷积网络等经过验证的模型变得困难。因此,将卷积神经网络(cnn)推广到任意结构的图的图神经网络(GCNs)。该模型将图神经网络扩展到时空模型,用于动作识别的骨架序列的通用表示,称为时空图卷积网络(ST-GCN)。
2 整体流程
- 1.获取2D或3D坐标形式的身体关节序列
- 2.构建了一个时空图
- 3.多层时空图卷积运算将应用于输入数据并在图上生成更高级别的特征图。
- 4. 然后它将被标准的 SoftMax分类器分类到相应的动作类别。
整个模型通过反向传播以端到端的方式进行训练。
3 数据的获取
- 动作捕捉设备获得
- 从视频中获得姿势估计算法
通常数据是一组帧的序列,每一帧都会有一组关节坐标。
4 构建时空图
4.1 结果展示
骨架序列通常由每个帧中每个人体关节的 2D 或 3D 坐标表示。我们在具有 N 个关节和 T 帧的骨架序列上构建了一个无向时空图 G = (V, E),同时具有体内和帧间连接,如上图所示。
4.2 如何做
第三节我们获得了骨骼点坐标和置信度,组成节点F(v_ti)的特征向量由帧t上第i个关节的坐标向量和估计置信度组成,作为ST-GCN的输入。我们分两步在骨架序列上构建时空图:
- 1. 根据人体结构的连通性,将一帧内的关节与边连接起来,如图1所示。
- 2. 每个关节将连接到连续帧中的同一关节。
疑问1:无需手动分配零件即可自然定义此设置中的连接。这也使网络架构能够处理具有不同数量的关节或关节连接的数据集。
此时我们的边集由两个子集组成,如下:
- 1. 第一个子集描述了每一帧的骨架内连接,记为ES = {(v_ti, vt_j)|(i, j)∈H},其中H为自然连接的人体关节集合。
- 2. 第二个子集包含帧间边,它们连接连续帧中的相同关节,如EF = {v_ti, v_(t+1)i},因此,对于一个特定关节i,EF中的所有边将表示其随时间的轨迹。
4.3 计算
时空图是以邻接矩阵的方式创建的,我参考的https://www.bilibili.com/read/cv17038755/
5 时空卷积运算
5.1 时空卷积
这里作者与CNN进行了对比,先是给出了CNN卷积的公式:
这里,f(p(x,h,w))
的意思就是取出p(x,h,w)
这个位置的数据,CNN是按照卷积核的大小在原图中逐行逐列的获取。w是每一个通道的权重。这个公式由上述两方面组成,解决了两个问题:
- 1. 如何采样,即
f(p(x,h,w))
。 - 如何确定权重w。
作者类比了CNN,如图2:
采样过程如下,红色的区域就是一个st-gcn的卷积核,时间维度中以红点为中心,左右相邻的T/2帧作为卷积核的一个维度。文章st-gcn的卷积核取9个点,而蓝色、绿色、黄色对应了三个不同的权值(每种颜色的权重相同)。
那么全权重如何取值呢?作者将节点的1邻域划分为3个子集,第一个子集连接了空间位置上比根节点更远离整个骨架的邻居节点,第二个子集连接了更靠近中心的邻居节点,第三个子集为根节点本身,分别表示了离心运动、向心运动和静止的运动特征。注意,这里距离骨架远近按照距所有帧的所有骨架重心平均距离判断。
如图4(d),其余为其他取值方式,后面会简单总结
5.2 可学习的边缘重要性权重
虽然人在做动作时关节是成组运动的,但一个关节可能出现在身体的多个部位。然而,这些外观在对这些部件的动力学建模时应该具有不同的重要性(比如退节点比眼睛等重要,可以判断是否蹲下)。
从这个意义上说,我们在时空图卷积的每一层上都添加了一个可学习的掩码M。掩码M将根据ES中每个空间图边的学习重要性权重来缩放节点特征对其相邻节点的贡献。(即对不同关节进行加权)
6 网络结构和训练
网络结构如上图所示