Trainingsüberwachung mit Ultralytics YOLO26#
Die Überwachung von Trainingseinheiten mithilfe der Posenschätzung mit Ultralytics YOLO26 verbessert die Trainingsanalyse, indem wichtige Körperpunkte und Gelenke präzise in Echtzeit verfolgt werden. Diese Technologie gibt sofortiges Feedback zur Trainingsausführung, verfolgt Trainingsabläufe und misst Leistungskennzahlen. So optimiert sie die Trainingseinheiten für Trainierende und Trainer gleichermaßen.
Ansehen: So überwachst du Trainingsübungen mit Ultralytics YOLO | Kniebeugen, Beinstrecken, Liegestütze und mehr
Vorteile der Trainingsüberwachung#
- Leistungsoptimierung: Trainingseinheiten anhand von Überwachungsdaten anpassen, um bessere Ergebnisse zu erzielen.
- Ziele erreichen: Fitnessziele verfolgen und anpassen, um messbare Fortschritte zu erzielen.
- Personalisierung: Individuell angepasste Trainingspläne auf Grundlage persönlicher Daten für mehr Effektivität.
- Gesundheitsbewusstsein: Muster, die auf gesundheitliche Probleme oder Übertraining hindeuten, frühzeitig erkennen.
- Fundierte Entscheidungen: Datenbasierte Entscheidungen zur Anpassung von Trainingsabläufen und Festlegung realistischer Ziele treffen.
Anwendungen in der Praxis#
| Trainingsüberwachung | Trainingsüberwachung |
|---|---|
![]() | ![]() |
| Liegestütze zählen | Klimmzüge zählen |
Trainingseinheiten mit YOLO26 überwachen#
Die Lösung AIGym führt eine Posenschätzung durch und zählt Wiederholungen, indem sie den Winkel misst, den drei wichtige Keypoints bilden, während sich ein Gliedmaß zwischen den Schwellenwerten up_angle und down_angle bewegt. Wähle mit kpts die Keypoints für die Übung aus, die du verfolgen möchtest, und führe die Lösung anschließend mit der Python-API oder der CLI über dein Video aus.
# Run a workout example
yolo solutions workout show=True
# Pass a source video
yolo solutions workout source="path/to/video.mp4"
# Use keypoints for pushups
yolo solutions workout kpts="[6, 8, 10]"Keypoint-Übersicht#

Argumente für AIGym#
Hier ist eine Tabelle mit den Argumenten für AIGym:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics-YOLO-Modelldatei. |
up_angle | float | 145.0 | Winkelschwellenwert für die „obere“ Pose. |
down_angle | float | 90.0 | Winkelschwellenwert für die „untere“ Pose. |
kpts | list[int] | [6, 8, 10] | Liste mit drei Keypoint-Indizes zur Überwachung von Trainingseinheiten. Diese Keypoints entsprechen Körpergelenken oder -teilen wie Schultern, Ellbogen und Handgelenken und werden für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskeltraining verwendet. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden. |
verbose | bool | True | Aktiviert das Protokoll der Lösung für jedes Bild, das Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit enthält. Der Tracking-Aufruf selbst gibt grundsätzlich keine Meldungen aus. |
Die Lösung AIGym unterstützt außerdem eine Reihe von Parametern zur Objektverfolgung:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Legt den zu verwendenden Verfolgungsalgorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen. |
iou | float | 0.7 | Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern. |
classes | list | None | Filtert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Legt das Gerät für die Inferenz fest (z. B. cpu, cuda:0 oder 0). So kannst du für die Modellausführung zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten wählen. |
imgsz | int or tuple | 640 | Zielbildgröße für die Inferenz: eine Ganzzahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formen werden an den Modellschritt angepasst. |
max_det | int | 300 | Maximale Anzahl der Erkennungen, die pro Bild vor der Verfolgung beibehalten werden. Dadurch wird die Anzahl der Objekte begrenzt, die eine Lösung in dichten Szenen verarbeitet. |
quantize | int or str | None | Inferenzpräzision: 16 (FP16) oder 32/unset (FP32) für PyTorch- und TorchScript-Modelle außerhalb der CPU; andere Formate verwenden die Präzision, die ihr Artefakt und ihre Laufzeitumgebung vorgeben. Ersetzt das veraltete Argument half. |
Zusätzlich lassen sich die folgenden Visualisierungseinstellungen anwenden:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True aktiviert ist, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder beim Testen. |
show_labels | bool | True | Zeigt für jede Erkennung eine Bezeichnung in der visuellen Ausgabe an. So lassen sich erkannte Objekte sofort erkennen. |
Häufig gestellte Fragen#
Um deine Trainingseinheiten mit Ultralytics YOLO26 zu überwachen, kannst du die Möglichkeiten der Posenschätzung nutzen, um wichtige Körperpunkte und Gelenke in Echtzeit zu verfolgen und zu analysieren. So erhältst du sofortiges Feedback zur Ausführung deiner Übungen, kannst Wiederholungen zählen und Leistungskennzahlen messen. Beginne mit dem bereitgestellten Beispielcode für Liegestütze, Klimmzüge oder Bauchmuskelübungen:
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], ) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = gym(im0) cap.release() cv2.destroyAllWindows()Weitere Anpassungsmöglichkeiten und Einstellungen findest du im Dokumentationsabschnitt AIGym.
Die Trainingsüberwachung mit Ultralytics YOLO26 bietet mehrere wichtige Vorteile:
- Leistungsoptimierung: Wenn du Trainingseinheiten anhand von Überwachungsdaten anpasst, kannst du bessere Ergebnisse erzielen.
- Ziele erreichen: Verfolge und passe Fitnessziele ganz einfach an, um messbare Fortschritte zu erzielen.
- Personalisierung: Erhalte individuell auf deine Daten abgestimmte Trainingspläne für optimale Ergebnisse.
- Gesundheitsbewusstsein: Erkenne frühzeitig Muster, die auf mögliche gesundheitliche Probleme oder Übertraining hindeuten.
- Fundierte Entscheidungen: Triff datengestützte Entscheidungen, um Trainingsabläufe anzupassen und realistische Ziele festzulegen.
In einer YouTube-Videodemonstration kannst du dir diese Vorteile in der Praxis ansehen.
Ultralytics YOLO26 erkennt und verfolgt Übungen dank seiner hochmodernen Möglichkeiten zur Posenschätzung mit hoher Genauigkeit. Das Modell kann wichtige Körperpunkte und Gelenke präzise verfolgen und so Echtzeit-Feedback zur Ausführung der Übungen und zu Leistungskennzahlen liefern. Die vortrainierten Gewichte und die robuste Architektur des Modells sorgen für hohe Präzision und Zuverlässigkeit. Beispiele aus der Praxis findest du im Dokumentationsabschnitt zu den Anwendungen in der Praxis, in dem das Zählen von Liegestützen und Klimmzügen gezeigt wird.
Ja, Ultralytics YOLO26 lässt sich an individuelle Trainingsabläufe anpassen. Die Klasse
AIGymerkennt Übungswiederholungen mithilfe der Argumenteup_angle,down_angleundkpts. Du kannst Keypoints und Winkel angeben, um bestimmte Übungen zu erkennen. Hier ist ein Beispiel für die Einrichtung:from ultralytics import solutions gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], # Für Liegestütze – kann für andere Übungen angepasst werden )Weitere Informationen zum Festlegen von Argumenten findest du im Abschnitt Argumente
AIGym. Dank dieser Flexibilität kannst du verschiedene Übungen überwachen und Trainingsabläufe an deine Fitnessziele anpassen.Um die Ausgabe der Trainingsüberwachung zu speichern, kannst du den Code um einen Videoschreiber ergänzen, der die verarbeiteten Bilder speichert. Hier ist ein Beispiel:
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("workouts.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], ) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = gym(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows()Mit dieser Einrichtung wird das überwachte Video in eine Ausgabedatei geschrieben. So kannst du später deine Trainingsleistung überprüfen oder das Video mit Trainern teilen, um weiteres Feedback zu erhalten.

