阅读Decoupled Spatial-Temporal Attention Network for Skeleton-Based Action Recognition
基于骨骼动作识别的解耦时空注意网络
paper:https://arxiv.org/abs/2007.03263
文章目录
- Abstract
- Introduction
- Method
- 3.1 Spatial-temporal attention module
- 3.2 Decoupled Position encoding
- 3.3 Spatial global regularization
- 3.4 Complete attention module
- 3.5 Overall architecture
- 3.6 Data decoupling
- 后续补充
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,这证明了该方法的有效性和可推广性。
作者的贡献共四个方面:
- 据我们所知,作者首次提出了一种用于基于骨架的动作识别的解耦时空注意网络(DSTA-Net),该网络由纯注意模块构成,无需人工设计遍历规则或图拓扑;
- 我们提出了三种有效的建立注意网络的技术,即时空注意解耦、解耦位置编码和空间全局正则化;
- 我们提出将数据分解为四个流,即时空流、空间流、慢时流和快时流,每一个流都集中在骨架序列的一个特定方面。通过融合不同类型的特征,该模型可以对人类行为有更全面的理解。
- 在四个具有挑战性的动作识别数据集上,我们的方法达到了最先进的性能和显著的优势。在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∈RN×CX \in \mathbb R^{N\times C}X∈RN×C,其中NNN表示元素个数,CCC表示通道数.对于动态骨骼数据,输入是一个3阶张量X∈RN×T×CX \in \mathbb R^{N\times T \times C}X∈RN×T×C,其中TTT表示帧数。如何处理时间与空间的关系,是一个值得探讨的问题。Wang等人建议忽略时间和空间的差异,将输入视为一个连续的数据X∈RN^×CX \in \mathbb R^{\hat N\times C}X∈RN^×C,,其中N^=NT\hat N=N TN^=NT,但是时间维和空间维是完全不同的, 把它们等同对待是不合理的。此外,该策略计算注意映射的计算复杂度为O(T2N2C)O(T^2N^2C)O(T2N2C)(采用朴素矩阵乘法算法),计算复杂度过大。相反,我们建议将空间和时间维度解耦,这样可以大大降低计算复杂度并提高性能.
作者设计了三种解耦策略,如图1所示。以空间注意为例,第一策略(图1,a)逐帧计算注意映射,每个帧使用唯一的注意映射:At=softmax(σ(Xt)ϕ(Xt)′)(2)A^t=softmax(\sigma(X_t)\phi(X_t)')\tag{2}At=softmax(σ(Xt)ϕ(Xt)′)(2)其中At∈RN×NA^t \in \mathbb R^{N\times N}At∈RN×N是t帧的注意映射,Xt∈RN×CX_t \in R^{N\times C}Xt∈RN×C。σ\sigmaσ和ϕ\phiϕ是两个嵌入函数。′'′表示矩阵转置。该策略只考虑单帧中节点的相关性,缺乏建模能力。该策略计算空间注意的计算复杂度为O(TN2C)O(TN^2C)O(TN2C)。对于时间注意,n个关节的注意映射为An∈RT×CA^n\in \mathbb R^{T\times C}An∈RT×C,输入数据为Xn∈RT∈CX_n\in \mathbb R^{T\in C}Xn∈RT∈C,其计算与空间注意相似。考虑到空间和时间的注意,第一种策略对所有帧的计算复杂度为O(TN2C+NT2C)O(TN^2C+NT^2C)O(TN2C+NT2C)。
第二种策略(图1,b)是计算所有帧之间的两个关节的关系,这意味着同时考虑两个关节的帧内关系和帧间关系。注意力图在所有帧上共享。At=softmax(∑tT∑τT(σ(Xt)ϕ(Xτ)′))(3)A^t=softmax(\sum_t^T\sum_\tau ^T(\sigma(X_t)\phi(X_\tau)'))\tag3At=softmax(t∑Tτ∑T(σ(Xt)ϕ(Xτ)′))(3)这种策略的计算复杂度O(T2N2C+N2T2C)O(T^2N^2C+N^2T^2C)O(T2N2C+N2T2C)
第三种策略(图1,c)是一种折衷方案,其中只考虑同一帧中的关节来计算注意映射,但是获得的所有帧的注意映射是平均和共享的。这相当于在注意力计算中增加了一个时间一致性约束,这在一定程度上减少了第二种策略的元级关系建模带来的过拟合问题。At=softmax(∑tT(σ(Xt)ϕ(Xt)′))(4)A^t=softmax(\sum_t^T(\sigma(X_t)\phi(X_t)'))\tag4At=softmax(t∑T(σ(Xt)ϕ(Xt)′))(4)
通过将帧连接成N×TCN\times TCN×TC矩阵,可以用一个大的矩阵乘法运算来高效地实现矩阵乘法的求和。该策略的计算复杂度为O(TN2C+NT2C)O(TN^2C+NT^2C)O(TN2C+NT2C)。如消融研究4.3所示,我们最终在模型中使用策略(c)。
3.2 Decoupled Position encoding
骨骼关节被组织成张量输入神经网络。由于张量的每个元素没有预先定义的顺序或结构来显示其身份(例如,关节索引或帧索引),我们需要一个位置编码模块来为每个关节提供唯一的标记。我们使用不同频率的正弦和余弦函数作为编码函数:PE(p,2i)=sin(p/100002i/Cin)PE(p,2i+1)=cos(p/100002i/Cin)(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∈RN×TCinX\in \mathbb R^{N\times TC_{in}}X∈RN×TCin首先加上空间位置编码。然后在X∈RN×TCeX\in \mathbb R^{N\times TC_{e}}X∈RN×TCe上嵌入两个线性映射函数。CeC_{e}Ce通常比CoutC_{out}Cout小,以消除特征冗余,减少计算量。通过图1的策略(c)计算注意映射,并添加空间全局正则化。注意,我们发现Tanh比SoftMax在计算注意力图时更好。我们认为这是因为Tanh的输出不局限于正值,因此可以产生负关系并提供更大的灵活性。最后将注意力图与原始输入相乘得到输出特征。
为了使模型能够共同处理来自不同表示子空间的信息,模块中共有S个heads进行注意力计算。所有heads的结果被连接并映射到具有线性层的输出空间RN×TCout\mathbb R^{N\times T C_{out}}RN×TCout。与transformer类似,在终端加入一个点式前馈层以获得最终输出。我们使用 leaky ReLU作为非线性函数。如图2所示,模块中有两个残差连接,用于稳定网络训练和集成不同的特征。最后,绿色圆角矩形框内的所有过程代表一个完整的注意模块
3.5 Overall architecture
图3显示了我们方法的总体架构。输入是具有N个关节、T帧和C通道的骨架序列。在每一层中,我们首先将输入视为N∈TCN\in TCN∈TC矩阵,即N个具有TCTCTC通道的元素,并将其输入到空间注意模块(如图2所示)中,以模拟关节之间的空间关系。然后,将输出矩阵转换为T个元素,每个元素有N个C通道,并将其输入到时间注意模块中,以模拟帧之间的时间关系。总共有L层堆叠来更新功能。最终的输出特征是全局平均的,并输入到一个完全连接的层中,以获得分类分数。
3.6 Data decoupling
动作可以分解为两个维度:空间维度和时间维度,如图4(a、b和c)所示。空间信息是指同一帧中两个不同关节的差异,主要包含不同关节之间的相对位置关系。为了减少冗余信息,我们只计算人体骨骼的空间信息。时间信息是具有相同空间意义的两个关节在不同的帧中的差异,主要描述一个关节在时间维上的运动轨迹。当我们像“一个手指指着”和“两个手指指着”这样的手势,空间信息更为重要。然而,当我们认识到像“向上挥手”和“向下挥手”这样的手势时,时间信息将更加重要。
另外,对于时间流,不同的动作对运动尺度的敏感度也不同。对于一些动作,如“拍手”和“双手合十”,短期动作细节是必不可少的。但对于“向上挥手”和“向下挥手”这样的动作,长期的运动趋势更为重要。受文献[8]的启发,我们建议用高帧速率采样和低帧速率采样来计算时间运动,如图4(d)所示。生成的两个流分别称为快时态流和慢时态流。
最后,我们共有四个流,分别是时空流(原始数据)、空间流、快时态流和慢时态流。我们分别为每个流训练具有相同体系结构的四个模型。对分类得分进行平均,得到最终结果。
后续补充
。。。
阅读Decoupled Spatial-Temporal Attention Network for Skeleton-Based Action Recognition相关推荐
- 【论文笔记】DR-TANet: Dynamic Receptive Temporal Attention Network for Street Scene Change Detection
论文 论文题目:DR-TANet: Dynamic Receptive Temporal Attention Network for Street Scene Change Detection 收录: ...
- 【论文笔记】SPAN: Spatial Pyramid Attention Network for Image Manipulation Localization
SPAN: Spatial Pyramid Attention Network for Image Manipulation Localization 发布于ECCV2020 原文链接:https:/ ...
- 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection
论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...
- 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition
Convolutional Two-Stream Network Fusion for Video Action Recognition CVPR2016 http://www.robots.ox.a ...
- RA-GCN:Richly Activated Graph Convolutional Network for Robust Skeleton-based Action Recognition
Richly Activated Graph Convolutional Network for Robust Skeleton-based Action Recognition TCSVT2020 ...
- 【论文阅读】Heterogeneous Graph Attention Network
异质图注意网络 摘要 1 引言 2 相关工作 2.1 GNN 2.2 网络嵌入 3 准备工作 3.1 异质图(Heterogeneous Graph) 3.2 元路径(Meta-path) 3.3 基 ...
- 论文阅读_Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
Abstract 人体骨架动力学为人体动作识别提供了重要信息.传统的骨架建模方法通常依赖于手工制作的部件或遍历规则,从而导致表达能力有限和泛化困难.在这项工作中,我们提出了一种新的动态骨架模型,称为时 ...
- 译:Convolutional Two-Stream Network Fusion for Video Action Recognition
这是双流神经网络的改进版,接下来会出他的读书笔记. 摘要:近年来,卷积神经网络(卷积神经网络)对视频中人类行为识别的应用提出了不同的解决方案,用于整合外观和运动信息.为了更好地利用 ...
- 论文阅读:iCAN: Instance-Centric Attention Network for Human-Object Interaction Detection
iCAN(BMVC2018) 文章 在InteractNet上做的改进,达到了 V-COCO 45.3%. 在由h或者o计算a的分数时,不止用它们本身的特征,还concat了context特征,c ...
- 论文阅读笔记-FGN: Fusion Glyph Network for Chinese Named Entity Recognition
论文地址:paper:https://arxiv.org/ftp/arxiv/papers/2001/2001.05272.pdf github地址:github:https://github.com ...
最新文章
- Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project 'drp2.8'. ja
- RAS RC4 AES 加密 MD5
- matlab内存溢出的解决方案
- 用户登陆注册功能(PHP)
- 配置网络策略中的 NAP 条件
- 摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱
- 使用phaserjs开发简单h5小游戏
- pano2vr 6.0转换为html,全景图转换器(Pano2VR)
- 网易云登陆界面怎么用PHP做,网易云音乐登录流程图
- uni-app 微信/头条小程序/手机号登陆
- 关于codeblocks音乐播放
- 优思学院|什么是TPM管理?
- 语句SELECT TOP 100 PERCENT在不同数据库中的区别
- Apche OFBiz 反序列化漏洞复现
- python读取文件名存到list_python-read文件名并构建名称列表(python-read file names and build a namelist)...
- 逾 200 家港企参与! GoGBA大湾区发展日(广州)圆满举行
- 【温故而知新】JavaWEB回顾(八)
- Linux 中新下载的FireFox(火狐浏览器)无法运行的解决方法
- SQOOP 部署及导入数据到 Hive 的实际应用
- mov,lea指令的区别
热门文章
- php理论掌握太少,科学网—我为什么反对让学生过早地选课和选考 - 冯大诚的博文...
- android 儿童 汉字 学习 游戏,儿童学汉字游戏app官方下载-儿童学汉字游戏v3.7 安卓版-腾牛安卓网...
- 基于STM32MP157的鸿蒙学习(一)— 资料下载及入门
- 微软蓝牙鼠标卡顿问题解决
- 爬虫模拟登陆的几种方法
- Andriod Studio 线性布局(LinearLayout)
- Windows任意文件读取漏洞
- 股市和庞氏骗局的类同之处
- 多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | 帧同步和状态同步
- 荣耀4c电信Android6.0,华为畅玩4C电信版 CyanogenMod 13.0_Android_6.0.1 【HRT_chiwahfj】