Ultralytics YOLO27 :

Surveillance des entraînements avec Ultralytics YOLO26#

Open Workouts Monitoring In Colab

La surveillance des entraînements par estimation de pose avec Ultralytics YOLO26 améliore l’évaluation des exercices en suivant avec précision les points de repère et les articulations clés du corps en temps réel. Cette technologie fournit un feedback instantané sur la posture pendant les exercices, suit les routines d’entraînement et mesure les indicateurs de performance, optimisant ainsi les séances pour les utilisateurs comme pour les entraîneurs.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

Avantages de la surveillance des entraînements#

  • Performance optimisée : Adapter les entraînements en fonction des données de surveillance pour obtenir de meilleurs résultats.
  • Atteinte des objectifs : Suivre et ajuster les objectifs de remise en forme pour mesurer les progrès.
  • Personnalisation : Créer des plans d’entraînement personnalisés à partir des données individuelles pour gagner en efficacité.
  • Sensibilisation à la santé : Détecter rapidement les tendances indiquant des problèmes de santé ou un surentraînement.
  • Décisions éclairées : Prendre des décisions fondées sur les données pour ajuster les routines et définir des objectifs réalistes.

Applications concrètes#

Surveillance des entraînementsSurveillance des entraînements
Comptage des pompes avec YOLO par estimation de poseComptage des tractions avec YOLO par estimation de pose
Comptage des pompesComptage des tractions

Surveiller les entraînements avec YOLO26#

La solution AIGym exécute une estimation de pose et compte les répétitions en mesurant l’angle formé par trois points clés lorsqu’un membre se déplace entre les seuils up_angle et down_angle. Sélectionne les points clés de l’exercice que tu veux suivre avec kpts, puis exécute la solution sur ta vidéo avec l’API Python ou la CLI.

Surveillance des entraînements 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]"

Carte des points clés#

Diagramme de l’ordre des points clés pour l’estimation de pose avec YOLO

Arguments de AIGym#

Voici un tableau présentant les arguments de AIGym :

ArgumentTypeValeur par défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.
up_anglefloat145.0Seuil d'angle pour la pose « vers le haut ».
down_angleint90Seuil d'angle pour la pose « vers le bas ».
kptslist[int]'[6, 8, 10]'Liste de trois indices de points clés utilisés pour le suivi des séances d'entraînement. Ces points clés correspondent à des articulations ou parties du corps, comme les épaules, les coudes et les poignets, pour des exercices tels que les pompes, les tractions, les squats et les exercices abdominaux.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des comptages dessinés par la solution.
verboseboolTrueActive le journal par image de la solution, qui indique la forme d'entrée, les comptages par classe et la vitesse de traitement. L'appel de suivi lui-même est toujours silencieux.

La solution AIGym prend également en charge différents paramètres de suivi des objets :

ArgumentTypeValeur par défautDescription
trackerstr'botsort.yaml'Indique l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Définit le seuil de confiance des détections ; des valeurs plus faibles permettent de suivre davantage d'objets, mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil d'intersection sur union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
devicestrNoneIndique le périphérique utilisé pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle.
imgszint or tuple640Taille de l'image d'inférence cible : un entier pour un carré ou une paire (height, width). Les formes sont ajustées au pas du modèle.
max_detint300Nombre maximal de détections conservées par image avant le suivi, ce qui limite les objets traités par une solution dans les scènes denses.
quantizeint or strNonePrécision de l'inférence : 16 (FP16) ou 32/non définie (FP32) pour les modèles PyTorch et TorchScript ; les autres formats s'exécutent à la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'indicateur déprécié half.

De plus, les paramètres de visualisation suivants peuvent être appliqués :

ArgumentTypeValeur par défautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour obtenir un retour visuel immédiat pendant le développement ou les tests.
show_confboolTrueAffiche le score de confiance de chaque détection à côté de son étiquette. Donne un aperçu du degré de certitude du modèle pour chaque détection.
show_labelsboolTrueAffiche les étiquettes de chaque détection dans la sortie visuelle. Permet d’identifier immédiatement les objets détectés.

FAQ#

  • Pour surveiller tes entraînements avec Ultralytics YOLO26, tu peux utiliser les capacités d’estimation de pose afin de suivre et d’analyser les points de repère et les articulations clés du corps en temps réel. Cela te permet de recevoir un feedback instantané sur ta posture pendant les exercices, de compter les répétitions et de mesurer les indicateurs de performance. Tu peux commencer par utiliser le code d’exemple fourni pour les pompes, les tractions ou les exercices abdominaux, comme indiqué ci-dessous :

    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 possibilités de personnalisation et de réglages, consulte la section AIGym de la documentation.

  • L’utilisation d’Ultralytics YOLO26 pour surveiller les entraînements offre plusieurs avantages clés :

    • Performance optimisée : En adaptant les entraînements en fonction des données de surveillance, tu peux obtenir de meilleurs résultats.
    • Atteinte des objectifs : Suis et ajuste facilement tes objectifs de remise en forme pour mesurer tes progrès.
    • Personnalisation : Obtiens des plans d’entraînement personnalisés à partir de tes données individuelles pour une efficacité optimale.
    • Sensibilisation à la santé : Détecte rapidement les tendances indiquant d’éventuels problèmes de santé ou un surentraînement.
    • Décisions éclairées : Prends des décisions fondées sur les données pour ajuster tes routines et définir des objectifs réalistes.

    Tu peux regarder une démonstration vidéo sur YouTube pour voir ces avantages en pratique.

  • Ultralytics YOLO26 est très précis pour détecter et suivre les exercices grâce à ses capacités de pointe d’estimation de pose. Il peut suivre avec précision les points de repère et les articulations clés du corps, en fournissant un feedback en temps réel sur la posture pendant les exercices et les indicateurs 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 voir des exemples concrets, consulte la section applications concrètes de la documentation, qui présente le comptage des pompes et des tractions.

  • Oui, Ultralytics YOLO26 peut être adapté à des routines d’entraînement personnalisées. La classe AIGym détecte les répétitions d’exercices à l’aide des arguments up_angle, down_angle et kpts. Tu peux 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, consulte la section Arguments AIGym. Cette flexibilité te permet de surveiller divers exercices et de personnaliser tes routines en fonction de tes objectifs de remise en forme.

  • Pour enregistrer les résultats de la surveillance des entraînements, tu peux modifier le code afin d’inclure un enregistreur vidéo qui sauvegarde 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 écrit la vidéo surveillée dans un fichier de sortie, ce qui te permet de revoir plus tard tes performances ou de la partager avec des entraîneurs pour obtenir un feedback supplémentaire.

Commentaires