链接:https://zhuanlan.zhihu.com/p/347705276
视频理解是计算机视觉中重要的研究方向,近年来逐渐成为业界和学术界的研究热点,同时也被广泛应用在智能监控/视频推荐等领域中。OpenMMLab 项目开源了 MMAction2,这是一套基于 PyTorch 实现的视频理解工具箱和 benchmark,目前包含了视频理解领域常见的任务,比如动作识别,时序动作检测,时空动作检测等。
MMAction2 将会长期维护和更新,我们非常欢迎社区贡献与建议。同时,我们也非常非常欢迎大家点赞、试用、反馈、PR:
https://github.com/open-mmlab/mmaction2
同时,我们非常欢迎对 OpenMMLab 项目有兴趣的同学以全职/实习的身份加入我们,海量 HC 等待你的到来。如果你有兴趣,欢迎联系小编~
作为 MM 系列的成员,MMAction2 保持了 MM 系列框架的一贯风格,拥有灵活的模块化设计和全面的高性能 model zoo。
目前我们支持3种视频理解领域里的主流方向,其中大部分算法都提供了多种 setting 以及在 Kinetics, Something-Something, ActivityNet 等数据集上的训练结果,之后会有其他的数据集以及更多的预训练模型陆续放出(也欢迎大家贡献更多的方法)。
目前支持的模型有:
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
在视频理解领域里,比较重要的问题就是如何解决训练时的 IO 瓶颈问题。一般的解决方式是事先去抽好视频的帧,或者 on the fly 地对 Video 进行在线解码,MMAction2 对于这两种方法都有相应的支持。
具体地,对于训速度的优化,MMAction2 主要提供了以下几种方案的支持,并在相同硬件条件下对市面上的主流 Codebase 进行了速度对比,结果普遍优于现有的框架和 Released Code。
训练速度 Benchmark
训练 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
MMAction2 除了优秀的训练框架外,也为广大社区用户提供了基于 MMAction2 实现的丰富 Demo,以供大家使用。包括 长短视频标签预测,摄像头动作识别,时空动作检测,GradCAM 等,欢迎大家来玩!
优秀的售后服务
除了尽力及时处理 issue,为了更方便及时交流与准确表达,我们还创建了社区群。
相比于在图像领域的分类、检测、分割等任务的算法和框架日臻成熟,视频的行为理解领域目前还有许多亟待解决的问题,我们希望 MMAction2 可以降低该领域的研究门槛,成为研究者们从事视频理解的利器!
END