https://github.com/openpifpaf/openpifpafwebdemo
Web browser based demo of OpenPifPaf.
https://github.com/openpifpaf/openpifpafwebdemo
ml-web onnx onnx-torch pose-estimation pytorch typescript
Last synced: 9 months ago
JSON representation
Web browser based demo of OpenPifPaf.
- Host: GitHub
- URL: https://github.com/openpifpaf/openpifpafwebdemo
- Owner: openpifpaf
- License: mit
- Created: 2019-03-13T10:27:10.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2023-09-27T20:36:23.000Z (over 2 years ago)
- Last Synced: 2025-08-20T06:24:30.335Z (10 months ago)
- Topics: ml-web, onnx, onnx-torch, pose-estimation, pytorch, typescript
- Language: Python
- Homepage:
- Size: 44.4 MB
- Stars: 95
- Watchers: 7
- Forks: 17
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# openpifpafwebdemo

Links:
[main repository](https://github.com/openpifpaf/openpifpaf),
[2021 paper](https://arxiv.org/abs/2103.02440) and
[CVPR2019 paper](http://openaccess.thecvf.com/content_CVPR_2019/html/Kreiss_PifPaf_Composite_Fields_for_Human_Pose_Estimation_CVPR_2019_paper.html).
Live demo: https://vitademo.epfl.ch
Serverless live demo: https://openpifpaf.github.io/openpifpafwebdemo/
# Use Locally
Run the full pipeline (neural network and decoder) in Python
and visualize the output in the browser:
```sh
pip3 install openpifpafwebdemo
python3 -m openpifpafwebdemo.server
```
_Troubleshooting_: Make sure you are using Python3 and have the latest pip and
setuptools with `pip install --upgrade pip setuptools`. Do not clone this
repository. Make sure there is no folder named `openpifpafwebdemo` in your
current directory.
__Example:__

# Docker
For every release, this repository builds a new docker image and uploads it
to [Docker Hub: svenkreiss/openpifpafwebdemo](https://hub.docker.com/r/svenkreiss/openpifpafwebdemo).
You can test it with:
```
docker run -d -p 5000:80 svenkreiss/openpifpafwebdemo
```
This docker images also powers https://vitademo.epfl.ch. More info on building
the docker image and how to deploy it to Kubernetes is in [docker/readme.md](docker/readme.md).
# API
Example using cURL:
```sh
curl --data-binary @docs/me_nyc_square_500.jpeg http://localhost:5000/v1/human-poses
```
which produces:
```json
[{"coordinates": [[0.588631883263588, 0.41628291457891464, 3.5567557387194797], [0.621234196703881, 0.36160339042544365, 3.524825929280572], [0.546875, 0.375, 3.744302039019678], [0.6724068783223629, 0.44710323959589005, 3.459401266884038], [0.494683139026165, 0.4611567258834839, 3.5954212359489217], [0.78733691573143, 0.8311769068241119, 2.1321910543190827], [0.3859005756676197, 0.8252473473548889, 2.158424186304439], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], "score": 0.26909651332876167}]
```
Keep-alive connection test:
```sh
curl -v --data-binary @docs/me_nyc_square_500.jpeg http://localhost:5000/v1/human-poses --next --data-binary @docs/me_nyc_square_500.jpeg http://localhost:5000/v1/human-poses 2>&1 | grep '#0'
* Connected to localhost (127.0.0.1) port 5000 (#0)
* Connection #0 to host localhost left intact
* Re-using existing connection! (#0) with host localhost
* Connected to localhost (127.0.0.1) port 5000 (#0)
* Connection #0 to host localhost left intact
```
# Dev
To install from source and set up for development use
`pip install --editable ".[test]"`, install the frontend dependencies with
`npm install` and then create the frontend JavaScript code with `npm run build`. For continuous rebuilds of the js package, use `npm run watch`.
Run the server process with `--debug` to get salted version numbers to break
the browser cache for static assets and autoreload when source files change.
# Citation
```
@article{kreiss2021openpifpaf,
title = {{OpenPifPaf: Composite Fields for Semantic Keypoint Detection and Spatio-Temporal Association}},
author = {Sven Kreiss and Lorenzo Bertoni and Alexandre Alahi},
journal = {arXiv preprint arXiv:2103.02440},
month = {March},
year = {2021}
}
@InProceedings{kreiss2019pifpaf,
author = {Kreiss, Sven and Bertoni, Lorenzo and Alahi, Alexandre},
title = {PifPaf: Composite Fields for Human Pose Estimation},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2019}
}
```