/DiffuPose

Official implementation of the IROS2023 paper "DiffuPose: Monocular 3D Human Pose Estimation via Denoising Diffusion Probabilistic Model"

Primary LanguageHTML

DiffuPose: Monocular 3D Human Pose Estimation via Denoising Diffusion Probabilistic Model

S11_Walking

Environment

This code is built on the following environment

  • Python 3.8.13
  • PyTorch 1.12.1
  • CUDA 11.2

You can create and activate conda environment as the following:

conda env create -f requirements.yaml
conda activate diffupose

Dataset setup

You can set up Human3.6M and HumanEva-I datasets following the link in the Videopose3D.

Alternatively, you can directly download data from Google Drive link.

You can download them and unzip the .zip file in the ./data folder.

Make sure that your repository end up with './data/data_3d_h36m.npz', './data/data_2d_h36m_hr.npz', './data/data_2d_h36m_gt.npz'.

Training from scratch

If you want to train our model from scratch using HR-Net detection, please run

python run.py -k hr -b 1024

Else, if you want to train with 2D ground-truth, please run

python run.py -k gt -b 1024

Evaluating pre-trained model

We provide our pre-trained 384-dimension model in results folder (HR-Net detected 2D pose as input). To evaluate our model, please run

python run.py -k hr --test-load best_model.pt

which will result in 50.0 mm error (MPJPE).

To obatin best result with 10 samples, run

python run.py -k hr --test-load best_model.pt --num-sample 10

which will result in 49.4 mm error (MPJPE).

Visualization

Our code is compatiable with VideoPose3D. Please refer to their github page for detailed instruction.