【算法详解】SlowFast——用于视频识别任务的双通道模型

目录

0 参考链接

1 SlowFast基本思想

2 SlowFast模型结构

2.1 双通道处理

2.2 具体结构

2.3 横向连接


最近在完成一个视频分类的任务,找到并学习了SlowFast模型。这个模型在我实现的任务中取得了较好的效果,所以今天和大家分享一下我对SlowFast这个模型的理解。当然这个模型并不止于实现视频分类,更多用途等待大家去探索。

0 参考链接

SlowFast论文:SlowFast Networks for Video Recognition

SlowFast模型源码:https://github.com/ facebookresearch/SlowFast

1 SlowFast基本思想

如果我们忽略图片图层的影响,那么我们可以将一张图片看做具有两个维度x和y,分别代表图片的横向和纵向坐标。通常情况下,我们可以认为这两个维度在意义上是对称的,即我们可以同等的对待、处理这两个维度。

但对于视频而言,我们可以将其看做是一系列连续视频帧的集合,那么一个视频就具有三个维度:x、y和t,其中x和y仍是图片的横纵坐标,t代表时间维度。运动是时空领域中与方向相对应的概念,不同的空间-时间方向上的运动并不具有相同的概率分布。因此我们并不能同等的对待这三个维度。

为了更好地理解上一段加粗的话,我们可以从两个方面来看:

空间方向: 在自然界中,不同方向上的运动可能会因环境、物体的性质和外部因素而有所不同。例如,对于地面上的物体,垂直于地面的运动可能会比水平方向上的运动更常见,因为重力的影响会导致物体更容易在垂直方向上运动。此外,一些环境中可能存在偏好的运动方向,比如河流中的水流通常沿特定的方向流动。因此,不同的空间方向上的运动并不是等概率出现的。

时间方向:对于运动的速度来说,慢速运动通常比快速运动更常见。这是因为大部分物体在任意时刻都处于相对稳定的状态,而快速的、剧烈的运动可能相对较少见。例如,人们通常在室内静止或缓慢移动,而高速运动通常需要特定的情境,比如运动比赛或紧急情况。因此,不同时间点上的快速运动的发生概率较低。

当然这并不是这个论文的重点,不理解也没有关系,我的理解也不保证完全正确。

总而言之,我们不应同等地对待时间(t)和空间(x,y)维度,因此SlowFast模型希望通过双通道结构实现对于时间和空间信息的分别处理

2 SlowFast模型结构

2.1 双通道处理

SlowFast核心是使用双通道处理视频,这两个通道分别命名为Slow pathway(慢速通道)和Fast pathway(快速通道)。整体结构如上图所示。

为了区分这里名称中的通道(pathway)和卷积后的通道数(channel),因此后面将快速和慢速通道成为‘Fast’和‘Slow’,“通道”一词指卷积后的通道。

Slow相较于Fast具有相对较低的帧率,但是具有更多的通道数,Slow用于捕捉空间中的语义信息,即Slow捕捉到了视频中相对静态的信息。

Fast具有更高的帧率,但是具有更少的通道数,这使得Fast的计算量大大减小,但同时也使得Fast对空间信息的建模能力减弱,而更多关注与时间维度上变化明显的信息

Slow和Fast并非独立存在,二者之间的信息融合为单向信息融合,二者通过多次的横向连接实现信息融合,横向连接的方向为从Fast到Slow,这意味着Fast不会接收到有关Slow的任何信息,但是Slow则可以包含Fast中的信息。

具有双通道结构的SlowFast模型到底算不算是双流模型呢?作者在文中给出了答案。

双流模型是通过处理视觉信息和光流信息(即像素级的图像运动信息)以提高任务性能。作者们认为双流模型并没有探索不同帧率的影响,两个流采用相同的骨干网络。而SlowFast考虑到帧率的影响,设计了以不同帧率的Slow和Fast,Fast更加轻量,并且不计算光流,因此算是以两种不同帧率运行的单一流架构

2.2 具体结构

Slow的骨干网络可以是任何卷积网络,它具有时间维度上的步长τ,即从输入的视频帧序列中每τ帧选取一帧进行处理。如果我们认为输入视频片段后Slow一共选取了T帧图像,那么原始输入视频帧总数应为τ*T,这一点是显而易见的。τ的典型值为16。

Fast的骨干网络是另一个卷积模型,它具有更高的帧率,即更小的步长。Fast在时间维度上的步长为τ/α,其中α>1,这意味着它能够从原始输入视频帧中选择更多的帧进行处理(选取αT帧)。α的典型值为8。

对于每次卷积后Slow具有的通道数,Fast进行对应卷积操作后会具有相对更少的通道数,二者具有比例β,即Fast卷积后通道数/Slow卷积后通道数=β,其中β<1。β的典型值为1/8。

一种以ResNet50位骨干网络的SlowFast模型如下图所示。T为时间维度视频帧数量,S为视频帧图像大小。

2.3 横向连接

Fast和Slow之前的信息融合通过从Fast到Slow的横向连接实现。每个阶段(stage)结束后,都会实现一次横向连接。以上图实例化网络为例,在pool1、res2、res3、res4四个阶段后一共执行了四次横向连接的信息融合。

由于每个阶段结束后Slow和Fast的计算结果会具有不同的形状,无法直接拼接或相加,因此需要先对Fast的计算结果进行变换。

假设某阶段慢速通道输出大小为{T,S­^2,C},其中S为每一帧图像的长和宽,C为输出通道数,则对应阶段快速通道输出大小为{αT,S­^2,βC}。

slowfast论文中一共提供了三种横向连接的具体计算方式。

Time-to-channal通过转置,将全部α帧打包到同一个通道,转换后大小为{T,S­^2,αβC}。

Time-strided-sampling从每α帧中选取一帧,使大小从{αT,S­^2,βC}变为{T,S­^2,βC}。

Time-strided-convolution使用输出通道翻倍的3D卷积,卷积核为5*1*1大小,步长为α,输出大小为{T,S­^2,2βC}

进行变换后与Slow的输出进行拼接或求和即可实现信息融合。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值