Meet YOLO26: next-gen vision AI.

Logotipo do Comet ML para rastreamento de experimentos de machine learning

Link to this sectionYOLOv5 com Comet#

Este guia cobrirá como usar o YOLOv5 com o Comet, uma ferramenta poderosa para rastrear, comparar e otimizar experimentos de machine learning.

Link to this sectionSobre o Comet#

O Comet cria ferramentas que ajudam cientistas de dados, engenheiros e líderes de equipe a acelerar e otimizar modelos de machine learning e deep learning.

Rastreie e visualize métricas de modelo em tempo real, salve seus hiperparâmetros, datasets e checkpoints de modelo, e visualize as predições do seu modelo com os Comet Custom Panels! O Comet garante que você nunca perca o controle do seu trabalho e torna fácil compartilhar resultados e colaborar entre equipes de todos os tamanhos!

Link to this sectionComeçando#

Link to this sectionInstalar o Comet#

pip install comet_ml

Link to this sectionConfigurar 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:

Variáveis de Ambiente

export COMET_API_KEY=YOUR_API_KEY
export COMET_PROJECT_NAME=YOUR_COMET_PROJECT_NAME # This will default to 'yolov5'

Ou crie um arquivo .comet.config no seu diretório de trabalho e defina suas credenciais lá:

Arquivo de Configuração do Comet

[comet]
api_key=YOUR_API_KEY
project_name=YOUR_COMET_PROJECT_NAME # This will default to 'yolov5'

Link to this sectionExecutar o script de treinamento#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

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

Painel do Comet mostrando métricas de treinamento do YOLOv5 e rastreamento de experimentos

Link to this sectionExperimente um exemplo!#

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

Ou melhor ainda, experimente você mesmo neste Colab Notebook:

Open In Colab

Link to this sectionRegistrar automaticamente#

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

Link to this sectionMétricas#

  • Perda de Box, Perda de Objeto, Perda de Classificação 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

Link to this sectionParâmetros#

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

Link to this sectionVisualizações#

  • Matriz de Confusão das prediçõ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

Link to this sectionConfigurar o registro do Comet#

O Comet pode ser configurado para registrar dados adicionais através de sinalizadores de linha de comando passados para o script de treinamento ou através de variáveis de ambiente:

export COMET_MODE=online                           # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME="yolov5"                   # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false            # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=30                  # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true            # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME="last.pt" # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true          # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true                  # Set this to false to disable logging model predictions

Link to this sectionRegistrar checkpoints 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

Link to this sectionRegistrar predições de modelo#

Por padrão, as predições do modelo (imagens, rótulos ground truth e bounding boxes) serão registradas no Comet.

Você pode controlar a frequência das predições registradas e as imagens associadas passando o argumento de linha de comando bbox_interval. As predições podem ser visualizadas usando o Painel Personalizado de Detecção de Objetos do Comet. Esta 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 dataloader de validação do YOLOv5 terá como padrão um tamanho de lote de 32, então você terá que definir a frequência de registro de acordo.

Aqui está um projeto de exemplo usando o Painel

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

Link to this sectionControlar o número de Imagens de Predição registradas no Comet#

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

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

Link to this sectionRegistrar métricas de nível de classe#

Use a variável de ambiente COMET_LOG_PER_CLASS_METRICS para registrar mAP, precisão, recall, 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

Link to this sectionCarregar um dataset para o Comet Artifacts#

Se você quiser armazenar seus dados usando o Comet Artifacts, você pode fazer isso usando o sinalizador upload_dataset.

O dataset deve ser organizado conforme descrito na documentação do YOLOv5. O arquivo yaml de configuração do dataset 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 dataset carregado na aba Artifacts no seu Workspace do Comet:

Painel de artefatos do Comet para versionamento de dataset

Você pode visualizar os dados diretamente na interface do Comet:

Visualização de dataset do Comet e histórico de versões

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

Metadados de Artefato do Comet

Link to this sectionUsando um Artefato salvo#

Se você quiser usar um dataset do Comet Artifacts, defina a variável path no seu arquivo yaml de dataset para apontar para a seguinte URL de recurso de Artefato:

# Contents of artifact.yaml file
path: "comet://WORKSPACE_NAME/ARTIFACT_NAME:ARTIFACT_VERSION_OR_ALIAS"

Então passe este arquivo para o seu script de treinamento da seguinte maneira:

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 conforme 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 dataset carregado:

Gráfico de Linhagem de Artefato do Comet

Link to this sectionRetomando uma execução de treinamento#

Se sua execução de treinamento for interrompida por qualquer motivo, por exemplo, conexão de internet interrompida, você pode retomar a execução usando o sinalizador resume e o Caminho de Execução do Comet.

O Caminho de Execução tem o seguinte formato comet://WORKSPACE_NAME/PROJECT_NAME/EXPERIMENT_ID.

Isso restaurará a execução ao seu estado antes da 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 de dataset do Comet se eles foram usados na execução original. A execução retomada continuará registrando no Experimento existente na interface do Comet:

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

Link to this sectionBusca de hiperparâmetros com o Otimizador do Comet#

O YOLOv5 também está integrado ao Otimizador do Comet, tornando simples visualizar as varreduras de hiperparâmetros na interface do Comet.

Link to this sectionConfigurando uma varredura do Otimizador#

Para configurar o Otimizador do Comet, você terá que criar um arquivo JSON com as informações sobre a varredura. Um exemplo de arquivo 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

Link to this sectionVisualizando resultados#

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

Visualização de Hiperparâmetros do Comet

Colaboradores

Comentários