git clone https://github.com/zju3dv/GVHMR --recursive
cd GVHMR
conda create -y -n gvhmr python=3.10
conda activate gvhmr
pip install -r requirements.txt
pip install -e .
# to install gvhmr in other repo as editable, try adding "python.analysis.extraPaths": ["path/to/your/package"] to settings.json
# DPVO
cd third-party/DPVO
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
unzip eigen-3.4.0.zip -d thirdparty && rm -rf eigen-3.4.0.zip
pip install torch-scatter -f "https://data.pyg.org/whl/torch-2.3.0+cu121.html"
pip install numba pypose
export CUDA_HOME=/usr/local/cuda-12.1/
export PATH=$PATH:/usr/local/cuda-12.1/bin/
pip install -e .
mkdir inputs
mkdir outputs
Weights
mkdir -p inputs/checkpoints
# 1. You need to sign up for downloading [SMPL](https://smpl.is.tue.mpg.de/) and [SMPLX](https://smpl-x.is.tue.mpg.de/). And the checkpoints should be placed in the following structure:
inputs/checkpoints/
├── body_models/smplx/
│ └── SMPLX_{GENDER}.npz # SMPLX (We predict SMPLX params + evaluation)
└── body_models/smpl/
└── SMPL_{GENDER}.pkl # SMPL (rendering and evaluation)
# 2. Download other pretrained models from Google-Drive (By downloading, you agree to the corresponding licences): https://drive.google.com/drive/folders/1eebJ13FUEXrKBawHpJroW0sNSxLjh9xD?usp=drive_link
inputs/checkpoints/
├── dpvo/
│ └── dpvo.pth
├── gvhmr/
│ └── gvhmr_siga24_release.ckpt
├── hmr2/
│ └── epoch=10-step=25000.ckpt
├── vitpose/
│ └── vitpose-h-multi-coco.pth
└── yolo/
└── yolov8x.pt
Data
We provide preprocessed data for training and evaluation. Note that we do not intend to distribute the original datasets, and you need to download them (annotation, videos, etc.) from the original websites. We're unable to provide the original data due to the license restrictions. By downloading the preprocessed data, you agree to the original dataset's terms of use and use the data for research purposes only.
You can download them from Google-Drive. Please place them in the "inputs" folder and execute the following commands:
cd inputs
# Train
tar -xzvf AMASS_hmr4d_support.tar.gz
tar -xzvf BEDLAM_hmr4d_support.tar.gz
tar -xzvf H36M_hmr4d_support.tar.gz
# Test
tar -xzvf 3DPW_hmr4d_support.tar.gz
tar -xzvf EMDB_hmr4d_support.tar.gz
tar -xzvf RICH_hmr4d_support.tar.gz
# The folder structure should be like this:
inputs/
├── AMASS/hmr4d_support/
├── BEDLAM/hmr4d_support/
├── H36M/hmr4d_support/
├── 3DPW/hmr4d_support/
├── EMDB/hmr4d_support/
└── RICH/hmr4d_support/