其他分享
首页 > 其他分享> > 深度识别:论文阅读_2S-AGCN CVPR2019(基于骨架的动作识别的两流自适应图卷积网络)

深度识别:论文阅读_2S-AGCN CVPR2019(基于骨架的动作识别的两流自适应图卷积网络)

作者:互联网

这里写目录标题

资料

论文:论文
源码:代码

过去问题

ST-GCN图形构建过程中三个缺点:

1.使用的骨架图是启发式预定义的,仅表示人体物理结构,对动作识别不是最佳。
例如读书和拍手,两只手的关系很重要,但是ST-GCN预定义的人体图中彼此距离很远,很难捕获两只手的关系;
2.GCN结构是分层的,不同的层包含多层语义信息,但是ST-GCN应用的图拓扑结构在所有层都是固定的,缺乏建模所有层中包含多级语义信息的灵活性和能力;
3.对于不同动作类的所有样本,一个固定的图结构可能不是最优的。
对于“擦脸”、“摸头”等课程,手与头的联系应该更强,但对于“跳起来”、“坐下来”等课程则不是这样。这一事实表明,图结构应该是依赖于数据的,然而,ST-GCN不支持这一点。
4.附加到每个顶点的特征向量仅包含关节的2D或3D坐标,可以将其视为骨骼数据的一阶信息。但是没有利用表示两个关节之间的骨骼特征的二阶信息。通常,骨骼的长度和方向对于动作识别自然会提供更多的信息和判别力

主要贡献

(1)针对ST-GCN的3个缺点,提出了一种自适应图卷积网络,以端到端的方式自适应地学习不同GCN层和骨架样本的图形拓扑,这样可以更好地适应动作识别任务和GCN的层次结构。
(2)针对第四点,提出使用双流框架明确地制定骨架数据的二阶信息并与一阶信息组合,这为识别性能带来了显着的改进。

自适应图卷积层

提出了一种自适应图卷积层。它使图的拓扑结构与网络的其他参数一起以端到端的学习方式进行优化。
该图对于不同的层和样本是唯一的,这大大提高了模型的灵活性。同时,它被设计为一个残差分支,保证了原模型的稳定性,
请添加图片描述
根据式2,图的拓扑结构实际上是由邻接矩阵和掩模(即AK和MK)分别决定的。 Wk是1×1卷积运算的Cout×Cin×1×1权重向量,AK决定两个顶点之间是否有连接,MK决定连接的强度。为了使图形结构具有适应性,我们将等式2改为以下形式:
请添加图片描述
主要区别在于图的邻接矩阵,它分为三部分:Ak,Bk和Ck。

第一部分(Ak)与方程式中的原始归一化N×N邻接矩阵Ak相同。 它代表了人体的物理结构。

第二部分(Bk)也是N×N邻接矩阵。 与Ak相反,Bk的元素与训练过程中的其他参数一起参数化和优化。 Bk的值没有限制,这意味着根据训练数据完全学习图表。
通过这种数据驱动的方式,模型可以学习完全针对识别任务的图形,并且针对不同层中包含的不同信息更加个性化。 注意,矩阵中的元素可以是任意值。 它不仅表明两个关节之间存在连接,而且还表明连接的强度。 它可以**起到与等式2中Mk执行的注意机制的相同作用。**然而,原始注意矩阵Mk是点乘以Ak,这意味着如果Ak中的一个元素是0,它将始终为0,而​​不管 Mk的值。 因此,它无法生成原始物理图中不存在的新连接。 从这个角度来看,Bk比Mk更灵活。

第三部分(Ck)是一个数据相关图,它为每个样本学习一个唯一的图。为了确定两个顶点之间是否存在连接以及连接的强度,我们使用归一化的嵌入高斯函数来计算两个顶点的相似性。

请添加图片描述
其中N是顶点的总数。 使用点积来度量嵌入空间中两个顶点的相似性。
详细地,给定尺寸为Cin×T×N的输入特征映射fin,
首先将其嵌入具有两个嵌入函数的Ce×T×N,即θ和φ。 在这里,通过大量实验,我们选择一个1×1卷积层作为嵌入函数。 将两个嵌入的特征图重新排列并重新整形为N×CeT矩阵和CeT×N矩阵。
然后将它们相乘以获得N×N相似度矩阵Ck,其元素Cijk表示顶点vi和顶点vj的相似度。 矩阵的值归一化为0-1,用作两个顶点的软边。 由于归一化高斯具有SoftMax操作,可以根据等式4计算Ck如下:
请添加图片描述
其中Wθ和Wφ分别是嵌入函数θ和φ的参数。

没有直接用BK或CK替换原始AK,而是将它们添加到其中。BK值和θ、φ参数初始化为0。这样可以在不降低原有性能的前提下增强模型的灵活性。

自适应图卷积层的总体结构如图2所示。除上面介绍的AK,Bk和Ck外,卷积的核大小(kv)与前面的设置相同,
wk:等式1中引入的加权函数,其参数为等式3中的wk。
每个层都添加了一个类似于[10]的残差连接,这使得层可以插入到任何现有模型中,而不会破坏其初始行为。如果输入通道数与输出通道数不同,则在残差路径中插入1×1卷积(图2中带虚线的橙色框),以转换输入以匹配通道尺寸中的输出。

自适应图卷积层的图示
图2.自适应图卷积层的图示。每层中总共有三种类型的图,即Ak,Bk和Ck。
橙色框表示该参数是可学习的。(1×1)表示卷积的内核大小。 Kv:表示子集的数量
⊕表示元素的总和.
⊗表示matirx乘法。
只有当Cin与Cout不同时,才需要残留框(虚线)

自适应图卷积块

时间维度的卷积与ST-GCN相同,即在C×T×N特征图上执行KT×1卷积。空间GCN和时间GCN之后都有一个批标准化(BN)层和一个RELU层。如图3所示,一个基本块是一个空间GCN(convs)、一个时间GCN(convt)和一个附加的dropout层的组合,dropout率设置为0.5。为了稳定训练,为每个块添加一个残差连接
请添加图片描述
图3.自适应图卷积块的图示。 Convs表示空间GCN,Convt表示时间GCN,两者之后是BN层和ReLU层。 此外,为每个块添加残差连接。

自适应图卷积网络

**针对问题:**上面描述的骨架数据的时空图卷积是基于一个预定义的图计算的,这可能不是第1节中解释的最佳选择

自适应图卷积网络(AGCN)是这些基本块的堆栈,如图4所示。 总共有9个块。 每个块的输出通道数为64,64,64,128,128,128,256,256和256.
在开始时添加数据BN层以标准化输入数据。 执行全局平均池化层以将不同样本的特征映射池化为相同大小。 最终输出被发送到softmax分类器以获得预测。
请添加图片描述
图4.AGCN图示。共有9个区块(B1-B9)。每个块的三个数字分别代表输入通道数、输出通道数和步幅。GAP表示全局平均池化层

双流网络

针对问题:二阶信息,即骨骼信息,对于基于骨骼的动作识别也很重要,但在以前的工作中被忽略了
改进:本文提出了一种二阶信息即骨骼信息的显式建模方法,该方法采用
双流框架来增强识别能力

由于每个骨骼都由两个关节绑定,因此定义靠近骨骼重心的关节是源关节,远离重心的关节是目标关节
每个骨骼都表示为从其源关节指向目标关节的向量,它不仅包含长度信息,还包含方向信息。
例如,给定一个具有源关节v1=(x1,y1,z1)和目标关节v2=(x2,y2,z2)的骨骼,该骨骼的向量计算为ev1,v2=(x2−x1,y2−y1,z2−z1)。

由于骨骼数据的图形没有循环,因此可以为每个骨骼指定一个唯一的目标关节。关节的数量比骨骼的数量多一个,因为中心关节未指定给任何骨骼。
为了简化网络的设计,我们在中心关节添加了一个值为0的空骨骼。这样,骨骼的图形和网络都可以设计成与关节相同的图形和网络,因为每个骨骼都可以绑定到一个唯一的关节,
使用J-stream和B-stream分别表示关节和骨骼的网络。
总体架构(2sAGCN)如图5所示。给定一个样本,首先根据关节的数据计算骨骼的数据。然后,关节数据和骨骼数据分别输入J流和B流。最后,将两个流的SoftMax分数相加,得到融合分数并预测动作标签。

标签:骨骼,2S,卷积,AGCN,Bk,GCN,适应,关节,识别
来源: https://blog.csdn.net/zhe470719/article/details/121536821