finds.dev← search

// the find

rwightman/posenet-python

★ 505 · Python · Apache-2.0 · updated Sep 2022

A Python port of Google TensorFlow.js PoseNet (Real-time Human Pose Estimation)

A pure-Python, multi-pose-only port of Google's TensorFlow.js PoseNet model, built by the same author who later did a (faster) PyTorch version. It's for people who want to read or tweak PoseNet's keypoint decoding logic in Python rather than treat it as a JS black box, not for anyone needing a production-ready pose estimation stack today.

The author actually profiled the post-processing step and vectorized it with numpy/scipy, documenting real numbers: a literal JS-to-Python translation ran at ~30fps, the optimized version hits 90-110fps on a GTX 1080+. The codebase is small and legible (decode.py, decode_multi.py, model.py), so it works well as a reference for how PoseNet's heatmap decoding actually works. It also ships three working demos (image, webcam, benchmark) that auto-download and convert the original TF.js weights on first run, so you're not hunting for model files separately.

It's pinned to TensorFlow 1.12 and Python 3.6 via a conda recipe from 2019, with no requirements.txt or Dockerfile, so getting it running on a current machine means fighting TF1 graph-mode and ancient dependency resolution. There's no test suite, and the README's own TODO admits there's no 'stringent verification of correctness' against the original model, so you're trusting the port is accurate rather than verifying it. Last push was September 2022, and the author flags the remaining post-processing loops as a bottleneck that was never addressed with Cython or C++, so the performance ceiling the README describes is where the project stopped.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →