Programming lesson
Maschinelles Sehen: Praktische Anleitung zur Pushup-Zählung mit Python und KI
Lerne, wie du mit Python und Computer Vision ein Modell trainierst, das Push-ups in Videos zählt. Perfekt für Studierende der Machine Vision – inklusive Tipps zu KI-Tools und aktuellen Trends.
Einführung: Warum Push-up-Zählung eine echte Herausforderung ist
Stell dir vor, du trainierst für einen Marathon oder verfolgst deine Fitness mit einer App wie Strava oder Apple Health. Was wäre, wenn eine Kamera automatisch zählen könnte, wie viele Liegestütze du machst? Genau das ist die Aufgabe in diesem Lab-Praktikum: Maschinelles Sehen – Assignment II. Obwohl KI-Modelle wie Veo-3 oder Sora atemberaubende Videos generieren können, haben sie immer noch Schwierigkeiten, dynamische Bewegungen in Videos zu verstehen. Deshalb ist dieses Projekt so spannend: Es geht nicht darum, die perfekte Lösung zu finden, sondern darum, kreativ und systematisch an das Problem heranzugehen.
Überblick über das Assignment: Was wird erwartet?
Das Ziel: Du entwickelst ein Modell, das ein Video (im MP4-Format) als Eingabe nimmt und die Anzahl der ausgeführten Liegestütze als Integer ausgibt. Du darfst KI-Tools wie ChatGPT oder Gemini nutzen, um Code zu schreiben – aber deinen Projektbericht musst du selbst verfassen. Die Bewertung legt Wert auf deinen Ansatz, nicht auf die absolute Genauigkeit. Abgabe: Ein PDF mit Links zu deinen öffentlichen Colab-Notebooks und dem Modell auf HuggingFace.
Schritt-für-Schritt: So gehst du vor
1. Datenverständnis und Vorbereitung
Bevor du ein Modell trainierst, musst du verstehen, wie Push-ups in Videos aussehen. Nutze OpenCV, um Frames zu extrahieren und Bewegungen zu analysieren. Ein einfacher Trick: Berechne den optischen Fluss zwischen aufeinanderfolgenden Frames. So erkennst du Auf- und Abbewegungen.
import cv2
cap = cv2.VideoCapture('pushup_video.mp4')
ret, frame1 = cap.read()
ret, frame2 = cap.read()
while cap.isOpened():
diff = cv2.absdiff(frame1, frame2)
gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
# ... weitere Verarbeitung
2. Feature-Extraktion: Von Pixeln zu Zahlen
Statt jedes Pixel zu analysieren, extrahierst du Merkmale: die Position der Schultern, Hüften oder Hände. Verwende MediaPipe Pose oder YOLO für die Körperpose-Schätzung. Die y-Koordinate der Hüfte ändert sich bei jeder Wiederholung – ein klarer Indikator.
„Denk an eine App wie Peloton: Sie zählt Wiederholungen in Echtzeit. Genau das baust du hier nach – nur mit deinem eigenen Modell.“
3. Modell-Design: Klassisch oder neuronal?
Du kannst einen klassischen Ansatz wählen: Zähle die Peaks im Hüftsignal. Oder du trainierst ein 3D-CNN (z.B. I3D) oder ein LSTM über Zeit. Der Trend im Mai 2026 geht zu Vision Transformers (ViT), die auch räumlich-zeitliche Muster erfassen. Ein einfaches LSTM reicht aber oft aus.
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
model = Sequential()
model.add(LSTM(64, input_shape=(seq_len, num_features)))
model.add(Dense(1, activation='linear'))
model.compile(optimizer='adam', loss='mse')
4. Training und Evaluation
Teile deine Daten in Trainings- und Validierungssets. Achte auf Überanpassung – benutze Early Stopping. Da du keine Testdaten hast, simuliere die Evaluation mit Kreuzvalidierung. Speichere dein Modell und lade es auf HuggingFace hoch.
5. Inferenz-Pipeline
Im Inference-Notebook lädst du das Modell von HuggingFace und wendest es auf neue Videos an. Stelle sicher, dass der Code fehlerfrei läuft – die TAs werden „Run all“ klicken!
Häufige Fehler und wie du sie vermeidest
- Vergessen, die Notebooks öffentlich zu teilen – ohne Link gibt es null Punkte.
- Code, der nicht durchläuft – teste dein Notebook von Grund auf in einer frischen Colab-Umgebung.
- KI-generierten Bericht abgeben – das wird mit 0% bestraft und kann disziplinarische Folgen haben.
- Zu komplexes Modell – manchmal reicht ein einfaches Signalverarbeitungs-Skript.
Trends im Mai 2026: Was ist gerade angesagt?
Im Frühsommer 2026 dominieren Video-Understanding-Modelle wie VideoPoet und Flux 2 die Schlagzeilen. Gleichzeitig nutzen Fitness-Apps wie Freeletics oder Fitbod zunehmend KI, um Workouts zu analysieren. Dein Projekt passt perfekt in diesen Trend – zeige, dass du die Grundlagen beherrschst, auf denen diese Systeme aufbauen.
Fazit: Dein Weg zur guten Note
Konzentriere dich auf eine klare Dokumentation deiner Iterationen. Beschreibe, warum du bestimmte Features gewählt hast, welche Schwierigkeiten du hattest und wie du sie gelöst hast. Ein kreativer, gut durchdachter Ansatz wird besser bewertet als ein perfektes, aber langweiliges Modell. Viel Erfolg!