Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩的工作。近日,FAIR视频团队在 ICCV 相关研讨会上开源了视频识别检测代码库 PySlowFast,并同时发布了预训练的模型库。同时,该团队表示,他们还将实时将他们的前沿工作添加至此代码库。

  • 项目地址:https://github.com/facebookresearch/SlowFast

  • Tutorial 地址(附 PPTT 资源):https://alexanderkirillov.github.io/tutorials/visual-recognition-iccv19/

视频与动作理解俨然已成为当今最火热的研究方向之一,然而在开源社区中找到一个简洁、高效、易于修改的视频理解代码库仍不是一件简单的事情。更重要的是,复现当今前沿的 (state-of-the-art) 的深度学习模型一直是一件令研究者头疼的事情。

这些视频理解模型往往动辄几十 GFlops,需要训练数天,而复现出一个模型需要反复的实验调参,让每个细节都正确。这往往会耗费大量的时间和资源,让很多研究者望而却步。

Facebook AI Research 在 CVPR、ICCV 等国际会议发布了众多研究工作,并赢得了 CVPR 2019 行为检测挑战赛的冠军。而后,在今年的 ICCV 上,FAIR 推出了他们的视频理解代码库:PySlowFast。

PySlowfast 是一个基于 PyTorch 的代码库,让研究者可以轻而易举地复现从基础至前沿的视频识别 (Video Classification) 和行为检测 (Action Detection) 算法。

不但如此,PySlowFast 代码库同时开源了大量预训练模型 (pretrain models),让研究者省去了反复训练模型的烦恼,可以直接使用 FAIR 预训练的前沿 (cutting edge performance) 模型。

pySlowFast开源的模型的可视化检测结果

自开源后,PySlowFast 就一度蝉联 GitHub 趋势榜前十。以下对此开源项目进行了简要介绍。

根据研讨会教程和开源代码库信息,PySlowFast 既提供视频理解基线(baseline)模型,还提供了当今前沿的视频理解算法复现。其算法不单单囊括视频视频(video classification),同时也包括行为检测(Action Classification)算法。

与当今开源社区中各种视频识别库复现出参差不齐的性能相比,使用 PySlowFast 可轻而易举地复现出当今前沿的模型

视频识别(Kinetics)

表 1:PySlowFast 在视频分类数据库 Kinetics 400 上的性能)(节选自 https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)

PySlowFast 不单单可以用于视频分类,同时也可用于视频理解,并提供赢得了 2019 年 CVPR ActivityNet Challenge Winner 的视频检测模型。

行为检测(AVA)

此外,PySlowFast 预留了接口,可通过简单的编辑支持多模态视频理解、视频自监督学习等等任务。该团队称,PySlowFast 将被积极维护,实时更新其团队和业界的前沿算法,同开源其预训练模型,使代码库成为视频理解领域的基线标杆

通过以下教程,读者们可以简单试用下 PySlowFast 代码库。在完成安装后,通过下载 MODEL_ZOO 提供的预训练模型和相应的配置文件,运行如下代码,就可以测试(Test)模型在不同视频数据库上的性能:

python tools/run_net.py \
  --cfg configs/Kinetics/C2D_8x8_R50.yaml \
  DATA.PATH_TO_DATA_DIR path_to_your_dataset \
  NUM_GPUS 2 \

我们可以发现,通过此代码库可以轻易复现出前沿的高性能模型,同时读者们也可以尝试通过简单的修改来实现自己的模型,并用多台 GPU 进行训练得到前沿的性能。

入门FacebookPySlowfast
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

推荐文章
暂无评论
暂无评论~