Shortcuts

准备 GYM

简介

@inproceedings{shao2020finegym,
  title={Finegym: A hierarchical video dataset for fine-grained action understanding},
  author={Shao, Dian and Zhao, Yue and Dai, Bo and Lin, Dahua},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={2616--2625},
  year={2020}
}

请参照 项目主页原论文 以获取数据集基本信息。 MMAction2 当前支持 GYM99 的数据集预处理。 在开始之前,用户需确保当前目录为 $MMACTION2/tools/data/gym/

1. 准备标注文件

首先,用户可以使用如下脚本下载标注文件并进行预处理:

bash download_annotations.sh

2. 准备视频

用户可以使用以下脚本准备视频,视频准备代码修改自 ActivityNet 爬虫。 注意这一步骤将花费较长时间。

bash download_videos.sh

3. 裁剪长视频至动作级别

用户首先需要使用以下脚本将 GYM 中的长视频依据标注文件裁剪至动作级别。

python trim_event.py

4. 裁剪动作视频至分动作级别

随后,用户需要使用以下脚本将 GYM 中的动作视频依据标注文件裁剪至分动作级别。将视频的裁剪分成两个级别可以带来更高的效率(在长视频中裁剪多个极短片段异常耗时)。

python trim_subaction.py

5. 提取 RGB 帧和光流

如果用户仅使用 video loader,则可以跳过本步。

在提取之前,请参考 安装指南 安装 denseflow

用户可使用如下脚本同时抽取 RGB 帧和光流(提取光流时使用 tvl1 算法):

bash extract_frames.sh

6. 基于提取出的分动作生成文件列表

用户可使用以下脚本为 GYM99 生成训练及测试的文件列表:

python generate_file_list.py

7. 目录结构

在完整完成 GYM 的数据处理后,将得到帧文件夹(RGB 帧和光流帧),动作视频片段,分动作视频片段以及训练测试所用标注文件。

在整个项目目录下(仅针对 GYM),完整目录结构如下所示:

mmaction2
├── mmaction
├── tools
├── configs
├── data
│   ├── gym
|   |   ├── annotations
|   |   |   ├── gym99_train_org.txt
|   |   |   ├── gym99_val_org.txt
|   |   |   ├── gym99_train.txt
|   |   |   ├── gym99_val.txt
|   |   |   ├── annotation.json
|   |   |   └── event_annotation.json
│   │   ├── videos
|   |   |   ├── 0LtLS9wROrk.mp4
|   |   |   ├── ...
|   |   |   └── zfqS-wCJSsw.mp4
│   │   ├── events
|   |   |   ├── 0LtLS9wROrk_E_002407_002435.mp4
|   |   |   ├── ...
|   |   |   └── zfqS-wCJSsw_E_006732_006824.mp4
│   │   ├── subactions
|   |   |   ├── 0LtLS9wROrk_E_002407_002435_A_0003_0005.mp4
|   |   |   ├── ...
|   |   |   └── zfqS-wCJSsw_E_006244_006252_A_0000_0007.mp4
|   |   └── subaction_frames

关于 GYM 数据集上的训练与测试,请参照 训练教程