Workouts Überwachung mit Ultralytics YOLO11
Überwachung des Trainings durch Posenschätzung mit Ultralytics YOLO11 verbessert die Trainingsbeurteilung durch genaue Verfolgung wichtiger Körperpunkte und Gelenke in Echtzeit. Diese Technologie bietet sofortiges Feedback zur Trainingsform, verfolgt Trainingsroutinen und misst Leistungskennzahlen, um Trainingseinheiten für Benutzer und Trainer gleichermaßen zu optimieren.
Beobachten: Workouts Überwachung mit Ultralytics YOLO11 | Liegestütze, Klimmzüge, Bauchmuskeltraining
Vorteile der Workout-Überwachung
- Optimierte Leistung: Maßgeschneidertes Training auf der Grundlage von Überwachungsdaten für bessere Ergebnisse.
- Erreichen von Zielen: Verfolgen Sie Ihre Fitnessziele und passen Sie sie an, um messbare Fortschritte zu erzielen.
- Personalisierung: Maßgeschneiderte Trainingspläne auf der Grundlage individueller Daten für mehr Effektivität.
- Bewusstsein für die Gesundheit: Frühzeitige Erkennung von Mustern, die auf gesundheitliche Probleme oder Übertraining hinweisen.
- Informierte Entscheidungen: Datengestützte Entscheidungen zur Anpassung von Routinen und zur Festlegung realistischer Ziele.
Anwendungen in der realen Welt
Überwachung der Workouts | Überwachung der Workouts |
---|---|
![]() |
![]() |
PushUps Zählen | PullUps Zählen |
Überwachung von Trainingseinheiten mit Ultralytics YOLO
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 Karte
AIGym
Argumente
Hier ist eine Tabelle mit den AIGym
Argumente:
Argument | Typ | Standard | Beschreibung |
---|---|---|---|
model |
str |
None |
Pfad zur Ultralytics YOLO . |
up_angle |
float |
145.0 |
Winkelschwelle für die "Aufwärts"-Pose. |
down_angle |
float |
90.0 |
Winkelschwellenwert für die "nach unten" gerichtete Haltung. |
kpts |
list[int, int, int] |
[6, 8, 10] |
Liste der Keypoints, die für die Überwachung von Workouts verwendet werden. Diese Keypoints entsprechen Körpergelenken oder -teilen, 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 Verfolgungsalgorithmus an, z. B., bytetrack.yaml oder botsort.yaml . |
conf |
float |
0.3 |
Legt die Konfidenzschwelle für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch zu falsch positiven Ergebnissen führen. |
iou |
float |
0.5 |
Legt den Schwellenwert für die Überschneidung über die Vereinigung (IoU) zum Filtern von überlappenden Erkennungen fest. |
classes |
list |
None |
Filtert die Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen. |
verbose |
bool |
True |
Steuert die Anzeige der Verfolgungsergebnisse und liefert 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 dem Benutzer die Auswahl zwischen CPU, einem bestimmten GPU oder anderen Rechengeräten für die Modellausführung. |
Zusätzlich können die folgenden Visualisierungseinstellungen vorgenommen werden:
Argument | Typ | Standard | Beschreibung |
---|---|---|---|
show |
bool |
False |
Wenn True zeigt die kommentierten Bilder oder Videos in einem Fenster an. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens. |
line_width |
None or int |
None |
Gibt die Linienbreite von Begrenzungsrahmen an. Wenn None wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit. |
FAQ
Wie kann ich mein Training mit Ultralytics YOLO11 überwachen?
Um Ihr Training mit Ultralytics YOLO11 zu überwachen, können Sie die Posenschätzungsfunktionen nutzen, um wichtige Körperpunkte und Gelenke in Echtzeit zu verfolgen und zu analysieren. So erhalten Sie sofortiges Feedback zu Ihrer Trainingsform, können Wiederholungen zählen und Leistungskennzahlen messen. Sie können damit beginnen, indem Sie den mitgelieferten Beispielcode für Liegestütze, Klimmzüge oder Bauchmuskeltraining 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 können Sie den Abschnitt AIGym in der Dokumentation lesen.
Welche Vorteile bietet die Verwendung von Ultralytics YOLO11 für die Trainingsüberwachung?
Die Verwendung von Ultralytics YOLO11 zur Trainingsüberwachung bietet mehrere wichtige Vorteile:
- Optimierte Leistung: Durch die Anpassung des Trainings auf der Grundlage von Überwachungsdaten können Sie bessere Ergebnisse erzielen.
- Erreichen von Zielen: Einfaches Verfolgen und Anpassen von Fitnesszielen für messbare Fortschritte.
- Personalisierung: Erhalten Sie maßgeschneiderte Trainingspläne auf der Grundlage Ihrer individuellen Daten für optimale Effektivität.
- Gesundheitsbewusstsein: Frühzeitige Erkennung von Mustern, die auf mögliche Gesundheitsprobleme oder Übertraining hinweisen.
- Informierte Entscheidungen: Treffen Sie datengestützte Entscheidungen, um Routinen anzupassen und realistische Ziele zu setzen.
In einem YouTube-Video können Sie diese Vorteile in Aktion sehen.
Wie genau ist Ultralytics YOLO11 bei der Erkennung und Verfolgung von Übungen?
Ultralytics YOLO11 ist dank seiner hochmodernen Posenschätzungsfähigkeiten äußerst präzise bei der Erkennung und Verfolgung von Übungen. Es kann die wichtigsten Körpermerkmale und Gelenke genau verfolgen und liefert so Echtzeit-Feedback zu Trainingsform und Leistungsmetriken. Die vortrainierten Gewichte und die robuste Architektur des Modells gewährleisten eine hohe Präzision und Zuverlässigkeit. Beispiele aus der Praxis finden Sie in der Dokumentation unter " Real-world applications", wo Liegestütze und Klimmzüge gezählt werden.
Kann ich Ultralytics YOLO11 für benutzerdefinierte Workout-Routinen verwenden?
Ja, Ultralytics YOLO11 kann für individuelle Workout-Routinen angepasst werden. Die AIGym
Klasse unterstützt verschiedene Posenarten wie pushup
, pullup
und abworkout
. Sie können Eckpunkte 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 Einzelheiten über das Setzen von Argumenten finden Sie in der Argumente AIGym
Abschnitt. Diese Flexibilität ermöglicht es Ihnen, verschiedene Übungen zu überwachen und die Routinen an Ihre Bedürfnisse anzupassen. Fitness-Ziele.
Wie kann ich die Ausgabe der Trainingsüberwachung mit Ultralytics YOLO11 speichern?
Um die Ausgabe der Trainingsüberwachung zu speichern, können Sie den Code so ändern, dass er einen Video-Writer enthält, 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()
Bei dieser Einstellung wird das überwachte Video in eine Ausgabedatei geschrieben, so dass Sie Ihre Trainingsleistung später überprüfen oder sie für zusätzliches Feedback an Trainer weitergeben können.