ST-GCN原理总结

简介: ST-GCN原理总结

1 网络特色

1.传统的骨骼建模方法通常依赖于手工制作的部件或遍历规则,从而导致表达能力有限和泛化困难。这里提出了一种新的动态骨架模型,它通过自动从数据中学习空间和时间模式,超越了以前方法的限制。

2.骨架是以图形的形式,不是2D或3D坐标形式,这使得使用卷积网络等经过验证的模型变得困难。因此,将卷积神经网络(cnn)推广到任意结构的图的图神经网络(GCNs)。该模型将图神经网络扩展到时空模型,用于动作识别的骨架序列的通用表示,称为时空图卷积网络(ST-GCN)

2 整体流程

  1. 1.获取2D或3D坐标形式的身体关节序列
  2. 2.构建了一个时空图
  3. 3.多层时空图卷积运算将应用于输入数据并在图上生成更高级别的特征图。
  4. 4. 然后它将被标准的 SoftMax分类器分类到相应的动作类别。

整个模型通过反向传播以端到端的方式进行训练。

3 数据的获取

  1. 动作捕捉设备获得
  2. 从视频中获得姿势估计算法

通常数据是一组帧的序列,每一帧都会有一组关节坐标。

4 构建时空图

4.1 结果展示

4fdff33261d5459f80bf03cdd7d24e5a.png骨架序列通常由每个帧中每个人体关节的 2D 或 3D 坐标表示。我们在具有 N 个关节和 T 帧的骨架序列上构建了一个无向时空图 G = (V, E),同时具有体内和帧间连接,如上图所示。

4.2 如何做


2f02d7cd281344979d306463423f2fba.png

第三节我们获得了骨骼点坐标和置信度,组成节点F(v_ti)的特征向量由帧t上第i个关节的坐标向量和估计置信度组成,作为ST-GCN的输入。我们分两步在骨架序列上构建时空图:

  1. 1. 根据人体结构的连通性,将一帧内的关节与边连接起来,如图1所示。
  2. 2. 每个关节将连接到连续帧中的同一关节。

疑问1:无需手动分配零件即可自然定义此设置中的连接。这也使网络架构能够处理具有不同数量的关节或关节连接的数据集。

此时我们的边集由两个子集组成,如下:

  1. 1. 第一个子集描述了每一帧的骨架内连接,记为ES = {(v_ti, vt_j)|(i, j)∈H},其中H为自然连接的人体关节集合。
  2. 2. 第二个子集包含帧间边,它们连接连续帧中的相同关节,如EF = {v_ti, v_(t+1)i},因此,对于一个特定关节i,EF中的所有边将表示其随时间的轨迹。

4.3 计算

时空图是以邻接矩阵的方式创建的,我参考的https://www.bilibili.com/read/cv17038755/

5 时空卷积运算

5.1 时空卷积

这里作者与CNN进行了对比,先是给出了CNN卷积的公式

2ad9172908c74d04a120fcd87d9f79f6.png

这里,f(p(x,h,w))的意思就是取出p(x,h,w)这个位置的数据,CNN是按照卷积核的大小在原图中逐行逐列的获取。w是每一个通道的权重。这个公式由上述两方面组成,解决了两个问题:

  1. 1. 如何采样,即f(p(x,h,w))
  2. 如何确定权重w。
    作者类比了CNN,如图2:

采样过程如下,红色的区域就是一个st-gcn的卷积核,时间维度中以红点为中心,左右相邻的T/2帧作为卷积核的一个维度。文章st-gcn的卷积核取9个点,而蓝色、绿色、黄色对应了三个不同的权值(每种颜色的权重相同)。

那么全权重如何取值呢?作者将节点的1邻域划分为3个子集,第一个子集连接了空间位置上比根节点更远离整个骨架的邻居节点,第二个子集连接了更靠近中心的邻居节点,第三个子集为根节点本身,分别表示了离心运动、向心运动和静止的运动特征。注意,这里距离骨架远近按照距所有帧的所有骨架重心平均距离判断。

如图4(d),其余为其他取值方式,后面会简单总结

5fde9ca6293948778226d369feea2d43.png

5.2 可学习的边缘重要性权重

虽然人在做动作时关节是成组运动的,但一个关节可能出现在身体的多个部位。然而,这些外观在对这些部件的动力学建模时应该具有不同的重要性(比如退节点比眼睛等重要,可以判断是否蹲下)。

从这个意义上说,我们在时空图卷积的每一层上都添加了一个可学习的掩码M。掩码M将根据ES中每个空间图边的学习重要性权重来缩放节点特征对其相邻节点的贡献。(即对不同关节进行加权)

6 网络结构和训练

69dcc5937c75408eb9d936eaff5d5e13.png

网络结构如上图所示

相关文章
|
8月前
|
机器学习/深度学习 并行计算 算法
YOLOv8改进 | 卷积篇 |手把手教你添加动态蛇形卷积(Dynamic Snake Convolution)
YOLOv8改进 | 卷积篇 |手把手教你添加动态蛇形卷积(Dynamic Snake Convolution)
828 0
|
机器学习/深度学习 PyTorch 算法框架/工具
空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)
想直接看公式的可跳至第三节 3.公式修正 一、为什么需要SPP 首先需要知道为什么会需要SPP。 我们都知道卷积神经网络(CNN)由卷积层和全连接层组成,其中卷积层对于输入数据的大小并没有要求,唯一对数据大小有要求的则是第一个全连接层,因此基本上所有的CNN都要求输入数据固定大小,例如著名的VGG模型则要求输入数据大小是 (224*224) 。
2270 0
|
6月前
|
计算机视觉
【YOLOv10改进-卷积Conv】动态蛇形卷积(Dynamic Snake Convolution)用于管状结构分割任务
YOLOv10专栏介绍了一种用于精确分割管状结构的新方法DSCNet,它结合了动态蛇形卷积、多视角融合和拓扑连续性约束损失。DSConv创新地聚焦细长局部结构,增强管状特征感知,而多视角融合和TCLoss则改善了全局形态理解和分割连续性。在2D和3D数据集上的实验显示,DSCNet在血管和道路等分割任务上超越了传统方法。DySnakeConv模块整合到YOLOv10中,提升了目标检测的准确性。[链接指向详细文章](https://blog.csdn.net/shangyanaf/article/details/140007047)
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 卷积模块 | 在主干网络中添加/替换蛇形卷积Dynamic Snake Convolution
本专栏介绍的DSCNet采用蛇形动态卷积,增强对管状结构特征提取,尤其适合血管等弯曲目标。动态卷积核自适应调整,灵感来自蛇形曲线,能灵活捕捉不同尺度细节。论文及官方代码链接已提供,适用于提升目标检测的准确性和鲁棒性。
|
8月前
|
机器学习/深度学习 数据可视化 PyTorch
时空图神经网络ST-GNN的概念以及Pytorch实现
本文介绍了图神经网络(GNN)在处理各种领域中相互关联的图数据时的作用,如分子结构和社交网络。GNN与序列模型(如RNN)结合形成的时空图神经网络(ST-GNN)能捕捉时间和空间依赖性。文章通过图示和代码示例解释了GNN和ST-GNN的基本原理,展示了如何将GNN应用于股票市场的数据,尽管不推荐将其用于实际的股市预测。提供的PyTorch实现展示了如何将时间序列数据转换为图结构并训练ST-GNN模型。
198 1
|
8月前
|
计算机视觉
【YOLOv8改进】动态蛇形卷积(Dynamic Snake Convolution)用于管状结构分割任务
YOLO目标检测专栏介绍了DSCNet,它针对血管和道路等管状结构的分割任务进行优化。DSCNet采用动态蛇形卷积(DSConv)聚焦细长结构,多视角融合策略增强全局形态理解,且通过持久同调的连续性约束损失改善拓扑连续性。DSConv在2D和3D数据集上表现优于传统方法,实现更高精度和连续性。该技术已应用于yolov8,提升对管状结构的检测效果。
|
网络架构 索引
ST-GCN代码解读
ST-GCN代码解读
261 0
|
JSON 算法 计算机视觉
ST-GCN 自建kinetics数据集
ST-GCN 自建kinetics数据集
310 0
|
机器学习/深度学习 算法
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测
|
机器学习/深度学习 算法 Python
TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(matplotlib动态演示)—daiding
TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(matplotlib动态演示)—daiding