Ultralytics YOLO27:

Monitorização de treinos com o Ultralytics YOLO26#

Open Workouts Monitoring In Colab

A monitorização de treinos através da estimativa de pose com o Ultralytics YOLO26 melhora a avaliação dos exercícios ao acompanhar 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 execução dos exercícios, acompanha as rotinas de treino e mede métricas de desempenho, otimizando as sessões de treino tanto para utilizadores como para treinadores.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

Vantagens da monitorização de treinos#

  • Desempenho otimizado: Personalização dos treinos com base nos dados de monitorização para obter melhores resultados.
  • Concretização de objetivos: Acompanha e ajusta os objetivos de condição física para obter progressos mensuráveis.
  • Personalização: Planos de treino personalizados com base nos dados individuais para maior eficácia.
  • Consciência da 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 definir objetivos realistas.

Aplicações no mundo real#

Monitorização de treinosMonitorização de treinos
Contagem de flexões com YOLO através da estimativa de poseContagem de elevações com YOLO através da estimativa de pose
Contagem de flexõesContagem de elevações

Monitoriza os treinos com YOLO26#

A solução AIGym executa a estimativa de pose e conta repetições medindo o ângulo formado por três pontos-chave à medida que um membro se move entre os limiares up_angle e down_angle. Escolhe os pontos-chave do exercício que pretendes acompanhar com kpts e, em seguida, executa a solução no teu vídeo através da API Python ou da CLI.

Monitorização de treinos com o 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]"

Mapa de pontos-chave#

Diagrama da ordem dos pontos-chave da estimativa de pose do YOLO

Argumentos de AIGym#

Eis uma tabela com os argumentos de AIGym:

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneCaminho para um ficheiro de modelo YOLO da Ultralytics.
up_anglefloat145.0Limiar do ângulo para a pose "up".
down_angleint90Limiar do ângulo para a pose "down".
kptslist[int]'[6, 8, 10]'Lista de três índices de pontos-chave usados para monitorizar exercícios. Estes pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, elevações, agachamentos e exercícios abdominais.
line_widthint2Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução.
verboseboolTrueAtiva o registo por fotograma da solução, incluindo a forma da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento permanece sempre silenciosa.

A solução AIGym também suporta vários parâmetros de acompanhamento de objetos:

ArgumentoTipoPredefiniçãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a utilizar. Opções integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Define o limiar de confiança para as deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de Interseção sobre a União (IoU) para filtrar deteções sobrepostas.
classeslistNoneFiltra os resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
devicestrNoneEspecifica o dispositivo para a inferência (por exemplo, cpu, cuda:0 ou 0). Permite selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo.
imgszint or tuple640Tamanho da imagem de inferência alvo: um inteiro para um quadrado ou um par (height, width). As formas são ajustadas para o passo do modelo.
max_detint300Número máximo de detecções mantidas por quadro antes do rastreamento, limitando os objetos que uma solução processa em cenas densas.
quantizeint or strNonePrecisão de inferência: 16 (FP16) ou 32/não definido (FP32) para modelos PyTorch e TorchScript; outros formatos computam na precisão que o artefato e o tempo de execução selecionam. Substitui a flag obsoleta half.

Além disso, podem ser aplicadas as seguintes definições de visualização:

ArgumentoTipoPredefiniçãoDescrição
showboolFalseSe True, apresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou os testes.
show_confboolTrueApresenta a pontuação de confiança de cada deteção junto à etiqueta. Permite compreender o grau de certeza do modelo em cada deteção.
show_labelsboolTrueApresenta etiquetas para cada deteção no resultado visual. Permite compreender imediatamente os objetos detetados.

Perguntas frequentes#

  • Para monitorizares os teus treinos com o Ultralytics YOLO26, podes utilizar as capacidades de estimativa de pose para acompanhar e analisar os principais pontos de referência e articulações do corpo em tempo real. Isto permite-te receber feedback instantâneo sobre a execução dos exercícios, contar repetições e medir métricas de desempenho. Podes começar por utilizar o código de exemplo fornecido para flexões, elevações 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 obteres mais opções de personalização e definições, consulta a secção AIGym na documentação.

  • A utilização do Ultralytics YOLO26 para a monitorização de treinos proporciona várias vantagens importantes:

    • Desempenho otimizado: Ao personalizares os treinos com base nos dados de monitorização, podes obter melhores resultados.
    • Concretização de objetivos: Acompanha e ajusta facilmente os objetivos de condição física para obter progressos mensuráveis.
    • Personalização: Obtém planos de treino personalizados com base nos teus dados individuais para uma eficácia ideal.
    • Consciência da saúde: Deteção precoce de padrões que indicam potenciais problemas de saúde ou excesso de treino.
    • Decisões informadas: Toma decisões baseadas em dados para ajustar as rotinas e definir objetivos realistas.

    Podes ver uma demonstração em vídeo no YouTube para observar estas vantagens em ação.

  • O Ultralytics YOLO26 é altamente preciso na deteção e no acompanhamento de exercícios graças às suas capacidades avançadas de estimativa de pose. Consegue acompanhar 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 elevada precisão e fiabilidade. Para veres exemplos do mundo real, consulta a secção de aplicações no mundo real na documentação, que apresenta a contagem de flexões e elevações.

  • Sim, o Ultralytics YOLO26 pode ser adaptado a rotinas de treino personalizadas. A classe AIGym deteta repetições de exercícios utilizando os argumentos up_angle, down_angle e kpts. Podes especificar pontos-chave e ângulos para detetar exercícios específicos. Aqui tens 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 obteres mais informações sobre a configuração dos argumentos, consulta a secção Argumentos AIGym. Esta flexibilidade permite-te monitorizar vários exercícios e personalizar as rotinas com base nos teus objetivos de condição física.

  • Para guardares o resultado da monitorização de treinos, podes modificar o código para incluir um gravador de vídeo que guarde os fotogramas processados. Eis 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-te rever mais tarde o teu desempenho no treino ou partilhá-lo com treinadores para obter feedback adicional.

Comentários