Monitorización de entrenamientos usando Ultralytics YOLO26#
La monitorización de entrenamientos mediante la estimación de poses con Ultralytics YOLO26 mejora la evaluación de los ejercicios al realizar un seguimiento preciso de los puntos de referencia clave del cuerpo y las articulaciones en tiempo real. Esta tecnología proporciona información instantánea sobre la postura al hacer ejercicio, registra las rutinas de entrenamiento y mide 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 basándote en los datos de monitorización para obtener mejores resultados.
- Logro de objetivos: Realiza un seguimiento y ajusta 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 temprana de patrones que indican problemas de salud o sobreentrenamiento.
- Decisiones informadas: Decisiones basadas en datos para ajustar rutinas y establecer objetivos realistas.
Aplicaciones en el mundo real#
| Monitorización de entrenamientos | Monitorización de entrenamientos |
|---|---|
![]() | ![]() |
| Cuenta de flexiones | Cuenta de dominadas |
Monitoriza tus entrenamientos con YOLO26#
La solución AIGym ejecuta la estimación de poses y cuenta las repeticiones midiendo el ángulo formado por tres puntos clave a medida que una extremidad se mueve entre los umbrales up_angle y down_angle. Selecciona los puntos clave para el ejercicio que deseas monitorizar con kpts, y luego ejecuta la solución en tu vídeo con la API de Python o la CLI.
# 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#

Argumentos de AIGym#
Aquí tienes una tabla con los argumentos de AIGym:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo YOLO de Ultralytics. |
up_angle | float | 145.0 | Umbral de ángulo para la pose 'arriba'. |
down_angle | int | 90 | Umbral de ángulo para la pose 'abajo'. |
kpts | list[int] | '[6, 8, 10]' | Lista de tres índices de puntos clave utilizados para monitorear 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_width | int | 2 | Grosor de línea para las cajas, puntos clave y recuentos que dibuja la solución. |
verbose | bool | True | Habilita el registro por fotograma de la solución sobre 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 una serie de parámetros de seguimiento de objetos:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento que se va a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo realiza el seguimiento de las clases especificadas. |
device | str | None | Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo. |
Además, se pueden aplicar los siguientes ajustes de visualización:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si es True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener retroalimentación visual inmediata durante el desarrollo o las pruebas. |
show_conf | bool | True | Muestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección. |
show_labels | bool | True | Muestra las etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
FAQ#
Para monitorizar tus entrenamientos usando Ultralytics YOLO26, puedes utilizar las capacidades de estimación de poses para rastrear y analizar los puntos de referencia clave del cuerpo y las articulaciones en tiempo real. Esto te permite recibir información instantánea sobre tu postura al hacer ejercicio, contar repeticiones y medir métricas de rendimiento. Puedes empezar utilizando el código de ejemplo proporcionado para flexiones, dominadas o ejercicios abdominales tal 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 en la documentación.
Usar Ultralytics YOLO26 para la monitorización de entrenamientos proporciona varios beneficios clave:
- Rendimiento optimizado: Al adaptar los entrenamientos basándote en los datos de monitorización, puedes obtener mejores resultados.
- Logro de objetivos: Realiza un seguimiento y ajusta fácilmente los objetivos de fitness para 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 temprana de patrones que indican posibles problemas de salud o sobreentrenamiento.
- Decisiones informadas: Toma decisiones basadas en datos para ajustar rutinas y establecer objetivos realistas.
Puedes ver una demostración en vídeo de YouTube para ver estos beneficios en acción.
Ultralytics YOLO26 es sumamente preciso en la detección y el seguimiento de ejercicios debido a sus capacidades de estimación de poses de última generación. Puede rastrear con precisión los puntos de referencia clave del cuerpo y las articulaciones, proporcionando información en tiempo real sobre la postura en el 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 del mundo real, consulta la sección de aplicaciones del mundo real en la documentación, que muestra el recuento de flexiones y dominadas.
Sí, Ultralytics YOLO26 se puede adaptar para rutinas de entrenamiento personalizadas. La clase
AIGymdetecta las repeticiones de los ejercicios utilizando los argumentosup_angle,down_angleykpts. Puedes especificar puntos clave y ángulos para detectar ejercicios específicos. Aquí tienes una configuración de ejemplo: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 la configuración de argumentos, consulta la sección Argumentos
AIGym. Esta flexibilidad te permite monitorizar varios ejercicios y personalizar rutinas según tus objetivos de fitness.Para guardar el resultado de la monitorización, puedes modificar el código para incluir un escritor de vídeo 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 vídeo monitorizado en un archivo de salida, lo que te permite revisar tu rendimiento de entrenamiento más tarde o compartirlo con entrenadores para obtener información adicional.

