HIIT PI is a Dash app that uses machine learning (specifically pose estimation) on edge devices to help track your HIIT workout progress in real time (~30fps). The backend runs everything locally on a Raspberry Pi while you interact with the app wherever there is a web browser connecting to the same local network as the Pi does.
- Raspberry Pi (Pi 4 recommended)
- Raspberry Pi Camera Module v2
- Google's Coral USB Accelerator (Edge TPU)
-
SSH into your Raspberry Pi and clone the repository.
-
Install Docker & Docker Compose.
-
Build our Docker images and spawn up the containers with
$ docker-compose -d --build up
-
(Optional) For maximum performance, swap the standard Edge TPU runtime library
libedgetpu1-legacy-std
withlibedgetpu1-legacy-max
- get into the shell of container
web-hiitpi
by$ docker exec -it web-hiitpi bash
- run the following inside the container
Note: select
$ DEBIAN_FRONTEND=dialog apt-get install -y libedgetpu1-legacy-max
yes
and hitENTER
in the interactive installation process. - restart the
web
service after the above install finishes$ docker-compose restart web
- get into the shell of container
-
Go to
<your_pis_ip_address>:8050
on a device in the same LAN as the Pi's, and then enter a player name in the welcome page to get started. -
The live-updating line graphs show the model inferencing time (~50fps) and pose score frame by frame, which indicates how likely the camera senses a person in front.
-
Selecting a workout from the dropdown menu starts a training session, where your training session stats (
reps
&pace
) are updating in the widgets below as the workout progresses. Tap theDONE!
button to complete the session, orEXIT?
to switch a player. ClickLEADERBOARD
to view total reps accomplished by top players.
- This project currently has implemented a couple of workouts to play with, and we're planning to expand our workout repertoire as it evolves over time.