TSM: Temporal Shift Module for Efficient Video Understanding(ICCV2019)

这是一篇关于视频理解的文章,主要介绍了一种可以达到3DCNN的效果的,但是保持2DCNN计算量和参数量的方法,叫做TSM(Tempora Shift Module)也就是在一簇要处理的帧之间,把相邻帧之间的channel进行了交替拼接!比如我把第一帧图片的某个channel和第二帧之间的的某个channel进行了交替,这样使得相邻帧之间包含了对方的信息,因而保证了时间上的信息的获取,也就是文章中说的时域建模!
这也就是为什么这个方法有效的原因了!

【摘要Abstract】

1. 当前的难点:

  • 视频流的大量增长导致了对视频理解达到高准确率以及低消耗变得十分具有挑战性;
  • 传统的2DCNN虽然计算量小,但是却不能好好利用时域上的连续信息(而这又是非常重要的)
  • 3DCNN虽然效果很好,但是却不得不面临密集的计算量,使得实际应用变得困难

2.本文的着力点:

提出了TSM模块:能过兼顾良好效果表现以及计算量(Specifically, it can achieve the performance of 3D CNN but maintain 2D CNN’s complexity.)

  • TSM做了什么:在时间维度上,移动了帧与帧之间的一些channel,因此使得帧间的信息得到了交换
  • TSM可以怎么用:这个模块是可以直接应用在传统2DCNN的模型上,在以基本上近乎于零的运算量的消耗上使其获得时域上的信息建模!
  • TSM还怎么用:本文坐着不但在一般视频上做了工作,还进行了拓展工作,让该方法可以实时在线运行,但是shift的方式和offline不同
  • TSM的主要应用场景:Video recognition以及object detection!两处!感觉很有作用啊~

【一、 介绍Introduction】

1.前面的铺垫:

  • 强调了时序的重要性:比如打开门的视频正反播放那么就是不一样的结果
  • 2DCNN的局限性:仅仅利用单独的frames,因此并不能对时序信息进行很好的建模
  • 3DCNN的局限性:尽管可以学习到时空信息,但是运算量巨大,使得应用困难
    ————————分割线,线下面就是TSM的主要思路——————

2.简介TSM的思路和想法

  • 对于视频建模可以表示为:
N: batch size
C: channels
T: temporal dimension
H和W分别是高和宽,也就是分辨率
  • 这篇文章的动机:既然卷积操作包括了shift和multiply-accumulate, 所以考虑在时间维度上也进行相应的操作看看效果咋样

  • (!!!这里重要,也就是这篇文章主要做的事情,就是解决这两个问题)文章提到的这种shift的方法在spatial中也有用到过,但是通常会面临两个问题,(1)并不高效,尽管shift操作是基本zero FLOP的,但是这也同时会导致数据移动,这一步会使得延迟产生并且增加,而且尤其在视频文件中,该现象会更加显著,因为视频是5个维度的,上面说过;(2)并不准确,这时第二个问题,如果shifting太多的channels的话将会损坏原有帧的空间新,也就是移动了,那么就不完整了,并不包含所有的该张图片本身应该具有的信息!

  • 上面两个问题的解决:(1)改进的shifts策略:并不是shift所有的channels,而是只选择性的shift其中的一部分,该策略能够有效的减少数据移动所带来的时间复杂度;(2)TSM并不是直接被插入到从前往后的干道中的,而是以旁路的形式进行,如下图(b),因此在获得了时序信息的同时不会对二维卷积的空间信息进行损害!(到这里基本上听起来就很靠谱啦!)

  • 文章的贡献:(1)shift策略好,同时捕获视频中的时空信息;(2)TSM移动一部分,是shift策略的改进版本;(3)双向shift用来针对离线视频理解人物;(4)单向shift用来针对在线视频理解人物(因为在线的下一刻的内容我们是不知道的),并且对资源友好,可以整合到edge 设备上进行运行!

【二、相关工作】

介绍了
(1)2D CNN
(2)3DCNN的方法
(3)可以利用两种信息的Trade-off的方法(可以理解为融合的方法)

【三、 TSM】!!!

TSM的设计也是围绕着上面两个问题展开的:

1.为了降低shift移动太多会造成数据移动的开销,只shift一部分channels(按照比例移动,1/8, 1/4, 1/2, 1)

结果如下(延时与shift的比例的关系)左边图:

2. 为了保持特征的空间完整性,采用了残差模型,从旁路走TSM模块,使得TSM还直接的卷积二者都存在

这样只要控制好比例,就既保持了空间完整性,有增加了时序联系性。可以从上图的(b)中看出residual模式的效果更好!
也可以从实验结果中看出比例对准确性的影响(不能太大,也不能太小)

  • shift比例太大,那么空间特征建模能力就会被削弱;
  • shift比例太小,那么时序建模信息能力就会收到损害;

【四、 TSM的网络】

(1)Offline的双向TSM 模型

  • Backbone: ResNet-50
  • TSM的加入模式:Residual Block
  • 特点1:对于每个插入的TSM模块,相当于其感受野得到了扩大2倍,因此可以获得很好的时序建模!
  • 特点2:TSM可以应用的任意的现成的2DCNN上面,使其具有3DCNN的效果但是同时维持2DCNN的计算量

(2)Online的单向TSM模型

  • 方式:把之前的frames shifts到当前的frames上,从而也达到了时序信息建模的作用,从而实现在线的recognition功能!
  • 推理图如下:在推理的过程中,对于每一帧(比如Ft),只保存其首先的1/8的feature map。并且保存在cache中,对于下一帧(比如F t+1 ), 那么就是用Ft上的保存的1/8和当前帧Ft+1上的7/8组合起来。从而生成下一层feature map。如此循环下去!

    利用这样的单向shift策略!
    有以下特点:
  • 特点1:推理过程中的低时延;
  • 特点2:低内存消耗
  • 特点3:多层时序信息的融合(网络的每一层都能得到融合!)

【五、实验相关】

1.实验设置:

训练相关

训练项 设置
训练数据集 Kinetics
epoch 100(备注,对于其他数据集,epoch减半)
Initial learning rate 0.01(decays by 0.1 at epoch 40&80)
weight decay 1e-4
batchSize 64
dropout 0.5
Fine-tuned 来自于ImageNet(对于大多数数据集来说)
  • 策略1:基于Kinetics上预训练的权重进行fine-tune, 并且冻结BN层

测试相关:

  • 设置:为了获取高准确率,每个视频采样多个小片段(其中10个来自Kinetics, 两个来自于其他)

用到的模型:

  • ResNet-50 用来说明本方法比简单的2D CNN好了很多

用到的数据集:

  • Kinetics: 类别繁多但是对时序信息并不是太敏感
  • SomethingV1&V2 / Charades / Jester / 这些都是时序性比较强的
  • UCF101 / HMDB51:对时序特征不是那么的敏感!

最后,个人理解和总结

感觉这篇文章是非常棒的一篇文章

  • 最大的特点就是充分考虑了视频序列中的时序信息!由此与spatial信息相结合,使得实验效果得到了很大程度的提升
  • 其次,设计的TSM模块是一个很通用的模块,可以应用在诸多的2D CNN结构上用以提高模型对时序信息的建模
  • 后面还对offline和online的一些测试进行了验证和实验,值得期待!

最后论文地址:ICCV2019 TSM论文

【视频理解论文】——TSM:Temporal Shift Module for Efficient Video Understanding相关推荐

  1. 论文阅读 TSM: Temporal Shift Module for Efficient Video Understanding

    TSM: Temporal Shift Module for Efficient Video Understanding Computer Vision and Pattern Recognition ...

  2. TSM泛读【TSM: Temporal Shift Module for Efficient Video Understanding】

    目录 0.前沿 1.标题 2.摘要 3.结论 4.重要图表 5.解决了什么问题 6.采用了什么方法 7.达到了什么效果 0.前沿 泛读我们主要读文章标题,摘要.结论和图表数据四个部分.需要回答用什么方 ...

  3. TSM: Temporal Shift Module for Efficient Video Understanding

    这是一篇关于视频理解的文章,主要介绍了一种可以达到3DCNN的效果的,但是保持2DCNN计算量和参数量的方法,叫做TSM(Tempora Shift Module)也就是在一簇要处理的帧之间,把相邻帧 ...

  4. Temporal Shift Module for Efficient Video Understanding

    时间转移模块,高效的视频理解 摘要 在视频理解领域中,传统的二维神经网络计算成本低,但不能捕获长期的时间关系:基于3D CNN方法可以获得良好的性能,但计算量大,部署成本高.文章提出了一个通用高效的时 ...

  5. Temporal Shift Module(TSM) 部署在自己电脑上并训练自己的数据集

    引言: 本小白第一次写博客,如有不妥请多多包含. 能接触到TSM还是因为毕设的原因.本小白今年本科大四,在毕设的时候选择了 "用事件相机进行人体动作的识别" 这个项目.该项目旨在应 ...

  6. temporal shift module(TSM)

    [官方]Paddle2.1实现视频理解经典模型 - TSM - 飞桨AI Studio本项目将带大家深入理解视频理解领域经典模型TSM.从模型理论讲解入手,深入到代码实践.实践部分基于TSM模型在UC ...

  7. 视频理解论文汇总zoo(持续ing)

    视频理解论文zoo SlowFast Networks for Video Recognition Gcnet: Non-local networks meet squeeze-excitation ...

  8. 文章阅读总结:视频理解论文串讲(Li Mu+ Yi zhu)

    文章目录 视频理解论文串讲(文章末尾有多数文章的地址) 1. Hand-Craft ===> CNN : DeepVideo 2. Two-Stream 2.1 2014_Two stream ...

  9. 视频理解论文实验笔记2014-2022

    视频理解论文实验笔记 看了李沐团队的视频,其中关于视频理解的串讲(上集 下集)讲的太好了,按照他的顺序看了这些论文,并做了重点针对实验部分的笔记 文章目录 视频理解论文实验笔记 2D Base cvp ...

最新文章

  1. Angular 2/Ionic 2 @input和@output理解
  2. 推荐:腾讯开源的词向量精简版本下载
  3. linux 多域名绑定
  4. Tomcat pool 发布脚本
  5. 用XSLT和XML改进Struts
  6. 神秘组织正在运行数百个恶意 Tor 中继
  7. 操作自定义属性、H5自定义属性
  8. html pre标签样式,pre标签的基本样式设置
  9. oracle安装时03113,oracle的关于“ORA-03113”的怪问题
  10. 全面分析游戏限制多开原理
  11. Flutter发送表情接收表情库
  12. 将excel中的列转置成行
  13. BKMGT你懂吗?那么RPWT你懂吗?
  14. IPv6网络流量监控解决方案
  15. 房地产类软件实战教程,如何写好房地产类软文
  16. 给合肥市社保局和社保明细打印系统提一提改进建议
  17. NUC972 使用不同的FLASH开机的ENV文件写法 NAND...
  18. mysql数据表添加列_如何将列添加到MySQL表
  19. 淘宝客,根据淘宝Url,获取到商品的ID
  20. frl啥意思_轻钢笔记《FRL60/60/60是什么意思?》

热门文章

  1. Linux tar 解压缩工具
  2. 固话号码认证有什么好处?固话号码认证有什么作用?
  3. 关于P-TMSI和TLLI
  4. C++核心准则T.48:如果你的编译器不支持concepts,使用enable_if模仿它
  5. 基于帝国竞争算法的函数寻优算法
  6. html a/ a标签使用总结
  7. 【电力系统】——交流潮流、直流潮流
  8. js 继承的是什么?如何实现继承?
  9. 满记甜品“联姻”小满茶田,老品牌寻觅翻红之道
  10. Btree和B+tree的区别