当前位置:   article > 正文

【行为识别】TSN/TRN/TSM/SlowFast/Non-local_tsn tsm

tsn tsm

前言

记录视频理解领域的几篇文章吧,由于每篇值得记录的东西不多,所以合在一起。

关于开源框架,有港中文多媒体实验室的MMAction。有设备的就尽量多跑跑模型吧

视频相对于静态图像多了时间维度。静态图像的分类、检测、分割做得相对完善了,视频方面的工作想有创新必须在时间这个维度上钻研。

注意 Action Recognition和Spatio-temporal Action Recognition(又称action localization)的区别。前者只需判断视频的类别,后者要在视频中确定动作从第几帧开始第几帧结束,并在出现的帧上确定包含动作的bounding box。本文介绍的是前者。

预备知识

时空卷积

文章标题:A Closer Look at Spatiotemporal Convolutions for Action Recognition

首先探讨一下几种形式的时空卷积。

  • f-R2D: 帧上的2D卷积。对每一帧图像做2D卷积,最后将结果融合起来。
  • R2D:视频段上的2D卷积。将帧的维度并入输入通道。假设有l帧,则网络的输入为3lxhxw。
  • 3D卷积:输入c×l×h×w(输入通道×帧数×高×宽),卷积核大小 CxKxKxZ(输出通道x宽x高x处理帧数),假设步长都为1,则输出Cx(l-Z+1)x(h-K+1)x(h-K+1). 以上都暂不考虑batchsize这个维度。3D卷积是2D卷积在时间维度上的拓展。
  • MC卷积: 3D卷积和2D卷积的混合。MC卷积假设对时间处理越早越好,所以在前面的层用3D卷积,在后面的层用2D卷积。
  • rMC卷积:与MC卷积结构相反,其在后面层采用3D卷积。
  • 2+1D卷积:把3D卷积分解为连续的空间上的2D卷积和时间上的1D卷积。优点是增加非线性且更易优化(3D卷积难优化). 设原3D卷积核大小 KxKxZ,可拆成KxKx1(空间卷积)和1x1xZ(时间卷积)

模型

TSN

文章标题: Temporal Segment Networks: Towards Good
Practices for Deep Action Recognition
pytorch 实现: https://github.com/yjxiong/tsn-pytorch

Motivation :1,连续的帧信息往往高度相关,所以对帧作密集采样是不必要的 2,之前的方法都要求输入视频为64~120帧,不能广泛地应用
网络结构
在这里插入图片描述
由上图所示,一个输入视频被分为 K 段(segment),一个片段(snippet,几帧图像叠加在一起)从它对应的段中随机采样得到。不同片段的类别得分融合,这是一个视频级的预测。然后对所有模式的预测融合产生最终的预测结果。
文中设置K=3,融合用的是平均函数,分类用的是softmax

TRN

文章标题 Temporal Relational Reasoning in Videos

本文是对TSN最后融合方式做一个改进。TSN每个snippet独立地预测,而TRN在预测前先进行snippet间的特征融合。另外TRN的输入用的是不同帧数的snippet(different scale)。
下图的框架图一目了然,算法实现流程就是先均匀地采样出不同scale的Segment 来对应 2-frame, 3-frame, …, N-frame relation;然后对每个Segment里小片提取 Spatial feature,进行 MLP 的 temporal fusion,送进分类器;最后将不同scale的分类score叠加来作最后预测值。
图中g是两层MLP。h是一层MLP,其输出维度是类别数。
在这里插入图片描述

TSM

文章来源: https://arxiv.org/abs/1811.08383

Motivation:3D网络的计算量大,而2D网络没有利用时序信息。提出了时间移位(temporal shift)模块,能够用2D网络对时间建模。即将当前帧的特征图部分通道替换为前一帧或后一帧的通道。
在这里插入图片描述
图(a)是原始的特征图(省略了batchsize,w,h这三个与讨论无关的维度),图(b)包括将前一帧和后一帧的通道替换当前帧的通道,适用于离线的方式。视频首尾帧对应位置用零填充。图©仅有前一帧的通道,适用于在线的方式。
temporal shift 模块应该作为原来2D网络的补充(即放在残差分支上,如下图(b)),而不能放在主干网络(如下图(a)),否则会破坏当前帧的空间语义。
在这里插入图片描述
下图显示了in-place和residual两种不同方式,以及其他帧特征的不同占比带来的效果。
在这里插入图片描述

SlowFast

文章来源:https://arxiv.org/pdf/1812.03982.pdf

Motivation:1,在视频动作识别中,类别语义一般变化得较慢,而动作语义变化得较快 2,人眼有20%的m细胞和80%的p细胞。m细胞在高时间频率下工作,对快速的时间变化有反应,但对空间细节或颜色不敏感。p细胞相反。
所以设计了两路卷积神经网络,一路用来捕获不变或变化较慢的语义信息,称为Slow pathway,一路用来捕获快速变化的语义信息,称为Fast pathway。

网络结构
在这里插入图片描述
Slow分支的帧采样更稀疏,因此会更侧重不变的语义(空间信息),而Fast 分支的帧采样更密集且通道数更少(限制了表达能力),因此会更侧重变化(语义)的语义。
如果想要Fast分支更少关注空间信息,可以对Fast分支的输入作以下尝试:将帧宽高分别减半; 将帧灰度化;换成光流; 换成前后帧之差
为了维持时间维度上的高分辨率,Fast分支没有时间维度的下采样操作(池化或带孔卷积)
Fast分支有侧向连接到Slow分支。这是一个在目标检测和视频理解很常用的手段。可供选择的方法如下:
在这里插入图片描述
下面是以resnet50为backbone的SlowFast
在这里插入图片描述

Tips

  • Slow分支前面的层不宜用时间维度步长大于1的卷积核(称为非退化(non-degenerate)核,即非退化到2D卷积核),否则准确率会下降。可能原因是浅层网络空间感受野不大,如果目标运动速度快的话相邻帧的同一位置上的语义可能没什么联系。
  • 为了捕获时间上的联系,Fast分支宜用非退化核
Non-local

Motivation
之前的方法捕获长范围特征需要累积很多层网络,导致学习效率太低,所有提出一种全局操作模块
网络结构
在这里插入图片描述
1,首先对输入的特征图X分别进行 1 × 1 × 1 1\times 1\times1 1×1×1卷积压缩通道数得到 θ , ϕ , g \theta, \phi,g θ,ϕ,g特征
2,reshape θ , ϕ \theta, \phi θ,ϕ,合并上述三个特征除通道数意外的维度,作矩阵相乘,再归一化系数0~1之间。这一步就是计算X的自相关系数,即所有像素对其他像素的关系。
3,将自相关矩阵和g相乘,然后恢复原来的通道数,做残差。

non-local是Attention机制的应用。其实融合全局信息可以直接用全连接层。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/985403
推荐阅读
相关标签
  

闽ICP备14008679号