《Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition》论文阅读之2s-AGCN

本文提出新的双流自适应图卷积网络(2sAGCN)用于基于骨架的动作识别。现有基于GCN方法存在图拓扑手动设置、未充分利用骨骼二阶信息等问题。2sAGCN可学习图拓扑结构,采用双流框架融合一、二阶信息,在NTU - RGBD和Kineticskeleton数据集上性能超现有水平。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

paper:2s-AGCN

code :2s-AGCN

 

摘要

在基于骨架的动作识别中,将人体骨架建模为时空图的图形卷积网络(GCN)取得了显著的效果。然而,在现有的基于GCN的方法中,图的拓扑结构是手动设置的,并且它固定在所有层和输入样本上。对于行动识别任务中的分层GCN和不同的样本,这可能不是最佳选择。此外,在现有的方法中,很少研究骨骼数据的二阶信息(骨骼的长度和方向),这对于动作识别来说自然更具信息性和识别性。

在这项工作中,我们提出了一种新的双流自适应图卷积网络(2sAGCN)用于基于骨架的动作识别。

该模型中的图拓扑结构可以由BP算法以端到端的方式统一学习,也可以单独学习。这种数据驱动的方法提高了模型的灵活性,为适应各种数据样本带来了更广泛的通用性。此外,提出了一种一阶和二阶信息同时建模的双流框架,这对识别精度有显著提高。对NTU-RGBD和Kineticskeleton这两个大型数据集进行了大量的实验,结果表明,我们的模型的性能大幅超过了最先进的水平。

 

Introduction

基于骨架数据的动作识别方法因其对动态环境和复杂背景的适应性强而受到广泛研究和重视。但是,将骨架数据表示为矢量序列或二维网格不能完全表示相关关节之间的依赖关系。骨架在非欧几里得空间中自然地被构造成一个图,其中关节作为顶点及其在人体中作为边缘的自然连接。以前的方法不能利用骨架数据的图形结构,很难推广到任意形状的骨架。近年来,将卷积从图像推广到图形的图形卷积网络(GCN)在许多应用中得到了成功的应用。

对于基于骨骼的动作识别任务,香港中文大学提出一种时空图卷积网络,并利用它们进行人类行为识别。这种算法基于人类关节位置的时间序列表示而对动态骨骼建模,并将图卷积扩展为时空图卷积网络而捕捉这种时空的变化关系。Yan等人率先提出GCN对骨架数据进行建模。他们根据人体关节的自然连接构造了一个空间图,并在连续的帧中添加相应关节之间的时间边缘。提出了一种基于距离的采样函数来构造图卷积层,并以此为基本模块来构造最终的时空图卷积网络(ST-GCN)。

但是,这一过程有三个缺点,ST-GCN中的图形结构:

(1)ST-GCN中使用的骨架图是启发式预定义的,并且仅表示人体的物理结构。因此,它不能保证对动作识别任务是最优的。例如,双手之间的关系对于识别诸如“拍手”和“阅读”之类的类很重要。然而,ST-GCN很难捕捉到双手之间的依赖关系,因为它们在预先定义的基于人体的图形中彼此相距很远。

(2)GCN的结构是层次结构,不同的层次包含多级语义信息。然而,ST-GCN中应用的图的拓扑结构在所有层上都是固定的,缺乏对所有层中包含的多级语义信息进行建模的灵活性和能力;

(3)对于不同行为类别的所有样本,一个固定图结构可能不是最优的。对于“擦脸”和“摸头”这类类别,手和头之间的联系应该更紧密,但对于其他一些类别,如“跳起来”和“坐下来”则不是这样。这一事实表明,图结构应该依赖于数据,然而,ST-GCN不支持这种依赖性。

 

为了解决上述问题,本文提出了一种新的自适应图卷积网络。它参数化两种类型的图,其结构与模型的卷积参数一起训练和更新。一种类型是全局图,它表示所有数据的通用模式。另一种类型是单独的图形,它表示每个数据的唯一模式。这两种类型的图都针对不同的层进行了单独的优化,可以更好地适应模型的层次结构。这种数据驱动的方法提高了模型的灵活性,为适应各种数据样本带来了更广泛的通用性。

ST-GCN中另一个值得注意的问题是,每个顶点上的特征向量只包含关节的二维或三维坐标,可以将其视为骨架数据的一阶信息。然而,代表两关节间骨骼特征的二阶信息并没有被利用。通常情况下,骨骼的长度和方向对于动作识别来说自然更具信息性和识别性。为了利用骨骼数据的二阶信息,将骨骼的长度和方向表示为从其源关节指向目标关节的向量。与一阶信息相似,矢量被输入一个自适应图卷积网络来预测动作标签。同时,提出了一种融合一阶和二阶信息的双流框架,进一步提高了系统的性能。

为了验证该模型的优越性,即双流自适应图卷积网络(2sAGCN),在两个大规模数据集上进行了广泛的实验:NTU-RGBD[27]和Kineticskeleton[12]。我们的模型在两个数据集上都实现了最先进的性能。

我们工作的主要贡献有三个方面:

(1)提出了一种自适应图卷积网络,以端到端的方式自适应地学习不同GCN层和骨架样本的图的拓扑结构,能够更好地适应GCN的动作识别任务和层次结构。
(2)骨架数据的二阶信息采用双流框架显式地表示并与一阶信息相结合,对识别性能有显著提高。

(3)在两个大规模的基于骨架的动作识别数据集上,所提出的2s-Agcn大大超过了最先进的水平。

 

 

实验结果

 

 

 

细节后期更新...........

 

 

 

 

 

### Skeleton-Based Action Recognition Using Adaptive Cross-Form Learning In the realm of skeleton-based action recognition, adaptive cross-form learning represents a sophisticated approach that integrates multiple modalities to enhance performance. This method leverages both spatial and temporal information from skeletal data while adapting dynamically across different forms or representations. The core concept involves constructing an end-to-end trainable framework where features extracted from joint coordinates are transformed into various intermediate representations such as graphs or sequences[^1]. These diverse forms capture distinct aspects of human motion patterns effectively: - **Graph Representation**: Models interactions between joints by treating them as nodes connected via edges representing bones. - **Sequence Modeling**: Treats each frame's pose estimation results as elements within time-series data suitable for recurrent neural networks (RNN). Adaptive mechanisms allow seamless switching among these forms based on their suitability at different stages during training/inference processes. Specifically designed modules learn when and how much weight should be assigned to specific transformations ensuring optimal utilization of available cues without overfitting any single modality. For implementation purposes, one might consider employing Graph Convolutional Networks (GCNs) alongside Long Short-Term Memory units (LSTMs). GCNs excel in capturing structural dependencies present within graph structures derived from skeletons; meanwhile LSTMs handle sequential modeling tasks efficiently handling long-range dependencies found along video frames' timelines. ```python import torch.nn as nn class AdaptiveCrossFormModule(nn.Module): def __init__(self): super(AdaptiveCrossFormModule, self).__init__() # Define components responsible for processing individual form types here def forward(self, input_data): # Implement logic determining which transformation path(s) will process 'input_data' pass def train_model(model, dataset_loader): criterion = nn.CrossEntropyLoss() optimizer = ... # Initialize appropriate optimization algorithm for epoch in range(num_epochs): running_loss = 0.0 for inputs, labels in dataset_loader: outputs = model(inputs) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step() running_loss += loss.item() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值