Skip to content

[CVPR 25] The official repository for paper 'ProbPose: A Probabilistic Approach to 2D Human Pose Estimation'

License

Notifications You must be signed in to change notification settings

MiraPurkrabek/ProbPose_code

Repository files navigation

    ProbPose: A Probabilistic Approach to 2D Human Pose Estimation

    CVPR 2025

ProbPose Showcase

Paper     Website     License

📋 Overview

ProbPose introduces a probabilistic framework for human pose estimation, focusing on reducing false positives by predicting keypoint presence probabilities and handling out-of-image keypoints. It also introduces the new Ex-OKS metric to evaluate models on false positive predictions.

Key contributions:

  • Presence probability concept that distinguishes keypoint presence from confidence
  • ProbPose: top-down model for out-of-image keypoints estimation
  • OKSLoss adapted for dense predictions in risk minimization formulation
  • Ex-OKS evaluation metric penalizing false positive keypoints
  • CropCOCO dataset for out-of-image and false positive keypoints evaluation

For more details, please visit our project website.

📢 News

  • July 2025: exococotools PyPI package available
  • June 2025: Live webcam demo branch available
  • April 2025: Code is released
  • March 2025: Paper accepted to CVPR 2025! 🎉

🚀 Installation

This project is built on top of MMPose. Please refer to the MMPose installation guide for detailed setup instructions.

Basic installation steps:

# Clone the repository
git clone https://github.com/mirapurkrabek/ProbPose_code.git ProbPose/
cd ProbPose

# Install your version of torch, torchvision, OpenCV and NumPy
pip install torch==2.1.2+cu121 torchvision==0.16.2+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
pip install numpy==1.25.1 opencv-python==4.9.0.80

# Install MMLibrary
pip install -U openmim
mim install mmengine "mmcv==2.1.0" "mmdet==3.3.0" "mmpretrain==1.2.0"

# Install dependencies
pip install -r requirements.txt
pip install -e .

🎮 Demo

Single Image Demo

Run the following command to test ProbPose on a single image:

python demo/image_demo.py \
demo/resources/CropCOCO_single_example.jpg \
configs/body_2d_keypoint/topdown_probmap/coco/td-pm_ProbPose-small_8xb64-210e_coco-256x192.py \
path/to/pre-trained/weights.pth \
--out-file demo/results/CropCOCO_single_example.jpg \
--draw-heatmap

Expected result (click for full size):
Single Image Demo

Demo with MMDetection

For more complex scenarios with multiple people, use the MMDetection-based demo:

python demo/topdown_demo_with_mmdet.py \
demo/mmdetection_cfg/rtmdet_m_640-8xb32_coco-person.py \
https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmdet_m_8xb32-100e_coco-obj365-person-235e8209.pth \
configs/body_2d_keypoint/topdown_probmap/coco/td-pm_ProbPose-small_8xb64-210e_coco-256x192.py \
path/to/pre-trained/weights.pth \
--input demo/resources/CropCOCO_multi_example.jpg \
--draw-bbox \
--output-root demo/results/ \
--draw-heatmap

Expected result (click for full size):
Multi Person Demo

For more detailed information on demos and visualization options, please refer to the MMPose documentation.

Google Colab Demo

You can also run ProbPose directly in Google Colab without any local installation!

Open In Colab

Note: The installation process in Colab takes approximately 5-10 minutes. Please be patient during setup - it is not stuck!

For more detailed information on demos and visualization options, please refer to the MMPose documentation.

📦 Pre-trained Models

Pre-trained models are available on VRG Hugging Face 🤗:

✂️ CropCOCO Dataset

The CropCOCO dataset is available on VRG Hugging Face 🤗.

For Ex-OKS and Ex-mAP evaluation, you can use cocoeval.py file which is a direct replacement for the original cocoeval.py file from xtcocotools. We plan to release Ex-mAP evaluation tool as a standalone package similar to xtcocotools.

📏 Ex-OKS Evaluation

Our Ex-OKS metric can be computed via the standalone exococotools package, which is fully backward-compatible with xtcocotools/pycocotools. Install and run it as a drop-in replacement:

pip install exococotools

For more details and advanced options, see the package website: https://github.com/MiraPurkrabek/exococotools

🗺️ Roadmap

  • Add config and weights for DoubleProbmap model
  • Add out-of-image pose visualization
  • Add new package with Ex-OKS implementation --> exococotools
  • Add ProbPose to MMPose library
  • Create HuggingFace demo

🙏 Acknowledgments

This project is built on top of MMPose. We would like to thank the MMPose team for their excellent work and support.

📝 Citation

If you find this work useful, please consider citing our paper:

@InProceedings{Purkrabek2025CVPR,
    author    = {Purkrabek, Miroslav and Matas, Jiri},
    title     = {ProbPose: A Probabilistic Approach to 2D Human Pose Estimation},
    booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR)},
    month     = {June},
    year      = {2025},
    pages     = {27124-27133}
}

About

[CVPR 25] The official repository for paper 'ProbPose: A Probabilistic Approach to 2D Human Pose Estimation'

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages