Monitoreo de Entrenamientos usando Ultralytics YOLO11
La supervisión de los entrenamientos a través de la estimación de la pose con Ultralytics YOLO11 mejora la evaluación del ejercicio al rastrear con precisión los puntos de referencia y las articulaciones clave del cuerpo en tiempo real. Esta tecnología proporciona retroalimentación instantánea sobre la forma del ejercicio, rastrea las rutinas de entrenamiento y mide las métricas de rendimiento, optimizando las sesiones de entrenamiento tanto para los usuarios como para los 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 entrenamientos | Monitoreo de entrenamientos |
---|---|
![]() |
![]() |
Conteo de flexiones | Conteo 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="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 Puntos Clave
AIGym
Argumentos
Aquí tiene una tabla con el AIGym
argumentos:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
model |
str |
None |
Ruta al archivo del modelo YOLO de Ultralytics. |
up_angle |
float |
145.0 |
Umbral de ángulo para la pose 'arriba'. |
down_angle |
float |
90.0 |
Umbral de ángulo para la pose 'abajo'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Lista de puntos clave utilizados para monitorizar 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 ejercicios abdominales. |
El AIGym
la solución también admite una variedad de parámetros de seguimiento de objetos:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica el algoritmo de seguimiento a utilizar, p. ej., 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 detecciones superpuestas. |
classes |
list |
None |
Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas. |
verbose |
bool |
True |
Controla la visualización de los resultados del seguimiento, proporcionando una salida visual de los objetos rastreados. |
device |
str |
None |
Especifica 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:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
show |
bool |
False |
Si 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_width |
None or int |
None |
Especifica 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_conf |
bool |
True |
Muestra 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_labels |
bool |
True |
Muestra 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 usando Ultralytics YOLO11?
Para supervisar sus entrenamientos utilizando Ultralytics YOLO11, puede utilizar las capacidades de estimación de la pose para rastrear y analizar puntos de referencia y articulaciones clave del cuerpo en tiempo real. Esto le permite recibir información instantánea sobre su forma de ejercicio, contar repeticiones y medir 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 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 YOLO11 para el seguimiento de entrenamientos?
El uso de Ultralytics YOLO11 para el monitoreo de entrenamientos proporciona varios beneficios clave:
- Rendimiento optimizado: Al adaptar los entrenamientos según los datos de monitoreo, puede lograr mejores resultados.
- Logro de objetivos: Realiza un seguimiento y ajusta fácilmente los objetivos de fitness para lograr 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é precisión tiene Ultralytics YOLO11 en la detección y el seguimiento de ejercicios?
Ultralytics YOLO11 es altamente preciso en la detección y el seguimiento de ejercicios debido a sus capacidades de estimación de pose de última generación. Puede rastrear con precisión los puntos de referencia y las articulaciones clave del cuerpo, proporcionando retroalimentación en tiempo real sobre la forma del ejercicio y las métricas de rendimiento. Los pesos preentrenados del modelo y la arquitectura robusta 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 YOLO11 para rutinas de entrenamiento personalizadas?
Sí, Ultralytics YOLO11 se puede adaptar para rutinas de entrenamiento personalizadas. El AIGym
La clase admite diferentes tipos de pose, como pushup
, pullup
, y abworkout
. Puede especificar puntos clave y ángulos para detectar ejercicios específicos. Aquí hay 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 de monitorización del entrenamiento utilizando Ultralytics YOLO11?
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.