前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MMAction2: 新一代视频理解工具箱

MMAction2: 新一代视频理解工具箱

作者头像
CV君
发布2021-03-09 10:26:00
8370
发布2021-03-09 10:26:00
举报
文章被收录于专栏:我爱计算机视觉

链接:https://zhuanlan.zhihu.com/p/347705276

视频理解是计算机视觉中重要的研究方向,近年来逐渐成为业界和学术界的研究热点,同时也被广泛应用在智能监控/视频推荐等领域中。OpenMMLab 项目开源了 MMAction2,这是一套基于 PyTorch 实现的视频理解工具箱和 benchmark,目前包含了视频理解领域常见的任务,比如动作识别,时序动作检测,时空动作检测等。

太长不看版:

  • 统一的框架:MMAction2 作为 OpenMMLab 的新一代视频理解工具箱,同时支持了动作识别、时序动作检测、时空动作检测等多种任务和算法。用户可以在一个框架中方便地调用不同的算法和模型。
  • 灵活的模块化设计:MMAction2 延续了 OpenMMLab 系列的模块化风格,用户能够基于这套框架灵活地增加新的功能和算法。
  • 丰富的模型和 benchmark:MMAction2 高精度地复现了多种视频理解算法,包括 TSN, TSM, I3D, SlowFast, X3D 等动作识别算法,BMN, BSN 等时序动作检测算法,AVA 数据集相关的时空动作检测算法等;提供了丰富的 130+ 个预训练模型;并且针对不同的数据处理方式做了详尽的 benchmark 以供社区参考~
  • 高速且多样的训练 pipeline:MMAction2 对 Video 的训练速度做了大幅的优化,采用分布式的训练框架,支持多种 IO 后端文件读取(Disk, Ceph, Memcached 等),多种 Video 的解码方式(OpenCV, PyAV, Decord 等),TurboJPEG 解码视频帧等。同时设计 lazy operation 技巧来加速数据 pipeline 的处理,在训练速度上优于主流的代码实现。此外,MMAction2 也提供多种模态数据的处理步骤,包括 Video, RGB, Flow, Audio, Compressed Video 等。
  • 完善详尽的文档教程:MMAction2 目前支持主流的 15 种学术数据集的准备脚本,用户可以很简单地按照文档说明键入指令,完成数据集准备;撰写了详细的教程文档,帮助新手用户使用 repo,并且在 Colab 上布置了在线使用的 Tutorial,以供用户进行体验。
  • 丰富的 Demo:MMAction2 基于代码库实现了一系列丰富的 Demo 以供用户使用,包括 时空动作检测 demo, 摄像头动作识别 demo, GradCAM demo等。

MMAction2 将会长期维护和更新,我们非常欢迎社区贡献与建议。同时,我们也非常非常欢迎大家点赞、试用、反馈、PR:

代码语言:javascript
复制
https://github.com/open-mmlab/mmaction2

同时,我们非常欢迎对 OpenMMLab 项目有兴趣的同学以全职/实习的身份加入我们,海量 HC 等待你的到来。如果你有兴趣,欢迎联系小编~

作为 MM 系列的成员,MMAction2 保持了 MM 系列框架的一贯风格,拥有灵活的模块化设计和全面的高性能 model zoo。

目前我们支持3种视频理解领域里的主流方向,其中大部分算法都提供了多种 setting 以及在 Kinetics, Something-Something, ActivityNet 等数据集上的训练结果,之后会有其他的数据集以及更多的预训练模型陆续放出(也欢迎大家贡献更多的方法)。

目前支持的模型有:

  • Action Recognition:
    • TSN
    • TSM
    • R(2+1)D
    • I3D
    • SlowOnly
    • SlowFast
    • CSN
    • TIN
    • TPN
    • C3D
    • X3D
    • NonLocal
    • OminiSource
    • MultiModality: Audio
  • Action Localization:
    • BMN
    • BSN
    • SSN
  • Spatial Temporal Action Detection:
    • SlowOnly + Fast R-CNN
    • SlowFast + Fast R-CNN

MMAction2 作为新一代的视频理解框架,提供了更快更强的主流算法,多种 setting 下的结果比较,附带丰富的配置文件以及高速有效的 tricks,且采用易于拓展的模块化的设计,减轻了不少 codebase 迁移和文章复现等带来的负担。

此外,MMAction2 不仅仅是研究导向的框架,还是一个可以用于入门和教学的框架,在这里你可以看到 Video Understanding 中常用的模型和基础的任务,每个模型也都被很好地拆解,方便大家上手探索其中的奥秘。

丰富的算法实现和配置文件

MMAction2 目前发布的 0.10.0 版本复现了视频理解领域中不少 baseline 和 SOTA 模型,如 TSN, TSM, I3D, SlowFast 等经典算法,并且精度更高,比如我们的 CSN 在 Kinetics400 的验证集上的 Top-1 精度可达到 82.76。

支持的数据集,算法和预训练模型

此外,MMAction2 提供非常丰富的配置文件,这些配置文件整合了各种比较常见的训练 setting 以及数据集,以 TSN 在 Kinetics400 数据集为例,我们提供了多种不同配置的 TSN,报告了速度,显存占用,模型精度等指标;

并且提供不同 segment ,不同分辨率数据读取,不同源数据类型等情况下的结果,并提供模型以及实验记录供用户直接下载使用。

Kinetics400-CSN 在不同 setting 的结果

Kinetics400-TSN 在不同 setting 的结果

不仅如此,MMAction2 作为一个视频理解领域的 benchmark,还提供了不同源数据处理下模型精度的研究,为社区提供一定的参考。之所以要做这个 benchmark,是由于数据集来源不同,标注形式各异,往往会给研究者带来很大的困扰,从而带来复现结果的精度异常。比如对于 Kinetics400 是视频帧而言,目前没有一个标准的解帧分辨率规定,固定长宽比或者保持长宽比的选择都有。

对此,MMAction2 对于不同的数据集处理做了详细的 benchmark,比如输入视频的分辨率(340x256, 视频短边256,视频短边320),视频的输入类型(原始视频,视频帧,视频特征),视频的编码方式(插入密集关键帧编码,删除冗余帧编码),以供社区参考。

各种 benchmark

高速多样的训练Pipeline

在视频理解领域里,比较重要的问题就是如何解决训练时的 IO 瓶颈问题。一般的解决方式是事先去抽好视频的帧,或者 on the fly 地对 Video 进行在线解码,MMAction2 对于这两种方法都有相应的支持。

具体地,对于训速度的优化,MMAction2 主要提供了以下几种方案的支持,并在相同硬件条件下对市面上的主流 Codebase 进行了速度对比,结果普遍优于现有的框架和 Released Code。

训练速度 Benchmark

  1. 多IO后端的支持。MMAction2 支持从 Disk 或者分布式存储中的 lustre 读取,也支持通过 ceph,类似网络硬盘中的文件进行读取,以及 Memcached 下进行数据读取。
  2. 多视频解码方式的支持。MMAction2 支持 on the fly 地去解码 video,并提供多种解码器的使用,OpenCV, PyAV, Decord,并在保证精度的前提下进行了一定的优化。
  3. Pipeline处理上的加速。MMAction2 是分布式的训练框架,并且在一些数据增强中提供了 lazy 选项,类似 resize – crop – flip 这种数据处理的 pattern,每步可以不立即执行操作,而是保留每步操作的抽象中间结果(比如 bbox 信息,是否 flip 等),最终整合并应用到 Frame 上,减少 IO 操作的次数,大大增加训练速度。此外,还支持 TurboJPEG 的图片解码方式,加速视频帧的读取。

训练 Pipeline 的优化

不仅如此,MMAction2 也支持处理各种模态信息的 Pipeline,除了 Video 和 RGB 帧以外,还支持处理光流(Flow),音频(Audio),以及压缩的视频(Compressed Video,即 Motion vector, I-Frame等)。

详尽的文档教程

不仅作为一个研究导向的框架,MMAction2 还可以作为一个可以用于入门和教学的框架。它包含了详尽的文档说明以及一系列面向新用户和行为识别新手的教程,包括 数据处理-框架安装-训练/测试模型-新增模块 的“一条龙”文档,旨在降低研究者的入手 MMAction2 的门槛。

对于数据的获取,MMAction2 对每一种数据集都提供了详尽的获取指导,用户只需要按照文档说明在命令行里键入对应的指令,即可完成数据集数据和对应 annotation 的获取!

Kinetics 数据集准备概览

对于框架各个特性的介绍和使用,MMAction2 也编写了详细的说明文档和教程,供使用者参考,使用 MMAction2 不迷路!

MMAction2 Tutorial Document

不仅如此,为了让用户快速入手,MMAction2 还提供了 Colab 的在线教程,让用户立刻就能感受到使用 MMAction2 的快感!

Colab Tutorial

丰富的 Demo

MMAction2 除了优秀的训练框架外,也为广大社区用户提供了基于 MMAction2 实现的丰富 Demo,以供大家使用。包括 长短视频标签预测,摄像头动作识别,时空动作检测,GradCAM 等,欢迎大家来玩!

优秀的售后服务

除了尽力及时处理 issue,为了更方便及时交流与准确表达,我们还创建了社区群。

总结

相比于在图像领域的分类、检测、分割等任务的算法和框架日臻成熟,视频的行为理解领域目前还有许多亟待解决的问题,我们希望 MMAction2 可以降低该领域的研究门槛,成为研究者们从事视频理解的利器!

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我爱计算机视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 太长不看版:
  • 丰富的算法实现和配置文件
  • 高速多样的训练Pipeline
  • 详尽的文档教程
  • 丰富的 Demo
  • 总结
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档