Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/workflows/release-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Update internal release

on:
push:
tags:
- 'v*.*.*'
pull_request:
branches:
- main
types:
- labeled
- opened
- edited
- synchronize
- reopened

jobs:
release:
runs-on: ubuntu-latest

steps:
- name: Cache dependencies
id: pip-cache
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip

- name: Install dependencies
run: |
pip install --upgrade pip
pip install wheel
# NOTE(stes) see https://github.com/pypa/twine/issues/1216#issuecomment-2629069669
pip install "packaging>=24.2"

- name: Checkout code
uses: actions/checkout@v3

- name: Build and publish to Test PyPI
if: ${{ (github.ref != 'refs/heads/main') && (github.event.label.name == 'release') }}
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_TOKEN }}
run: |
make dist
ls dist/
tar tvf dist/fmpose3d-*.tar.gz
python3 -m twine upload --verbose --repository testpypi dist/*

- name: Build and publish to PyPI
if: ${{ github.event_name == 'push' }}
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: |
make dist
ls dist/
tar tvf dist/fmpose3d-*.tar.gz
python3 -m twine upload --verbose dist/*
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
# FMPose3D: monocular 3D Pose Estimation via Flow Matching
# FMPose3D: monocular 3D pose estimation via flow matching

![Version](https://img.shields.io/badge/python_version-3.10-purple)
[![PyPI version](https://badge.fury.io/py/fmpose3d.svg)](https://badge.fury.io/py/fmpose3d)
[![License: LApache 2.0](https://img.shields.io/badge/License-Apache2.0-blue.svg)](https://www.gnu.org/licenses/apach2.0)

This is the official implementation of the approach described in the paper:

> [**FMPose3D: monocular 3D Pose Estimation via Flow Matching**](xxx)
> Ti Wang, Xiaohang Yu, Mackenzie Weygandt Mathis
[**FMPose3D: monocular 3D Pose Estimation via Flow Matching**](xxx)
Ti Wang, Xiaohang Yu, Mackenzie Weygandt Mathis

<!-- <p align="center"><img src="./images/Frame 4.jpg" width="50%" alt="" /></p> -->

<p align="center"><img src="./images/predictions.jpg" width="95%" alt="" /></p>

## 🚀 TL;DR

FMPose3D replaces slow diffusion models for monocular 3D pose estimation with 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!

- [X] Feb 2026: FMPose3D is code and arXiv paper is released - check out the demos here or on our [project page](https://xiu-cs.github.io/FMPose3D/)
- [X] Feb 2026: FMPose3D code and arXiv paper is released - check out the demos here or on our [project page](https://xiu-cs.github.io/FMPose3D/)
- [ ] Planned: This method will be integrated into [DeepLabCut](https://www.mackenziemathislab.org/deeplabcut)

## Installation
Expand Down
Loading