Saltar para o conteúdo

Monitorização dos treinos utilizando Ultralytics YOLO11

Monitorização de treinos abertos no Colab

A monitorização dos treinos através da estimativa de pose com Ultralytics YOLO11 melhora a avaliação do exercício ao seguir com precisão os principais pontos de referência do corpo e as articulações em tempo real. Esta tecnologia fornece feedback instantâneo sobre a forma do exercício, acompanha as rotinas de treino e mede as métricas de desempenho, optimizando as sessões de treino tanto para os utilizadores como para os treinadores.



Ver: Monitorização de exercícios utilizando Ultralytics YOLO11 | Flexões, Flexões, Exercícios abdominais

Vantagens da monitorização dos treinos

  • Desempenho optimizado: Adaptação dos treinos com base nos dados de monitorização para obter melhores resultados.
  • Cumprimento de objectivos: Acompanhar e ajustar os objectivos de fitness para um progresso mensurável.
  • Personalização: Planos de treino personalizados com base em dados individuais para eficácia.
  • Sensibilização para a saúde: Deteção precoce de padrões que indicam problemas de saúde ou excesso de treino.
  • Decisões informadas: Decisões baseadas em dados para ajustar as rotinas e estabelecer objectivos realistas.

Aplicações no mundo real

Monitorização dos treinos Monitorização dos treinos
Contagem de flexões Contagem de PullUps
Contagem de flexões Contagem de PullUps

Monitorização de treinos com 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 pontos-chave

keyPoints Ordem Ultralytics YOLO11  Pose

AIGym Argumentos

Aqui está uma tabela com os AIGym argumentos:

Argumento Tipo Predefinição Descrição
model str None Caminho para o ficheiro do modelo Ultralytics YOLO .
up_angle float 145.0 Limiar de ângulo para a pose "para cima".
down_angle float 90.0 Limiar de ângulo para a pose "para baixo".
kpts list[int, int, int] [6, 8, 10] Lista de pontos-chave utilizados para monitorizar os exercícios. Estes pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, flexões, agachamentos e exercícios abdominais.

O AIGym também suporta uma gama de parâmetros de seguimento de objectos:

Argumento Tipo Predefinição Descrição
tracker str 'botsort.yaml' Especifica o algoritmo de seguimento a utilizar, por exemplo, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Define o limiar de confiança para as detecções; valores mais baixos permitem o seguimento de mais objectos, mas podem incluir falsos positivos.
iou float 0.5 Define o limiar de Intersecção sobre União (IoU) para filtrar detecções sobrepostas.
classes list None Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] só rastreia as classes especificadas.
verbose bool True Controla a apresentação dos resultados do seguimento, fornecendo uma saída visual dos objectos seguidos.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, um GPU específico, ou outros dispositivos de computação para a execução do modelo.

Adicionalmente, podem ser aplicadas as seguintes definições de visualização:

Argumento Tipo Predefinição Descrição
show bool False Se Trueapresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_width None or int None Especifica a largura da linha das caixas delimitadoras. Se NoneA largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza.

FAQ

Como posso monitorizar os meus treinos utilizando Ultralytics YOLO11 ?

Para monitorizar os seus treinos com o Ultralytics YOLO11, pode utilizar as capacidades de estimativa de pose para seguir e analisar os principais pontos de referência e articulações do corpo em tempo real. Isto permite-lhe receber feedback instantâneo sobre a sua forma de exercício, contar repetições e medir métricas de desempenho. Pode começar por utilizar o código de exemplo fornecido para flexões, flexões ou exercícios abdominais, conforme ilustrado:

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 mais personalizações e definições, pode consultar a secção AIGym na documentação.

Quais são as vantagens de utilizar o Ultralytics YOLO11 para monitorizar os exercícios?

A utilização de Ultralytics YOLO11 para monitorizar o treino proporciona várias vantagens importantes:

  • Desempenho optimizado: Ao adaptar os treinos com base nos dados de monitorização, é possível obter melhores resultados.
  • Cumprimento de objectivos: Acompanhe e ajuste facilmente os objectivos de fitness para um progresso mensurável.
  • Personalização: Obtenha planos de treino personalizados com base nos seus dados individuais para uma eficácia óptima.
  • Sensibilização para a saúde: Deteção precoce de padrões que indicam potenciais problemas de saúde ou excesso de treino.
  • Decisões informadas: Tomar decisões baseadas em dados para ajustar as rotinas e definir objectivos realistas.

Pode assistir a um vídeo de demonstração no YouTube para ver estes benefícios em ação.

Qual é a precisão do site Ultralytics YOLO11 na deteção e acompanhamento de exercícios?

Ultralytics YOLO11 é altamente preciso na deteção e seguimento de exercícios devido às suas capacidades de estimação de pose de última geração. Consegue seguir com precisão os principais pontos de referência e articulações do corpo, fornecendo feedback em tempo real sobre a forma do exercício e as métricas de desempenho. Os pesos pré-treinados e a arquitetura robusta do modelo garantem uma elevada precisão e fiabilidade. Para exemplos do mundo real, consulte a secção de aplicações do mundo real na documentação, que apresenta a contagem de flexões e flexões.

Posso utilizar Ultralytics YOLO11 para rotinas de treino personalizadas?

Sim, Ultralytics YOLO11 pode ser adaptado para rotinas de treino personalizadas. O AIGym A classe suporta diferentes tipos de pose, tais como pushup, pullupe abworkout. Pode especificar pontos-chave e ângulos para detetar exercícios específicos. Eis um exemplo de configuração:

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 mais pormenores sobre a definição de argumentos, consulte a secção Argumentos AIGym secção. Esta flexibilidade permite-lhe monitorizar vários exercícios e personalizar rotinas com base na sua objectivos de fitness.

Como posso guardar a saída de monitorização do treino utilizando Ultralytics YOLO11 ?

Para guardar o resultado da monitorização do exercício, pode modificar o código para incluir um gravador de vídeo que guarde os fotogramas processados. Aqui está um exemplo:

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 configuração grava o vídeo monitorizado num ficheiro de saída, permitindo-lhe rever o seu desempenho no treino mais tarde ou partilhá-lo com os treinadores para obter feedback adicional.

📅C riado há 1 ano ✏️ Atualizado há 6 dias

Comentários