DSTAnet: 基于骨架的动作识别技术中的解耦时空注意网络

DSTAnet: 基于骨架的动作识别技术中的解耦时空注意网络

最近在参加飞桨的花样滑冰动作识别的比赛,目前已经结束了,所以本文对这段时间学习到的模型进行一个总结。
论文链接:点这里进入论文https://arxiv.org/pdf/2007.03263.pdf

研究背景

动态骨骼数据,以人类关节的二维/三维坐标表示,由于其高水平的语义信息和环境鲁棒性,已被广泛研究。然而,以前的方法严重依赖于设计手工制作的遍历规则或图拓扑来绘制关节之间的依赖关系,这在性能和通用性方面受到限制。在这项工作中,我们提出了一种新的解耦时空注意网络(DSTA-Net)的基于骨架的动作识别。它只涉及注意块,允许建模关节之间的时空依赖关系,而不需要知道它们的位置或相互联系。具体来说,为了满足骨骼数据的具体要求,提出了三种构建注意块的技术,即空间-注意解耦、解耦位置编码和空间全局正则化。此外,从数据方面,我们引入了一种骨骼数据解耦技术来强调空间/时间的具体特征和不同运动尺度的特点,从而更加全面。

网络基本介绍

话不多说,先放主要网络框架:
DSTAnet: 基于骨架的动作识别技术中的解耦时空注意网络_第1张图片
网络中的 N N N代表关节点个数,一般为25或16, T T T代表的是采样帧数, C C C代表的是通道数,在 i n p u t input input层中 C = 2 C=2 C=2,分别代表 x x x y y y的坐标数据。从上图中可以看出,作者先后做了Spatial域和Temporal域的Attention从而实现了时空的解耦。在此之前的做法:

  • 是将 N N N T T T先Flatten到一个维度,然后再做fc层的操作或者是卷积。
  • 像ST-GCN一样,先对Spatial域做kernel为Spatial kernel × 1 \times 1 ×1,然后再对Temporal域做kernel为Temporal × 1 \times 1 ×1的卷积。

上述两种方法都有很大的局限性,Flatten的方法很显然丢失了很多的信息,并且将两个不相关的域强行进行了融合,这种融合至少在理论上就是不太可行的。ST-GCN的方法是比较巧妙的,但采用的是局部连接的卷积方式,很难将全局性和局部性进行结合,例如Temporal 的kernel size如何设定能够保证不同帧数的动作都能较好的识别到?

因此作者提出了采用self-Attention的方式有效的对时间和空间的信息进行学习。接下来就重点的看一下本文Attention是如何实现的。

Attention Module

DSTAnet: 基于骨架的动作识别技术中的解耦时空注意网络_第2张图片
上图是作者在论文中所讨论到的三种连接方式,并且以Spatial域的为例,Temporal域的可以类比。
(a)中,是将每一帧的数据送入一个Attention,这样的话能够得到每一张图中哪些关节点会更加重要的信息,但这样做会有很大的缺陷,那就是没有将Temporal的信息添加进来。因此(a)图中的方法是不太可行的。
(b)中,类似于全连接的方式,每一帧都会彼此关联,每一个关节点也会彼此相连,这种做法的话,的确能够很好的利用所有的信息,并且能够完全的考虑帧间信息和帧内信息。但这样建模的话存在两个问题,第一就是模型容易过拟合,第二就是模型的计算两非常的大。
(c )图的提出,其实是对(a)和(b)的一种权衡,从图中不难理解,作者先进行了帧内的信息计算,然后采用平均加权的聚类方式再送入注意力图中。
这里尤其要理解作者的思路,该示意图是对Spatial域进行Attention,所以Attention map得到的结果应该表明了哪些关节点对我们的模型会更重要。Temporal域的Attention会用类似的方式进行计算,得到的结果表明哪些帧会对模型较为重要。

位置编码

DSTAnet的实验是对标ST-GCN等图神经网络的,图神经网络中有拓扑图一概念,并且图节点之间的连接关系是非常紧密且重要的,DSTAnet虽然做了位置的编码(Position encoding),但是相比于Graph的邻接矩阵而言还是欠缺了很多信息。DSTAnet的位置编码方式和Transformer中的embeding类似,这里列举出公式,有兴趣的同学可以深入一下。
P E ( p , 2 i ) = s i n ( p / 1000 0 2 i / C i n ) P E ( p , 2 i + 1 ) = c o s ( p / 1000 0 2 i / C i n ) PE(p,2i) = sin(p/10000^{2i/C_{in}}) \\ PE(p,2i+1) = cos(p/10000^{2i/C_{in}}) PE(p,2i)=sin(p/100002i/Cin)PE(p,2i+1)=cos(p/100002i/Cin)

Attention 总框架

DSTAnet: 基于骨架的动作识别技术中的解耦时空注意网络_第3张图片
上图为Attention的总体框架,共有s个单头Attention模块并行计算,然后Concat在一起。模块中采用了残差连接和模型正则化的方式来保证模型的性能以及泛化能力。

总结

DSTAnet有很多值得学习的地方,比如它对于时空信息的解耦方式,以及采用采用Attention的方式。我认为最应该学习的作者的思考方式。
另外我也认为论文存在一些不足的地方,比如关节点之间的连接信息没有完全地考虑进来,另外就是我认为该模型可以在Attention的前端考虑添加一些特征提取的操作,可能会更加有效率一些。【个人见解,有其他见解可以评论区讨论欧~】

你可能感兴趣的:(深度学习,行为识别,笔记,windows,python)