GVHMR: World-Grounded Human Motion Recovery via Gravity-View Coordinates
Project Page | Paper
World-Grounded Human Motion Recovery via Gravity-View Coordinates
Zehong Shen*, Huaijin Pi*, Yan Xia, Zhi Cen, Sida Peng†, Zechen Hu, Hujun Bao, Ruizhen Hu, Xiaowei Zhou
SIGGRAPH Asia 2024
News 🔥
- [2025-03-08] By default not using DPVO. We implemented a SimpleVO, which is more efficient and compatible with GVHMR.
- [2025-03-08] We added a new option
f_mmto specify the focal length of the fullframe camera in mm.
Setup
Please see installation for details.
Quick Start
Google Colab demo for GVHMR
HuggingFace demo for GVHMR
Demo
Demo entries are provided in tools/demo. Use -s to skip visual odometry if you know the camera is static, otherwise the camera will be estimated by DPVO.
We also provide a script demo_folder.py to inference a entire folder.
python tools/demo/demo.py --video=docs/example_video/tennis.mp4 -s
python tools/demo/demo_folder.py -f inputs/demo/folder_in -d outputs/demo/folder_out -s
The same CLI is available after pip install as python -m hmr4d.demo or the gvhmr-demo console script.
Use as a library
The demo pipeline is importable, so GVHMR can be run programmatically (e.g. as an Eden extension). The model is loaded once and reused across calls:
from hmr4d.demo import GVHMR
# `checkpoint_root` points at your downloaded checkpoints (body models, GVHMR/HMR2/
# ViTPose/YOLO/DPVO weights). It defaults to ./inputs/checkpoints; set it (or the
# $GVHMR_CHECKPOINT_ROOT env var) to run from any working directory.
model = GVHMR(checkpoint_root="/path/to/inputs/checkpoints")
out = model.recover("docs/example_video/tennis.mp4", static_cam=True) # render=True for overlay videos
# out -> {"smpl_params_global", "smpl_params_incam", "K_fullimg", "output_dir"}
GVHMR is CUDA-only (select a GPU with CUDA_VISIBLE_DEVICES). It composes its own Hydra
config, so it must run in a process without an already-initialized Hydra — when embedding it
in another Hydra-using application (such as Eden), run it out-of-process.
Reproduce
-
Test: To reproduce the 3DPW, RICH, and EMDB results in a single run, use the following command:
python tools/train.py global/task=gvhmr/test_3dpw_emdb_rich exp=gvhmr/mixed/mixed ckpt_path=inputs/checkpoints/gvhmr/gvhmr_siga24_release.ckpt
To test individual datasets, change
global/tasktogvhmr/test_3dpw,gvhmr/test_rich, orgvhmr/test_emdb. -
Train: To train the model, use the following command:
# The gvhmr_siga24_release.ckpt is trained with 2x4090 for 420 epochs, note that different GPU settings may lead to different results. python tools/train.py exp=gvhmr/mixed/mixed
During training, note that we do not employ post-processing as in the test script, so the global metrics results will differ (but should still be good for comparison with baseline methods).
Citation
If you find this code useful for your research, please use the following BibTeX entry.
@inproceedings{shen2024gvhmr,
title={World-Grounded Human Motion Recovery via Gravity-View Coordinates},
author={Shen, Zehong and Pi, Huaijin and Xia, Yan and Cen, Zhi and Peng, Sida and Hu, Zechen and Bao, Hujun and Hu, Ruizhen and Zhou, Xiaowei},
booktitle={SIGGRAPH Asia Conference Proceedings},
year={2024}
}
Acknowledgement
We thank the authors of WHAM, 4D-Humans, and ViTPose-Pytorch for their great works, without which our project/code would not be possible.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eden_gvhmr-1.1.0.tar.gz.
File metadata
- Download URL: eden_gvhmr-1.1.0.tar.gz
- Upload date:
- Size: 502.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1135468ee01957ff63e37e915575e7cd9a5314db839d24d469457dfa3c01f372
|
|
| MD5 |
52a1fc1f8aab922aee6a1ca00967924e
|
|
| BLAKE2b-256 |
e421c87b373e1a2809d72dedc5fbc67b1236ea6ff0b5dd960771390a5e144025
|
Provenance
The following attestation bundles were made for eden_gvhmr-1.1.0.tar.gz:
Publisher:
publish.yml on Kashu7100/eden_gvhmr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eden_gvhmr-1.1.0.tar.gz -
Subject digest:
1135468ee01957ff63e37e915575e7cd9a5314db839d24d469457dfa3c01f372 - Sigstore transparency entry: 2299562039
- Sigstore integration time:
-
Permalink:
Kashu7100/eden_gvhmr@6c5932cff9fc5bb38623cc10ace31c518775d510 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/Kashu7100
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6c5932cff9fc5bb38623cc10ace31c518775d510 -
Trigger Event:
release
-
Statement type:
File details
Details for the file eden_gvhmr-1.1.0-py3-none-any.whl.
File metadata
- Download URL: eden_gvhmr-1.1.0-py3-none-any.whl
- Upload date:
- Size: 600.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b5fb8086189680bde6fd82237a142f96875911fa9828177d0b24e7abca5b9c1
|
|
| MD5 |
729faf1f22bdbf1d70a992e39a7eafd4
|
|
| BLAKE2b-256 |
0b9cc8b3ee102f92f5e6715835702631e1eb74ccc56273800d42ae9b37188a2b
|
Provenance
The following attestation bundles were made for eden_gvhmr-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on Kashu7100/eden_gvhmr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eden_gvhmr-1.1.0-py3-none-any.whl -
Subject digest:
7b5fb8086189680bde6fd82237a142f96875911fa9828177d0b24e7abca5b9c1 - Sigstore transparency entry: 2299562084
- Sigstore integration time:
-
Permalink:
Kashu7100/eden_gvhmr@6c5932cff9fc5bb38623cc10ace31c518775d510 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/Kashu7100
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6c5932cff9fc5bb38623cc10ace31c518775d510 -
Trigger Event:
release
-
Statement type: