Zum Inhalt springen

Trainingsüberwachung mit Ultralytics YOLO11

Open Workouts Monitoring In Colab

Die Überwachung von Workouts durch Pose-Schätzung mit Ultralytics YOLO11 verbessert die Trainingsbeurteilung, indem wichtige Körpermerkmale und Gelenke in Echtzeit präzise verfolgt werden. Diese Technologie bietet sofortiges Feedback zur Trainingsform, verfolgt Trainingsroutinen und misst Leistungskennzahlen, wodurch Trainingseinheiten für Benutzer 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überwachung Trainingsüberwachung
Liegestütze zählen Klimmzüge zählen
Liegestütze zählen Klimmzü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="yolo11n-pose.pt",  # path to the YOLO11 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

keyPoints Order Ultralytics YOLO11 Pose

AIGym Argumente

Hier ist eine Tabelle mit den AIGym Argumente:

Argument Typ Standard Beschreibung
model str None Pfad zur Ultralytics YOLO Modelldatei.
up_angle float 145.0 Winkelgrenzwert für die 'Aufwärts'-Pose.
down_angle float 90.0 Winkelgrenzwert für die 'Abwärts'-Pose.
kpts list[int, int, int] '[6, 8, 10]' Liste der Schlüsselpunkte, die zur Überwachung von Trainingseinheiten verwendet werden. Diese Schlüsselpunkte entsprechen Körpergelenken oder -teilen, wie z. B. Schultern, Ellbogen und Handgelenken, für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskeltraining.

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

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
iou float 0.5 Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen fest.
classes list None Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
device str None Gibt 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:

Argument Typ Standard Beschreibung
show bool False Wenn 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_width None or int None Gibt 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_conf bool True Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labels bool True Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

FAQ

Wie überwache ich meine Trainingseinheiten mit Ultralytics YOLO11?

Um Ihre Workouts mit Ultralytics YOLO11 zu überwachen, können Sie die Funktionen zur Posenschätzung nutzen, um wichtige Körpermerkmale und Gelenke in Echtzeit zu verfolgen und zu analysieren. Dies ermöglicht es Ihnen, sofortiges Feedback zu Ihrer Übungsform zu erhalten, Wiederholungen zu zählen und Leistungskennzahlen zu messen. Sie können mit dem bereitgestellten Beispielcode für Liegestütze, Klimmzüge oder Bauchmuskeltrainings 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 YOLO11 für die Trainingsüberwachung?

Die Verwendung von Ultralytics YOLO11 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: Verfolgen und passen Sie Ihre Fitnessziele einfach an, um messbare Fortschritte zu erzielen.
  • 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 YOLO11 bei der Erkennung und Verfolgung von Übungen?

Ultralytics YOLO11 ist aufgrund seiner hochmodernen Pose-Schätzungs-Fähigkeiten sehr genau bei der Erkennung und Verfolgung von Übungen. Es kann wichtige Körpermerkmale und Gelenke genau verfolgen und bietet Echtzeit-Feedback zu Trainingsform und Leistungskennzahlen. Die vortrainierten Gewichte und die robuste Architektur des Modells gewährleisten hohe Präzision und Zuverlässigkeit. Für Beispiele aus der realen Welt, sehen Sie sich den Abschnitt Anwendungen in der realen Welt in der Dokumentation an, der das Zählen von Liegestützen und Klimmzügen zeigt.

Kann ich Ultralytics YOLO11 für benutzerdefinierte Trainingsroutinen verwenden?

Ja, Ultralytics YOLO11 kann an benutzerdefinierte Trainingsroutinen angepasst werden. Die AIGym Klasse unterstützt verschiedene Posentypen wie pushup, pullupund abworkout. Sie können Keypoints und Winkel festlegen, 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 Trainingsüberwachungsausgabe mit Ultralytics YOLO11 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 1 Jahr ✏️ Aktualisiert vor 2 Monaten

Kommentare