---
license: other
license_name: exmr-license
license_link: https://github.com/twehrbein/ExMR/blob/main/LICENSE
pipeline_tag: other
tags:
- human-motion-capture
- 3d-human-pose-estimation
- smpl-x
- hand-pose-estimation
- motion-capture
- video
---
# ExMR: Extremity Motion Refinement for Monocular Human Motion Capture
Model weights for [ExMR](https://github.com/twehrbein/ExMR), which reconstructs 3D body, hand and
foot motion (SMPL-X) of a person from monocular video: an initial temporal estimator predicts
whole-body motion, after which a foot refinement module (FootMR) and a hand refinement module
(HandMR) revisit local image evidence to predict residual joint rotations for the extremities.
> **ExMR: Extremity Motion Refinement for Monocular Human Motion Capture**
> Tom Wehrbein and Bodo Rosenhahn, Leibniz University Hannover
> [arXiv](https://arxiv.org/abs/2610.26213) | [Project page](https://twehrbein.github.io/exmr-website/) | [Code](https://github.com/twehrbein/ExMR) | [Demo](https://huggingface.co/spaces/twehrbein/ExMR)
Try it without installing anything: the [demo Space](https://huggingface.co/spaces/twehrbein/ExMR)
runs ExMR on up to 20 seconds of your video and returns the SMPL-X parameters and joints, the
motion for Blender or humanoid robots (AMASS file) and for animation software (BVH).
## Files
| File | Content | SHA256 |
|---|---|---|
| `exmr.safetensors` | ExMR model (EMA weights, 236 MB) | `8d3947310c30444ec59dae4662574d7a32bf83af30320eeac87146529ff2fda5` |
| `rtmw-x_384x288_fp16.onnx` | RTMW-x 2D whole-body keypoint detector, FP16 (optional `--pose_backend rtmw`), see below | `957ddb5ed34576593a918b3e514003ab9cc85d037309b9a23d9e0209530e98ed` |
| `wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl` | nvdiffrast renderer for torch 2.8.0+cu128, Python 3.12, Linux (installed by ExMR's `docs/INSTALL.md`), see below | `ca26d44f4f198e8fb460f86f355c5fdaeaac6319e15a5551ea31397719c0d563` |
## Usage
Do not download these files by hand: the ExMR download script fetches them together with the
third-party models ExMR needs and checks every file:
```bash
git clone --recursive https://github.com/twehrbein/ExMR.git && cd ExMR
# set up the environment as described in docs/INSTALL.md, then
python tools/download_models.py --smplx_zip models_smplx_v1_1.zip --mano_zip mano_v1_2.zip
python tools/demo.py --video path/to/video.mp4
```
See the [GitHub repository](https://github.com/twehrbein/ExMR) for installation, the demo and the
output format.
## Training data
ExMR was trained on [BEDLAM](https://bedlam.is.tue.mpg.de/),
[BEDLAM2](https://bedlam2.is.tuebingen.mpg.de/), [Human3.6M](http://vision.imar.ro/human3.6m/),
[3DPW](https://virtualhumans.mpi-inf.mpg.de/3DPW/) and [ARCTIC](https://arctic.is.tue.mpg.de/).
Its inputs are image features of SAM 3D Body and HaMeR and 2D keypoints of Sapiens2 or RTMW; its
outputs are [SMPL-X](https://smpl-x.is.tue.mpg.de/) parameters.
## License
`exmr.safetensors` is released under the same terms as the ExMR code
([LICENSE](https://github.com/twehrbein/ExMR/blob/main/LICENSE)): for educational, research and
non-profit purposes only. The training datasets and the SMPL-X body model are themselves licensed
for non-commercial research only.
`rtmw-x_384x288_fp16.onnx` is a redistribution of RTMW-x by
[OpenMMLab (MMPose)](https://github.com/open-mmlab/mmpose/tree/main/projects/rtmpose), licensed
under Apache-2.0 (see `RTMW_LICENSE.txt` in this repository). It is the FP16 conversion of the ONNX
export `RTMW_x_lastest.onnx` from
[hunminkim98/Models_Pose2Sim](https://huggingface.co/hunminkim98/Models_Pose2Sim) (commit
`53abe39`), made with onnx 1.23.2 and onnxconverter-common 1.16.0:
```python
import onnx
from onnxconverter_common import float16
model = onnx.load("RTMW_x_lastest.onnx")
onnx.save(float16.convert_float_to_float16(model, keep_io_types=True), "rtmw-x_384x288_fp16.onnx")
```
The only change is the conversion of the internal computations to FP16 (inputs and outputs stay
FP32). We host it so that ExMR's results can be reproduced with exactly this file.
`wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl` is a build of
[nvdiffrast](https://github.com/NVlabs/nvdiffrast) v0.4.0 by NVIDIA, licensed under the NVIDIA
Source Code License for non-commercial use (research or evaluation) only (see
`NVDIFFRAST_LICENSE.txt` in this repository; the wheel contains it too). It is built from the
unmodified v0.4.0 source (commit `253ac4f`; only the version label `+pt2.8.0cu128` is added) with
`wheels/build_nvdiffrast_wheel.sh`: conda-forge nvcc 12.8 and gcc 14 against glibc 2.28, for the
GPUs that torch 2.8.0+cu128 supports. We host it so that ExMR installs without compiling.
## Citation
```bibtex
@Article{wehrbein26exmr,
author = {Wehrbein, Tom and Rosenhahn, Bodo},
title = {{ExMR}: Extremity Motion Refinement for Monocular Human Motion Capture},
journal = {arXiv preprint arXiv:2610.26213},
year = {2026},
}
```
Please also cite [GVHMR](https://github.com/zju3dv/GVHMR), which ExMR builds on, and the
third-party models listed in the ExMR repository's
[THIRD_PARTY_NOTICES.md](https://github.com/twehrbein/ExMR/blob/main/THIRD_PARTY_NOTICES.md).