I initially came up with this project idea because I (along with 99% of other Computer Science majors) have bad posture while standing and especially
while sitting in front of their computer for years. It terrible for your neck and back health, can lead to chronic conditions, and makes you shorter.
Me and my awesome hackathon team came up with the ideas of a wearable posture tracker that you can use while standing or walking or doing almost anything,
and a posture tracker application that uses your webcam and Computer Vision that you can run in the background while sitting in front of your computer.
What it Does
To track the user's posture, we used a dual-solution design that combines a computer vision model on your computer with a hardware harness around your neck
to detect slouching. The computer vision model was built on a Python framework using OpenCV to capture images and utilizing Google's MediaPipe Pose
Landmarker Lite model to identify when posture changes. The Python application tracks your shoulders and face, and calculates if your face goes past a certain angle relative to your shoulders
to then alert you of your bad posture. The hardware is an MPU-6050 accelerometer connected to a buzzer and an ESP32, with
firmware coded in C++. The buzzer will start buzzing when the user leans too far forward. The ESP32 also creates a WiFi network you can join to access a management web page where you can recalibrate the accelerometer and see live
changes in your posture.
How We Built it
The computer vision posture tracker is made using Python and the OpenCV library, while the firmware for the ESP32 and the hardware harness
were made using C++. For the hardware, we used an ESP32 as the logic board, a MPU-6050 accelerometer, a buzzer, a USB power bank in a custom-made
assembly. The accelerometer is attached to a long strand of cables and goes around your neck with a Velcro strap.
Future Updates/Modifications
Possible future updates, additions, and modifications to this project include:
Creating an iOS/Android app for the wearable device to enable Bluetooth connection instead of WiFi connection along with a better UI
Removing the buzzer from the device and instead sending a notification to the connected phone (over Bluetooth) to alert the user of bad posture
adding a power switch/button to the device
Adding an alternative silent alert option for the Python application
Read more and learn how to use/deploy it by visiting the Github Repository.