Sintonize na YOLO Vision 2025!
25 de setembro de 2025
10:00 — 18:00 BST
Evento híbrido
Yolo Vision 2024

Como Usar o YOLOv5 da Ultralytics com o Comet

Equipe Ultralytics

Leitura de 5 minutos

11 de outubro de 2022

Descubra como a Ultralytics faz parceria com a Comet para otimização do modelo Ultralytics YOLOv5: rastreamento em tempo real, colaboração otimizada e reprodutibilidade aprimorada.

Na Ultralytics, fazemos parcerias comerciais com outras startups para nos ajudar a financiar a pesquisa e o desenvolvimento de nossas incríveis ferramentas de código aberto, como o YOLOv5, para mantê-las gratuitas para todos. Este artigo pode conter links de afiliados para esses parceiros.

Nosso mais novo parceiro, Comet, cria ferramentas que ajudam cientistas de dados, engenheiros e líderes de equipe a acelerar e otimizar modelos de aprendizado de máquina e aprendizado profundo.

O Comet é uma ferramenta poderosa para rastrear seus modelos, conjuntos de dados e métricas. Ele até registra suas variáveis de sistema e ambiente para garantir a reprodutibilidade e a depuração tranquila de cada execução. É como ter um assistente virtual que magicamente sabe quais anotações manter. Rastreie e visualize as métricas do modelo em tempo real, salve seus hiperparâmetros, conjuntos de dados e checkpoints do modelo e visualize as previsões do seu modelo com os Painéis Personalizados do Comet!

Além disso, o Comet garante que você nunca perca o controle do seu trabalho e facilita o compartilhamento de resultados e a colaboração entre equipes de todos os tamanhos!

O YOLOv5 é um ótimo ponto de partida para sua jornada na visão computacional. Para melhorar o desempenho do seu modelo e prepará-lo para a produção, você precisará registrar os resultados em uma ferramenta de rastreamento de experimentos como o Comet.

A integração do Comet e YOLOv5 oferece 3 recursos principais:

  • Registo automático e funcionalidades de registo personalizadas
  • Salvando conjuntos de dados e modelos como artefatos para depuração e reprodutibilidade
  • Organizando sua visualização com os painéis personalizados da Comet


Este guia abordará como usar o YOLOv5 com o Comet.

Então, pronto para rastrear suas experiências em tempo real? Vamos começar!

Começando

1. Instalar o Comet

Pip install comet_ml

2. Configurar as Credenciais do Comet

Existem duas maneiras de configurar o Comet com o YOLOv5.

Você pode definir suas credenciais através de variáveis de ambiente ou criar um arquivo .comet.config no seu diretório de trabalho e definir suas credenciais lá.


Variáveis de Ambiente

export COMET_API_KEY=export COMET_PROJECT_NAME= # Isso usará 'yolov5' como padrão


Arquivo de Configuração do Comet

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. Execute o Script de Treinamento

# Treinar YOLOv5s no COCO128 para 5 épocaspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

É isso mesmo!

O Comet registrará automaticamente seus hiperparâmetros, argumentos de linha de comando, treinamento e métricas de validação. Você pode visualizar e analisar suas execuções na interface do usuário do Comet.

Experimentos com YOLOv5 no Painel Comet

Experimente Você Mesmo!

Confira um exemplo de uma execução concluída aqui.

Ou melhor ainda, experimente você mesmo neste Caderno Colab.

Registar Automaticamente

Por padrão, o Comet registrará os seguintes itens:

Métricas

  • Box Loss, Object Loss e Classification Loss para os dados de treinamento e validação
  • Métricas mAP_0.5, mAP_0.5:0.95 para os dados de validação
  • Precisão e Recall para os dados de validação

Parâmetros

  • Hiperparâmetros do Modelo
  • Todos os parâmetros passados através das opções da linha de comando

Visualizações

  • Matriz de Confusão das previsões do modelo nos dados de validação
  • Gráficos para as curvas PR e F1 em todas as classes
  • Correlograma dos Rótulos de Classe

Configurar o Comet Logging

O Comet pode ser configurado para registrar dados adicionais por meio de flags de linha de comando passadas para o script de treinamento ou variáveis de ambiente.

export COMET_MODE=online # Define se o Comet será executado no modo 'online' ou 'offline'. O padrão é onlineexport COMET_MODEL_NAME= #Define o nome para o modelo salvo. O padrão é yolov5export COMET_LOG_CONFUSION_MATRIX=false # Defina para desativar o registro de uma Matriz de Confusão do Comet. O padrão é trueexport COMET_MAX_IMAGE_UPLOADS= # Controla quantas predições de imagem totais registrar no Comet. O padrão é 100.export COMET_LOG_PER_CLASS_METRICS=true # Defina para registrar métricas de avaliação para cada classe detectada no final do treinamento. O padrão é falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Defina isso se você quiser retomar o treinamento de um checkpoint diferente. O padrão é 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Defina isso se você quiser registrar métricas de treinamento no nível do lote. O padrão é false.export COMET_LOG_PREDICTIONS=true # Defina isso como falso para desativar o registro de predições do modelo

Registar Pontos de Verificação Com o Comet

O registro de modelos no Comet está desativado por padrão. Para ativá-lo, passe o argumento save-period para o script de treinamento. Isso salvará os checkpoints registrados no Comet com base no valor de intervalo fornecido por save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Registrando Previsões do Modelo

Por padrão, as previsões do modelo (imagens, rótulos de verdade básica e caixas delimitadoras) serão registradas no Comet. Você pode controlar a frequência das previsões registradas e as imagens associadas passando o argumento de linha de comando bbox_interval. As previsões podem ser visualizadas usando o Painel Personalizado de Detecção de Objetos do Comet. Essa frequência corresponde a cada N-ésimo lote de dados por época. No exemplo abaixo, estamos registrando a cada 2º lote de dados para cada época.

Nota: O carregador de dados de validação YOLOv5 terá como padrão um tamanho de lote de 32, portanto, você terá que definir a frequência de registro de acordo.

Aqui está um projeto de exemplo usando o Panel.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2

Controlar o Número de Imagens de Previsão Registadas no Comet

Ao registrar as previsões do YOLOv5, o Comet registrará as imagens associadas a cada conjunto de previsões. Por padrão, um máximo de 100 imagens de validação são registradas. Você pode aumentar ou diminuir esse número usando a variável de ambiente COMET_MAX_IMAGE_UPLOADS.

env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1

Registrando Métricas de Nível de Classe

Use a variável de ambiente COMET_LOG_PER_CLASS_METRICS para registrar mAP, precisão, recall e f1 para cada classe.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt

Enviando um Conjunto de Dados para Artefatos Comet

Se quiser armazenar os seus dados usando Comet Artifacts, pode fazê-lo usando a flag upload_dataset.

O conjunto de dados é organizado da forma descrita na documentação do YOLOv5. O arquivo yaml de configuração do conjunto de dados deve seguir o mesmo formato do arquivo coco128.yaml.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset

Você pode encontrar o conjunto de dados carregado na aba Artifacts (Artefatos) no seu Comet Workspace.

Aba de Artefatos do Comet, YOLOv5

Você pode visualizar os dados diretamente na interface do usuário do Comet.

Visualizar dados no Comet, YOLOv5

Os artefatos são versionados e também suportam a adição de metadados sobre o conjunto de dados. O Comet registrará automaticamente os metadados do seu arquivo yaml do conjunto de dados.

Registar metadados do ficheiro YAML no Comet, YOLOv5

Usando um Artefato Salvo

Se quiser usar um conjunto de dados de Comet Artifacts, defina a variável de caminho no seu ficheiro yaml do conjunto de dados para apontar para o seguinte URL de recurso do Artifact.

# conteúdo do arquivo artifact.yaml path: "comet:///:"

Em seguida, passe este arquivo para o seu script de treinamento da seguinte forma:

python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt

Os artefatos também permitem rastrear a linhagem dos dados à medida que eles fluem pelo seu fluxo de trabalho de Experimentação. Aqui você pode ver um gráfico que mostra todos os experimentos que usaram seu conjunto de dados carregado.

Fluxo de trabalho de experimentação do Comet, YOLOv5

Retomando um Treino

Se a sua execução de treino for interrompida por qualquer motivo, por exemplo, interrupção da ligação à Internet, pode retomar a execução usando a flag resume e o Comet Run Path.

O Run Path tem o seguinte formato comet:////.

Isso restaurará a execução ao seu estado anterior à interrupção, o que inclui restaurar o modelo a partir de um checkpoint, restaurar todos os hiperparâmetros e argumentos de treinamento e baixar os artefatos do conjunto de dados Comet, se eles foram usados na execução original. A execução retomada continuará registrando no Experimento existente na interface do usuário do Comet.

python train.py \--resume "comet://"

Pesquisa de Hiperparâmetros com o Comet Optimizer

O YOLOv5 também está integrado ao Optimizer da Comet, facilitando a visualização de varreduras de hiperparâmetros na interface do usuário da Comet.

Configurando um Optimizer Sweep

Para configurar o Comet Optimizer, você terá que criar um arquivo JSON com as informações sobre a varredura.

Um arquivo de exemplo foi fornecido em:

utils/loggers/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

O script hpo.py aceita os mesmos argumentos que o train.py. Se você deseja passar argumentos adicionais para sua varredura, basta adicioná-los após o script.

python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1

Executando um Sweep em Paralelo

otimizador Comet -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

O Comet oferece muitas maneiras de visualizar os resultados de sua varredura. Dê uma olhada em um projeto com uma varredura concluída aqui:

Visualize os resultados da varredura no Comet, YOLOv5

Mantenha-se em contato

Comece a usar nossa integração com o Comet para gerenciar, visualizar e otimizar seus modelos YOLOv5, desde execuções de treinamento até o monitoramento da produção.

E, claro, junte-se à Comunidade Ultralytics – um lugar para fazer perguntas e partilhar dicas sobre treino, validação e implementação do YOLOv5.

Vamos construir o futuro
da IA juntos!

Comece sua jornada com o futuro do aprendizado de máquina

Comece gratuitamente
Link copiado para a área de transferência