| --- |
| library_name: fmpose3d |
| pipeline_tag: image-to-3d |
| tags: |
| - pose-estimation |
| - 3d-pose-estimation |
| - monocular |
| - flow-matching |
| - human-pose |
| - animal-pose |
| - pytorch |
| datasets: |
| - human3.6m |
| - animal3d |
| language: |
| - en |
| --- |
| |
| # FMPose3D: Monocular 3D Pose Estimation via Flow Matching |
|
|
| Official model weights for **[FMPose3D: monocular 3D pose estimation via flow matching](https://arxiv.org/abs/2602.05755)** by Ti Wang, Xiaohang Yu, and Mackenzie Weygandt Mathis. |
|
|
| | [Paper](https://arxiv.org/abs/2602.05755) | [Project Page](https://xiu-cs.github.io/FMPose3D/) | [GitHub](https://github.com/AdaptiveMotorControlLab/FMPose3D) | [PyPI](https://pypi.org/project/fmpose3d/) | |
|
|
| ## Overview |
|
|
| FMPose3D lifts 2D keypoints from a single image into 3D poses using **flow matching** — a generative technique based on ODE sampling. It generates multiple plausible 3D pose hypotheses in just a few steps, then aggregates them using a reprojection-based Bayesian module (RPEA) for accurate predictions, achieving state-of-the-art results on human and animal 3D pose benchmarks. |
|
|
| ## Available Checkpoints |
|
|
| | Filename | Skeleton | Joints | Training Data | Description | |
| |---|---|---|---|---| |
| | `fmpose3d_humans.pth` | H36M | 17 | Human3.6M | Human 3D pose estimation | |
| | `fmpose3d_animals.pth` | Animal3D | 26 | Animal3D | Quadruped animal 3D pose estimation | |
|
|
| ## Quick Start |
|
|
| ```bash |
| pip install fmpose3d |
| ``` |
|
|
| Weights are downloaded automatically when using the Python API: |
|
|
| ```python |
| from fmpose3d import FMPose3DInference |
| |
| # Human — weights auto-downloaded on first use |
| result = FMPose3DInference().predict("photo.jpg") |
| |
| # Animal |
| result = FMPose3DInference.for_animals().predict("dog.jpg") |
| ``` |
|
|
| For the full API reference, see the [GitHub repository](https://github.com/AdaptiveMotorControlLab/FMPose3D). |
|
|
| ## Manual Download |
|
|
| ```python |
| from huggingface_hub import hf_hub_download |
| |
| path = hf_hub_download(repo_id="DeepLabCut/FMPose3D", filename="fmpose3d_humans.pth") |
| # or |
| path = hf_hub_download(repo_id="DeepLabCut/FMPose3D", filename="fmpose3d_animals.pth") |
| |
| api = FMPose3DInference(model_weights_path=path) |
| ``` |
|
|
| ## Citation |
|
|
| ```bibtex |
| @misc{wang2026fmpose3dmonocular3dpose, |
| title={FMPose3D: monocular 3D pose estimation via flow matching}, |
| author={Ti Wang and Xiaohang Yu and Mackenzie Weygandt Mathis}, |
| year={2026}, |
| eprint={2602.05755}, |
| archivePrefix={arXiv}, |
| primaryClass={cs.CV}, |
| url={https://arxiv.org/abs/2602.05755}, |
| } |
| ``` |
|
|
| ## License |
|
|
| Model weights are for non-commerical use. Please contact the EPFL TTO for future information. We thank the Swiss National Science Foundation (SNSF Project # 320030-227871) and the Kavli Foundation for financial support. |