论文阅读《Long-term Temporal Convolutions for Action Recognition》

《Long-term Temporal Convolutions for Action Recognition》论文提出LTC方法,通过研究不同低级表达对动作建模的影响,强调高质量光流估计的重要性。在UCF101(92.7%)和HMDB51(67.2%)数据集上取得良好效果。网络包含5个时空卷积层和3个全连接层,输入分辨率从16帧到60帧,同时考虑RGB和光流信息。训练策略包括使用SGD,多尺度裁剪等数据增强技术。

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

论文阅读《Long-term Temporal Convolutions for Action Recognition》

标签(空格分隔): ActionRecognition ReadingNote


project page :http://www.di.ens.fr/willow/research/ltc
gayhub: https://github.com/gulvarol/ltc

现有方法一般采用CNN来获取动作表达,但是一般来说从较少的视频帧中,很难完整的对一个动作建模。

本文工作:

  • LTC(long-term temporal convolutions)
  • 研究了不同的low-level表达(比如视频原始像素、光流向量)的影响
  • 强调高质量光流估计的重要性。

实验结果:UCF101 (92.7%) and HMDB51 (67.2%)。

Intro

LONG-TERM TEMPORAL CONVOLUTIONS

网络结构

网络结构
The network has 5 space-time convolutional layers with 64, 128, 256, 256 and 256 filter response maps, followed by 3 fully connected layers of sizes 2048, 2048 and number of classes.

卷积核3x3x3,每个卷积层都采用ReLU激活函数,以及max-pooling(除了第一层是2x2x1,其他都是2x2x2)。三个维度都padding一个像素,卷积stride 1 for conv,2 for pooling。前两个fc层采用dropout。fc层结束后都接上ReLU层,最后采用softmax层输出类别分数。

网络输入

从C3D出发,首先对比16帧和60帧的输入。
系统分析输入信号的时空分辨率增长的影响(两个方面motion/appearance)。

16帧:112x112x16 crop,171x128像素
60帧:58x58x60 crop,89x67像素

60帧的网络,5个卷积层分别对应60、30、15、7、3帧输入。
16:16、8、4、2、1.

The space-time resolution for the outputs of the fifth convolutional layers is 3×3×1

### 基于Transformer的空间时间网络在人体动作识别中的研究论文与实现 #### 研究背景与发展现状 近年来,随着深度学习技术的发展,基于Transformer架构的空间时间网络逐渐成为人体动作识别领域的重要方法之一。这类模型通过引入自注意力机制来捕捉视频序列中复杂的时空关系,显著提升了动作识别的效果。 #### 关键技术特点 - **多尺度特征提取**:利用卷积神经网络(CNNs)对输入帧进行初步处理,获取不同层次的视觉特征表示[^1]。 - **空间编码器**:采用标准的ViT(Visual Transformer)结构作为骨干网,在单个图像上构建强大的局部感知能力的同时保持全局理解力。 - **时间建模模块**:不同于传统的RNN/LSTM单元,这里设计了一种特殊的Temporal Encoder Layer用于表征相邻帧间的关系变化规律,从而增强对于动态行为的理解程度。 #### 实现框架概述 一种典型的基于Transformer的人体姿态估计方案可以概括如下: ```python import torch.nn as nn class SpatialTemporalTransformer(nn.Module): def __init__(self, num_classes=400): super(SpatialTemporalTransformer, self).__init__() # 定义CNN层以获得基础特征图谱 self.backbone = BackboneNet() # 构造一系列堆叠起来的时间维度上的transformer blocks self.temporal_transformers = nn.Sequential(*[ TemporalBlock() for _ in range(num_layers)]) # 分类头部分 self.classifier = ClassifierHead(num_classes) def forward(self, x): batch_size, seq_len, c, h, w = x.shape # 提取每帧的基础特征向量 features = [] for t in range(seq_len): feature_t = self.backbone(x[:,t,:,:,:]) features.append(feature_t.unsqueeze(dim=1)) spatial_features = torch.cat(features,dim=1) # 序列化后的数据送入temporal transformer做进一步加工 temporal_output = self.temporal_transformers(spatial_features) # 获取最终预测结果并返回 logits = self.classifier(temporal_output.mean(dim=1)) return logits ``` 此代码片段展示了如何定义一个简单的Spatio-Temporal Transformer模型来进行分类任务。实际应用时还需要考虑更多细节优化以及针对具体场景调整参数配置等问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值