Surveillance des entraînements à l'aide d'Ultralytics YOLO11
La surveillance des séances d'entraînement grâce à l'estimation de pose avec Ultralytics YOLO11 améliore l'évaluation des exercices en suivant avec précision les principaux points de repère et articulations du corps en temps réel. Cette technologie fournit un retour d'information instantané sur la forme de l'exercice, suit les routines d'entraînement et mesure les métriques de performance, optimisant ainsi les séances d'entraînement pour les utilisateurs et les entraîneurs.
Regarder : Comment surveiller les exercices d'entraînement avec Ultralytics YOLO | Squats, extension de jambes, pompes et plus
Avantages de la surveillance des entraînements
- Performances optimisées : Adapter les entraînements en fonction des données de surveillance pour de meilleurs résultats.
- Atteinte des objectifs : Suivez et ajustez les objectifs de remise en forme pour des progrès mesurables.
- Personnalisation : Plans d'entraînement personnalisés basés sur des données individuelles pour une efficacité accrue.
- Sensibilisation à la santé : Détection précoce des schémas indiquant des problèmes de santé ou un surentraînement.
- Décisions éclairées : Des décisions fondées sur des données pour ajuster les routines et fixer des objectifs réalistes.
Applications concrètes
Surveillance des entraînements | Surveillance des entraînements |
---|---|
![]() |
![]() |
Comptage de pompes | Comptage de tractions |
Surveillance des entraînements à l'aide d'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
Carte des PointsClés
AIGym
Arguments
Voici un tableau avec les AIGym
arguments :
Argument | Type | Par défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier de modèle Ultralytics YOLO. |
up_angle |
float |
145.0 |
Seuil d'angle pour la pose 'haute'. |
down_angle |
float |
90.0 |
Seuil d'angle pour la pose 'basse'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Liste des points clés utilisés pour surveiller les entraînements. Ces points clés correspondent aux articulations ou parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices comme les pompes, les tractions, les squats, les exercices abdominaux. |
L'argument AIGym
la solution prend également en charge une gamme de paramètres de suivi d'objets :
Argument | Type | Par 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 basses permettent de suivre plus d'objets, mais peuvent inclure de faux positifs. |
iou |
float |
0.5 |
Définit le seuil Intersection sur Union (IoU) pour filtrer les détections qui se chevauchent. |
classes |
list |
None |
Filtre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées. |
verbose |
bool |
True |
Contrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis. |
device |
str |
None |
Spécifie le périphérique pour l'inférence (par exemple, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle. |
De plus, les paramètres de visualisation suivants peuvent être appliqués :
Argument | Type | Par défaut | Description |
---|---|---|---|
show |
bool |
False |
Si True , affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour 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 englobantes. Si None , la largeur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté. |
show_conf |
bool |
True |
Affiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection. |
show_labels |
bool |
True |
Affiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des objets détectés. |
FAQ
Comment surveiller mes entraînements à l’aide d’Ultralytics YOLO11 ?
Pour surveiller vos séances d'entraînement à l'aide d'Ultralytics YOLO11, vous pouvez utiliser les capacités d'estimation de pose pour suivre et analyser les principaux points de repère et articulations du corps en temps réel. Cela vous permet de recevoir un retour d'information instantané sur votre forme physique, de compter les répétitions et de mesurer les indicateurs de performance. Vous pouvez commencer par utiliser l'exemple de code fourni pour les pompes, les tractions ou les exercices 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 paramètres, vous pouvez vous référer à la section AIGym de la documentation.
Quels sont les avantages de l'utilisation d'Ultralytics YOLO11 pour la surveillance des entraînements ?
L'utilisation d'Ultralytics YOLO11 pour la surveillance des entraînements offre plusieurs avantages clés :
- Performances optimisées : En adaptant les entraînements en fonction des données de surveillance, vous pouvez obtenir de meilleurs résultats.
- Atteinte des objectifs : Suivez et ajustez facilement les 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 des schémas qui indiquent des problèmes de santé potentiels ou un surentraînement.
- Décisions éclairées : Prenez des décisions fondées sur des données pour ajuster les routines et 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 d'Ultralytics YOLO11 dans la détection et le suivi d'exercices ?
Ultralytics YOLO11 est très précis dans la détection et le suivi des exercices en raison de ses capacités d’estimation de pose de pointe. Il peut suivre avec précision les principaux points de repère et articulations du corps, fournissant une rétroaction 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 assurent une grande précision et une grande fiabilité. Pour des exemples concrets, consultez la section applications concrètes de la documentation, qui présente des exemples de comptage de pompes et de tractions.
Puis-je utiliser Ultralytics YOLO11 pour des routines d'entraînement personnalisées ?
Oui, Ultralytics YOLO11 peut être adapté pour des routines d'entraînement personnalisées. Le 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, consultez Arguments AIGym
section. Cette flexibilité vous permet de surveiller divers exercices et de personnaliser les routines en fonction de vos objectifs de fitness.
Comment puis-je enregistrer la sortie de surveillance d'entraînement en utilisant Ultralytics YOLO11 ?
Pour enregistrer la sortie de surveillance de l'entraînement, vous pouvez modifier le code pour inclure un enregistreur vidéo qui sauvegarde les trames 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 écrit la vidéo surveillée dans un fichier de sortie, ce qui vous permet de revoir vos performances d'entraînement ultérieurement ou de les partager avec des entraîneurs pour obtenir des commentaires supplémentaires.