Zum Inhalt springen

Workouts-Monitoring mit Ultralytics YOLO26

Open Workouts Monitoring In Colab

Die Überwachung von Trainingseinheiten mittels Pose-Schätzung mit Ultralytics YOLO26 verbessert die Trainingsbewertung durch präzises Echtzeit-Tracking wichtiger Körpermerkmale und Gelenke. Diese Technologie liefert sofortiges Feedback zur Übungsausführung, verfolgt Trainingsroutinen und misst Leistungsmetriken, wodurch Trainingseinheiten für Nutzer und Trainer gleichermaßen optimiert werden.



Ansehen: Wie man Trainingsübungen mit Ultralytics YOLO überwacht | Kniebeugen, Beinstrecken, Liegestütze und mehr

Vorteile der Trainingsüberwachung

  • Optimierte Leistung: Anpassung des Trainings basierend auf Überwachungsdaten für bessere Ergebnisse.
  • Zielerreichung: Verfolgen und passen Sie Ihre Fitnessziele an, um messbare Fortschritte zu erzielen.
  • Personalisierung: Maßgeschneiderte Trainingspläne basierend auf individuellen Daten für mehr Effektivität.
  • Gesundheitsüberwachung: Früherkennung von Mustern, die auf Gesundheitsprobleme oder Übertraining hinweisen.
  • Fundierte Entscheidungen: Datengesteuerte Entscheidungen zur Anpassung von Routinen und zur Festlegung realistischer Ziele.

Anwendungen in der realen Welt

TrainingsüberwachungTrainingsüberwachung
YOLO zählen mit PosenschätzungYOLO zählen mit Posenschätzung
Liegestütze zählenKlimmzüge zählen

Trainingsüberwachung 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]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init AIGym
gym = solutions.AIGym(
    show=True,  # display the frame
    kpts=[6, 8, 10],  # keypoints for monitoring specific exercise, by default it's for pushup
    model="yolo26n-pose.pt",  # path to the YOLO26 pose estimation model file
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = gym(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

KeyPoints Map

YOLO -Schätzung – Diagramm zur Reihenfolge der Schlüsselpunkte

AIGym Argumente

Hier ist eine Tabelle mit den AIGym Argumente:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO Modelldatei.
up_anglefloat145.0Winkelgrenzwert für die 'Aufwärts'-Pose.
down_anglefloat90.0Winkelgrenzwert für die 'Abwärts'-Pose.
kptslist[int]'[6, 8, 10]'Liste von drei Schlüsselpunktindizes, die zur Überwachung von Trainingseinheiten verwendet werden. Diese Schlüsselpunkte entsprechen Körpergelenken oder -teilen, wie Schultern, Ellbogen und Handgelenken, für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskelübungen.

Die AIGym Lösung unterstützt auch eine Reihe von Objektverfolgungsparametern:

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.1Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
ioufloat0.7Legt den Intersection over Union (IoU)-Schwellenwert für das Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen.

Zusätzlich können die folgenden Visualisierungseinstellungen angewendet werden:

ArgumentTypStandardBeschreibung
showboolFalseWenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_widthint or NoneNoneGibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

FAQ

Wie überwache ich meine Workouts mit Ultralytics YOLO26?

Um Ihre Trainingseinheiten mit Ultralytics YOLO26 zu überwachen, können Sie die Pose-Schätzungsfunktionen nutzen, um wichtige Körpermerkmale und Gelenke in Echtzeit zu verfolgen und zu analysieren. Dies ermöglicht Ihnen, sofortiges Feedback zu Ihrer Übungsausführung zu erhalten, Wiederholungen zu zählen und Leistungsmetriken zu messen. Sie können mit dem bereitgestellten Beispielcode für Liegestütze, Klimmzüge oder Bauchmuskelübungen beginnen, wie gezeigt:

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()

Weitere Anpassungen und Einstellungen finden Sie im Abschnitt AIGym in der Dokumentation.

Welche Vorteile bietet die Verwendung von Ultralytics YOLO26 für das Workout-Monitoring?

Die Verwendung von Ultralytics YOLO26 zur Trainingsüberwachung bietet mehrere entscheidende Vorteile:

  • Optimierte Leistung: Durch die Anpassung des Trainings auf der Grundlage von Überwachungsdaten können Sie bessere Ergebnisse erzielen.
  • Zielerreichung: Fitnessziele einfach track und anpassen für messbaren Fortschritt.
  • Personalisierung: Erhalten Sie maßgeschneiderte Trainingspläne, die auf Ihren individuellen Daten basieren, um eine optimale Effektivität zu erzielen.
  • Gesundheitsüberwachung: Früherkennung von Mustern, die auf potenzielle Gesundheitsprobleme oder Übertraining hinweisen.
  • Fundierte Entscheidungen: Treffen Sie datengestützte Entscheidungen, um Routinen anzupassen und realistische Ziele zu setzen.

Sie können sich eine YouTube-Videodemonstration ansehen, um diese Vorteile in Aktion zu sehen.

Wie genau ist Ultralytics YOLO26 beim detect und track von Übungen?

Ultralytics YOLO26 ist äußerst präzise beim detect und track von Übungen dank seiner hochmodernen Pose-Schätzungsfunktionen. Es kann wichtige Körpermerkmale und Gelenke präzise track und liefert Echtzeit-Feedback zur Übungsausführung und zu Leistungsmetriken. Die vortrainierten Gewichte und die robuste Architektur des Modells gewährleisten eine hohe precision und Zuverlässigkeit. Für Praxisbeispiele siehe den Abschnitt Praktische Anwendungen in der Dokumentation, der das Zählen von Liegestützen und Klimmzügen demonstriert.

Kann ich Ultralytics YOLO26 für benutzerdefinierte Trainingsroutinen verwenden?

Ja, Ultralytics YOLO26 kann an benutzerdefinierte Trainingsroutinen angepasst werden. Die AIGym Klasse unterstützt verschiedene Posentypen wie pushup, pullupund abworkout. Sie können 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],  # For pushups - can be customized for other exercises
)

Weitere Informationen zum Festlegen von Argumenten finden Sie im Argumente AIGym Abschnitt. Diese Flexibilität ermöglicht es Ihnen, verschiedene Übungen zu überwachen und Routinen basierend auf Ihren Fitnessziele.

Wie kann ich die Ausgabe der Trainingsüberwachung mit Ultralytics YOLO26 speichern?

Um die Trainingsüberwachungsausgabe zu speichern, können Sie den Code so ändern, dass er einen Video-Writer enthält, der die verarbeiteten Frames 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()

Dieses Setup schreibt das überwachte Video in eine Ausgabedatei, sodass Sie Ihre Trainingsleistung später überprüfen oder mit Trainern teilen können, um zusätzliches Feedback zu erhalten.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 7 Tagen
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoyceUltralyticsAssistantambitious-octopusIvorZhu331

Kommentare