Ir al contenido

Seguimiento de los entrenamientos mediante Ultralytics YOLO11

Seguimiento de los entrenamientos abiertos en Colab

El seguimiento de los entrenamientos mediante la estimación de la postura con Ultralytics YOLO11 mejora la evaluación del ejercicio mediante el seguimiento preciso de puntos de referencia corporales y articulaciones clave en tiempo real. Esta tecnología proporciona información instantánea sobre la forma del ejercicio, realiza un seguimiento de las rutinas de entrenamiento y mide las métricas de rendimiento, optimizando las sesiones de entrenamiento tanto para los usuarios como para los entrenadores.



Observa: Seguimiento de los entrenamientos utilizando Ultralytics YOLO11 | Flexiones, Pull-ups, Ab Workouts

Ventajas del seguimiento de los entrenamientos

  • Rendimiento optimizado: Adaptación de los entrenamientos en función de los datos de seguimiento para obtener mejores resultados.
  • Consecución de objetivos: Seguimiento y ajuste de los objetivos de fitness para un progreso medible.
  • Personalización: Planes de entrenamiento personalizados basados en datos individuales para mayor eficacia.
  • Conciencia de la salud: Detección precoz de patrones que indiquen problemas de salud o sobreentrenamiento.
  • Decisiones fundamentadas: Decisiones basadas en datos para ajustar rutinas y fijar objetivos realistas.

Aplicaciones en el mundo real

Seguimiento de los entrenamientos Seguimiento de los entrenamientos
PushUps Contando Conteo de PullUps
PushUps Contando Conteo de PullUps

Seguimiento 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]"
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="yolo11n-pose.pt",  # path to the YOLO11 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 KeyPoints

keyPoints Orden Ultralytics YOLO11  Pose

AIGym Argumentos

Aquí tiene una tabla con los AIGym argumentos:

Argumento Tipo Por defecto Descripción
model str None Ruta al archivo del modeloYOLO Ultralytics .
up_angle float 145.0 Umbral de ángulo para la postura "arriba".
down_angle float 90.0 Umbral de ángulo para la postura "hacia abajo".
kpts list[int, int, int] [6, 8, 10] Lista de puntos clave utilizados para controlar los 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.

En AIGym también admite una serie de parámetros de seguimiento de objetos:

Argumento Tipo Por defecto Descripción
tracker str 'botsort.yaml' Especifica el algoritmo de seguimiento a utilizar, por ejemplo, bytetrack.yaml o botsort.yaml.
conf float 0.3 Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos pero pueden incluir falsos positivos.
iou float 0.5 Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas.
classes list None Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] sólo rastrea las clases especificadas.
verbose bool True Controla la visualización de los resultados del rastreo, proporcionando una salida visual de los objetos rastreados.
device str None Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo.

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

Argumento Tipo Por defecto Descripción
show bool False Si Truemuestra las imágenes o vídeos anotados en una ventana. Resulta útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_width None or int None Especifica el ancho de línea de los cuadros delimitadores. Si NoneEl ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.

PREGUNTAS FRECUENTES

¿Cómo puedo controlar mis entrenamientos con Ultralytics YOLO11 ?

Para supervisar sus entrenamientos con Ultralytics YOLO11, puede utilizar las funciones de estimación de la postura para realizar un seguimiento y analizar puntos de referencia corporales y articulaciones clave en tiempo real. Esto le permite recibir información instantánea sobre la forma de su ejercicio, contar repeticiones y medir las métricas de rendimiento. Puede empezar 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 más personalización y ajustes, puedes consultar la sección AIGym de la documentación.

¿Cuáles son las ventajas de utilizar Ultralytics YOLO11 para controlar el entrenamiento?

El uso de Ultralytics YOLO11 para la monitorización del entrenamiento proporciona varias ventajas clave:

  • Rendimiento optimizado: Al adaptar los entrenamientos en función de los datos de seguimiento, puedes obtener mejores resultados.
  • Consecución de objetivos: Controla y ajusta fácilmente los objetivos de fitness para lograr un progreso medible.
  • Personalización: Obtén planes de entrenamiento personalizados basados en tus datos individuales para una eficacia óptima.
  • Conciencia de la salud: Detección precoz de patrones que indican posibles problemas de salud o sobreentrenamiento.
  • Decisiones fundamentadas: Tome decisiones basadas en datos para ajustar las rutinas y fijar objetivos realistas.

Puede ver un vídeo de demostración en YouTube para comprobar estas ventajas en acción.

¿Cuál es la precisión de Ultralytics YOLO11 a la hora de detectar y rastrear ejercicios?

Ultralytics YOLO11 es muy preciso en la detección y el seguimiento de ejercicios gracias a sus avanzadas funciones de estimación de la postura. Puede realizar un seguimiento preciso de puntos de referencia y articulaciones corporales clave, proporcionando información en tiempo real sobre la forma del ejercicio y las métricas de rendimiento. Los pesos preentrenados del modelo y su robusta arquitectura garantizan una gran precisión y fiabilidad. Para ver ejemplos reales, consulte la sección de aplicaciones reales de la documentación, que muestra el recuento de flexiones y dominadas.

¿Puedo utilizar Ultralytics YOLO11 para rutinas de entrenamiento personalizadas?

Sí, Ultralytics YOLO11 puede adaptarse a rutinas de entrenamiento personalizadas. El AIGym admite distintos tipos de pose, como pushup, pullupy abworkout. Puede especificar puntos clave y ángulos para detectar ejercicios específicos. He aquí 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 la configuración de argumentos, consulte la sección Argumentos AIGym sección. Esta flexibilidad le permite controlar varios ejercicios y personalizar las rutinas en función de su objetivos de fitness.

¿Cómo puedo guardar el resultado de la monitorización del entrenamiento utilizando Ultralytics YOLO11 ?

Para guardar la salida de la monitorización del entrenamiento, puedes modificar el código para incluir un grabador de vídeo que guarde los fotogramas procesados. He aquí 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 le permite revisar su rendimiento en el entrenamiento más tarde o compartirlo con los entrenadores para obtener información adicional.

Creado hace 1 año ✏️ Actualizado hace 6 días

Comentarios