Skip to content

MinKim14/ProbIP-ICCV2025

Repository files navigation

Probabilistic Inertial Poser (ProbIP)

Uncertainty-aware Human Motion Modeling from Sparse Inertial Sensors

ProbIP Thumbnail

Official PyTorch implementation for the paper "Probabilistic Inertial Poser (ProbIP): Uncertainty-aware Human Motion Modeling from Sparse Inertial Sensors" (ICCV 2025).

Authors: Min Kim, Younho Jeon, Sungho Jo

🧭 Overview

ProbIP is a novel probabilistic human motion estimation framework designed to work with sparse inertial measurements (e.g., from 6 IMUs).
Unlike existing methods that rely on physical priors or heuristics, ProbIP directly models uncertainty in motion prediction through probabilistic representations, enabling robust and accurate full-body motion reconstruction, even under sparse sensor configurations.

Our model not only predicts full-body pose sequences but also captures and quantifies uncertainty in the motion predictions, essential for real-world deployment in interactive environments.

🎥 Check out qualitative video results in submission/videos/


🔬 Key Features

  • RU-Mamba Blocks: We introduce Rotation-Uncertainty Mamba (RU-Mamba), a novel sequence model block that outputs a matrix Fisher distribution over rotation matrices, capturing both motion and its uncertainty.

  • PDN (Progressive Distribution Narrowing): A unique mechanism that gradually refines the motion distribution across layers to stabilize training and improve prediction quality across diverse motion types.

  • Sensor Efficient: Achieves SOTA results with just 6 IMUs, and remains competitive with fewer sensors, ideal for real-world applications with hardware constraints.


📊 Experimental Highlights

  • Achieves state-of-the-art accuracy on multiple public datasets with only 6 IMUs.
  • Robust to sensor dropout and reduced sensor scenarios.
  • Outperforms existing physically-constrained models in both accuracy and uncertainty modeling.

⚙️ Setup Instructions

1. Environment Setup

We recommend using conda to manage your environment:

conda create -n probip python=3.10
conda activate probip

Then install PyTorch appropriate for your system and CUDA version:
👉 https://pytorch.org/get-started/locally/

Next, install the remaining dependencies:

pip install -r requirements.txt

⚠️ Note on chumpy:
If you encounter a numpy-related error when installing chumpy, comment out the following line in site-packages/chumpy/__init__.py:

# from numpy import bool, int, float, complex, object, unicode, str, nan, inf

2. SMPL Body Models

ProbIP uses SMPL models to reconstruct 3D body mesh.

  1. Register and download .pkl files from the official SMPL website.
  2. Place them under the smpl_model/ directory:
smpl_model/
├── smpl_male.pkl
├── smpl_female.pkl
└── smpl_neutral.pkl

3. Dataset Preparation 📦

ProbIP uses multiple publicly available inertial motion datasets originally introduced in DynaIP. Please download the following:

Organize your downloaded data as follows:

datasets/
├── raw/
│   ├── andy/
│   ├── cip/
│   ├── dip/
│   ├── emokine/
│   ├── unipd/
│   └── virginia/
├── extract/
└── work/

Then update the dataset paths in utils/config.py accordingly.

To preprocess the raw data:

python dataset/process.py

🏋️‍♂️ Training

To train ProbIP from scratch, run:

python train.py

Training behavior and parameters are configured via utils/config.py.


🧪 Evaluation

To evaluate a trained model:

python eval.py

You can use our pretrained model weights (download below) or your own checkpoint.


📥 Pretrained Weights

We provide pretrained weights for quick evaluation and reproducibility:
🔗 Download ProbIP Pretrained Weights

After downloading, place them under:

model_log/
└── best_modeln.pth

Then update your evaluation config accordingly.


🧠 Acknowledgements

This repository is built upon prior foundational works in motion modeling and shape estimation.
We would like to acknowledge:


Feel free to open issues or contribute!
Let’s build better motion models together 🤝

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages