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.1.tar.gz (502.5 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.1-py3-none-any.whl (601.3 kB view details)

Uploaded Python 3

File details

Details for the file eden_gvhmr-1.1.1.tar.gz.

File metadata

  • Download URL: eden_gvhmr-1.1.1.tar.gz
  • Upload date:
  • Size: 502.5 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.1.tar.gz
Algorithm Hash digest
SHA256 e17a39bdd495b889a37c43b2788da1f1f3ba8f7e00bbbb45f1eea88c63d1ca5c
MD5 bee069786209c3d376fd5a5eddd822d7
BLAKE2b-256 c1097bc5bb92172493631d80b57a2e676293098ad325f4c5e2a8f860ee2c4c95

See more details on using hashes here.

Provenance

The following attestation bundles were made for eden_gvhmr-1.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: eden_gvhmr-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 601.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6426bee2606e15902ff62061386b7b15f2e0b2ce421e988fed52f5b4eb812097
MD5 0fb703f8fbc32427737872c287fb7dfc
BLAKE2b-256 ead6f4185283adb07d861bf972e84e67306bbf20db828ed70f1b27f6d383be4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for eden_gvhmr-1.1.1-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

This release

1.1.1 This release

2 files

1.1.0

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