zoukankan      html  css  js  c++  java
  • CVPR2021| TimeSformer-视频理解的时空注意模型

    前言:

    transformer在视频理解方向的应用主要有如下几种实现方式:Joint Space-Time Attention,Sparse Local Global Attention 和Axial Attention。这几种方式的共同点是采用ViT中的方式将图像进行分块,而它们之间的区别在于如何用self attention来处理这些块。

    在本文提出了一种新的处理方式--Divided Space-Time Attention,在大规模行为分类数据集上,通过对以上几种方式与Divided Space-Time Attention的评估,作者发现使用Divided attention的方式是用于处理这些块的最好设计。

    TimeSformer在几个主流的行为识别benchmarks上实现了SOTA结果,包括在Kinetics-400和Kinetics-600上取得最高准确度。此外,TimeSformer对比与其它模型训练速度更快,且有更高的测试效率。

    论文:Is Space-Time Attention All You Need for Video Understanding?

    代码:https://github.com/lucidrains/TimeSformer-pytorch

    代码尚未完全开源,但模型已经放出来了。代码比较简单。

    论文思路

    视频理解与NLP有很多的相似的地方。首先,视频和语句都具有序列性;而且,一个字只能与语句中其它字联系才能理解,在视频行为中一个片段也需要与视频的上下文相关联。于是,我们期望NLP中这种long-range self-attention模型可以在视频模型中也有很高的表现。

    在视频领域,2D或3D卷积是用来提取时空特征的主流操作,但卷积操作比较明显的一个问题是感受野是有限的,若要获得全局感受野,需要堆叠很多层卷积层,它们的信息传播路径比较长。而self-attention这种操作可以很轻松地获得全局感受野,捕获局部和长范围的依赖关系。

    卷积操作的另一个问题是受到内存的限制,特别是视频领域,往往需要在高分辨率和长范围帧之间权衡。而最近几年一些研究者的工作指出Transformer可以比CNN获得更快的训练和推理,因此在同样计算量预算下,transformer可以使用更大学习容量。

    标准的self-attention需要计算所有tokens相互之间的相似性,这样的做法就是计算量比较大,因此需要考虑如何利用self-attention来处理图像块。论文比较了这方面的几种处理方式,提出Divided attention的方式具有最好的表现。

    在本文将主要介绍这几种方式。

    一些细节

    图片

    这几种方式的通用部分是将视频帧分成大小为PxP的块,每一帧可以分成N=HW/(P*P)块。

    它们的区别就是以什么样的方式来选择哪些块放一起进行self-attention。

    Space Attention是只对同一帧的所有块放一起进行self-attention。这种方式明显没有考虑不同帧之间的时序信息。

    Joint Space-Time Attention是将图像的所有块都进行self-attention,这种方式最明显的问题是计算量太大。

    Sparse Local Global Attention分为两步,选择局部区域的块进行self-attention提取局部信息,按一定的步长选择块进行self-attention提取全局信息,这种方式具有一定的稀疏性,特点就是计算量减少。

    Axial Attention是分为三步,先对不同帧同位置的块进行time attention,再按横向和纵向分别选择同一帧中同一横和同一竖的块进行space attention。

    本文提出的Divided Space-Time Attention分为两步,先对不同帧同位置的块进行time attention,再将同一帧中所有块进行space attention。

    具体的示意图如下。

    图片

    实验结论

    图片

    这几种方式的参数量和准确度的对比。

    本文来源于公众号CV技术指南的论文分享系列,更多内容请扫描文末二维码关注公众号。

    最近把公众号(CV技术指南)所有的技术总结打包成了一个pdf,在公众号中回复关键字“技术总结”可获取。

    图片

  • 相关阅读:
    Atitti  css   transition Animation differ区别
    Atitit 游戏引擎物理系统(1)爆炸效果
    Atitit.rsa密钥生成器的attilax总结
    新特性AAtitti css3 新特性attilax总结titti css
    Atitit 异常的实现原理 与用户业务异常
    Atitit.uke 团队建设的组织与运营之道attilax总结
    atitit 业务 触发器原理. 与事件原理 docx
    Atitit 基于dom的游戏引擎
    Atitit 团队建设的知识管理
    Javascript判断页面刷新或关闭的方法(转)
  • 原文地址:https://www.cnblogs.com/wxkang/p/14762605.html
Copyright © 2011-2022 走看看