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 TreinosMonitoramento de Treinos
Contagem de FlexõesContagem de Flexões
Contagem de FlexõesContagem 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:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
up_anglefloat145.0Limite de ângulo para a pose 'para cima'.
down_anglefloat90.0Limite de ângulo para a pose 'para baixo'.
kptslist[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:

ArgumentoTipoPadrãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml.
conffloat0.3Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.5Define o limite de Intersecção sobre União (IoU) para filtrar detecções sobrepostas.
classeslistNoneFiltra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica 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:

ArgumentoTipoPadrãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados em uma janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_widthNone or intNoneEspecifica 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_confboolTrueExibe 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_labelsboolTrueExibe 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 Ultralytics YOLO11, você pode utilizar os recursos de estimativa de pose para track 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 sua forma de 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, conforme 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.
  • Conquista 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?

O Ultralytics YOLO11 é altamente preciso na detecção e no rastreamento de exercícios devido às suas capacidades 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 e a arquitetura robusta do modelo garantem alta precisão e confiabilidade. Para exemplos do mundo real, consulte a seção de aplicações no 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á 2 anos ✏️ Atualizado há 6 meses
glenn-jocherRizwanMunawarMatthewNoyceUltralyticsAssistantambitious-octopusIvorZhu331

Comentários