LiftTrack: Eine 3D-CNN-basierte mobile Lösung zur Überwachung und Verbesserung von Gewichthebertechniken
3D CNN Formkorrektur + Flutter
Übersicht
Rolle: Flutter Frontend & Architektur Lead
Stack: Flutter, Dart, BLoC, 3D CNN, Python
Ergebnis: 100% Deadlift-Formgenauigkeit
Entwicklungsdauer: 8 Monate (Juli 2024 - Februar 2025)
LiftTrack ist eine forschungsbasierte mobile Anwendung, die entwickelt wurde, um professionelles Gewichtheber-Coaching zu demokratisieren. Durch die Integration fortschrittlicher Computer-Vision-Modelle in eine Flutter-Anwendung bietet das System biomechanische Analysen in Echtzeit und korrigierendes Feedback zur Vermeidung von Verletzungen. Dieses 8-monatige Abschlussprojekt konzentrierte sich auf die Entwicklung einer leistungsstarken Lösung für das Echtzeit-Monitoring der Gewichtheber-Technik mittels 3D CNN und Pose-Estimation.
Das Problem
Herausforderung: Hohes Verletzungsrisiko beim Gewichtheben durch schlechte Form und fehlendes professionelles Coaching.
Zielgruppe: Einzelsportler und Athleten, die keinen Zugang zu teuren Personal Trainern haben.
Einschränkungen: Echtzeit-Inferenz auf Mobilgeräten, Handhabung komplexer temporaler Bewegungen gegenüber statischen Posen und Aufrechterhaltung hoher Bildraten für sofortiges Feedback.
Einzelsportler haben oft Schwierigkeiten, die richtige Form beizubehalten, was zu chronischen Verletzungen oder suboptimalen Fortschritten führt. Herkömmliche Pose-Estimation scheitert oft daran, den "Rhythmus" und die temporale Abfolge eines Lifts zu erfassen, was entscheidend für die Identifizierung technischer Fehler bei Bewegungen wie Kreuzheben oder Kniebeugen ist. Das Fehlen einer erschwinglichen, tragbaren Lösung zur Formanalyse stellt eine erhebliche Barriere für sicheres und effektives Training dar.
Wichtige Entscheidungen: Kombination von 3D CNN (temporal) zur Identifizierung der Bewegungsphase mit MoveNet (Pose) für die Skelettanalyse und YOLO-NAS (Equipment) für das Bar-Path-Tracking.
Zustandsmanagement: Einsatz von Clean Architecture mit BLoC zur Steuerung von 3 parallelen Datenströmen ohne UI-Lag.
Abwägungen: Es wurde eine Remote-Cloud-Inferenz gewählt, um 30+ FPS auf Mittelklasse-Geräten beizubehalten, während rechenintensive 3D CNN Tensoren verarbeitet werden.
Das System nutzt einen maßgeschneiderten Datenfluss: Kamera -> 30-Frame-Buffer -> Parallele Inferenz -> Merkmalsaggregation. Dies stellt sicher, dass die Anwendung nicht nur einen "Schnappschuss" einer Pose sieht, sondern den gesamten Bewegungsbogen versteht. Durch die Entkopplung der Präsentationsebene von der schweren Inferenzlogik haben wir eine flüssige Benutzererfahrung auch bei intensiven Berechnungen erreicht.
Ergebnisse & Impact
Ergebnis: Validierte 95% Gesamtgenauigkeit bei den Grundübungen, bis zu 100% bei spezifischen Übungen wie Kreuzheben.
Impact: Schaffung einer kostengünstigen, zugänglichen Alternative zum Personal Training, die jedem Smartphone-Besitzer professionelle Formkorrektur bietet.
Performance: Erreichte einen Inferenz-Feedback-Loop von unter 100ms bei konstanten 30+ FPS auf empfohlenen Geräten.
Übung
Genauigkeit
Kreuzheben (Deadlift)
100.00%
Rumän. Kreuzheben
83.33%
Bankdrücken
80.00%
Gesamtdurchschnitt
~95%
Technischer Tiefgang
Parallele multi-modulare Inferenz-Pipeline
3D CNN (Temporale Klassifizierung): Ein dreidimensionales faltendes neuronales Netzwerk verarbeitet einen Buffer von 30 Frames zur Identifizierung von Übungstyp und Bewegungsphase.
Architektur: Input (30x128x128x3) → 2x Conv3D (32, 64 Filter) → 3D Max Pooling → Global Average Pooling → Softmax.
MoveNet (Human Pose Estimation): Extrahiert 17 Körper-Keypoints pro Frame zur Berechnung von Gelenkwinkeln und Körperausrichtung.
YOLO-NAS (Equipment Tracking): Erkennt und verfolgt Langhanteln/Kurzhanteln zur Berechnung von Verschiebung, Geschwindigkeit und Bar-Path.
Wichtige Optimierungen
Normalisierung: Körper-Keypoints werden unter Verwendung der Torso-Länge des Benutzers als Referenzvektor normalisiert, um Genauigkeit bei verschiedenen Körpertypen und Kameraabständen zu gewährleisten.
Heuristische Auswertung: Sobald das 3D CNN die Übung identifiziert (z. B. Kreuzheben), wendet das System spezifische biomechanische Schwellenwerte (z. B. Rückenwinkel > 150°) auf die aggregierten Daten an.
Feedback-Schleife: Audio- und visuelles Feedback wird innerhalb von Millisekunden generiert und gibt spezifische Vorschläge wie "Rücken gerade halten" oder "Hüften senken".
Reflexionen
Erfolg: Die saubere BLoC-Architektur steuerte erfolgreich komplexe Zustände und Echtzeit-Datenströme und bewies, dass Flutter intensive, ML-integrierte Anwendungen bewältigen kann.
Zukunft: Erforschung von AR-Overlays für eine intuitivere räumliche Anleitung und Erweiterung des Trainingssets auf über 50.000 Bilder für eine breitere Inklusivität.
Herausforderungen: Die Bewältigung von iOS-Entwicklungsbarrieren und Einschränkungen bei plattformübergreifenden Bibliotheken erforderte benutzerdefinierte Implementierungen. Das Projekt war mit Hardwaredefekten und Verzögerungen im Lehrplan konfrontiert, die wir durch agile Anpassungen und Infrastrukturverbesserungen gemeistert haben.
Meine Beiträge
Flutter Frontend (iOS/Android): Erstellung der plattformübergreifenden mobilen Schnittstelle mit Dart und Flutter.
Architektur: Anwendung von Clean Architecture mit BLoC für skalierbaren, wartbaren Code.
Kernfunktionen: Entwicklung der Kernfunktionen für Workout-Logging, Fortschrittsverfolgung und Authentifizierung.
UI/UX Design: Gestaltung interaktiver Schnittstellen mit Schwerpunkt auf Klarheit und Feedback.
iOS-Kompatibilität: Lösung plattformspezifischer Probleme und Implementierung von Alternativen zu reinen Android-Flutter-Paketen.
Refactoring: Leitung des architektonischen Refactorings des Profil-Moduls zur Verbesserung der Trennung von Verantwortlichkeiten.
Cloud-Infrastruktur: Unterstützung bei der Bereitstellung des 3D-CNN-Modells auf einem Remote-Cloud-Server aufgrund hoher Rechenanforderungen.
DevOps-Setup: Integration des Frontends mit Backend-ML-Diensten über eine benutzerdefinierte Deployment-Pipeline.
Projektarchitektur
Diese App folgt der Clean Architecture mit modularen Schichten und featurebasierter Organisation.
Schichtstruktur: Presentation, Domain und Data Layer sind strikt getrennt. Mehr dazu lesen
Feature-Module: Jedes Hauptfeature (z. B. Profil, Fortschritt, Workout-Logging) ist unabhängig strukturiert.
BLoC-Zustandsmanagement: Gewährleistet vorhersagbare Zustandsübergänge und testbare Business-Logik.
Aktuelle Verbesserungen: Profil-Modul refactored, um architektonische Ziele zu erfüllen. Refactoring-Notizen
Demo-Vorschau
Obwohl die Live-Version nicht verfügbar ist, hier sind Kernansichten von LiftTrack:
Workout-Logging-Interface auf Android und iOS
Fortschrittsverfolgung und Dashboard
Cloud-ML-Pipeline (Architekturdiagramm verfügbar)
Hosting-Hinweis:
Dieses Projekt wurde auf einem Cloud-Server bereitgestellt, der vom Projektmanager verwaltet wurde. Aufgrund abgelaufener Hosting-Verträge und Zugriffsbeschränkungen ist die Live-App derzeit offline. Eine vollständige Demo und ein aufgezeichneter Walkthrough sind auf Anfrage verfügbar.