Ir al contenido

Monitorización de Entrenamientos utilizando Ultralytics YOLO26

Abrir Monitorización de Entrenamientos en Colab

El monitoreo de ejercicios mediante la estimación de pose con Ultralytics YOLO26 mejora la evaluación del ejercicio al track con precisión los puntos clave del cuerpo y las articulaciones en tiempo real. Esta tecnología proporciona retroalimentación instantánea sobre la forma del ejercicio, track las rutinas de entrenamiento y mide las métricas de rendimiento, optimizando las sesiones de entrenamiento tanto para usuarios como para entrenadores.



Ver: Cómo monitorizar ejercicios de entrenamiento con Ultralytics YOLO | Sentadillas, extensión de piernas, flexiones y más

Ventajas de la Monitorización de Entrenamientos

  • Rendimiento optimizado: Adaptación de los entrenamientos según los datos de monitoreo para obtener mejores resultados.
  • Logro de objetivos: Realiza un seguimiento y ajusta los objetivos de fitness para lograr un progreso medible.
  • Personalización: Planes de entrenamiento personalizados basados en datos individuales para una mayor eficacia.
  • Conciencia sobre la salud: Detección temprana de patrones que indican problemas de salud o sobreentrenamiento.
  • Decisiones informadas: Decisiones basadas en datos para ajustar rutinas y establecer metas realistas.

Aplicaciones en el mundo real

Monitoreo de entrenamientosMonitoreo de entrenamientos
Contado de YOLO con estimación de posturaContado de YOLO con estimación de postura
Conteo de flexionesConteo de dominadas

Monitoreo de entrenamientos usando 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

Mapa de Puntos Clave

Diagrama del orden de los puntos clave de la estimación de YOLO

AIGym Argumentos

Aquí tiene una tabla con el AIGym argumentos:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo Ultralytics YOLO.
up_anglefloat145.0Umbral de ángulo para la pose 'arriba'.
down_anglefloat90.0Umbral de ángulo para la pose 'abajo'.
kptslist[int]'[6, 8, 10]'Lista de tres índices de puntos clave utilizados para la monitorización de entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, para ejercicios como flexiones, dominadas, sentadillas y abdominales.

El AIGym la solución también admite una variedad de parámetros de seguimiento de objetos:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml.
conffloat0.1Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersección sobre Unión (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas.
verboseboolTrueControla la visualización de los resultados del seguimiento, proporcionando una salida visual de los objetos rastreados.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de cálculo para la ejecución del modelo.

Adicionalmente, se pueden aplicar los siguientes ajustes de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_widthint or NoneNoneEspecifica el ancho de línea de los cuadros delimitadores. Si None, el ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto con la etiqueta. Ofrece información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.

Preguntas frecuentes

¿Cómo monitorizo mis entrenamientos utilizando Ultralytics YOLO26?

Para monitorear sus ejercicios usando Ultralytics YOLO26, puede utilizar las capacidades de estimación de pose para track y analizar los puntos clave del cuerpo y las articulaciones en tiempo real. Esto le permite recibir retroalimentación instantánea sobre su forma de ejercicio, contar repeticiones y medir métricas de rendimiento. Puede comenzar utilizando el código de ejemplo proporcionado para flexiones, dominadas o ejercicios abdominales, como se muestra:

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

Para obtener más información sobre la personalización y la configuración, puedes consultar la sección AIGym en la documentación.

¿Cuáles son los beneficios de usar Ultralytics YOLO26 para la monitorización de entrenamientos?

El uso de Ultralytics YOLO26 para el monitoreo de ejercicios ofrece varios beneficios clave:

  • Rendimiento optimizado: Al adaptar los entrenamientos según los datos de monitoreo, puede lograr mejores resultados.
  • Logro de objetivos: Rastree y ajuste fácilmente los objetivos de acondicionamiento físico para un progreso medible.
  • Personalización: Obtenga planes de entrenamiento personalizados basados en sus datos individuales para una eficacia óptima.
  • Conciencia sobre la salud: Detección temprana de patrones que indican posibles problemas de salud o sobreentrenamiento.
  • Decisiones informadas: Tome decisiones basadas en datos para ajustar rutinas y establecer metas realistas.

Puedes ver una demostración en vídeo de YouTube para ver estos beneficios en acción.

¿Qué tan preciso es Ultralytics YOLO26 en la detección y el track de ejercicios?

Ultralytics YOLO26 es altamente preciso en la detección y el track de ejercicios gracias a sus capacidades de estimación de pose de última generación. Puede track con precisión los puntos clave del cuerpo y las articulaciones, proporcionando retroalimentación en tiempo real sobre la forma del ejercicio y las métricas de rendimiento. Los pesos preentrenados y la arquitectura robusta del modelo garantizan una alta precisión y fiabilidad. Para ejemplos del mundo real, consulte la sección de aplicaciones del mundo real en la documentación, que muestra el conteo de flexiones y dominadas.

¿Puedo usar Ultralytics YOLO26 para rutinas de ejercicio personalizadas?

Sí, Ultralytics YOLO26 se puede adaptar para rutinas de ejercicio personalizadas. El AIGym La clase admite diferentes tipos de pose, como pushup, pullup, y abworkout. Puedes especificar puntos clave y ángulos para detect ejercicios específicos. Aquí tienes un ejemplo de configuración:

from ultralytics import solutions

gym = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],  # For pushups - can be customized for other exercises
)

Para obtener más detalles sobre cómo configurar los argumentos, consulta la Argumentos AIGym sección. Esta flexibilidad te permite supervisar varios ejercicios y personalizar rutinas según tus objetivos de fitness.

¿Cómo puedo guardar la salida del monitoreo de ejercicios usando Ultralytics YOLO26?

Para guardar la salida del monitoreo del entrenamiento, puedes modificar el código para incluir un escritor de video que guarde los fotogramas procesados. Aquí tienes un ejemplo:

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

Esta configuración escribe el video supervisado en un archivo de salida, lo que le permite revisar su rendimiento de entrenamiento más tarde o compartirlo con los entrenadores para obtener comentarios adicionales.



📅 Creado hace 2 años ✏️ Actualizado hace 7 días
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoyceUltralyticsAssistantambitious-octopusIvorZhu331

Comentarios