首页 > 编程知识 正文

什么是建筑的时间与空间论文,拟时序分析结果解读

时间:2023-05-03 21:59:24 阅读:10455 作者:121

时空图卷积网络ST-GCN论文解读序言1、基于图神经网络的图分类问题2、 ST-GCN文章解读基于openpose实现人体骨骼提取2 .基于人体关键点结构graph2.1一帧graph (空间域) 2.2结构帧间graph (时域)3. ST-GCN模型3.1采样函数3.2双重分策略3.6 ) 6权重4. ST-GCN模型实现4.1图卷积经典公式4.2图卷积实现4.3有多个子集化策略的处理4.4可学习边重要性权重实现5. ST-GCN网络架构和训练总结

前言最近正在研究基于图神经网络的行为识别方法,这里我们将研究ST-GCN论文《Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition》,以便于详细解读和理解文章。

一、基于图神经网络的图分类问题在介绍ST-GCN文章内容之前,首先简要介绍什么是基于图神经网络的图分类问题。

图神经网络本质上也是特征提取方法,但提取对象是非欧几里得结构的数据,如“图”。 如下图所示(为了不与图像(image )混淆,后续内容使用graph代替“图”)。

图形神经网络的本质工作是特征提取,在图形神经网络的最后实现图形包络(将graph转换为特征向量)。 图分类的实现过程如下图所示,首先利用图神经网络进行graph的特征提取,最后进行readout操作(将graph的信息转换为可以直接用于分类的n维特征向量),发送到softmax进行分类,实现graph的分类

本文中,图的分类具体如下图所示(可以与上图进行比较,有助于理解)。

输入视频可以基于人体的关键点构成图形,中间的ST-GCNs作为输入数据负责特征提取,最后自述用于softmax分类。

二、ST-GCN文章解读1 .基于openpose实现人体骨骼提取openpose是一种开源人体关键点检测工具,通过github直接下载源代码,通过CMAKE编译生成可调用的API ST-GCN直接使用openpose工具进行人体关键点提取(将输入视频分为多帧,每帧进行关键点检测,将其打包用于后续操作),但本文尚未对关键点提取进行进一步研究)

2 .基于人体关键点构建图形现在,我们在一个视频中有不同帧中的人体关键点信息。 我们在包含n个关节和t个框架的框架序列上构造了具有体内和框架之间的连接,即时间-空间图形的有向时空图g=(v,e )

组合方式:帧内各人体键为节点,人体键之间自然连接和时域连接为edge,graph (可理解为三维graph ),如下图所示。

2.1单个帧的graph (空间域)一个graph可表示为g=) v,e,其中v是节点特征(node ),e是边缘特征(edge )。 其中

V={vti|t=1,t,i=1,N}

亦即,vti表示不同节点的特征,其中t表示不同帧的节点(即时域),I表示同一帧中不同人体的密钥(节点),且vti的维度是[x,y,一致性]

v节点可以构成一帧的graph (上图中的深蓝色部分)。

2.2构建帧之间的graph (时域),在连续的帧中找到相同的节点,将其连接到时域信息) edge的信息)。

edge信息由两个子集组成。

第一个子集:同一帧中的关键点之间的关系(其中I是同一帧中的不同关键点,j是不同帧之间的相同关键点)。

第二个子集:不同帧之间人体关节之间的关系

现在,它基于一个视频中不同帧的人体关键点信息构成了一个包含空间和时间信息的图形。

在此,节点信息为(横坐标、纵坐标、可靠度); 边缘信息为(ES,EF )。

3. ST-GCN模型ST-GCN模型介绍了如何计算上述工艺结构的graph。

这里首先写传统卷积网络的公式

其中,p是采样函数,对x像素点周围h、w的范围内的相邻像素点进行采样来进行卷积运算; w是权重函数,为输入样本的特征和内积运算提供权重矩阵。

如果将此方法扩展到graph,则x像素点与graph中的节点相同; 一个像素点的位置包含n维特征,与一个节点包含n维特征相同。 此处,定义graph上的卷积运算,即卷积Vt节点的特征以得到c维的向量特征。

重新定义graph上的采样函数p和权重函数w。

3.1采样函数在传统的卷积神经网络中,采样函数可以理解为卷积核的大小,即每次进行卷积运算(特征提取)时复盖的范围。 例如,3*3卷积内核在对某个像素点进行卷积操作时,实际上是将该像素点

其相邻的8个像素点的信息进行计算、聚合。

在ST-GCN中,节点等同于传统卷积的图像像素点,采样函数就是负责指定对每个节点进行图卷积操作时,所涉及到的相邻节点范围,在本文中D = 1,即一阶相邻节点(直接相连的节点),用公式表示如下,其中d表示两个节点间的距离。

对于D=1,采样函数p可以写为下式,即只采样直接相邻的节点

可视化如下图,这张图在原文中是解释分区策略的,但也比较适合解释采样函数。若以红色节点为计算图卷积的中心node,则其采样范围为红色虚线内的节点,也就是D=1的相邻节点。

3.2 权重函数

在传统神经网络中,权重函数可通过按照空间顺序(如从左到右、从上到下)索引一个(c,K,K)维张量(即c *K *K的卷积核)进行来实现。对于graph,没有这种默认的空间排列,所以需要自定义一种排列方式。

本文采用方法:对graph中某node的相邻node进行子集划分,每个子集都有一个label,即实现映射:

将相邻节点映射至它所属的子集label。具体划分规则在后文有具体介绍。

至此,权重函数(W(vti, vtj)表示基于某node及其邻域得到权重向量Rc)

可以通过直接下标一个(c,K)张量实现,或用下式(lti(vtj)表示vtj在以vti为中心节点进行分子集标签中的所属标签)实现

3.3 空域图卷积

传统卷积公式更新为graph上的卷积公式:

其中

是标准化项,即相应子集的基数,用于平衡不同子集的贡献度。

再把前面讲到的采样函数、权重函数更新至公式,得到下式:

3.4 空间-时间模型

在上一小节,我们已经得到了针对广义graph的卷积运算公式,现在针对ST-GCN中的空间-时间graph进行图卷积公式的进一步优化更新。

在前文中一直提到graph中某个节点的相邻节点,那么在时间-空间graph上又该如何定义相邻节点呢?本文提出的定义公式为:

从上式可以看出,相邻节点的定义是“在空间距离上小于K,在帧距离上前后小于Γ/2”,即在空间邻域的定义上加入了时间约束。

上文介绍的采样函数、权重函数是针对空间graph的,时间上的图卷积也需要一套采样函数、权重函数。其基本原理一致,只是重新定义一下标签分组的映射函数,其余计算方式相同

3.5 分区策略

文章中共提到三种分区策略,如下图所示。我对分区label的理解就是,同一个分区中的节点在卷积计算时,与之内积的权重向量时一样的,有几个分区就有几种权重向量。

(a) 输入骨骼序列的示意图,红色节点为本次卷积计算的中心节点,红色虚线内蓝色节点为其采样的相邻节点。

(b) 单一划分:把节点的邻域节点全划为一个子集(包括自身),缺点:邻域节点与同一个权重进行内积,无法计算局部微分属性。

© 基于距离划分:中心节点为一类,相邻节点(不包括自身)为另一类

(d) 空间配置划分(也是本文真正采用的方法,这么分配或许更能表征人体关键点的向心运动与离心运动):按照关节点的向心离心关系定义,r表示节点到骨骼图重心的平均距离。此时对于一个节点的卷积运算,其权重矩阵包括三种权重向量。

3.6 可学习的边重要性权重

因为人体在运动时,某几个关节经常时成团运动(如手腕和肘),并且可能出现在身体的各个部分,因此这些关节的建模应包含有不同的重要性。

为此,ST-GCN为每层添加了一个可学习的掩膜M,它基于骨骼graph中边的信息学习到的重要性权重来衡量该节点特征对其相邻节点的贡献度。

这里最初我看的时候没太看明白,就用自己的话又说了一遍:ST-GCN为由人体关键点构成的graph中的每个边都赋予了一个衡量这条边所连接的两个节点间相互影响大小的值,而这个值是通过graph的边信息训练学习得到的。

这种方法提升了ST-GCN的效果,文章最后说可以再考虑加入注意力机制。


4. ST-GCN模型的实现 4.1 图卷积经典公式

ST-GCN的图卷积思想来源自《Semi-Supervised Classification with Graph Convolutional Networks》,文中介绍了一种基于频域的图卷积方法,公式如下。如果想学习这篇论文,可以结合我的另一篇博客DGL-GrapgConv源码注释,里面有我的笔记,可能会更便于理解。


其中,A是graph的邻接矩阵,I是单位矩阵,A+I即给graph加了个自环,以保证数据传输的有效性。W则是由多个输出通道的权重向量组成。fin是输入的特征图,其维度为(c,V,T),其中V为节点数,T为帧数

4.2 图卷积实现

在这里再放一下基于频域的图卷积公式

实现过程:先执行 1 × Γ的2D标准卷积fin W,再与Λ− 1/2 (A + I)Λ− 1/2相乘。

4.3 对于有多个子集划分策略的处理

上述公式只适用于单一子集划分的方法,即所有的W都一样,对与有多个子集的划分策略,邻接矩阵A被分为多个矩阵Aj,其中

因此,之前的频域图卷积公式变成了


这里加个α是为了不让Λ存在全为0的一行,不然会没有办法求Λ-1/2。

4.4 可学习的边重要性权重实现

ST-GCN为每个邻接矩阵(表示了graph的内部连接关系)配有一个可学习的M

对于4.2与4.3中的公式,分别把其中的A+I和Aj改为:A+I叉乘一个M(元素相乘);Aj叉乘一个M,如下式所示。


5. ST-GCN网络架构与训练

至此,已经实现了基于openpose提取人体关键点,根据关键点建立时间-空间graph,再重新定义时间-空间graph上的卷积方法。最后进行网络架构设计和训练设计。

1、由于在同一层GCN中,不同的节点共享权重矩阵,因此要保持输入数据的规模是一致的。所以再输入数据时先进行一次批规范化Batch-Normalization。

2、ST-GCN由9层ST-GCN模块组成,前三层输出64维特征,中间3层输出128维特征,最后3层输出256维特则会那个,每一层的时间核Γ都为9,并且每一层都有resnet机制
3、为了避免过拟合,每层都加入dropout=0.5,第4、7层的池化stride=2。

4、最后是对graph进行readout操作,即将图嵌入,将graph数据转为n维向量,并送入经典分类器softmax进行图分类。

5、再训练过程中,采用随机梯度下降方法,初始学习率设为0.01,每经10epoch衰减0.1倍。

6、为了防止过拟合,在数据方面进行增强。首先对骨架序列进行仿射变换(模拟相机移动);再在原始序列中随机抽取片段进行训练。


总结

论文最后一部分就是各种比较实验了,这里就不在过多讲述了,总之比较了半天,得出ST-GCN在NTU-RGB+D数据集上效果优异,但在kinetics数据集表现一般的结论,论文分析说可能是因为ST-GCN没有充分考虑人物与背景的互动关系所致。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。