ExMR: Extremity Motion Refinement for Monocular Human Motion Capture
Model weights for 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 | Project page | Code
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 |
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:
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 for installation, the demo and the output format.
Training data
ExMR was trained on BEDLAM, BEDLAM2, Human3.6M, 3DPW and ARCTIC. Its inputs are image features of SAM 3D Body and HaMeR and 2D keypoints of Sapiens2 or RTMW; its outputs are SMPL-X parameters.
License
exmr.safetensors is released under the same terms as the ExMR code
(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), 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 (commit
53abe39), made with onnx 1.23.2 and onnxconverter-common 1.16.0:
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.
Citation
@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, which ExMR builds on, and the third-party models listed in the ExMR repository's THIRD_PARTY_NOTICES.md.