Seguimiento de los entrenamientos mediante Ultralytics YOLO11
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 |
Seguimiento de entrenamientos con Ultralytics YOLO
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
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 True muestra 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 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. |
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
, pullup
y 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.