Skip to content

Suivi des séances d'entraînement à l'aide de Ultralytics YOLO11

Surveillance des séances d'entraînement ouvertes à Colab

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
Comptage des pompes Comptage des tractions

Suivi des séances d'entraînement avec 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 KeyPoints

keyPoints Order Ultralytics YOLO11  Pose

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 Trueaffiche 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 NoneLa 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, pullupet 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.

📅C réé il y a 1 an ✏️ Mis à jour il y a 6 jours

Commentaires