@article{Kuehne2011HMDBAL,
title={HMDB: A large video database for human motion recognition},
author={Hilde Kuehne and Hueihan Jhuang and E. Garrote and T. Poggio and Thomas Serre},
journal={2011 International Conference on Computer Vision},
year={2011},
pages={2556-2563}
}
For basic dataset information, you can refer to the dataset website.
Before we start, please make sure that the directory is located at $MMACTION2/tools/data/hmdb51/
.
To run the bash scripts below, you need to install unrar
. you can install it by sudo apt-get install unrar
,
or refer to this repo by following the usage and taking zzunrar.sh
script for easy installation without sudo.
First of all, you can run the following script to prepare annotations.
bash download_annotations.sh
Then, you can run the following script to prepare videos.
bash download_videos.sh
This part is optional if you only want to use the video loader.
Before extracting, please refer to install.md for installing denseflow.
If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance.
You can run the following script to soft link SSD.
# execute these two line (Assume the SSD is mounted at "/mnt/SSD/")
mkdir /mnt/SSD/hmdb51_extracted/
ln -s /mnt/SSD/hmdb51_extracted/ ../../../data/hmdb51/rawframes
If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract RGB-only frames using denseflow.
bash extract_rgb_frames.sh
If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images.
bash extract_rgb_frames_opencv.sh
If both are required, run the following script to extract frames using "tvl1" algorithm.
bash extract_frames.sh
you can run the follow script to generate file list in the format of rawframes and videos.
bash generate_rawframes_filelist.sh
bash generate_videos_filelist.sh
After the whole data process for HMDB51 preparation, you will get the rawframes (RGB + Flow), videos and annotation files for HMDB51.
In the context of the whole project (for HMDB51 only), the folder structure will look like:
mmaction2
├── mmaction
├── tools
├── configs
├── data
│ ├── hmdb51
│ │ ├── hmdb51_{train,val}_split_{1,2,3}_rawframes.txt
│ │ ├── hmdb51_{train,val}_split_{1,2,3}_videos.txt
│ │ ├── annotations
│ │ ├── videos
│ │ │ ├── brush_hair
│ │ │ │ ├── April_09_brush_hair_u_nm_np1_ba_goo_0.avi
│ │ │ ├── wave
│ │ │ │ ├── 20060723sfjffbartsinger_wave_f_cm_np1_ba_med_0.avi
│ │ ├── rawframes
│ │ │ ├── brush_hair
│ │ │ │ ├── April_09_brush_hair_u_nm_np1_ba_goo_0
│ │ │ │ │ ├── img_00001.jpg
│ │ │ │ │ ├── img_00002.jpg
│ │ │ │ │ ├── ...
│ │ │ │ │ ├── flow_x_00001.jpg
│ │ │ │ │ ├── flow_x_00002.jpg
│ │ │ │ │ ├── ...
│ │ │ │ │ ├── flow_y_00001.jpg
│ │ │ │ │ ├── flow_y_00002.jpg
│ │ │ ├── ...
│ │ │ ├── wave
│ │ │ │ ├── 20060723sfjffbartsinger_wave_f_cm_np1_ba_med_0
│ │ │ │ ├── ...
│ │ │ │ ├── winKen_wave_u_cm_np1_ri_bad_1
For training and evaluating on HMDB51, please refer to getting_started.md.