Suivi des séances d'entraînement à l'aide de Ultralytics YOLO11
Le suivi des séances d'entraînement grâce à l'estimation de la pose avec Ultralytics YOLO11 améliore l'évaluation des exercices en suivant avec précision et en temps réel les principaux repères corporels et les articulations. Cette technologie fournit un retour d'information instantané sur la forme de l'exercice, assure le suivi des programmes d'entraînement et mesure les performances, optimisant ainsi les séances d'entraînement pour les utilisateurs comme pour les entraîneurs.
Regarder : Suivi des séances d'entraînement à l'aide de Ultralytics YOLO11 | Pompes, tractions, séances d'entraînement pour abdominaux
Avantages du suivi des séances d'entraînement
- Performances optimisées : Adaptation des séances d'entraînement en fonction des données de suivi pour de meilleurs résultats.
- Atteinte des objectifs : Suivre et ajuster les objectifs de remise en forme pour obtenir des progrès mesurables.
- Personnalisation : Des plans d'entraînement personnalisés basés sur des données individuelles pour plus d'efficacité.
- Sensibilisation à la santé : Détection précoce de schémas indiquant des problèmes de santé ou de surentraînement.
- Des décisions éclairées : Des décisions fondées sur des données pour ajuster les routines et fixer des objectifs réalistes.
Applications dans le monde réel
Suivi des séances d'entraînement | Suivi des séances d'entraînement |
---|---|
![]() |
![]() |
Comptage des pompes | Comptage des tractions |
Suivi des séances d'entraînement avec 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
Carte KeyPoints
AIGym
Arguments
Voici un tableau avec les AIGym
arguments :
Argument | Type | Défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier modèleYOLO d'Ultralytics . |
up_angle |
float |
145.0 |
Seuil d'angle pour la pose "debout". |
down_angle |
float |
90.0 |
Seuil d'angle pour la pose "en bas". |
kpts |
list[int, int, int] |
[6, 8, 10] |
Liste des points clés utilisés pour le suivi des séances d'entraînement. Ces points clés correspondent à des articulations ou des parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices tels que les pompes, les tractions, les squats et les séances d'abdominaux. |
Le AIGym
prend également en charge une série de paramètres de suivi des objets :
Argument | Type | Défaut | Description |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Définit le seuil de confiance pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets mais peuvent inclure des faux positifs. |
iou |
float |
0.5 |
Définit le seuil d'intersection sur l'union (IoU) pour le filtrage des détections qui se chevauchent. |
classes |
list |
None |
Filtre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
verbose |
bool |
True |
Contrôle l'affichage des résultats du suivi, fournissant une sortie visuelle des objets suivis. |
device |
str |
None |
Spécifie le dispositif d'inférence (par ex, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle. |
En outre, les paramètres de visualisation suivants peuvent être appliqués :
Argument | Type | Défaut | Description |
---|---|---|---|
show |
bool |
False |
Si True affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour d'information visuel immédiat pendant le développement ou les tests. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes de délimitation. Si les None La largeur de la ligne est automatiquement ajustée en fonction de la taille de l'image. Permet une personnalisation visuelle pour plus de clarté. |
FAQ
Comment puis-je suivre mes séances d'entraînement à l'aide de Ultralytics YOLO11 ?
Pour suivre vos séances d'entraînement avec Ultralytics YOLO11, vous pouvez utiliser les capacités d'estimation de la pose pour suivre et analyser les principaux points de repère du corps et les articulations en temps réel. Cela vous permet de recevoir un retour instantané sur votre forme d'exercice, de compter les répétitions et de mesurer les performances. Vous pouvez commencer par utiliser le code d'exemple fourni pour les pompes, les tractions ou les exercices d'abdominaux, comme indiqué :
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()
Pour plus de personnalisation et de réglages, vous pouvez vous référer à la section AIGym dans la documentation.
Quels sont les avantages de l'utilisation de Ultralytics YOLO11 pour le suivi de l'entraînement ?
L'utilisation de Ultralytics YOLO11 pour le suivi de l'entraînement présente plusieurs avantages :
- Performances optimisées : En adaptant les séances d'entraînement en fonction des données de suivi, vous pouvez obtenir de meilleurs résultats.
- Atteinte des objectifs : Suivez et ajustez facilement vos objectifs de remise en forme pour des progrès mesurables.
- Personnalisation : Obtenez des plans d'entraînement personnalisés basés sur vos données individuelles pour une efficacité optimale.
- Sensibilisation à la santé : Détection précoce de schémas indiquant des problèmes de santé potentiels ou un surentraînement.
- Des décisions éclairées : Prendre des décisions fondées sur des données afin d'ajuster les routines et de fixer des objectifs réalistes.
Vous pouvez regarder une démonstration vidéo sur YouTube pour voir ces avantages en action.
Quelle est la précision de Ultralytics YOLO11 dans la détection et le suivi des exercices ?
Ultralytics YOLO11 est très précis dans la détection et le suivi des exercices grâce à ses capacités d'estimation de la pose à la pointe de la technologie. Il peut suivre avec précision les principaux points de repère du corps et les articulations, fournissant un retour d'information en temps réel sur la forme de l'exercice et les mesures de performance. Les poids pré-entraînés du modèle et son architecture robuste garantissent une précision et une fiabilité élevées. Pour des exemples concrets, consultez la section " Applications concrètes" de la documentation, qui présente le comptage des pompes et des tractions.
Puis-je utiliser Ultralytics YOLO11 pour des programmes d'entraînement personnalisés ?
Oui, Ultralytics YOLO11 peut être adapté à des programmes d'entraînement personnalisés. Les AIGym
La classe prend en charge différents types de pose tels que pushup
, pullup
et abworkout
. Vous pouvez spécifier des points clés et des angles pour détecter des exercices spécifiques. Voici un exemple de configuration :
from ultralytics import solutions
gym = solutions.AIGym(
line_width=2,
show=True,
kpts=[6, 8, 10], # For pushups - can be customized for other exercises
)
Pour plus de détails sur la définition des arguments, voir la section Arguments AIGym
section. Cette flexibilité vous permet de contrôler différents exercices et de personnaliser les routines en fonction de vos besoins. objectifs de remise en forme.
Comment puis-je sauvegarder la sortie du suivi de la séance d'entraînement en utilisant Ultralytics YOLO11 ?
Pour enregistrer la sortie de la surveillance de la séance d'entraînement, vous pouvez modifier le code afin d'inclure un graveur vidéo qui enregistre les images traitées. Voici un exemple :
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()
Cette configuration enregistre la vidéo surveillée dans un fichier de sortie, ce qui vous permet de revoir votre performance d'entraînement plus tard ou de la partager avec des entraîneurs pour obtenir un retour d'information supplémentaire.