Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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.

📦 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

Languages