cy0307/a-smplify-fit

Model

0

stars

5

commits

1

linked in READMEs

Jun 28, 2026

updated

educational
embodied-ai
from-scratch
pose-estimation
pytorch
reproducible
ropedia-academy

README

SMPLify body fit

An articulated body fit to 2D keypoints by reprojection optimization with a pose prior — the SMPLify recipe.

Trained from scratch in Ropedia Academy — an interactive, bilingual course on embodied & spatial AI. Educational model: small and quick to train; the value is the method and a reproducible pipeline, not a leaderboard score. Try it live in the Ropedia demos Space.

At a glance

Base modelTrained from scratch (random initialization) — no pretrained base model.
Task3D human pose by 2D-keypoint reprojection
Training objectiveMinimize 2D-keypoint reprojection error + a pose prior, optimizing the body's joint angles & root (the SMPLify recipe).
TrackA · Human modeling
NotebookOpen In Colab

Dataset

  • Name: Synthetic 2D keypoints
  • Type: synthetic — procedural, generated in the notebook
  • Size / stats: 1 articulated skeleton (12 joints) → 12 projected 2D keypoints + Gaussian noise
  • Split: single instance (per-image optimization)
  • Source: procedural

Training config

Adam (lr 0.05), 400 optimization steps over body pose (joint angles + root). STEPS env-overridable.

Evaluation results

metricvaluemeaning
reproj (final)0.0001

figure

Inference example

import torch
state = torch.load("pose.pt", map_location="cpu")   # this repo's checkpoint
# Rebuild the exact module from the lab notebook (see "Reproduce"), then:
# model.load_state_dict(state); model.eval()

Limitations

Educational scale. Trained quickly on CPU on small or synthetic data, so absolute numbers are not competitive with production systems — the value is the method and a reproducible pipeline. No large-scale data, no hyperparameter sweep, and no multi-seed variance is reported. Not for production use.

Failure cases

Sensitive to initialization & 2D-keypoint noise; can settle into a flipped or locally-optimal pose without a strong prior.

Reproduce / train your own

One click: open the notebook in Colab → Runtime → GPU → Run all, then run its Publish to the Hugging Face Hub cell.

Open In Colab

From a shell:

git clone https://github.com/ChaoYue0307/ropedia-academy.git && cd ropedia-academy
pip install torch numpy matplotlib scikit-learn scikit-image gymnasium
jupyter nbconvert --to notebook --execute notebooks/training/A_smplify_fit.ipynb --output run.ipynb
# optional: override training length, e.g.  STEPS=2000  (or EPISODES=600)  before running

Files

  • figure.png
  • metrics.json
  • pose.pt

License

Code & weights: MIT (this repository) — educational use encouraged.
Data: generated procedurally in the notebook — no external dataset.

Citation

If you use this model or the course materials, please cite:

@misc{ropedia_academy,
  title  = {Ropedia Academy: an interactive course on embodied & spatial AI},
  author = {Ropedia Academy},
  year   = {2026},
  howpublished = {\url{https://chaoyue0307.github.io/ropedia-academy/}}
}

Method / original work: Bogo et al., Keep it SMPL (SMPLify), ECCV 2016.


Part of the Ropedia Academy trained-model collection. Contributions & issues welcome on GitHub.

Contributors

cy0307

5 commits

cy0307/a-smplify-fit

Model

0

stars

5

commits

1

linked in READMEs

Jun 28, 2026

updated

educational
embodied-ai
from-scratch
pose-estimation
pytorch
reproducible
ropedia-academy

README

SMPLify body fit

An articulated body fit to 2D keypoints by reprojection optimization with a pose prior — the SMPLify recipe.

Trained from scratch in Ropedia Academy — an interactive, bilingual course on embodied & spatial AI. Educational model: small and quick to train; the value is the method and a reproducible pipeline, not a leaderboard score. Try it live in the Ropedia demos Space.

At a glance

Base modelTrained from scratch (random initialization) — no pretrained base model.
Task3D human pose by 2D-keypoint reprojection
Training objectiveMinimize 2D-keypoint reprojection error + a pose prior, optimizing the body's joint angles & root (the SMPLify recipe).
TrackA · Human modeling
NotebookOpen In Colab

Dataset

  • Name: Synthetic 2D keypoints
  • Type: synthetic — procedural, generated in the notebook
  • Size / stats: 1 articulated skeleton (12 joints) → 12 projected 2D keypoints + Gaussian noise
  • Split: single instance (per-image optimization)
  • Source: procedural

Training config

Adam (lr 0.05), 400 optimization steps over body pose (joint angles + root). STEPS env-overridable.

Evaluation results

metricvaluemeaning
reproj (final)0.0001

figure

Inference example

import torch
state = torch.load("pose.pt", map_location="cpu")   # this repo's checkpoint
# Rebuild the exact module from the lab notebook (see "Reproduce"), then:
# model.load_state_dict(state); model.eval()

Limitations

Educational scale. Trained quickly on CPU on small or synthetic data, so absolute numbers are not competitive with production systems — the value is the method and a reproducible pipeline. No large-scale data, no hyperparameter sweep, and no multi-seed variance is reported. Not for production use.

Failure cases

Sensitive to initialization & 2D-keypoint noise; can settle into a flipped or locally-optimal pose without a strong prior.

Reproduce / train your own

One click: open the notebook in Colab → Runtime → GPU → Run all, then run its Publish to the Hugging Face Hub cell.

Open In Colab

From a shell:

git clone https://github.com/ChaoYue0307/ropedia-academy.git && cd ropedia-academy
pip install torch numpy matplotlib scikit-learn scikit-image gymnasium
jupyter nbconvert --to notebook --execute notebooks/training/A_smplify_fit.ipynb --output run.ipynb
# optional: override training length, e.g.  STEPS=2000  (or EPISODES=600)  before running

Files

  • figure.png
  • metrics.json
  • pose.pt

License

Code & weights: MIT (this repository) — educational use encouraged.
Data: generated procedurally in the notebook — no external dataset.

Citation

If you use this model or the course materials, please cite:

@misc{ropedia_academy,
  title  = {Ropedia Academy: an interactive course on embodied & spatial AI},
  author = {Ropedia Academy},
  year   = {2026},
  howpublished = {\url{https://chaoyue0307.github.io/ropedia-academy/}}
}

Method / original work: Bogo et al., Keep it SMPL (SMPLify), ECCV 2016.


Part of the Ropedia Academy trained-model collection. Contributions & issues welcome on GitHub.

Contributors

cy0307

5 commits