Ir para o conteúdo

Monitoramento de Treinos utilizando Ultralytics YOLO26

Abrir Monitoramento de Treinos no Colab

O monitoramento de treinos através da estimativa de pose com Ultralytics YOLO26 aprimora a avaliação de exercícios ao track com precisão pontos de referência e articulações corporais chave em tempo real. Essa tecnologia fornece feedback instantâneo sobre a forma de exercício, track rotinas de treino e mede métricas de desempenho, otimizando as sessões de treino 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 YOLO com estimativa de poseContagem YOLO com estimativa de pose
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="yolo26n-pose.pt",  # path to the YOLO26 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

Diagrama da ordem dos pontos-chave da estimativa YOLO

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]'[6, 8, 10]'Lista de três índices de keypoints usados para monitorar treinos. Esses keypoints correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, barras, agachamentos e 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.1Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.7Define 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_widthint or NoneNoneEspecifica 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 monitoro meus treinos utilizando o Ultralytics YOLO26?

Para monitorar seus treinos usando o Ultralytics YOLO26, você pode utilizar os recursos de estimativa de pose para rastrear e analisar marcos corporais e articulações chave em tempo real. Isso permite que você receba feedback instantâneo sobre sua forma de exercício, conte repetições e meça 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 YOLO26 para monitoramento de treinos?

O uso do Ultralytics YOLO26 para monitoramento de treinos oferece vários benefícios chave:

  • 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.

Quão preciso é o Ultralytics YOLO26 em detect e track exercícios?

O Ultralytics YOLO26 é altamente preciso em detect e track exercícios devido aos seus recursos de estimativa de pose de última geração. Ele pode rastrear com precisão marcos corporais e articulações chave, fornecendo feedback em tempo real sobre a forma de exercício e 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, confira a seção de aplicações no mundo real na documentação, que apresenta a contagem de flexões e barras.

Posso usar o Ultralytics YOLO26 para rotinas de treino personalizadas?

Sim, o Ultralytics YOLO26 pode ser adaptado para rotinas de treino personalizadas. O 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 do monitoramento de treinos utilizando o Ultralytics YOLO26?

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á 5 dias
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoyceUltralyticsAssistantambitious-octopusIvorZhu331

Comentários