Ultralytics YOLO27 :
Get Started

Suivi des entraînements avec Ultralytics YOLO26#

Open Workouts Monitoring In Colab

Le suivi des entraînements par estimation de pose avec Ultralytics YOLO26 améliore l’évaluation des exercices en suivant précisément les points de repère et les articulations clés du corps en temps réel. Cette technologie fournit un retour immédiat sur la posture, 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.



Regarder : Comment suivre des exercices physiques avec Ultralytics YOLO | Squats, extensions des jambes, pompes et plus encore

Avantages du suivi des entraînements#

  • Performances optimisées : adapter les entraînements en fonction des données de suivi 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 programmes d’entraînement personnalisés à partir des données de chaque personne pour plus d’efficacité.
  • Attention à la santé : détecter tôt les tendances pouvant indiquer des problèmes de santé ou du surentraînement.
  • Décisions éclairées : prendre des décisions fondées sur les données pour ajuster les routines et fixer des objectifs réalistes.

Applications concrètes#

Suivi des entraînementsSuivi des entraînements
Comptage des pompes avec YOLO et estimation de poseComptage des tractions avec YOLO et estimation de pose
Comptage des pompesComptage des tractions

Suivre les entraînements avec YOLO26#

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

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

Schéma de l’ordre des points clés pour l’estimation de pose YOLO

Arguments de AIGym#

Voici un tableau des arguments de AIGym :

ArgumentTypeValeur par défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.
up_anglefloat145.0Seuil d'angle pour la pose « haute ».
down_anglefloat90.0Seuil d'angle pour la pose « basse ».
kptslist[int][6, 8, 10]Liste de trois indices de points clés utilisés pour suivre les entraînements. Ces points clés correspondent à des articulations ou parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices comme les pompes, les tractions, les squats et les exercices abdominaux.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution.
verboseboolTrueActive le journal de la solution pour chaque image, qui indique la forme de l'entrée, le nombre d'éléments par classe et la vitesse de traitement. L'appel de suivi reste toujours silencieux.

La solution AIGym prend également en charge divers paramètres de suivi d’objets :

ArgumentTypeValeur par défautDescription
trackerstr'tracktrack.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 l'union (IoU) utilisé pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats selon l'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 cible de l'image pour l'inférence : un entier pour une image carrée ou une paire (height, width). Les dimensions sont ajustées au stride du modèle.
max_detint300Nombre maximal de détections conservées par image avant le suivi, ce qui limite le nombre d'objets qu'une solution traite dans les scènes denses.
quantizeint or strNonePrécision de l'inférence : 16 (FP16) ou 32/non défini (FP32) pour les modèles PyTorch et TorchScript ; les autres formats utilisent la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'option obsolète half.

De plus, tu peux appliquer les paramètres de visualisation suivants :

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_labelsboolTrueAffiche les étiquettes de chaque détection dans le résultat visuel. Permet d'identifier immédiatement les objets détectés.

FAQ#

  • Pour suivre tes entraînements avec Ultralytics YOLO26, tu peux utiliser les capacités d’estimation de pose afin de suivre et d’analyser en temps réel les points de repère et les articulations clés du corps. Tu peux ainsi recevoir un retour immédiat sur ta posture, compter les répétitions et mesurer les indicateurs de performance. Pour commencer, utilise l’exemple de code fourni pour les pompes, les tractions ou les exercices abdominaux :

    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)
    
    cap.release()
    cv2.destroyAllWindows()

    Pour personnaliser davantage les paramètres, consulte la section AIGym de la documentation.

  • L’utilisation d’Ultralytics YOLO26 pour le suivi des entraînements offre plusieurs avantages clés :

    • Performances optimisées : en adaptant tes entraînements selon les données de suivi, 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 : bénéficie de programmes d’entraînement personnalisés selon tes données pour une efficacité optimale.
    • Attention à la santé : détecte tôt les tendances pouvant indiquer des problèmes de santé ou du surentraînement.
    • Décisions éclairées : prends des décisions fondées sur les données pour ajuster tes routines et fixer des objectifs réalistes.

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

  • Ultralytics YOLO26 détecte et suit les exercices avec une grande précision grâce à ses capacités de pointe en estimation de pose. Le modèle suit avec précision les points de repère et les articulations clés du corps, fournissant en temps réel un retour sur la posture et les indicateurs de performance. Ses poids préentraînés et son architecture robuste lui garantissent une grande précision et une grande fiabilité. 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 programmes d’entraînement personnalisés. 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],  # Pour les pompes ; peut être adapté à d’autres exercices
    )

    Pour plus de détails sur la configuration des arguments, consulte la section Arguments AIGym. Cette flexibilité te permet de suivre divers exercices et de personnaliser tes routines en fonction de tes objectifs de remise en forme.

  • Pour enregistrer le résultat du suivi des entraînements, tu peux modifier le code afin d’ajouter un encodeur 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 enregistre la vidéo suivie dans un fichier de sortie, ce qui te permet de revoir ultérieurement tes performances ou de la partager avec des entraîneurs pour obtenir des conseils supplémentaires.

Commentaires