Inspiration
I built HighFit to make accessible, privacy-friendly workout tracking that works from a phone camera. I wanted a lightweight app that gives instant repetition counts and form feedback without sending video to servers — useful for home workouts, gyms with poor connectivity, or quick on-the-go sessions.
What it does
- Detects human pose landmarks (33 points) in real time and classifies common exercises (pushup, squat, situp, lunges, deadlift, chest press, shoulder press) plus several yoga poses (Warrior, Tree).
- Counts repetitions for each exercise and provides real-time confidence feedback (yoga confidence shown with color changes).
- Lets users build exercise plans, stores history with Room DB, and issues voice notifications at start/completion of sets.
How I built it
Language / Platform: Kotlin Android app; project structure and Gradle build are in the app/ folder.
Pose detection: MediaPipe / Google ML Kit Pose Landmark Detection (accurate models) for on-device landmark extraction.
Camera & UI: CameraX + Camera lifecycle integration, Material UI components, and front/back camera flip.
Model training: Transfer learning pipeline executed in Google Colab — collect ~200 images per pose, upload, generate CSVs, split by posture, then place into assets/pose/ for the app to use.
Storage: Room database for exercise plans and workout history; MPAndroidChart for visual summaries.
Challenges I ran into
- Collecting varied, high-quality pose photos for every exercise variation (lighting, viewpoints, body types) to avoid misclassification.
- Distinguishing exercises with similar poses (e.g., some pull/press movements vs. pushups) — required careful landmark-based feature engineering.
- Yoga pose accuracy and giving meaningful corrective feedback remained a tougher problem due to subtle alignment differences and dataset scarcity.
Accomplishments that I'm proud of
- A working, real-time repetition counter using MediaPipe/ML Kit that runs on-device.
- End-to-end pipeline from data collection (Colab) → lightweight model/CSV assets → app integration with Room DB and voice prompts.
What I learned
- Practical steps for transfer learning for pose classification and how to export small CSV-based assets that a mobile app can consume.
- How to integrate CameraX, ML Kit pose detectors, and a smooth UI/UX with persistent local storage (Room).
What's next for HighFit
- Expand training data diversity and add more exercise variations.
- Improve yoga pose correction feedback and add guided posture hints.
- Add multi-person support, speaker / audio cues customization, and optional cloud-sync for cross-device history (opt-in).
Built With
- android
- camerax
- colab
- kotlin
- mediapipe
Log in or sign up for Devpost to join the conversation.