阅读Decoupled Spatial-Temporal Attention Network for Skeleton-Based Action Recognition

基于骨骼动作识别的解耦时空注意网络
paper:https://arxiv.org/abs/2007.03263

Abstract

  以人体关节二维/三维坐标表示的动态骨骼数据,由于其高层次的语义信息和环境鲁棒性,在人体动作识别中得到了广泛的研究。然而,以往的方法在很大程度上依赖于手工设计遍历规则或图拓扑来绘制关节之间的依赖关系,这在性能和泛化方面都受到了限制。在这项工作中,我们提出了一种新的解耦时空注意网络(DSTA-Net),用于基于骨架的动作识别。它只涉及注意块,允许建模关节之间的时空依赖关系,而不需要知道它们的位置或相互连接。具体来说,针对骨骼数据的具体要求,提出了三种注意块构建技术,即时空注意解耦、解耦位置编码和空间全局正则化。此外,在数据方面,我们引入了骨骼数据解耦技术,以强调空间/时间和不同运动尺度的具体特征,从而对人类行为有更全面的了解。为了验证该方法的有效性,在四个具有挑战性的基于骨架的手势和动作识别数据集SHREC、DHG、NTU-60和NTU-120上进行了大量的实验,其中DSTA网络在所有这些数据集上都取得了SOTA。

Introduction

  手工编制的规则是关节全局依赖建模并非最佳选择,作者阐述近年来transformer的自我注意力机制取得了很大的成功。自注意力机制可以降低计算复杂度,并提高全局依赖关系,而且不需要指导元素的内在关系,为发现有用模式提供更大的灵活性。
  作者提出了一种新的解耦时空注意网络(DSTA-Net), 模型并没有用与结构相关的RNNs、CNNs或GCNs。但是根据注意力网络自我发现骨骼数据关联的难点如下:

  • (1) 原始自我注意机制的输入是序列数据,而骨架数据同时存在于空间和时间维度。一种简单的方法是简单地将时空数据展平成一个单一的序列。然而,将时间和空间等同对待是不合理的,因为它们包含完全不同的语义。此外,简单的展平操作增加了序列长度,由于自注意机制的点积运算,大大增加了计算成本。相反,我们建议将自我注意机制依次分解为空间注意和时间注意。为了平衡空间与时间的独立性和互动性,我们专门设计了三种策略。
  • (2) 当将骨骼关节送入注意网络时,没有预定义的顺序或结构。为了给每个关节提供唯一的标记,引入了一种位置编码技术。基于同样的原因,它也被分解成空间编码和时间编码。
  • (3) 结果表明,在先验知识的基础上加入适当的正则化,可以有效地减少过拟合问题,提高模型的泛化能力。例如,由于图像具有平移不变的结构,CNNs利用局部加权机制来迫使模型学习更多针对图像不同区域的通用滤波器。对于骨骼数据,骨骼的每个关节都有特定的物理/语义意义(如头或手),对于所有的帧都是固定的,对于所有的数据样本都是一致的。基于这一先验知识,提出了一种空间全局正则化方法,使模型能够针对不同的样本学习更多的一般注意事项。注意正则化不适用于时间维,因为没有这样的语义对齐特性。

  另外,从数据的角度来看,对于不同的行为,不同的模式区别是明显的。我们主张应考虑两种性质。一个特征是动作是与动作相关还是与动作无关,选择特定的时空特征。例如,在对“向上挥手”和“向下挥手”手势进行分类时,手的全局轨迹比手形更重要,但在识别“一指一指”和“两指点”等手势时,空间模式比手势更重要。在此基础上,我们提出将数据分解为空间和时间两个维度,其中空间流只包含与运动无关的特征,而时间流只包含与运动相关的特征。通过分别对这两个流进行建模,该模型可以更好地关注空间/时间特征和特定于身份的模式。最后,通过融合这两条信息流,可以更全面地了解人类的行为。另一个特性是运动尺度的敏感性。对于时间流,一些动作的分类依赖于几个连续帧的运动模式,而另一些则依赖于整体运动趋势。例如,要将“鼓掌”与“双手合十”这两种手势进行分类,短期动作细节至关重要。但对于“向上挥手”与“向下挥手”,长期运动趋势更为重要。因此,我们根据采样率将时间信息分为快流和慢流。低帧速率流可以捕获更多关于全局运动的信息,而高帧速率流可以更关注细节运动。同样,对两个流进行融合,以提高识别性能。
  作者在四个数据集上进行了大量的实验,包括两个手势识别数据集SHREC和DHG,以及两个人类动作识别数据集,即NTU-60和NTU-120。在不需要手工编制遍历规则或图拓扑的情况下,作者的方法在所有这些数据集上都达到了SOTA,这证明了该方法的有效性和可推广性。
作者的贡献共四个方面:

  1. 据我们所知,作者首次提出了一种用于基于骨架的动作识别的解耦时空注意网络(DSTA-Net),该网络由纯注意模块构成,无需人工设计遍历规则或图拓扑;
  2. 我们提出了三种有效的建立注意网络的技术,即时空注意解耦、解耦位置编码和空间全局正则化;
  3. 我们提出将数据分解为四个流,即时空流、空间流、慢时流和快时流,每一个流都集中在骨架序列的一个特定方面。通过融合不同类型的特征,该模型可以对人类行为有更全面的理解。
  4. 在四个具有挑战性的动作识别数据集上,我们的方法达到了最先进的性能和显著的优势。在SHREC和DHG的14类/28类基准测试中,DSTA Net的表现分别优于SOTA 2.6%/3.2%和1.9%/2.9%。分别达到91.5%/96.4%和86.6%/89.0%分别是NTU-60和NTU-120的CS/CV基准。

Method

3.1 Spatial-temporal attention module

  原始transformer由序列数据fed,即矩阵 X ∈ R N × C X \in \mathbb R^{N\times C} XRN×C,其中 N N N表示元素个数, C C C表示通道数.对于动态骨骼数据,输入是一个3阶张量 X ∈ R N × T × C X \in \mathbb R^{N\times T \times C} XRN×T×C,其中 T T T表示帧数。如何处理时间与空间的关系,是一个值得探讨的问题。Wang等人建议忽略时间和空间的差异,将输入视为一个连续的数据 X ∈ R N ^ × C X \in \mathbb R^{\hat N\times C} XRN^×C,,其中 N ^ = N T \hat N=N T N^=NT,但是时间维和空间维是完全不同的, 把它们等同对待是不合理的。此外,该策略计算注意映射的计算复杂度为 O ( T 2 N 2 C ) O(T^2N^2C) O(T2N2C)(采用朴素矩阵乘法算法),计算复杂度过大。相反,我们建议将空间和时间维度解耦,这样可以大大降低计算复杂度并提高性能.
在这里插入图片描述
  作者设计了三种解耦策略,如图1所示。以空间注意为例,第一策略(图1,a)逐帧计算注意映射,每个帧使用唯一的注意映射: A t = s o f t m a x ( σ ( X t ) ϕ ( X t ) ′ ) (2) A^t=softmax(\sigma(X_t)\phi(X_t)')\tag{2} At=softmax(σ(Xt)ϕ(Xt))(2)其中 A t ∈ R N × N A^t \in \mathbb R^{N\times N} AtRN×N是t帧的注意映射, X t ∈ R N × C X_t \in R^{N\times C} XtRN×C σ \sigma σ ϕ \phi ϕ是两个嵌入函数。 ′ ' 表示矩阵转置。该策略只考虑单帧中节点的相关性,缺乏建模能力。该策略计算空间注意的计算复杂度为 O ( T N 2 C ) O(TN^2C) O(TN2C)。对于时间注意,n个关节的注意映射为 A n ∈ R T × C A^n\in \mathbb R^{T\times C} AnRT×C,输入数据为 X n ∈ R T ∈ C X_n\in \mathbb R^{T\in C} XnRTC,其计算与空间注意相似。考虑到空间和时间的注意,第一种策略对所有帧的计算复杂度为 O ( T N 2 C + N T 2 C ) O(TN^2C+NT^2C) O(TN2C+NT2C)
  第二种策略(图1,b)是计算所有帧之间的两个关节的关系,这意味着同时考虑两个关节的帧内关系和帧间关系。注意力图在所有帧上共享。 A t = s o f t m a x ( ∑ t T ∑ τ T ( σ ( X t ) ϕ ( X τ ) ′ ) ) (3) A^t=softmax(\sum_t^T\sum_\tau ^T(\sigma(X_t)\phi(X_\tau)'))\tag3 At=softmax(tTτT(σ(Xt)ϕ(Xτ)))(3)这种策略的计算复杂度 O ( T 2 N 2 C + N 2 T 2 C ) O(T^2N^2C+N^2T^2C) O(T2N2C+N2T2C)
  第三种策略(图1,c)是一种折衷方案,其中只考虑同一帧中的关节来计算注意映射,但是获得的所有帧的注意映射是平均和共享的。这相当于在注意力计算中增加了一个时间一致性约束,这在一定程度上减少了第二种策略的元级关系建模带来的过拟合问题。 A t = s o f t m a x ( ∑ t T ( σ ( X t ) ϕ ( X t ) ′ ) ) (4) A^t=softmax(\sum_t^T(\sigma(X_t)\phi(X_t)'))\tag4 At=softmax(tT(σ(Xt)ϕ(Xt)))(4)
  通过将帧连接成 N × T C N\times TC N×TC矩阵,可以用一个大的矩阵乘法运算来高效地实现矩阵乘法的求和。该策略的计算复杂度为 O ( T N 2 C + N T 2 C ) O(TN^2C+NT^2C) O(TN2C+NT2C)。如消融研究4.3所示,我们最终在模型中使用策略(c)。

3.2 Decoupled Position encoding

  骨骼关节被组织成张量输入神经网络。由于张量的每个元素没有预先定义的顺序或结构来显示其身份(例如,关节索引或帧索引),我们需要一个位置编码模块来为每个关节提供唯一的标记。我们使用不同频率的正弦和余弦函数作为编码函数: P E ( p , 2 i ) = sin ⁡ ( p / 1000 0 2 i / C i n ) P E ( p , 2 i + 1 ) = cos ⁡ ( p / 1000 0 2 i / C i n ) (5) \begin{aligned} & PE(p,2i) = \sin(p/10000^{2i/C_{in}})\\ & PE(p,2i + 1) = \cos(p/10000^{2i/C_{in}}) \end{aligned}\tag 5 PE(p,2i)=sin(p/100002i/Cin)PE(p,2i+1)=cos(p/100002i/Cin)(5)其中p表示元素的位置,i表示位置编码向量的维数。然而,与文献[31]不同的是,骨骼数据的输入有两个维度,即空间和时间。位置编码的一种策略是将空间和时间维度统一并按顺序编码。例如,假设有三个关节点,第一帧的关节点位置为1,2,3,第二帧的关节位置为4,5,6。这种策略不能很好地区分不同帧中的同一关节。另一种策略是将过程分解为空间位置编码和时间位置编码。以空间位置编码为例,对同一帧中的关节进行顺序编码,不同帧中的相同关节具有相同的编码。在上面的例子中,这意味着第一帧的位置是1,2,3,而对于第二帧,位置也是1,2,3。对于时间位置编码,它是反向的和类比的,即同一帧中的关节具有相同的编码,并且不同帧中的相同关节按顺序编码。最后,如图2所示,将位置特征添加到输入数据中。这样,每一个元素都有一个独特的标记来帮助学习关节之间的相互关系,并且空间和时间的差异也得到了很好的表达。
在这里插入图片描述

3.3 Spatial global regularization

  如第1节所述,每个关节都有特定的含义。基于这一先验知识,我们建议加入一个空间全局正则化,以迫使模型学习更多关于不同样本的一般注意事项。具体来说,在第二节介绍的点积注意机制学习到的注意图(N×N矩阵)中加入一个全局注意映射(N×N矩阵)。所有的数据样本共享全局注意力图,它代表了人体关节统一的内在关系模式。将其作为网络的参数,与模型一起进行优化。乘以α来平衡空间全局正则化的强度。该模块结构简单、重量轻,但在烧蚀实验中显示它是有效的。注意,正则化只是为了计算空间注意而添加的,因为时间维度没有这样的语义对齐特性。强制对时间注意进行全局正则化是不合理的,并且会损害性能。

3.4 Complete attention module

  由于空间注意模块和时间注意模块是相似的,因此我们选择空间模块作为例子进行详细的介绍。完整的注意模块如图2所示。紫色圆形矩形框内的程序说明了单头注意力计算的过程。输入 X ∈ R N × T C i n X\in \mathbb R^{N\times TC_{in}} XRN×TCin首先加上空间位置编码。然后在 X ∈ R N × T C e X\in \mathbb R^{N\times TC_{e}} XRN×TCe上嵌入两个线性映射函数。 C e C_{e} Ce通常比 C o u t C_{out} Cout小,以消除特征冗余,减少计算量。通过图1的策略(c)计算注意映射,并添加空间全局正则化。注意,我们发现Tanh比SoftMax在计算注意力图时更好。我们认为这是因为Tanh的输出不局限于正值,因此可以产生负关系并提供更大的灵活性。最后将注意力图与原始输入相乘得到输出特征。
在这里插入图片描述
  为了使模型能够共同处理来自不同表示子空间的信息,模块中共有S个heads进行注意力计算。所有heads的结果被连接并映射到具有线性层的输出空间 R N × T C o u t \mathbb R^{N\times T C_{out}} RN×TCout。与transformer类似,在终端加入一个点式前馈层以获得最终输出。我们使用 leaky ReLU作为非线性函数。如图2所示,模块中有两个残差连接,用于稳定网络训练和集成不同的特征。最后,绿色圆角矩形框内的所有过程代表一个完整的注意模块

3.5 Overall architecture

  图3显示了我们方法的总体架构。输入是具有N个关节、T帧和C通道的骨架序列。在每一层中,我们首先将输入视为 N ∈ T C N\in TC NTC矩阵,即N个具有 T C TC TC通道的元素,并将其输入到空间注意模块(如图2所示)中,以模拟关节之间的空间关系。然后,将输出矩阵转换为T个元素,每个元素有N个C通道,并将其输入到时间注意模块中,以模拟帧之间的时间关系。总共有L层堆叠来更新功能。最终的输出特征是全局平均的,并输入到一个完全连接的层中,以获得分类分数。

3.6 Data decoupling

  动作可以分解为两个维度:空间维度和时间维度,如图4(a、b和c)所示。空间信息是指同一帧中两个不同关节的差异,主要包含不同关节之间的相对位置关系。为了减少冗余信息,我们只计算人体骨骼的空间信息。时间信息是具有相同空间意义的两个关节在不同的帧中的差异,主要描述一个关节在时间维上的运动轨迹。当我们像“一个手指指着”和“两个手指指着”这样的手势,空间信息更为重要。然而,当我们认识到像“向上挥手”和“向下挥手”这样的手势时,时间信息将更加重要。
  另外,对于时间流,不同的动作对运动尺度的敏感度也不同。对于一些动作,如“拍手”和“双手合十”,短期动作细节是必不可少的。但对于“向上挥手”和“向下挥手”这样的动作,长期的运动趋势更为重要。受文献[8]的启发,我们建议用高帧速率采样和低帧速率采样来计算时间运动,如图4(d)所示。生成的两个流分别称为快时态流和慢时态流。
  最后,我们共有四个流,分别是时空流(原始数据)、空间流、快时态流和慢时态流。我们分别为每个流训练具有相同体系结构的四个模型。对分类得分进行平均,得到最终结果。

后续补充

。。。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值