精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文

文章目录

  • 背景说明
  • 之前方法存在的问题
  • 文章要解决的核心问题
  • 文章的贡献
  • 结论
  • 提出的模块的怎么做的
    • 为什么直接移位没有效果?
    • 模型设计
  • TSM视频网络
    • 具有双向TSM的离线模型
    • 具有单向TSM的在线模型
  • 实验

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第1张图片
论文链接: 论文链接
代码链接: 代码链接

背景说明

每天有超过105小时的视频被上传到YouTube,用于处理推荐和广告排名;医院敏感视频需要在边缘设备上进行本地处理,以保护隐私。所有这些行业应用都需要准确和高效的视频理解。视频理解和图像理解的一个关键区别是是否需要时间建模。

之前方法存在的问题

  • 基于2DCNN的方法计算成本低,但是不能捕获时间维度的信息;
  • 基于3DCNN的方法可以捕获丰富的时空特征,但计算量大,部署成本高。

文章要解决的核心问题

在视频理解上实现高精度和低计算成本。

文章的贡献

  • 他们利用时间位移为高效视频理解模型的设计提供了一个新的视角,该方法不需要增加计算量,但具有很强的时空建模能力。
  • 他们观察到,单纯移位不能达到高效率和高性能。在此基础上提出了部分移位和残差移位两种技术的改进,实现了高效的模型设计。
  • 他们提出了应用于离线视频理解的双向TSM,以实现最先进的性能。它在Something-Something排行榜上排名第一。
  • 在边缘设备上,他们提出了一种具有较强时间建模能力和低时延的单向TSM在线实时视频识别方法。

结论

提出了一种通用的高效的时间移位模块(TSM),既能实现3DCNN的性能,又能将计算复杂度保持在2DCNN级别,能够在边缘设备上实现低延迟的视频识别。

  • 通用的:能够在多种backbone上实现即插即用,而不需要对原模型进行太大的改动;
  • 高效的:是一种固定化的操作,无训练参数,无需反向传播更新,计算量小;
  • 时间移位:是一个时间维度上的操作,将不同帧的特征通过进行移位而实现融合。

提出的模块的怎么做的

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第2张图片

图1:TSM操作
在**图1**中,(a)是代表着原始的没有时间移位的特征;(b)是双向时间移位操作(也叫离线时间移位);(c)是单向时间移位操作(也叫在线时间移位操作)。离线和在线的区别是,离线的时候,我们有一段完整的视频,但我们定位在第 i 帧时,我们拥有第 i -1 帧的图像和第 i +1帧的图像,我们就可以使用双向时间移位操作;在线的时候,我们获取到第 i 帧时,我们只拥有第 i -1 帧和更早之前的图像,我们就可以使用单向时间移位操作。

为什么直接移位没有效果?

  • 由于大量数据移动,效率较差。虽然移位操作不需要计算,但它涉及到数据移动。数据移动增加了硬件上的内存占用和推理延迟。在图2中的Shift Proportion=1时,就是所谓的Naive shift。
    精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第3张图片
图2:在不同的硬件平台上,延迟vs移位比例
  • 空间建模能力差,性能下降。通过将部分通道转移到相邻帧,通道中包含的信息将不再被当前帧所访问,这可能会损害2D CNN骨干的空间建模能力(个人理解是,如果shift的比例太大,会导致原本正常的2D feature会被shift操作变得不正常)。这个时候使用的还是In-place TSM,在图3中的In-place TSM的曲线中,Naive shift对应的点的正确率很低。

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第4张图片

图3:在不同的TSM类型上(残差与in-place),延迟vs移位比例

模型设计

  • 减少数据移动。这个时候做了图2这个实验,使用了3种硬件平台(GPU (NVIDIA Tesla P100),mobile GPU (NVIDIA Jetson TX2) and CPU (Intel Xeon E5-2690),设置了5种移位比例(0,1/8,1/4,1/2,1),且纵坐标将使用了shift之后的时间是与原始2DCNN(移位比例为0)的时间相减再除原始2DCNN(移位比例为0)的时间得到的。可以看到,如果我们只移动一小部分通道,例如1/8,我们可以将延迟开销限制在3%左右。因此,我们在TSM实现中使用部分转移策略,以显著降低内存移动成本。

  • 保持空间特征学习能力。需要平衡模型的空间特征学习能力和时间特征学习能力。在图4中,普通的shift操作,可以像in-place那样子,在残差前使用shift,但是这样子会降低了backnone的空间特征学习能力,特别是当我们移动了大量的通道时,因为存储在移位的通道中的信息会在当前帧中丢失(我个人理解是,像 图4(a) 这种操作,会导致模型的后半部分都会包含了shift造成的影响;但是像 图4(b) 这种操作,把shift插入一个分支中,最终的Y可以保留之前的X,即可以保留未受到shift影响的特征)。在 图3 中也证明了,残差TSM的效果要比In-place TSM的效果要好。且最后,文章使用了移位比例为1/4(两个方向分别是1/8)的作为最后的选择。

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第5张图片

图4:不同类型的TSM(in-place和残差)

TSM视频网络

具有双向TSM的离线模型

在卷积层的前向传播中,TSM模型和普通的2DCNN的方法一模一样。不同之处在于,TSM是被插入每个残差block中,这可以在不进行计算的情况下实现时间信息融合。由于经过shift操作之后,每帧的特征是包含了前一帧、本帧和后一帧的特征,那么在进行一个2D卷积时,其实相当于也进行了一个kernel_size为3的时间维度的卷积。并且随着卷积层的加深,相当于时间维度的kernel_size会越变越大,从而实现时间维度的建模。

具有单向TSM的在线模型

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第6张图片

图5:用于在线视频识别的单向TSM模型

在本节中,我们展示了我们可以使用TSM实现在线视频识别,同时使用多级时间融合。只将前一帧的特征转移到当前帧上,就可以实现单向TSM的在线识别。在推理过程中,对于每一帧,我们将每个残差block的前1/8特征映射保存在内存中。对于下一帧,我们用缓存的特征映射替换当前特征映射的前1/8。我们使用7/8当前特征映射和1/8旧特征映射的组合来生成下一层,然后重复。使用单向TSM进行在线视频识别有以下几个独特的优点:低延迟推理、低内存消耗和多层次时间融合。

实验

  • 在2DCNN基线上进行提升
    精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第7张图片
表1:TSN和TSM使用ResNet50作为backbone在6个动作识别数据集上的消融实验
其中,TSN是作为了2DCNN的baseline,这里TSM采用了和TSN一样的训练测试方案,唯一的区别就是有没有使用时间移位模块。

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第8张图片

表2:TSN和TSM使用不同的backbone在Kinetics数据集上的消融实验
  • 与SOTA方法对比
    精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第9张图片
表3:在Something-Something数据集上比较TSM与其他方法
ECO使用早期的2D +后期的3D架构,实现中等水平的时间融合。与ECO相比,我们的方法在更小的FLOPs下获得了更好的性能。此外, TSM还能很好的应用到光流模态中,在加上了光流模态之后,达到了最好的性能。

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第10张图片

表4:在Something-Something-V2 数据集上比较TSM与其他方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/5588f58f69e0462e87d723d046271e0a.png#pic_center)
图5:不同方法计算量和正确率的对比图
  • 延迟和吞吐量加速

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第11张图片

表5:在GPU延迟和吞吐量上TSM和其他方法的对比
我们使用batch_size大小为1用于延迟测量,batch_size大小为16,用于吞吐量测量。
  • 使用TSM进行在线识别
    精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第12张图片
表6:在线TSM和离线TSM的在不同数据库上的对比

精度《TSM: Temporal Shift Module for Efficient Video Understanding》论文_第13张图片

图7:使用早期识别的在线TSM和ECO在UCF101数据库上的对比
早期识别的目的是在只观察一小部分帧的情况下对视频进行分类。

你可能感兴趣的:(视频理解,人工智能,深度学习)