The code for Human3.6M data preparation is borrowed from VideoPose3D, SemGCN, EvoSkeleton.
-
Setup from original source (recommended)
- Please follow the instruction from VideoPose3D to process the data from the official Human3.6M website.
- Then generate the 2D and 3D data by
prepare_data_h36m.py. (Note thatprepare_data_h36m.pyis borrowed from SemGCN with 16 joints configuration, which is slightly different from VideoPose3D with 17 joints configuration)
-
Setup from preprocessed dataset
- Get preprocessed
h36m.zip: Please follow the instruction from SemGCN to get theh36m.zip. - Convert
h36m.zipto ground-truth 2D 3D npz file: Processh36m.zipbyprepare_data_h36m.pyto getdata_3d_h36m.npzanddata_2d_h36m_gt.npz
- Get preprocessed
cd data
python prepare_data_h36m.py --from-archive h36m.zip
cd ..After this step, you should end up with two files in the data directory: data_3d_h36m.npz for the 3D poses, and data_2d_h36m_gt.npz for the ground-truth 2D poses,
which will look like:
${PoseAug}
├── data
├── data_3d_h36m.npz
├── data_2d_h36m_gt.npz
In this step, you need to download the detected 2D pose npz file and delete the Neck/Nose axis (e.g., the shape of array: nx17x2 -> nx16x2; n: number_of_frame) for every subject and action.
- To download the Det and CPN 2D pose, please follow the instruction of VideoPose3D and download the
data_2d_h36m_cpn_ft_h36m_dbb.npzanddata_2d_h36m_detectron_ft_h36m.npz.
cd data
wget https://dl.fbaipublicfiles.com/video-pose-3d/data_2d_h36m_cpn_ft_h36m_dbb.npz
wget https://dl.fbaipublicfiles.com/video-pose-3d/data_2d_h36m_detectron_ft_h36m.npz
cd ..-
To download the HHR 2D pose, please follow the instruction of EvoSkeleton and download the
twoDPose_HRN_test.npyandtwoDPose_HRN_train.npy, and convert them to the same format asdata_2d_h36m_gt.npz. -
You can also download our pre-processed joints files.
Until here, you will have a data folder:
${PoseAug}
├── data
├── data_3d_h36m.npz
├── data_2d_h36m_gt.npz
├── data_2d_h36m_detectron_ft_h36m.npz
├── data_2d_h36m_cpn_ft_h36m_dbb.npz
├── data_2d_h36m_hr.npz
Please make sure the 2D data are all 16 joints setting.
The code for 3DHP data preparation is borrowed from SPIN
- Please follow the instruction from SPIN to download the preprocessed compression file
dataset_extras.tar.gzthen unzip it to get mpi_inf_3dhp_valid.npz and put it atdata_extra/dataset_extras/mpi_inf_3dhp_valid.npz(24 joints). - Then process the
dataset_extras/mpi_inf_3dhp_valid.npzwithprepare_data_3dhp.pyorprepare_data_3dhp.ipynbfile to get thetest_3dhp.npz(16 joints) and place it atdata_extra/test_set.
Until here, you will have a data_extra folder:
${PoseAug}
├── data_extra
├── bone_length_npy
├── hm36s15678_bl_templates.npy
├── dataset_extras
├── mpi_inf_3dhp_valid.npz
├── ... (not in use)
├── test_set
├── test_3dhp.npz
├── prepare_data_3dhp.ipynb
├── prepare_data_3dhp.py
The code for safety data preparation is borrowed from prepare_data_3dhp.py
- Contact rune2002@hyundai.com to download the preprocessed text file
dataset_extras/safety_valid.txt. - Then process the
dataset_extras/safety_valid.txtwithprepare_data_safety.pyfile to get thetest_safety.npz(16 joints) and place it atdata_extra/test_set.
Until here, you will have a data_extra folder:
${PoseAug}
├── data_extra
├── bone_length_npy
├── hm36s15678_bl_templates.npy
├── dataset_extras
├── mpi_inf_3dhp_valid.npz
├── safety_valid.txt
├── ... (not in use)
├── test_set
├── test_3dhp.npz
├── test_safety.npz
├── prepare_data_3dhp.ipynb
├── prepare_data_3dhp.py
├── prepare_data_safety.py
All the data are set up.