Ultralytics YOLO27:

Trainingseinheiten überwachen mit Ultralytics YOLO26#

Open Workouts Monitoring In Colab

Die Überwachung von Trainingseinheiten durch Posenschätzung mit Ultralytics YOLO26 verbessert die Trainingsanalyse, indem wichtige Körperlandmarken und Gelenke in Echtzeit präzise verfolgt werden. Diese Technologie liefert sofortiges Feedback zur Übungsausführung, verfolgt Trainingsabläufe und misst Leistungskennzahlen, wodurch Trainingseinheiten für Nutzer und Trainer gleichermaßen optimiert werden.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

Vorteile der Überwachung von Trainingseinheiten#

  • Optimierte Leistung: Trainingseinheiten auf Grundlage der Überwachungsdaten anpassen, um bessere Ergebnisse zu erzielen.
  • Zielerreichung: Fitnessziele verfolgen und anpassen, um messbare Fortschritte zu erzielen.
  • Personalisierung: Individuell angepasste Trainingspläne auf Grundlage persönlicher Daten für eine höhere Wirksamkeit.
  • Gesundheitsbewusstsein: Früherkennung von Mustern, die auf gesundheitliche Probleme oder Übertraining hindeuten.
  • Fundierte Entscheidungen: Datenbasierte Entscheidungen zum Anpassen von Trainingsabläufen und Festlegen realistischer Ziele.

Anwendungen in der Praxis#

Trainingseinheiten überwachenTrainingseinheiten überwachen
YOLO zählt Liegestütze per PosenschätzungYOLO zählt Klimmzüge per Posenschätzung
Liegestütze zählenKlimmzü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, der von drei wichtigen Schlüsselpunkten gebildet wird, während sich ein Körperteil zwischen den Schwellenwerten up_angle und down_angle bewegt. Wähle mit kpts die Schlüsselpunkte für die zu überwachende Übung aus und führe die Lösung anschließend mit der Python-API oder der CLI über dein Video aus.

Trainingseinheiten überwachen mit Ultralytics YOLO
# 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]"

Karte der Schlüsselpunkte#

Diagramm zur Reihenfolge der YOLO-Posenschätzungsschlüsselpunkte

Argumente von AIGym#

Hier ist eine Tabelle mit den Argumenten von AIGym:

ArgumentTypStandardwertBeschreibung
modelstrNonePfad zu einer YOLO-Modell-Datei von Ultralytics.
up_anglefloat145.0Winkelschwellenwert für die „Aufwärts“-Pose.
down_angleint90Winkelschwellenwert für die „Abwärts“-Pose.
kptslist[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 für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskelübungen.
line_widthint2Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte.
verboseboolTrueAktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe.

Die Lösung AIGym unterstützt außerdem eine Reihe von Parametern für die Objektverfolgung:

ArgumentTypStandardwertBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen.
ioufloat0.7Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung.
imgszint or tuple640Ziel-Inferenzbildgröße: eine ganze Zahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formate werden an die Modellschrittweite angepasst.
max_detint300Maximale Anzahl pro Frame beibehaltener Detektionen vor dem Tracking, wodurch die Objekte begrenzt werden, die eine Solution in dichten Szenen verarbeitet.
quantizeint or strNoneInferenzpräzision: 16 (FP16) oder 32/nicht gesetzt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Präzision, die ihr Artefakt und ihre Laufzeit auswählen. Ersetzt das veraltete half-Flag.

Zusätzlich können die folgenden Einstellungen für die Visualisierung angewendet werden:

ArgumentTypStandardwertBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
show_confboolTrueZeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte.

FAQ#

  • Um deine Trainingseinheiten mit Ultralytics YOLO26 zu überwachen, kannst du die Funktionen zur Posenschätzung nutzen, um wichtige Körperlandmarken und Gelenke in Echtzeit zu verfolgen und zu analysieren. So erhältst du sofortiges Feedback zu deiner Übungsausführung, kannst Wiederholungen zählen und Leistungskennzahlen messen. Du kannst zunächst den bereitgestellten Beispielcode für Liegestütze, Klimmzüge oder Bauchmuskelübungen wie folgt verwenden:

    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)
    
    cv2.destroyAllWindows()

    Für weitere Anpassungen und Einstellungen kannst du den Abschnitt AIGym in der Dokumentation konsultieren.

  • Die Verwendung von Ultralytics YOLO26 zur Überwachung von Trainingseinheiten bietet mehrere wichtige Vorteile:

    • Optimierte Leistung: Indem du Trainingseinheiten auf Grundlage der Überwachungsdaten anpasst, kannst du bessere Ergebnisse erzielen.
    • Zielerreichung: Fitnessziele einfach verfolgen und anpassen, um messbare Fortschritte zu erzielen.
    • Personalisierung: Individuell auf deine Daten zugeschnittene Trainingspläne für eine optimale Wirksamkeit erhalten.
    • Gesundheitsbewusstsein: Früherkennung von Mustern, die auf mögliche gesundheitliche Probleme oder Übertraining hindeuten.
    • Fundierte Entscheidungen: Datenbasierte Entscheidungen treffen, um Trainingsabläufe anzupassen und realistische Ziele festzulegen.

    Du kannst dir eine YouTube-Videodemonstration ansehen, um diese Vorteile in der Praxis zu erleben.

  • Ultralytics YOLO26 erkennt und verfolgt Übungen dank seiner hochmodernen Posenschätzungsfunktionen äußerst präzise. Das Modell kann wichtige Körperlandmarken und Gelenke genau verfolgen und liefert Echtzeit-Feedback zur Übungsausführung und zu Leistungskennzahlen. Die vortrainierten Gewichte und die robuste Architektur des Modells gewährleisten eine hohe Präzision und Zuverlässigkeit. Beispiele aus der Praxis findest du im Abschnitt Anwendungen aus der Praxis der Dokumentation, der das Zählen von Liegestützen und Klimmzügen zeigt.

  • Ja, Ultralytics YOLO26 kann an individuelle Trainingsabläufe angepasst werden. Die Klasse AIGym erkennt Übungswiederholungen mithilfe der Argumente up_angle, down_angle und kpts. Du kannst Schlüsselpunkte 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],  # For pushups - can be customized for other exercises
    )

    Weitere Informationen zum Festlegen von Argumenten findest du im Abschnitt Argumente AIGym. Diese Flexibilität ermöglicht es dir, verschiedene Übungen zu überwachen und Trainingsabläufe auf Grundlage deiner Fitnessziele anzupassen.

  • Um die Ausgabe der Trainingsüberwachung zu speichern, kannst du den Code so ändern, dass ein Videowriter die verarbeiteten Einzelbilder 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()

    Diese Einrichtung schreibt das überwachte Video in eine Ausgabedatei. So kannst du deine Trainingsleistung später überprüfen oder das Video zur zusätzlichen Rückmeldung mit Trainern teilen.

Kommentare