Ir para o conteúdo

Monitoramento de Treinos usando Ultralytics YOLO11

Abrir Monitoramento de Treinos no Colab

Monitorar treinos através da estimativa de pose com Ultralytics YOLO11 aprimora a avaliação do exercício, rastreando com precisão os principais pontos de referência e articulações do corpo em tempo real. Esta tecnologia fornece feedback instantâneo sobre a forma do exercício, rastreia rotinas de treino e mede métricas de desempenho, otimizando as sessões de treinamento para usuários e treinadores.



Assista: Como Monitorar Exercícios de Treino com Ultralytics YOLO | Agachamentos, Extensão de Pernas, Flexões e Mais

Vantagens do Monitoramento de Treinos

  • Desempenho Otimizado: Personalização de treinos com base em dados de monitoramento para melhores resultados.
  • Alcance de Objetivos: Rastreie e ajuste as metas de condicionamento físico para um progresso mensurável.
  • Personalização: Planos de treino personalizados com base em dados individuais para eficácia.
  • Conscientização sobre a Saúde: Detecção precoce de padrões que indicam problemas de saúde ou excesso de treinamento.
  • Decisões Informadas: Decisões orientadas por dados para ajustar rotinas e definir metas realistas.

Aplicações no Mundo Real

Monitoramento de Treinos Monitoramento de Treinos
Contagem de Flexões Contagem de Flexões
Contagem de Flexões Contagem de Flexões

Monitoramento de Treinos 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 KeyPoints

Ordem dos keyPoints Ultralytics YOLO11 Pose

AIGym Argumentos

Aqui está uma tabela com o AIGym argumentos:

Argumento Tipo Padrão Descrição
model str None Caminho para o arquivo do modelo Ultralytics YOLO.
up_angle float 145.0 Limite de ângulo para a pose 'para cima'.
down_angle float 90.0 Limite de ângulo para a pose 'para baixo'.
kpts list[int, int, int] '[6, 8, 10]' Lista de pontos-chave usados para monitorar exercícios. Esses pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, barras, agachamentos e exercícios abdominais.

O AIGym solução também suporta uma variedade de parâmetros de rastreamento de objetos:

Argumento Tipo Padrão Descrição
tracker str 'botsort.yaml' Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
iou float 0.5 Define o limite 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] rastreia apenas as classes especificadas.
verbose bool True Controla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite que os usuários selecionem entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo.

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

Argumento Tipo Padrão Descrição
show bool False Se True, exibe as imagens ou vídeos anotados em uma 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 None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Fornece personalização visual para clareza.
show_conf bool True Exibe o score de confiança para cada detecção junto com o rótulo. Dá uma ideia da certeza do modelo para cada detecção.
show_labels bool True Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.

FAQ

Como monitorar meus exercícios usando Ultralytics YOLO11?

Para monitorar seus treinos usando o Ultralytics YOLO11, você pode utilizar os recursos de estimativa de pose para rastrear e analisar os principais pontos de referência e articulações do corpo em tempo real. Isso permite que você receba feedback instantâneo sobre a forma do seu exercício, conte repetições e meça as métricas de desempenho. Você pode começar usando o código de exemplo fornecido para flexões, barras ou exercícios abdominais, como mostrado:

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ção e configurações, você pode consultar a seção AIGym na documentação.

Quais são os benefícios de usar o Ultralytics YOLO11 para monitoramento de treinos?

Usar o Ultralytics YOLO11 para monitoramento de treino oferece vários benefícios importantes:

  • Desempenho Otimizado: Ao personalizar os treinos com base nos dados de monitoramento, você pode obter melhores resultados.
  • Alcance de Objetivos: Rastreie e ajuste facilmente as metas de condicionamento físico para um progresso mensurável.
  • Personalização: Obtenha planos de treino personalizados com base nos seus dados individuais para uma eficácia ideal.
  • Conscientização sobre a Saúde: Detecção precoce de padrões que indicam potenciais problemas de saúde ou excesso de treinamento.
  • Decisões Informadas: Tome decisões orientadas por dados para ajustar rotinas e definir metas realistas.

Você pode assistir a uma demonstração em vídeo no YouTube para ver esses benefícios em ação.

Qual a precisão do Ultralytics YOLO11 na detecção e rastreamento de exercícios?

Ultralytics YOLO11 é altamente preciso na detecção e rastreamento de exercícios devido aos seus recursos de estimativa de pose de última geração. Ele pode rastrear 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 do modelo e a arquitetura robusta garantem alta precisão e confiabilidade. Para exemplos do mundo real, consulte a seção de aplicações do mundo real na documentação, que mostra a contagem de flexões e barras.

Posso usar Ultralytics YOLO11 para rotinas de treino personalizadas?

Sim, o Ultralytics YOLO11 pode ser adaptado para rotinas de treino personalizadas. A AIGym classe suporta diferentes tipos de pose, como pushup, pullup, e abworkout. Você pode especificar pontos-chave e ângulos para detectar exercícios específicos. Aqui está 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 detalhes sobre como definir argumentos, consulte o Argumentos AIGym seção. Essa flexibilidade permite que você monitore vários exercícios e personalize rotinas com base em suas metas de fitness.

Como posso salvar a saída de monitoramento de treino usando Ultralytics YOLO11?

Para salvar a saída de monitoramento do treino, você pode modificar o código para incluir um escritor de vídeo que salva os frames 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 monitorado em um arquivo de saída, permitindo que você revise seu desempenho de treino mais tarde ou compartilhe com treinadores para obter feedback adicional.



📅 Criado há 1 ano ✏️ Atualizado há 1 mês

Comentários