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