Skip to content

Commit 429f520

Browse files
[Docs] Kinetics CN README (open-mmlab#731)
* resolve comments * update changelog * add Kinetics CN README * add Kinetics CN README * move file * refine
1 parent 77b4891 commit 429f520

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

tools/data/kinetics/README_zh_CN.md

+142
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# 准备 Kinetics-[400/600/700]
2+
3+
## 简介
4+
5+
[DATASET]
6+
7+
```BibTeX
8+
@inproceedings{inproceedings,
9+
author = {Carreira, J. and Zisserman, Andrew},
10+
year = {2017},
11+
month = {07},
12+
pages = {4724-4733},
13+
title = {Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset},
14+
doi = {10.1109/CVPR.2017.502}
15+
}
16+
```
17+
18+
请参照 [官方网站](https://deepmind.com/research/open-source/open-source-datasets/kinetics/) 以获取数据集基本信息。此脚本用于准备数据集 kinetics400,kinetics600,kinetics700。为准备 kinetics 数据集的不同版本,用户需将脚本中的 `${DATASET}` 赋值为数据集对应版本名称,可选项为 `kinetics400``kinetics600``kinetics700`
19+
在开始之前,用户需确保当前目录为 `$MMACTION2/tools/data/${DATASET}/`
20+
21+
****:由于部分 YouTube 链接失效,爬取的 Kinetics 数据集大小可能与原版不同。以下是我们所使用 Kinetics 数据集的大小:
22+
23+
| 数据集 | 训练视频 | 验证集视频 |
24+
| :-----:|:---------:|:-------:|
25+
| kinetics400 | 240436 | 19796 |
26+
27+
## 1. 准备标注文件
28+
29+
首先,用户可以使用如下脚本从 [Kinetics 数据集官网](https://deepmind.com/research/open-source/open-source-datasets/kinetics/)下载标注文件并进行预处理:
30+
31+
```shell
32+
bash download_annotations.sh ${DATASET}
33+
```
34+
35+
由于部分视频的 URL 不可用,当前官方标注中所含视频数量可能小于初始版本。所以 MMAction2 提供了另一种方式以获取初始版本标注作为参考。
36+
在这其中,Kinetics400 和 Kinetics600 的标注文件来自 [官方爬虫](https://github.com/activitynet/ActivityNet/tree/199c9358907928a47cdfc81de4db788fddc2f91d/Crawler/Kinetics/data)
37+
Kinetics700 的标注文件于 05/02/2021 下载自 [网站](https://deepmind.com/research/open-source/open-source-datasets/kinetics/)
38+
39+
```shell
40+
bash download_backup_annotations.sh ${DATASET}
41+
```
42+
43+
## 2. 准备视频
44+
45+
用户可以使用以下脚本准备视频,视频准备代码修改自 [官方爬虫](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics)。注意这一步骤将花费较长时间。
46+
47+
```shell
48+
bash download_videos.sh ${DATASET}
49+
```
50+
51+
**重要提示**:如果在此之前已下载好 Kinetics 数据集的视频,还需使用重命名脚本来替换掉类名中的空格:
52+
53+
```shell
54+
bash rename_classnames.sh ${DATASET}
55+
```
56+
57+
为提升解码速度,用户可以使用以下脚本将原始视频缩放至更小的分辨率(利用稠密编码):
58+
59+
```bash
60+
python ../resize_videos.py ../../../data/${DATASET}/videos_train/ ../../../data/${DATASET}/videos_train_256p_dense_cache --dense --level 2
61+
```
62+
63+
也可以从 [Academic Torrents](https://academictorrents.com/details/184d11318372f70018cf9a72ef867e2fb9ce1d26) 下载 Kinetics400 和 Kinetics700。
64+
65+
## 3. 提取 RGB 帧和光流
66+
67+
如果用户仅使用 video loader,则可以跳过本步。
68+
69+
在提取之前,请参考 [安装教程](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)
70+
71+
如果用户有足够的 SSD 空间,那么建议将视频抽取为 RGB 帧以提升 I/O 性能。用户可以使用以下脚本为抽取得到的帧文件夹建立软连接:
72+
73+
```shell
74+
# 执行以下脚本 (假设 SSD 被挂载在 "/mnt/SSD/")
75+
mkdir /mnt/SSD/${DATASET}_extracted_train/
76+
ln -s /mnt/SSD/${DATASET}_extracted_train/ ../../../data/${DATASET}/rawframes_train/
77+
mkdir /mnt/SSD/${DATASET}_extracted_val/
78+
ln -s /mnt/SSD/${DATASET}_extracted_val/ ../../../data/${DATASET}/rawframes_val/
79+
```
80+
81+
如果用户只使用 RGB 帧(由于光流提取非常耗时),可以考虑执行以下脚本,仅用 denseflow 提取 RGB 帧:
82+
83+
```shell
84+
bash extract_rgb_frames.sh ${DATASET}
85+
```
86+
87+
如果用户未安装 denseflow,以下脚本可以使用 OpenCV 进行 RGB 帧的提取,但视频原分辨率大小会被保留:
88+
89+
```shell
90+
bash extract_rgb_frames_opencv.sh ${DATASET}
91+
```
92+
93+
如果同时需要 RGB 帧和光流,可使用如下脚本抽帧:
94+
95+
```shell
96+
bash extract_frames.sh ${DATASET}
97+
```
98+
99+
以上的命令生成短边长度为 256 的 RGB 帧和光流帧。如果用户需要生成短边长度为 320 的帧 (320p),或是固定分辨率为 340 x 256 的帧,可改变参数 `--new-short 256``--new-short 320``--new-width 340 --new-height 256`
100+
更多细节可以参考 [数据准备](/docs_zh_CN/data_preparation.md)
101+
102+
## 4. 生成文件列表
103+
104+
用户可以使用以下两个脚本分别为视频和帧文件夹生成文件列表:
105+
106+
```shell
107+
bash generate_videos_filelist.sh ${DATASET}
108+
# 为帧文件夹生成文件列表
109+
bash generate_rawframes_filelist.sh ${DATASET}
110+
```
111+
112+
## 5. 目录结构
113+
114+
在完整完成 Kinetics 的数据处理后,将得到帧文件夹(RGB 帧和光流帧),视频以及标注文件。
115+
116+
在整个项目目录下(仅针对 Kinetics),*最简* 目录结构如下所示:
117+
118+
```
119+
mmaction2
120+
├── mmaction
121+
├── tools
122+
├── configs
123+
├── data
124+
│ ├── ${DATASET}
125+
│ │ ├── ${DATASET}_train_list_videos.txt
126+
│ │ ├── ${DATASET}_val_list_videos.txt
127+
│ │ ├── annotations
128+
│ │ ├── videos_train
129+
│ │ ├── videos_val
130+
│ │ │ ├── abseiling
131+
│ │ │ │ ├── 0wR5jVB-WPk_000417_000427.mp4
132+
│ │ │ │ ├── ...
133+
│ │ │ ├── ...
134+
│ │ │ ├── wrapping_present
135+
│ │ │ ├── ...
136+
│ │ │ ├── zumba
137+
│ │ ├── rawframes_train
138+
│ │ ├── rawframes_val
139+
140+
```
141+
142+
关于 Kinetics 数据集上的训练与测试,请参照 [基础教程](/docs_zh_CN/getting_started.md)

0 commit comments

Comments
 (0)