Simba:Mamba 增强了 U-ShiftGCN,用于视频中的骨骼动作识别

news/2024/9/12 16:47:28/

Simba:Mamba 增强了 U-ShiftGCN,用于视频中的骨骼动作识别

  • 摘要
  • Introduction
  • Related Works
  • Methodology
    • Down-sampling ShiftGCN Encoder
  • Experiments & Results
    • Datasets

Simba: Mamba augmented U-ShiftGCN for Skeletal Action Recognition in Videos

摘要

骨架动作识别(SAR)涉及使用骨骼关节坐标及其互联来识别人类动作。尽管已经尝试将普通的Transformer应用于这项任务,但它们与基于图卷积网络(GCNs)的当前领先方法相比仍有不足,这是由于缺乏结构先验。

最近,一种新颖的选择性状态空间模型Mamba作为Transformer中注意力机制的强有力替代品出现,它有效地建模了长序列。在这项工作中,据作者所知,作者首次提出了一个结合了Mamba的SAR框架。

作者模型的每个基本块采用了新颖的U-ShiftGCN架构,以Mamba为其核心组件。U-ShiftGCN的编码器部分设计用于从骨骼数据中提取空间特征,使用下采样的普通Shift S-GCN块。这些空间特征随后通过Mamba块进行中间时间建模,然后进入包含普通上采样Shift S-GCN块的编码器部分。

此外,在每个基本块的输出之前,还采用了Shift T-GCN(ShiftTCN)时间建模单元来细化时间表示。这种下采样空间、中间时间、上采样空间和最终时间子单元的特定集成对于骨架动作识别产生了有希望的结果。

作者将这个模型命名为Simba,在三个知名的骨架动作识别基准数据集上均取得了最先进的表现:NTU RGB+D、NTU RGB+D 120和Northwestern-UCLA。

有趣的是,仅U-ShiftGCN(没有中间Mamba块的Simba)本身就能表现相当出色,并且超过了作者的 Baseline 。

Introduction

基于骨骼的人类动作识别因其计算效率以及能够抵抗环境波动和不同摄像机视角差异的能力而越来越受到关注。基于骨骼的动作识别的一个显著优势在于,通过像Kinect 这样的传感器或者可靠的姿态估计算法 获取身体关键点相对容易。因此,这使得姿态成为一种相对于传统的RGB、光流或基于深度的方法更为可靠的模态。

近年来,图卷积网络(GCNs)在建模非欧几里得数据方面得到了广泛应用。Yan等人是最早将关节及其相互连接视为图结构中的节点和边的人之一。他们在预定义的图上使用图卷积网络(GCN)来分析关节间的交互。从那时起,GCNs已成为骨骼基础动作识别任务的主导选择。包括多种模态(例如,关节、骨、关节速度和骨速度)或如MV-IGNet 中看到的多视图图表示的GCN的几种变体已被用于解决捕捉节点间关系的挑战。此外,基于图 Transformer 的方法如ST-TR 和DSTA 也已被用于随时间进行的骨骼动作识别。

然而,最近在建模长序列方面出现了重大范式转变。Mamba ,一种选择性的结构化状态空间序列模型(S6),在语言领域和基因组学中高效地建模长时序数据方面表现出了卓越的能力。

这自然引出了几个问题:

Mamba能否在封装图关系方面显示其有效性?
它是否可以进一步利用来高效地建模视频中图快照的时间序列?
在本研究中,据作者所知,作者首次引入了将Mamba应用于时间图数据的骨骼动作识别框架。作者新颖的Simba模型中的每个组成模块都采用了U-ShiftGCN架构,其中Mamba是其基本核心。U-ShiftGCN的编码器部分设计为使用降采样vanilla Shift S-GCN 块从骨骼数据中提取丰富的空间特征。然后,这些空间特征通过Mamba块进行中间时间建模,再进入由vanilla Upsampling Shift S-GCN块组成的编码器部分。

此外,在每个组成块的输出之前部署了Shift T-GCN(ShiftTCN) 时间建模单元以增强时间表示。有趣的是,U-ShiftGCN架构本身尚未被探索过,并且比作者的 Baseline 取得了更好的性能。这种融合了降采样空间Shift S-GCN、中间时间Mamba和升采样空间Shift S-GCN以及ShiftTCN最终时间聚合的方法为骨骼动作识别带来了有希望的结果,作者的实验结果证实了这一点。

值得注意的是,作者的模型在三个著名基准骨骼动作识别数据集上均达到了最先进的表现:NTU RGB+D、NTU RGB+D 120和Northwestern-UCLA。

作者的主要贡献可以总结如下:

作者据作者所知首次提出了一个将Mamba用于图数据时间序列建模的骨骼动作识别(SAR)框架。
作者的模型Simba在三个流行基准数据集上的SAR任务上超过了之前的最先进水平。
值得注意的是,作者Simba框架的衍生物U-ShiftGCN本身就是一个全新的探索,显示出其能够超越 Baseline 性能。
本文的后续部分结构如下:在第2部分,作者深入研究与骨骼动作识别(SAR)相关的现有技术,并强调Mamba在高效促进长序列建模方面的重要性。作者提出的方法在第3部分进行详细阐述。第4部分展示了关于作者提出方法的实证发现,并与最先进(SOTA)方法进行了详尽的对比。最后,在第5部分,作者讨论了重要的观察结果,并描述了在作者提出研究范围内未来探索的未来方向。

Related Works

在本节中,作者概述了与作者的研究关于骨架表示相关的主要文献,以及在这些方向上进展显著的高效建模长序列数据的工作。

Skeleton-based action recognition
在以往的研究中,循环神经网络(RNNs) 和卷积神经网络(CNNs)[14, 22] 常被用于基于骨架的人类动作识别任务。然而,这些方法往往忽视了关节之间的空间相互作用。因此,图卷积网络(GCNs)在这一领域的突出性增加了,因为它们通过图建模巧妙地捕捉了空间配置。

基于GCN的方法 以Yan等人为首的GCN方法的开创性工作,他们最初使用GCNs[15]来捕捉关节关联,并强调了它们在动作识别中的有效性。随后,为了应对骨架动作识别(SAR)的挑战,引入了各种GCN的改编版本,如ShiftGCN[2]和ShiftGCN++[3]。与依赖繁重的常规图卷积不同,ShiftGCN集成了新颖的移位图操作和轻量级的点卷积。这些操作为空间和时间图提供了灵活的感受野。其后续版本ShiftGCN++是一种特别计算效率的模型,专为计算能力受限的低功耗和低成本设备设计。

基于Transformer的方法 最近,基于Transformer的策略作为一种替代方法出现,主要关注于管理额外的时间维度。例如,提出了一种双流模型,结合了空间和时间自注意力机制,分别捕捉帧内和帧间的关联。相比之下,DSTA-Net[30]使用了一种在空间和时间维度之间交替建模的Transformer。然而,这些方法并没有达到与最先进的基于GCN的方法相当的效果。这种性能上的不足归因于它们对传统Transformer设计的坚持,这些设计没有考虑到骨架数据的独特特性。

Long Sequence Modeling
自注意力机制的有效性归功于其在上下文窗口内的密集信息路由,这使得它能够模拟复杂的数据模式。然而,这一特性固有地存在限制:无法在有限窗口之外建模,并且与窗口长度成二次方增加的计算复杂度。近来,结构化状态空间序列模型(SSMs) 作为一类有前景的序列建模架构而出现。这些模型融合了循环神经网络(RNNs)和卷积神经网络(CNNs)的元素,从经典状态空间模型 [13] 中汲取灵感。它们展现出卓越的计算效率,在序列长度上呈线性或近线性扩展,并且可以作为循环或卷积操作实现。SSMs 作为独立的序列转换,可以无缝地整合到端到端的神经网络架构中。

H3[8] 利用 S4 扩展了这种循环,提出了一种具有两个门控连接的 SSM 的架构。此外,H3 还在主 SSM 层之前引入了一种标准的局部卷积,称为移位-SSM。同时,Hyena 采用了与 H3 类似的架构,但用由多层感知机(MLP) 参数化的全局卷积替换了 S4 层。在此基础上,[9] 引入了一种称为 选择性结构化状态空间序列模型(S6) 的新型模型类别,作为序列建模中与 Transformer 竞争的替代品。这一发展激发了作者将 Mamba 集成到骨架动作识别领域的兴趣,这需要大量的时间建模。

Methodology

在本节中,作者将熟悉将在整篇论文中使用的术语,并详细阐述作者提出的Simba模块的每个组成部分。

在这里插入图片描述

Down-sampling ShiftGCN Encoder

下采样ShiftGCN编码器包含一系列三个Shift S-GCN[2]块。在使用之前,输入张量经过初始Shift S-GCN操作,扩大了即将进入ShiftGCN编码器的张量的通道维度。这种增强使得编码器中的每个Shift S-GCN可以进行后续的2倍下采样(最后一个除外)。
ShiftGCN编码器的核心目标是在提取骨架中节点嵌入的复杂空间细节的同时,减少其通道维度。这种策略在准确性和计算效率之间实现了平衡,因为这一阶段的输出将被送入Mamba块,其中最佳的嵌入维度 ( (D_P \in \mathbb{R}^{V \times P}) ) 是必不可少的。这种维度确保了有效信息封装,同时不损害计算效率。从数学上讲,这一阶段可以用一个函数 ShiftGCNdoun (( a’ )) 表示,其中 ( a’ ) 是在进入当前块之前通过初始Shift S-GCN得到的张量。
在这里插入图片描述
在这一点上,a ∈ RN×DxTxV,其中N是有效的批处理大小,D是通道维度,T是时间维度,V对应于图中的顶点数量。作者对这个张量讲行置换和展平,得到形状为RNxTx(V*D)的输出。这随后被送入中间mamba块。

Experiments & Results

在本节中,作者首先将Simba架构与目前基于骨架的人类动作识别基准测试中的领先方法进行对比,以展示作者模型的卓越有效性。随后,作者进行消融研究,以更深入地探讨作者提出的方法,以获得更全面的理解。

Datasets

作者评估了作者提出的Simba在三个广泛认可的数据集上的有效性:NTU-RGB+D ,NTU-RGB+D 120 ,以及Northwestern-UCLA,以下是这些数据集的简要描述:

NTU-RGB+D 数据集是骨骼基础的人类动作识别的重要基准。它包含56,880个骨骼动作序列,每个序列由一个或两个人执行。这些序列由三个Microsoft Kinect-V2深度传感器同时捕捉,这些传感器高度相同但水平视角不同。

评估采用两个不同的基准:跨主体(X-Sub)和跨视角(X-View)设置。在X-Sub设置中,训练和测试数据集分别来自两个各有20个主体的独立队列。在X-View场景中,训练集由37,920个由摄像头视角2和3捕获的样本组成,而测试集由18,960个由摄像头视角1记录的序列组成。

NTU-RGB+D 120 数据集通过包括57,367个骨骼序列和60个补充动作类别来扩展NTU-RGB+D数据集。它是目前最大的带有3D关节标注的人类动作识别数据集,包含32个设置,每个设置代表不同的地点和背景。作者建议的两个基准评估包括跨主体(X-Sub)和跨设置(X-Setup)。

Northwestern-UCLA 数据集由三个Kinect传感器从不同视角捕捉,包含1,494个视频序列,跨越10个动作类别。

Implementation details
NTU RGB+D 60和NTU RGB+D 120. 作者的模型Simba和U-ShiftGCN进行了90个周期的训练,相较于之前研究中的典型140个周期,作者的模型更早地达到了收敛。学习率从0.025开始,在第75和85个周期时下降0.1。训练和测试批次分别包含64和512的大小。窗口大小(T),表示每个视频中采样的帧数,在数据预处理中设置为64,遵循中的方法。

Northwestern-UCLA. 训练和测试的批次大小分别设置为16和64。使用的窗口大小为52。作者的模型训练了400个周期以最大化其潜力,并且作者还遵循了[51]中概述的预处理策略。

对于NTU RGB+D 60和NTU RGB+D 120数据集,作者应用了0.0001的权重衰减,与之前的工作保持一致,而对于NW-UCLA,权重衰减设置为0.0004。在配置mamba块时,作者将嵌入维度(d-model)固定为500,与基于ViT-B[5]启发的 Baseline mamba架构紧密对齐,后者的嵌入维度为768。

为了确保一致性,作者根据NTU数据集和NW-UCLA数据集的骨骼节点数(分别为25和20)调整mamba相邻的Shift-GCN块的通道维度为20和25。作者还按照将模型的深度设置为(10)。有关实现的更多细节可以在附录材料部分找到。

Comparison with state-of-the-art
遵循该领域最近的进展,作者采用了多流融合方法。具体来说,作者整合了四个流,每个流针对不同的模态:关节、骨骼、关节运动和骨骼运动。关节模态包括原始骨架坐标,而骨骼模态捕捉空间坐标差分。另一方面,关节运动和骨骼运动模态分别关注关节和骨骼模态内的时间差分。为了整合这些流的信息,作者从每个流聚合softmax分数以得到融合分数。


http://www.ppmy.cn/news/1423409.html

相关文章

求交错且分母为阶乘的和(java)

import java.util.*; public class APP1{public static void main(String[] args){double sum0.0;int n0;int flag1;int fm1;Scanner reader new Scanner(System.in);System.out.println("请输入n的值&#xff1a;");nreader.nextInt();for(int i0;i<n;i){fm*i; …

极狐GitLab x LigaAI,AI 时代研发提效新范式

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 近日&#xff0c;极狐GitLab 和 LigaAI 宣布合作&#xff0c;双…

DDD学习

概述 学习一下DDD 什么是DDD DDD是领域驱动设计&#xff08;Domain Driven Design&#xff09;的缩写&#xff0c;是一种软件开发方法论。它强调将业务领域划分为多个紧凑的、自包含的领域&#xff0c;并通过强调领域模型的重要性来建立一个通用的语言和理解。 DDD鼓励开发…

京西商城——前端项目的创建以及前后端联调

创建VUE项目 在jingxi_shop_project文件夹中再创建一个 frontend 文件夹用来存放前端项目 /jingxi_shop_project/backend/jingxi_shop_project....../frontend/jingxi_shop_web......首先要安装 node.js 和 VUE cli&#xff0c;进入到项目目录内创建项目 vue create jingxi_…

2024 年 Web 前端开发趋势

希腊哲学家赫拉克利特认为&#xff0c;变化是生命中唯一不变的东西。这句话适用于我们的个人生活、行业和职业领域。 尤其是前端开发领域&#xff0c;新技术、开发趋势、库和框架不断涌现&#xff0c;变化并不陌生。最近发生的一些事件正在改变开发人员构建网站和 Web 应用的方…

前后端系统开发之——文章管理

原文地址&#xff1a;前后端系统开发之——文章管理 - Pleasure的博客 下面是正文内容&#xff1a; 前言 主要使用的技术&#xff1a;前端使用的是Vue.js&#xff0c;后端使用的是SpringBoot。如不雷同可以直接跳过了。 文章管理是这个系统最主要的一个功能也是最常规的一个功…

202462读书笔记|《一世珍藏的诗歌200首》——你曾经羞赧地向我问起, 是谁最早在此留下足印

202462读书笔记|《一世珍藏的诗歌200首》——你曾经羞赧地向我问起&#xff0c; 是谁最早在此留下足印 《一世珍藏的诗歌200首》作者金宏宇&#xff0c;很多美好的诗&#xff0c;有徐志摩&#xff0c;戴望舒&#xff0c;林徽因&#xff0c;舒婷等的诗精选&#xff0c;很值得一读…

Python分析之3 种空间插值方法

插值是一个非常常见的数学概念,不仅数据科学家使用它,而且各个领域的人们也使用它。然而,在处理地理空间数据时,插值变得更加复杂,因为您需要基于几个通常稀疏的观测值创建代表性网格。 在深入研究地理空间部分之前,让我们简要回顾一下线性插值。 为了演示的目的,我将使…

FebHost:谁可以注册.CA加拿大域名?

在加拿大&#xff0c;互联网域名的注册管理遵循一套独特的规则。特别是对于代表加拿大身份的顶级域名“.ca”&#xff0c;其申请和注册过程涉及一些严格的条件。这些条件确保了只有符合特定标准的个人或实体才能获得这一具有国家象征意义的网络地址。 首先&#xff0c;想要注册…

算法学习笔记Day6——二维数组的花式遍历

引言&#xff1a;一些操作的最佳算法可能不符合我们的直观思路&#xff0c;但是它对计算机来说是有效的&#xff0c;对于我们来说匪夷所思、八竿子打不着的操作可能正好就能够得出符合要求的操作。这其中有很深的数学变换思维&#xff0c;需要勤于思考&#xff0c;多加练习。 …

C++ | Leetcode C++题解之第23题合并K个升序链表

题目: 题解&#xff1a; class Solution {// 21. 合并两个有序链表ListNode *mergeTwoLists(ListNode *list1, ListNode *list2) {auto dummy new ListNode(); // 用哨兵节点简化代码逻辑auto cur dummy; // cur 指向新链表的末尾while (list1 && list2) {if (list1…

深度探索:Secure Hash Algorithm(SHA)全景解析

title: 深度探索&#xff1a;Secure Hash Algorithm&#xff08;SHA&#xff09;全景解析 date: 2024/4/15 18:33:17 updated: 2024/4/15 18:33:17 tags: SHA安全抗碰撞性算法版本实现细节性能优化发展历史应用案例 密码学中的哈希函数 一、哈希函数的定义 哈希函数是一种数…

PDE判断题

PDE判断题 波动方程满足弱极值原理波动方程满足强极值原理强极值原理波动方程结论 一个均匀细杆&#xff0c;从初始时刻开始受到冷却作用&#xff0c;那么一段时间内&#xff0c;杆上的最高温度一定能在两端或者初始时刻取得。一个定义在全平面上的调和函数&#xff0c;如果有下…

Nodejs 第六十四章(SSO单点登录)

单点登录 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是一种身份认证和访问控制的机制&#xff0c;允许用户使用一组凭据&#xff08;如用户名和密码&#xff09;登录到多个应用程序或系统&#xff0c;而无需为每个应用程序单独提供凭据 SSO的主要优…

算法训练营第25天回溯(分割)

回溯算法&#xff08;分割&#xff09; 131.分割回文串 力扣题目链接(opens new window) 题目 给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: “aab” 输出: [ [“aa”,“b”], [“a”,“…

免费的壁纸api

# 联想壁纸 from enum import Enumimport requestsclass LenovoTopHeadersTypePage(Enum):"""头部页面类型wallpaper 精选wallpaperHot 热门wallpaperRank 排行"""wallpaper wallpaperwallpaperHot wallpaperHotwallpaperRank wallpaperRankc…

【NEUQ1007】C基础-计负均正

C基础-计负均正 描述 从键盘输入任意20个整型数&#xff0c;统计其中的负数个数并求所有正数的平均值。 输入描述 从键盘输入20个整型数&#xff0c;以空格分隔。 输出描述 输出负数的个数和所有正数的平均值&#xff0c;保留两位小数。 示例 输入 1 2 3 4 5 6 7 8 9 …

【python从入门到精通】-- 第五战:函数大总结

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

《八》QSplitter拆分器以及QDockWidget窗口详解

QSplitter简介 QSplitter拆分器允许用户通过拖动子部件之间的边界来控制它们的大小。 单个拆分器可以控制任意数量的小部件。QSplitter的典型用法是创建几个小部件&#xff0c;并使用insertWidget()或addWidget()添加它们。 常用方法 默认情况下&#xff0c;QSplitter会动态…

Java学习笔记零基础入门1

目录 第一章 Java概述 1.1 什么是程序 1.2 Java 技术体系平台 1.3 Java 重要特点 1.4 Java 的开发工具 4.1 工具选择 1.5 Java 运行机制及运行过程 5.1 Java 语言的特点&#xff1a;跨平台性 5.2 Java 核心机制-Java 虚拟机 [JVMjavavirtual machine] 1.6 什么是JDK&…