Ultralytics YOLO27:

Monitorización de entrenamientos con Ultralytics YOLO26#

Open Workouts Monitoring In Colab

La monitorización de entrenamientos mediante estimación de poses con Ultralytics YOLO26 mejora la evaluación del ejercicio al realizar un seguimiento preciso de los puntos de referencia y las articulaciones clave del cuerpo en tiempo real. Esta tecnología proporciona información instantánea sobre la técnica de los ejercicios, realiza un seguimiento de las rutinas de entrenamiento y mide las métricas de rendimiento, optimizando las sesiones de entrenamiento tanto para usuarios como para entrenadores.



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

Ventajas de la monitorización de entrenamientos#

  • Rendimiento optimizado: Adapta los entrenamientos según los datos de monitorización para obtener mejores resultados.
  • Consecución de objetivos: Realiza un seguimiento de tus objetivos de fitness y ajústalos para lograr un progreso medible.
  • Personalización: Planes de entrenamiento personalizados según los datos individuales para lograr una mayor eficacia.
  • Conciencia sobre la salud: Detección temprana de patrones que indican problemas de salud o sobreentrenamiento.
  • Decisiones informadas: Toma decisiones basadas en datos para ajustar las rutinas y establecer objetivos realistas.

Aplicaciones en el mundo real#

Monitorización de entrenamientosMonitorización de entrenamientos
Conteo de flexiones de YOLO mediante estimación de posesConteo de dominadas de YOLO mediante estimación de poses
Conteo de flexionesConteo de dominadas

Monitoriza entrenamientos con YOLO26#

La solución AIGym ejecuta estimación de poses y cuenta las repeticiones midiendo el ángulo formado por tres puntos clave mientras una extremidad se desplaza entre los umbrales up_angle y down_angle. Elige los puntos clave del ejercicio que quieras monitorizar con kpts y, a continuación, ejecuta la solución en tu vídeo con la API de Python o la CLI.

Monitorización de entrenamientos con 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]"

Mapa de puntos clave#

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

Argumentos de AIGym#

Aquí tienes una tabla con los argumentos de AIGym:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta al archivo del modelo YOLO de Ultralytics.
up_anglefloat145.0Umbral de ángulo para la pose «arriba».
down_angleint90Umbral de ángulo para la pose «abajo».
kptslist[int]'[6, 8, 10]'Lista de tres índices de puntos clave utilizados para supervisar entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, para ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales.
line_widthint2Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución.
verboseboolTrueActiva el registro por fotograma de la solución, que incluye la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa.

La solución AIGym también admite diversos parámetros de seguimiento de objetos:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento que se utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece el umbral de confianza para las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite seleccionar entre la CPU, una GPU específica u otros dispositivos de cálculo para ejecutar el modelo.
imgszint or tuple640Tamaño de imagen de inferencia objetivo: un número entero para una imagen cuadrada o un par (height, width). Las formas se ajustan al paso del modelo.
max_detint300Número máximo de detecciones conservadas por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas.
quantizeint or strNonePrecisión de inferencia: 16 (FP16) o 32/sin definir (FP32) para los modelos de PyTorch y TorchScript; otros formatos calculan a la precisión que seleccionan su artefacto y su motor de ejecución. Sustituye al indicador obsoleto half.

Además, se pueden aplicar los siguientes ajustes de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas.
show_confboolTrueMuestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección.
show_labelsboolTrueMuestra las etiquetas de cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.

Preguntas frecuentes#

  • Para monitorizar tus entrenamientos con Ultralytics YOLO26, puedes utilizar las capacidades de estimación de poses para realizar un seguimiento y analizar los puntos de referencia y las articulaciones clave del cuerpo en tiempo real. Esto te permite recibir información instantánea sobre la técnica de tus ejercicios, contar repeticiones y medir métricas de rendimiento. Puedes empezar utilizando el código de ejemplo proporcionado para flexiones, dominadas o ejercicios abdominales, como se muestra a continuación:

    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 los ajustes, consulta la sección AIGym de la documentación.

  • El uso de Ultralytics YOLO26 para monitorizar entrenamientos ofrece varias ventajas clave:

    • Rendimiento optimizado: Al adaptar los entrenamientos según los datos de monitorización, puedes obtener mejores resultados.
    • Consecución de objetivos: Realiza un seguimiento sencillo de tus objetivos de fitness y ajústalos para lograr un progreso medible.
    • Personalización: Obtén planes de entrenamiento personalizados según tus datos individuales para conseguir la máxima eficacia.
    • Conciencia sobre la salud: Detección temprana de patrones que indican posibles problemas de salud o sobreentrenamiento.
    • Decisiones informadas: Toma decisiones basadas en datos para ajustar las rutinas y establecer objetivos realistas.

    Puedes ver una demostración en vídeo de YouTube para observar estas ventajas en acción.

  • Ultralytics YOLO26 ofrece una gran precisión al detectar y realizar un seguimiento de los ejercicios gracias a sus capacidades de estimación de poses de vanguardia. Puede realizar un seguimiento preciso de los puntos de referencia y las articulaciones clave del cuerpo, proporcionando información en tiempo real sobre la técnica de los ejercicios y las métricas de rendimiento. Los pesos preentrenados y la sólida arquitectura del modelo garantizan una precisión y fiabilidad elevadas. Para consultar ejemplos del mundo real, visita la sección de la documentación sobre aplicaciones del mundo real, que muestra el conteo de flexiones y dominadas.

  • Sí, Ultralytics YOLO26 se puede adaptar a rutinas de entrenamiento personalizadas. La clase AIGym detecta las repeticiones de los ejercicios mediante los argumentos up_angle, down_angle y kpts. Puedes especificar puntos clave y ángulos para detectar ejercicios concretos. Este es 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 información sobre cómo configurar los argumentos, consulta la sección Argumentos AIGym. Esta flexibilidad te permite monitorizar diversos ejercicios y personalizar las rutinas según tus objetivos de fitness.

  • Para guardar los resultados de la monitorización de entrenamientos, puedes modificar el código para incluir un escritor de vídeo que guarde los fotogramas procesados. Este es 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 vídeo monitorizado en un archivo de salida, lo que te permite revisar más tarde el rendimiento de tu entrenamiento o compartirlo con entrenadores para obtener información adicional.

Comentarios