码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 达摩院ECCV基于Transformer探索帧间时空3D转2D的快速动作识别论文解读


      团队模型、论文、博文、直播合集,点击此处浏览

    一、论文&代码

    论文:Spatiotemporal Self-attention Modeling with Temporal Patch Shift for Action Recognition

    模型&代码:https://modelscope.cn/models/damo/cv_pathshift_action-recognition/summary

    二、背景

    高效的时空建模(Spatiotemporal modeling)是视频理解和动作识别的核心问题。相较于图像的Transformer网络,视频由于增加了时间维度,如果将Transformer中的自注意力机制(Self-Attention)简单扩展到时空维度,将会导致时空自注意力高昂的计算复杂度和空间复杂度。许多工作尝试对时空自注意力进行分解,例如ViViT和Timesformer。这些方法虽然减小了计算复杂度,但会引入额外的参数量。本文提出了一种简单高效的时空自注意力Transformer,在对比2D Transformer网络不增加计算量和参数量情况下,实现了时空自注意力机制。并且在Sthv1&Sthv2, Kinetics400, Diving48取得了很好的性能。文章已被ECCV 2022录用。

    三、方法

    视觉Transofrmer通常将图像分割为不重叠的块(patch),patch之间通过自注意力机制(Self-Attention)进行特征聚合,patch内部通过全连接层(FFN)进行特征映射。每个Transformer block中,包含Self-Attention和FFN,通过堆叠Transformer block的方式达到学习图像特征的目的。

    在视频动作识别领域,输入的数据是连续采样的多帧图像(常用8帧、16帧、32帧等)学习视频的时空特征,不仅要学习单帧图像的空间视觉特征,更要建模帧之间的时域特征。本文提出一种基于视觉transformer的高效时空特征学习算法,具体来说,我们通过将patch按照一定的规则进行移动(patch shift),把当前帧中的一部分patch移动到其他帧,同时其他帧也会有一部分patch移动到当前帧。经过patch移动之后,对每一帧图像的patch分别做Self-Attention,这一步学习的特征就同时包含了时空特征。具体思想可以由下图所示:

    在常用的2D图像视觉Transformer网络结构上,将上述patch shift操作插入到self-attention操作之前即可,无需额外操作,下图是patch shift transformer block,相比其他视频transformer的结构,我们的操作不增加额外的计算量,仅需进行内存数据移动操作即可。对于patch shift的移动规则,我们提出几种设计原则:1. 不同帧的块尽可能均匀地分布。2.合适的时域感受野。3.保持一定的移动块比例。具体的分析,读者可以参考正文。

    我们对通道移动(Channel shift) 与 块移动(patch shift)进行了详尽的分析和讨论,这两种方法的可视化如下:

    通道移动(Channel shift) 与 块移动(patch shift)都使用了shift操作,但channel shift是通过移动所有patch的部分channel的特征来实现时域特征的建模,而patch shift是通过移动部分patch的全部channel与Self-attention来实现时域特征的学习。可以认为channel shift的时空建模在空域是稠密的,但在channel上是稀疏的。而patch shift在空域稀疏,在channel上是稠密的。因此两种方法具有一定的互补性。基于此,我们提出交替循环使用 patchshift和channel shift。网络结构如下图所示:

    四、实验结果

    1. 消融实验

    2. 与SOTA方法进行对比

    3. 运行速度

    可以看到,PST的实际推理速度和2D的Swin网络接近,但具有时空建模能力,性能显著优于2D Swin。和Video-Swin网络相比,则具有明显的速度和显存优势。

    4. 可视化结果

    图中从上到下依次为Kinetics400, Diving48, Sthv1的可视化效果。PST通过学习关联区域的相关性,并且特征图能够反映出视频当中动作的轨迹。

     五、应用

            接下来给大家介绍下我们研发的各个域上的开源免费模型,欢迎大家体验、下载(大部分手机端即可体验):

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

    ModelScope 魔搭社区

  • 相关阅读:
    深度强化学习-A3C算法
    软件测试和调试有什么区别?
    【区块链实战】——实现简易版dapp【对于用户年龄的获取和更新】
    编程语言理解3-目前主流的编程语言有哪些,分别的应用场景是什么
    写了一个json小工具,希望大家体验(Mac平台)
    SpringBoot + Vue 实现侧边栏目录动态展示
    十几张高清世界地图
    使用VUE+SpringBoot+EasyExcel 整合导入导出数据
    Windows 虚拟地址 到底是如何映射到 物理地址 的?
    【STM32+OPENMV】二维云台颜色识别及追踪
  • 原文地址:https://blog.csdn.net/sunbaigui/article/details/128080081
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号