# 准备 JHMDB
## 简介
```BibTeX
@inproceedings{Jhuang:ICCV:2013,
title = {Towards understanding action recognition},
author = {H. Jhuang and J. Gall and S. Zuffi and C. Schmid and M. J. Black},
booktitle = {International Conf. on Computer Vision (ICCV)},
month = Dec,
pages = {3192-3199},
year = {2013}
}
```
用户可参考该数据集的 [官网](http://jhmdb.is.tue.mpg.de/),以获取数据集相关的基本信息。
在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/jhmdb/`。
## 下载和解压
用户可以从 [这里](https://drive.google.com/drive/folders/1BvGywlAGrACEqRyfYbz3wzlVV3cDFkct) 下载 RGB 帧,光流和真实标签文件。
该数据由 [MOC](https://github.com/MCG-NJU/MOC-Detector/blob/master/readme/Dataset.md) 代码库提供,参考自 [act-detector](https://github.com/vkalogeiton/caffe/tree/act-detector)。
用户在下载 `JHMDB.tar.gz` 文件后,需将其放置在 `$MMACTION2/tools/data/jhmdb/` 目录下,并使用以下指令进行解压:
```shell
tar -zxvf JHMDB.tar.gz
```
如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。
可以运行以下命令为 SSD 建立软链接。
```shell
# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/")
mkdir /mnt/SSD/JHMDB/
ln -s /mnt/SSD/JHMDB/ ../../../data/jhmdb
```
## 检查文件夹结构
完成解压后,用户将得到 `FlowBrox04` 文件夹,`Frames` 文件夹和 `JHMDB-GT.pkl` 文件。
在整个 MMAction2 文件夹下,JHMDB 的文件结构如下:
```
mmaction2
├── mmaction
├── tools
├── configs
├── data
│ ├── jhmdb
│ | ├── FlowBrox04
│ | | ├── brush_hair
│ | | | ├── April_09_brush_hair_u_nm_np1_ba_goo_0
│ | | | | ├── 00001.jpg
│ | | | | ├── 00002.jpg
│ | | | | ├── ...
│ | | | | ├── 00039.jpg
│ | | | | ├── 00040.jpg
│ | | | ├── ...
│ | | | ├── Trannydude___Brushing_SyntheticHair___OhNOES!__those_fukin_knots!_brush_hair_u_nm_np1_fr_goo_2
│ | | ├── ...
│ | | ├── wave
│ | | | ├── 21_wave_u_nm_np1_fr_goo_5
│ | | | ├── ...
│ | | | ├── Wie_man_winkt!!_wave_u_cm_np1_fr_med_0
│ | ├── Frames
│ | | ├── brush_hair
│ | | | ├── April_09_brush_hair_u_nm_np1_ba_goo_0
│ | | | | ├── 00001.png
│ | | | | ├── 00002.png
│ | | | | ├── ...
│ | | | | ├── 00039.png
│ | | | | ├── 00040.png
│ | | | ├── ...
│ | | | ├── Trannydude___Brushing_SyntheticHair___OhNOES!__those_fukin_knots!_brush_hair_u_nm_np1_fr_goo_2
│ | | ├── ...
│ | | ├── wave
│ | | | ├── 21_wave_u_nm_np1_fr_goo_5
│ | | | ├── ...
│ | | | ├── Wie_man_winkt!!_wave_u_cm_np1_fr_med_0
│ | ├── JHMDB-GT.pkl
```
**注意**:`JHMDB-GT.pkl` 作为一个缓存文件,它包含 6 个项目:
1. `labels` (list):21 个行为类别名称组成的列表
2. `gttubes` (dict):每个视频对应的基准 tubes 组成的字典
**gttube** 是由标签索引和 tube 列表组成的字典
**tube** 是一个 `nframes` 行和 5 列的 numpy array,每一列的形式如 ` `
3. `nframes` (dict):用以表示每个视频对应的帧数,如 `'walk/Panic_in_the_Streets_walk_u_cm_np1_ba_med_5': 16`
4. `train_videos` (list):包含 `nsplits=1` 的元素,每一项都包含了训练视频的列表
5. `test_videos` (list):包含 `nsplits=1` 的元素,每一项都包含了测试视频的列表
6. `resolution` (dict):每个视频对应的分辨率(形如 (h,w)),如 `'pour/Bartender_School_Students_Practice_pour_u_cm_np1_fr_med_1': (240, 320)`