Skip to main content

No project description provided

Project description

FMPose3D: monocular 3D pose estimation via flow matching

Version PyPI version PyPI Downloads

Code:License: Apache 2.0 Models:License: NC

This is the official implementation of the approach described in:

FMPose3D: monocular 3D pose estimation via flow matching CVPR 2026
Ti Wang, Xiaohang Yu, Mackenzie Weygandt Mathis

🚀 TL;DR

FMPose3D creates a 3D pose from a single 2D image. It leverages fast Flow Matching, generating multiple plausible 3D poses via an ODE 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.

News!

  • Feb 2026: The FMPose3D paper was accepted to CVPR 2026! 🔥
  • Feb 2026: the FMPose3D code and our arXiv paper is released - check out the demos here or on our project page
  • March 2026: This method is integrated into DeepLabCut

Installation

Set up an environment

Make sure you have Python 3.10+. You can set this up with:

conda create -n fmpose_3d python=3.10
conda activate fmpose_3d

pip install fmpose3d

For the animal pipeline, install the optional DeepLabCut dependency:

pip install "fmpose3d[animals]"

Demos

Testing on in-the-wild images (humans)

This visualization script is designed for single-frame based model, allowing you to easily run 3D human pose estimation on any single image.

Pre-trained weights are downloaded automatically from Hugging Face the first time you run inference, so no manual setup is needed.

Alternatively, you can use your own trained weights or download ours from Google Drive, place them in the ./pre_trained_models directory, and set model_weights_path in the shell script (e.g. demo/vis_in_the_wild.sh).

Next, put your test images into folder demo/images. Then run the visualization script:

sh vis_in_the_wild.sh

The predictions will be saved to folder demo/predictions.

Training and Inference

Dataset Setup

Setup from original source

You can obtain the Human3.6M dataset from the Human3.6M website, and then set it up using the instructions provided in VideoPose3D.

Setup from preprocessed dataset (Recommended)

You also can access the processed data by downloading it from here.

Place the downloaded files in the dataset/ folder of this project:

<project_root>/
├── dataset/
│   ├── data_3d_h36m.npz
│   ├── data_2d_h36m_gt.npz
│   └── data_2d_h36m_cpn_ft_h36m_dbb.npz

Training

The training logs, checkpoints, and related files of each training time will be saved in the './checkpoint' folder.

For training on Human3.6M:

sh ./scripts/FMPose3D_train.sh

Inference

Pre-trained weights are fetched automatically from Hugging Face on the first run. You can also use local weights by setting model_weights_path in the shell script (see Demos above for details).

To run inference on Human3.6M:

sh ./scripts/FMPose3D_test.sh

Inference API

FMPose3D also ships a high-level Python API for end-to-end 3D pose estimation from images. See the Inference API documentation for the full reference.

Experiments on non-human animals

For animal training/testing and demo scripts, see animals/README.md.

Citation

@misc{wang2026fmpose3dmonocular3dpose,
      title={FMPose3D: monocular 3D pose estimation via flow matching}, 
      author={Ti Wang and Xiaohang Yu and Mackenzie Weygandt Mathis},
      year={2026},
      journal={CVPR},
      url={https://arxiv.org/abs/2602.05755}, 
}

Acknowledgements

We thank the Swiss National Science Foundation (SNSF Project # 320030-227871) and the Kavli Foundation for providing financial support for this project.

Our code is extended from the following repositories. We thank the authors for releasing the code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fmpose3d-0.0.9.tar.gz (114.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fmpose3d-0.0.9-py3-none-any.whl (131.8 kB view details)

Uploaded Python 3

File details

Details for the file fmpose3d-0.0.9.tar.gz.

File metadata

  • Download URL: fmpose3d-0.0.9.tar.gz
  • Upload date:
  • Size: 114.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for fmpose3d-0.0.9.tar.gz
Algorithm Hash digest
SHA256 89e0137ed3525d2d8b6a4a6276a810643c5afd5556b32f3899eac909287d85bd
MD5 43949e94236444b6ca83fd1cf486a85d
BLAKE2b-256 9488df6b75e3267f859c542244a6eca5edba7ecda4660bcddc6680aa2c5d74b0

See more details on using hashes here.

File details

Details for the file fmpose3d-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: fmpose3d-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 131.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for fmpose3d-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 9d3a0aea8fdb54234c2dd9ec8d9df5dad3c16350eb7b9aba09f22345165e6d24
MD5 2626c6bba8494f6a2cc18f587bdf4e53
BLAKE2b-256 bd1dfb7a16fafcf437a590462b691372a99e64219e484ebb0e1fa3f849b5eeb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page