Skip to main content

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

animated

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_mm to 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

  1. 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/task to gvhmr/test_3dpw, gvhmr/test_rich, or gvhmr/test_emdb.

  2. 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

eden_gvhmr-1.1.0.tar.gz (502.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eden_gvhmr-1.1.0-py3-none-any.whl (600.9 kB view details)

Uploaded Python 3

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

Hashes for eden_gvhmr-1.1.0.tar.gz
Algorithm Hash digest
SHA256 1135468ee01957ff63e37e915575e7cd9a5314db839d24d469457dfa3c01f372
MD5 52a1fc1f8aab922aee6a1ca00967924e
BLAKE2b-256 e421c87b373e1a2809d72dedc5fbc67b1236ea6ff0b5dd960771390a5e144025

See more details on using hashes here.

Provenance

The following attestation bundles were made for eden_gvhmr-1.1.0.tar.gz:

Publisher: publish.yml on Kashu7100/eden_gvhmr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for eden_gvhmr-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b5fb8086189680bde6fd82237a142f96875911fa9828177d0b24e7abca5b9c1
MD5 729faf1f22bdbf1d70a992e39a7eafd4
BLAKE2b-256 0b9cc8b3ee102f92f5e6715835702631e1eb74ccc56273800d42ae9b37188a2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for eden_gvhmr-1.1.0-py3-none-any.whl:

Publisher: publish.yml on Kashu7100/eden_gvhmr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.1.1

2 files

This release

1.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page