Passer au contenu

Surveillance des entraînements avec Ultralytics YOLO26

Ouvrir le suivi des entraînements dans 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 clés du corps et les articulations en temps réel. Cette technologie fournit un retour instantané sur la forme d'exécution des exercices, track les routines d'entraînement et mesure les métriques de performance, optimisant ainsi les sessions 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înementsSurveillance des entraînements
Comptage YOLO avec estimation de la poseComptage YOLO avec estimation de la pose
Comptage de pompesComptage 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="yolo26n-pose.pt",  # path to the YOLO26 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

Diagramme de l'ordre des points clés pour l'estimation de YOLO

AIGym Arguments

Voici un tableau avec les AIGym arguments :

ArgumentTypePar défautDescription
modelstrNoneChemin d'accès à 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 le suivi des entraînements. Ces points clés correspondent à des articulations ou des parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices comme les pompes, les tractions, les squats et les abdominaux.

L'argument AIGym la solution prend également en charge une gamme de paramètres de suivi d'objets :

ArgumentTypePar défautDescription
trackerstr'botsort.yaml'Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml.
conffloat0.1Dé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.
ioufloat0.7Définit le seuil Intersection over Union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées.
verboseboolTrueContrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis.
devicestrNoneSpé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 :

ArgumentTypePar défautDescription
showboolFalseSi 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_widthint or NoneNoneSpé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_confboolTrueAffiche 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_labelsboolTrueAffiche 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 avec Ultralytics YOLO26 ?

Pour suivre vos entraînements avec Ultralytics YOLO26, vous pouvez utiliser les capacités d'estimation de pose pour track et analyser les points clés du corps et les articulations en temps réel. Cela vous permet de recevoir un retour instantané sur votre forme d'exécution, de compter les répétitions et de mesurer les métriques de performance. Vous pouvez commencer par utiliser le code d'exemple fourni pour les pompes, les tractions ou les exercices abdominaux, comme illustré :

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 d'utiliser Ultralytics YOLO26 pour la surveillance des entraînements ?

L'utilisation d'Ultralytics YOLO26 pour le suivi 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.
  • Réalisation 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 YOLO26 pour detect et track les exercices ?

Ultralytics YOLO26 est très précis dans la detect et le track des exercices grâce à ses capacités d'estimation de pose à la pointe de la technologie. Il peut track avec précision les points clés du corps et les articulations, fournissant un retour en temps réel sur la forme d'exécution des exercices et les métriques de performance. Les poids pré-entraînés et l'architecture robuste du modèle garantissent une précision et une fiabilité élevées. Pour des exemples concrets, consultez la section applications réelles de la documentation, qui présente le comptage des pompes et des tractions.

Puis-je utiliser Ultralytics YOLO26 pour des routines d'entraînement personnalisées ?

Oui, Ultralytics YOLO26 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 detect 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 la surveillance des entraînements avec Ultralytics YOLO26 ?

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 2 ans ✏️ Mis à jour il y a 2 jours
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoyceUltralyticsAssistantambitious-octopusIvorZhu331

Commentaires