Spatio-Temporal Channel Correlation Networks for Action Classification

本文提出了一种名为STC的时空通道相关网络,用于3D卷积神经网络中捕获时间、空间特征的关联信息。通过在2D CNN上预训练然后迁移至3D CNN,实现权重初始化,提高了在Kinetics数据集上的性能。STC网络包含SCB(空间通道块)和TCB(时间通道块),用于捕获通道间的时空相关性,有效地解决了3D CNNs的性能限制。实验表明,STC在视频分类任务中表现出色,尤其是在RGB数据上超越了其他方法。

Spatio-Temporal Channel Correlation Networks for Action Classification

Abstract

引入STC块对3D卷积神经网络进行关于时间、空间特征的建模。STC块嵌入目前先进的结构中能在Kinetic数据集上提高2-3%的性能。

在2D卷积神经网络上进行预训练,再将只是迁移到随机初始化的3D卷积网络中,实现稳定的权重初始化。(在Sports-1M上训练,在目标数据集HMDB51/UCF101上进行微调,便能超过其他的方法。)

Introduction

三维卷积神经网络的问题:

  1. 三维卷积神经网络忽略了通道之间的时空相关性的隐藏信息,这限制了这些体系结构的性能。
  2. 三维卷积神经网络需要超大的标记数据集。

以上的两个问题都会对计算效率和准确率造成负面影响。为避免这些限制,论文提出了:

  1. STC模块——高效捕获时间通道和空间通道关联信息。
  2. 一个有效的监督转移——连接不同架构之间的知识转移,这样就不再需要从头开始训练网络。

STC

STC的功能是同时考虑时空特征上的通道间相关性信息,可以分为两个分支(设定输入为X∈RH×W×T×CX\in{\mathbb R}^{H\times W\times T\times C}XRH×W×T×C):

  1. SCB,考虑空间通道信息。空间全局池化产生的全局接受野的表达扮演两个重要角色:a) 考虑全局相关性通过聚合全局特征输入。b) 提供一个通道描述符分析通道之间的相关性。通道及的特征向量喂到两个bottleneck形状的全连接层来学习通道间的依赖关系。
  2. TCB,考虑时间通道信息。有与SCB类似的过程,但用时间全局池化代替SCB的空间全局池化。

然后将以上两个分支的输出特征联合并作为STC块的输出。

有监督迁移

在ImageNet上训练2D卷积神经网络,将训练好的2D CNN进行有监督迁移,迁移到随机初始化的3D CNN来进行稳定的权重初始化。

这样可以避免巨额的计算工作量和训练时间。

网络结构如下:

在这里插入图片描述

Related Work

Video Classification with and without CNNs

  1. 未使用CNNs:HOG3D, SIFT3D, HOF, ESURF, MBH, iDTs, etc. 都是手动调整的。其中iDTs是最优秀的,待久就是计算成本昂贵并且缺乏补货语义概念的可拓展性。
  2. 使用了CNNs:分为2D——帧级和3D——视频级信息提取两种方式。2D使用LSTMs和RNNs来对独立帧进行建模以捕获长期时间依赖。通过特征聚合和编码来使用双线性模型、VLAD、Fisher编码等。还有一些3D卷积模型、光流卷积模型等等。

Transfer Learning

即在其他数据集上预训练好的网络放到目标数据集上进行微调。起到降低训练耗时的作用,即站在巨人的肩膀上。论文的Proposed Method中的transfer learning小节对文中使用的迁移学习方法进行了详尽的阐述。

Proposed Method

STC用于通过深度CNNs从视频中捕获不同的和新的信息。STC相关性模块在3D CNNs中提取不同层、不同通道中提取出不同通道的相关信息。此外,论文的另一个主要贡献,展示了跨架构(即2D→3D神经网络)之间的知识转移,从而避免了从头开始训练3Dcnn的需要。

STC Block

分为如下图中的TCB和SCB两条支路。每一条路径都有不同的模块;通道或卷积核信息嵌入和捕获依赖关系。论文提出的方法受到SENet论文中的方法的启发,即Squeeze-and-Excitation方法中所使用的全局平均池(空间和时间),和随后的两个bottleneck FC层和sigmoid激活函数。与SENet相比,STC块有两个分支,换句话说是双路径;一个考虑纯通道信息,另一个考虑时间通道信息。

请添加图片描述

lthl^{th}lth层提取的输出特征图是一个张量X∈RH×W×T×CX\in{\mathbb R} ^{H\times W\times T\times C}XRH×W×T×C,这四个交表分别代表特征图的高、宽、时间深度和通道序号。3D卷积和池化核的尺寸是s×s×ds\times s\times ds×s×dddd代表时间深度sss代表卷积核的空间尺寸。

TCB

可以用以下公式来表达:
ztcb=1W×H×T∑iW∑jH∑tTxijtstcb=Ftcb(ztcb,W)=W2(W1ztcb)xtcb=stcb⋅X \begin{aligned} z_{tcb}&=\frac{1}{W\times H\times T}\sum\limits_i^W\sum\limits_j^H\sum\limits_t^T x_{ijt}\\ s_{tcb}&=F_{tcb}(z_{tcb, W}) = W_2(W_1z_{tcb})\\ x_{tcb}&=s_{tcb}\cdot X \end{aligned} zt

Spatio - Temporal Graph Convolutional Networks(STGCN)是用于交通预测的深度学习框架,其原理涉及对交通网络的图结构建模以及对时间轴的卷积建模。 在交通研究中,该模型首次应用纯卷积结构从图结构时间序列中同时提取时空特征。在建模时,用图网络来对交通网络进行建模,能够捕捉交通网络中各个节点(如路口)之间的空间关系;用卷积网络对时间轴进行建模,以处理交通数据随时间的变化情况 [^2]。 该模型具有两个特点,一是在图上公式化难题,二是使用完整的卷积网建立模型。通过时空卷积块集成图卷积和门控时间卷积,以此来实现对交通数据时空特征的有效提取和分析,从而达到较好的交通预测效果 [^4]。 ```python # 这里只是一个简单示意代码框架,并非完整可运行的STGCN代码 import torch import torch.nn as nn # 简单定义一个图卷积层 class GraphConvolution(nn.Module): def __init__(self, in_features, out_features): super(GraphConvolution, self).__init__() self.weight = nn.Parameter(torch.FloatTensor(in_features, out_features)) def forward(self, input, adj): support = torch.mm(input, self.weight) output = torch.spmm(adj, support) return output # 简单定义一个时间卷积层 class TemporalConvolution(nn.Module): def __init__(self, in_channels, out_channels, kernel_size): super(TemporalConvolution, self).__init__() self.conv = nn.Conv1d(in_channels, out_channels, kernel_size) def forward(self, x): return self.conv(x) # 简单定义一个STGCN块(示意) class STGCNBlock(nn.Module): def __init__(self, in_channels, spatial_channels, temporal_channels, num_nodes): super(STGCNBlock, self).__init__() self.temporal_conv1 = TemporalConvolution(in_channels, temporal_channels, kernel_size=3) self.graph_conv = GraphConvolution(temporal_channels, spatial_channels) self.temporal_conv2 = TemporalConvolution(spatial_channels, temporal_channels, kernel_size=3) def forward(self, x, adj): x = self.temporal_conv1(x) x = self.graph_conv(x, adj) x = self.temporal_conv2(x) return x ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值