Monitoramento de treinos com Ultralytics YOLO26#
O monitoramento de treinos por meio da estimativa de pose com Ultralytics YOLO26 aprimora a avaliação dos exercícios ao rastrear com precisão os principais pontos de referência e articulações do corpo em tempo real. Essa tecnologia fornece feedback instantâneo sobre a execução dos exercícios, acompanha as rotinas de treino e mede métricas de desempenho, otimizando as sessões de treinamento tanto para usuários quanto para treinadores.
Assista: Como monitorar exercícios físicos com Ultralytics YOLO | Agachamentos, extensão de pernas, flexões e muito mais
Vantagens do monitoramento de treinos#
- Desempenho otimizado: personalize os treinos com base nos dados de monitoramento para obter melhores resultados.
- Alcance de metas: acompanhe e ajuste metas de condicionamento físico para medir o progresso.
- Personalização: planos de treino personalizados com base em dados individuais para maior eficácia.
- Atenção à saúde: detecção precoce de padrões que indicam problemas de saúde ou excesso de treinamento.
- Decisões informadas: decisões baseadas em 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 barras |
Monitore treinos com YOLO26#
A solução AIGym executa estimativa de pose e conta repetições medindo o ângulo formado por três pontos-chave enquanto um membro se move entre os limites up_angle e down_angle. Escolha os pontos-chave do exercício que você quer acompanhar com kpts e execute a solução no vídeo usando a API do Python ou a CLI.
# 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]"Mapa de pontos-chave#

Argumentos de AIGym#
Aqui está uma tabela com os argumentos de AIGym:
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
model | str | None | Caminho para um arquivo de modelo Ultralytics YOLO. |
up_angle | float | 145.0 | Limiar de ângulo para a pose de 'subida'. |
down_angle | float | 90.0 | Limiar de ângulo para a pose de 'descida'. |
kpts | list[int] | [6, 8, 10] | Lista de três índices de pontos-chave usados para monitorar exercícios. Esses pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, em exercícios como flexões, barras, agachamentos e exercícios abdominais. |
line_width | int | 2 | Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução. |
verbose | bool | True | Ativa o registro por quadro da solução, com o formato da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento em si é sempre silenciosa. |
A solução AIGym também oferece suporte a vários parâmetros de rastreamento de objetos:
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Especifica o algoritmo de rastreamento a utilizar. Opções integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Define o limiar de confiança das deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de interseção sobre união (IoU) para filtrar deteções sobrepostas. |
classes | list | None | Filtra os resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
device | str | None | Especifica o dispositivo para a inferência (por exemplo, cpu, cuda:0 ou 0). Permite escolher entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo. |
imgsz | int or tuple | 640 | Tamanho da imagem de destino para a inferência: um número inteiro para uma imagem quadrada ou um par (height, width). As dimensões são ajustadas ao stride do modelo. |
max_det | int | 300 | Número máximo de deteções mantidas por fotograma antes do rastreamento, limitando os objetos que uma solução processa em cenas densas. |
quantize | int or str | None | Precisão de inferência: 16 (FP16) ou 32/unset (FP32) para modelos PyTorch e TorchScript fora da CPU; os outros formatos usam a precisão selecionada pelo artefato e pelo ambiente de execução. Substitui o argumento obsoleto half. |
Além disso, é possível aplicar as seguintes configurações de visualização:
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
show | bool | False | Se True, exibe as imagens ou os vídeos anotados em uma janela. Útil para obter feedback visual imediato durante o desenvolvimento ou os testes. |
show_labels | bool | True | Exibe os rótulos de cada detecção na saída visual. Permite identificar imediatamente os objetos detectados. |
Perguntas frequentes#
Para monitorar seus treinos usando Ultralytics YOLO26, você pode aproveitar 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 receber feedback instantâneo sobre a execução dos exercícios, contar repetições e medir 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) cap.release() cv2.destroyAllWindows()Para personalizar e ajustar as configurações, consulte a seção AIGym da documentação.
Usar Ultralytics YOLO26 para monitorar treinos 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 metas: acompanhe e ajuste facilmente suas metas de condicionamento físico para medir o progresso.
- Personalização: obtenha planos de treino personalizados com base nos seus dados individuais para alcançar a máxima eficácia.
- Atenção à saúde: detecção precoce de padrões que indicam possíveis problemas de saúde ou excesso de treinamento.
- Decisões informadas: tome decisões baseadas em 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 na prática.
Ultralytics YOLO26 é altamente preciso na detecção e no rastreamento de exercícios graças aos seus recursos de ponta de estimativa de pose. Ele rastreia com precisão os principais pontos de referência e articulações do corpo, fornecendo feedback em tempo real sobre a execução dos exercícios e as métricas de desempenho. Os pesos pré-treinados e a arquitetura robusta do modelo garantem alta precisão e confiabilidade. Para ver exemplos práticos, consulte a seção de aplicações no mundo real da documentação, que apresenta a contagem de flexões e barras.
Sim, Ultralytics YOLO26 pode ser adaptado para rotinas de treino personalizadas. A classe
AIGymdetecta repetições de exercícios usando os argumentosup_angle,down_angleekpts. Você pode especificar pontos-chave e ângulos para detectar exercícios específicos. Veja um exemplo de configuração:from ultralytics import solutions gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], # Para flexões — pode ser personalizado para outros exercícios )Para saber mais sobre como definir argumentos, consulte a seção Argumentos
AIGym. Essa flexibilidade permite monitorar vários exercícios e personalizar rotinas de acordo com suas metas de condicionamento físico.Para salvar os resultados do monitoramento de treinos, você pode modificar o código para incluir um gravador de vídeo que salve os quadros processados. Veja 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()Essa configuração grava o vídeo monitorado em um arquivo de saída, permitindo que você revise seu desempenho no treino mais tarde ou compartilhe o vídeo com treinadores para receber feedback adicional.

