CTR-GCN 论文解读

论文提出了一种新的通道拓扑优化图卷积(CTR-GC),用于基于骨骼的动作识别。CTR-GC通过学习共享拓扑并用每个通道的特定相关性细化,动态建模通道拓扑,提高了图卷积的表示能力。在 NTU RGB+D, NTU RGB+D 120 和 NW-UCLA 数据集上,CTR-GCN 模型超越了当前最先进的方法。" 123189192,5615974,深入解析:利用二分查找求解H指数,"['算法', '数据结构', '二分查找', 'Java']

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

CTR-GCN 是中科院自动化所发表在 ICCV 2021 会议上的一个基于骨骼关键点的动作识别模型,其在学界的常用的几个基准数据集上均取得了目前最优的结果。

论文:基于骨骼动作识别的通道拓扑细化图卷积

摘要

图卷积网络(GCNs)在基于骨骼的动作识别中得到了广泛的应用并取得了显著的效果。在 GCNs 中,图拓扑在特征聚集中占主导地位,因此是提取代表性特征的关键

在这项工作中,我们提出了一种新的通道拓扑优化图卷积(CTR-GC),以动态学习不同的拓扑,并有效地聚合不同通道中的

### ST-GCN 空间时间图卷积网络代码实现 #### 项目概述 ST-GCN(Spatio-Temporal Graph Convolutional Networks)是一种用于基于骨架的动作识别的空间时间图卷积网络。该方法通过结合空间和时间上的信息来捕捉动作的关键特征[^1]。 #### 实现环境准备 为了运行 ST-GCN 的 PyTorch 版本,需安装必要的依赖库: ```bash pip install torch torchvision torchaudio numpy pandas matplotlib opencv-python scikit-learn tensorboardX tqdm ``` #### 数据集处理 通常使用的数据集为 NTU RGB+D 或 Kinetics-Skeleton。这些数据集中包含了人体骨骼节点的时间序列坐标。预处理步骤包括加载、归一化以及转换成适合输入模型的形式。 #### 模型定义 以下是简化版的 ST-GCN 模型结构,在实际应用中可能更为复杂并带有更多的超参数调整选项: ```python import torch.nn as nn import torch class st_gcn(nn.Module): r"""Applies a spatial temporal graph convolution over an input graph sequence. Args: in_channels (int): Number of channels in the input sequence data out_channels (int): Number of channels produced by the convolution kernel_size (tuple): Size of the convolution kernel t_kernel_size (int): Size of the temporal convolution kernel t_stride (int, optional): Stride of the temporal convolution. Default: 1 t_padding (int, optional): Padding of the temporal convolution. Default: 0 t_dilation (int, optional): Spacing between temporal kernel elements. Default: 1 bias (bool, optional): If ``True``, adds a learnable bias to the output. Default: ``True`` """ def __init__(self, in_channels, out_channels, kernel_size, t_kernel_size=1, t_stride=1, t_padding=0, t_dilation=1, bias=True): super().__init__() # Spatial and Temporal Convolutions self.conv = nn.Conv2d( in_channels, out_channels * 2, kernel_size=(kernel_size, t_kernel_size), padding=(t_padding, 0), stride=(1, t_stride), dilation=(1, t_dilation), bias=bias) def forward(self, x, A): assert A.size(0) == self.conv.weight.size(1), \ f'Input graph adjacency matrix size {A.size()} does not match expected {self.conv.weight.size(1)}' x = self.conv(x) n, kc, t, v = x.size() x = x.view(n, -1, 2, t, v).transpose(2, 3).contiguous() # N,C,T,V -> N,C,t,v,c x_reshape = x.view(n, -1, t, v * 2) return x_reshape ``` 此部分展示了如何创建一个基本的空间时间图卷积模块 `st_gcn`,它接受时空维度的数据作为输入,并返回经过变换后的输出。 #### 训练过程概览 训练过程中涉及的主要组件有损失函数的选择、优化器配置及迭代更新策略等。对于分类任务而言,交叉熵损失是一个常见的选择;Adam 是一种常用的自适应梯度下降算法,能够有效地加速收敛速度。 ```python criterion = nn.CrossEntropyLoss().cuda() optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate, weight_decay=weight_decay) scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=step_size, gamma=gamma) ``` 在每次epoch结束时调用 scheduler.step() 来动态调节学习率,有助于提高泛化能力和防止过拟合现象的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯水果茶!

谢谢你的水果茶啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值