Passer au contenu

Surveillance des entraînements à l'aide d'Ultralytics YOLO11

Ouvrir le suivi des entraînements dans Colab

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
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

Ordre des PointsClés Ultralytics YOLO11 Pose

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.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 2 mois

Commentaires