Verificação verde
Link copiado para a área de transferência

Como utilizar Ultralytics YOLOv5 Com Comet

Descobre como Ultralytics faz parceria com Comet para Ultralytics YOLOv5 otimização de modelos: acompanhamento em tempo real, colaboração simplificada e reprodutibilidade melhorada.

Em Ultralytics fazemos parcerias comerciais com outras startups para nos ajudar a financiar a investigação e o desenvolvimento das nossas fantásticas ferramentas de código aberto, como YOLOv5, para as mantermos gratuitas para todos. Este artigo pode conter links de afiliados para esses parceiros.

O nosso mais recente parceiro, Cometconstrói ferramentas que ajudam os cientistas de dados, engenheiros e líderes de equipa a acelerar e otimizar a aprendizagem automática e os modelos de aprendizagem profunda.

Comet é uma ferramenta poderosa para rastrear seus modelos, conjuntos de dados e métricas. Até regista as variáveis do sistema e do ambiente para garantir a reprodutibilidade e a depuração sem problemas para cada execução. É como ter um assistente virtual que, por magia, sabe que notas tomar. Acompanha e visualiza as métricas do modelo em tempo real, guarda os hiperparâmetros, os conjuntos de dados e os pontos de verificação do modelo e visualiza as previsões do modelo com Comet Custom Panels!

Além disso, o Comet garante que nunca perdes o controlo do teu trabalho e facilita a partilha de resultados e a colaboração entre equipas de todas as dimensões!

YOLOv5 é um excelente ponto de partida para o teu percurso na visão computacional. Para melhorar o desempenho do teu modelo e prepará-lo para a produção, terás de registar os resultados numa ferramenta de acompanhamento de experiências como o Comet.

A integração de Comet e YOLOv5 oferece 3 características principais:

  • Características de registo automático e de registo personalizado
  • Guardar conjuntos de dados e modelos como artefactos para depuração e reprodutibilidade
  • Organizar a tua vista com os painéis personalizados do Comet


Este guia aborda a forma de utilizar YOLOv5 com Comet.

Então, estás pronto para acompanhar as tuas experiências em tempo real? Começa a trabalhar!

Começar a trabalhar

1. Instala Comet

Pip instala comet_ml

2. Configura as credenciais de Comet

Há duas maneiras de configurar Comet com YOLOv5.

Podes definir as tuas credenciais através de variáveis de ambiente ou criar um ficheiro .comet.config no teu diretório de trabalho e definir aí as tuas credenciais.


Variáveis de ambiente

exportar COMET_API_KEY=exportar COMET_PROJECT_NAME= # Isto será predefinido para 'yolov5'


Comet Ficheiro de configuração

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

3. Executa o guião de treino

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

É isso mesmo!

Comet registrará automaticamente seus hiperparâmetros, argumentos de linha de comando, treinamento e métricas de validação. Podes visualizar e analisar as tuas execuções na interface de utilizador Comet .

Experiências com YOLOv5 no Comet Dashboard

Experimenta tu mesmo!

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

Ou melhor ainda, experimenta tu mesmo neste caderno Colab.

Regista automaticamente

Por predefinição, Comet regista os seguintes itens:

Métricas

  • Perda de caixa, perda de objeto e perda de classificação para os dados de treino 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 das etiquetas das classes

Configura o registo Comet

Comet pode ser configurado para registar dados adicionais através de sinalizadores de linha de comandos passados para o script de treino ou variáveis de ambiente.

export COMET_MODE=online # Define se o Comet deve ser executado no modo 'online' ou 'offline'. A predefinição é onlineexport COMET_MODEL_NAME= #Define o nome para o modelo guardado. A predefinição é yolov5export COMET_LOG_CONFUSION_MATRIX=false # Define para desativar o registo de uma Matriz de Confusão Comet . Predefinições para trueexport COMET_MAX_IMAGE_UPLOADS= # Controla o número total de previsões de imagens a registar em Comet. A predefinição é 100.export COMET_LOG_PER_CLASS_METRICS=true # Define para registar métricas de avaliação para cada classe detectada no final do treino. Por defeito, falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Define isto se quiseres retomar o treino a partir de um ponto de verificação diferente. A predefinição é 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Define isto se pretenderes registar métricas de formação ao nível do lote. A predefinição é false.export COMET_LOG_PREDICTIONS=true # Define isto como false para desativar o registo das previsões do modelo

Registo de pontos de controlo com Comet

O registo de modelos em Comet está desativado por predefinição. Para o ativar, passa o argumento save-period para o script de treino. Isto irá guardar os pontos de verificação registados em Comet com base no valor do intervalo fornecido por save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Previsões do modelo de registo

Por predefinição, as previsões do modelo (imagens, etiquetas da verdade terrestre e caixas delimitadoras) serão registadas em Comet. Pode controlar a frequência das previsões registadas e as imagens associadas passando o argumento da linha de comandos bbox_interval. As previsões podem ser visualizadas usando o painel personalizado de deteção de objetos do site Comet. Essa frequência corresponde a cada Nth lote de dados por época. No exemplo abaixo, estamos registando cada 2º lote de dados para cada época.

Nota: O carregador de dados de validação YOLOv5 terá por defeito um tamanho de lote de 32, pelo que terás de definir a frequência de registo em conformidade.

Segue-se um exemplo de projeto que utiliza o Painel.

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 em Comet

Ao registar previsões de YOLOv5, Comet registará as imagens associadas a cada conjunto de previsões. Por defeito, é registado um máximo de 100 imagens de validação. Podes aumentar ou diminuir este número utilizando 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

Registo de métricas de nível de classe

Utiliza a variável de ambiente COMET_LOG_PER_CLASS_METRICS para registar mAP, precisão, recuperação 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

Carregamento de um conjunto de dados para Comet Artifacts

Se quiseres armazenar os teus dados utilizando Comet Artifacts, podes fazê-lo utilizando o sinalizador upload_dataset.

O conjunto de dados é organizado da forma descrita na documentaçãoYOLOv5 . 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

Podes encontrar o conjunto de dados carregado no separador Artefactos no teu Comet Workspace

Comet Separador Artefactos, YOLOv5

Podes pré-visualizar os dados diretamente na IU de Comet .

Pré-visualiza os dados em Comet, YOLOv5

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

Regista os metadados do ficheiro YAML em Comet, YOLOv5

Utilizar um artefacto guardado

Se quiser usar um conjunto de dados de Comet Artifacts, define a variável de caminho no arquivo yaml do conjunto de dados para apontar para o seguinte URL de recurso de artefato.

# conteúdo do caminho do ficheiro artifact.yaml: "comet:///:"

Depois, passa este ficheiro para o teu script de treino da seguinte forma:

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

Os artefactos também te permitem seguir a linhagem dos dados à medida que estes fluem através do teu fluxo de trabalho de Experimentação. Aqui podes ver um gráfico que te mostra todas as experiências que utilizaram o teu conjunto de dados carregado.

Comet fluxo de trabalho de experimentação, YOLOv5

Retomar um treino de corrida

Se a tua corrida de treino for interrompida por qualquer motivo, por exemplo, uma interrupção da ligação à Internet, podes retomar a corrida utilizando a bandeira de retoma e o Comet Caminho de corrida.

O percurso de execução tem o seguinte formato comet:////.

Isso restaurará a execução para o estado anterior à interrupção, o que inclui restaurar o modelo a partir de um ponto de verificação, restaurar todos os hiperparâmetros e argumentos de treinamento e fazer o download dos artefatos do conjunto de dados Comet se eles tiverem sido usados na execução original. A execução retomada continuará a registar a experiência existente na interface do utilizador Comet .

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

Pesquisa de hiperparâmetros com o optimizador Comet

YOLOv5 também está integrado com o Optimizer do Comet, tornando simples a visualização de varreduras de hiperparâmetros na IU do Comet .

Configuração de uma varredura do optimizador

Para configurar o Comet Optimizer, terás de criar um ficheiro JSON com as informações sobre a varredura.

Foi fornecido um ficheiro de exemplo 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 quiseres passar argumentos adicionais ao teu sweep, basta adicioná-los depois do script.

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

Executar uma varredura em paralelo

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

Comet fornece muitas formas de visualizar os resultados da tua varredura. Vê um projeto com uma varredura concluída aqui:

Visualiza os resultados da varredura em Comet, YOLOv5

Mantém-te em contacto

Começa a utilizar a nossa integração com Comet para gerir, visualizar e otimizar os teus modelos YOLOv5 - desde treinos até à monitorização da produção.

E, claro, junta-te à ComunidadeUltralytics - um local para colocar questões e partilhar sugestões sobre a formação, validação e implementação de YOLOv5 .

Logótipo do FacebookLogótipo do TwitterLogótipo do LinkedInSímbolo de ligação de cópia

Ler mais nesta categoria

Vamos construir juntos o futuro
da IA!

Começa a tua viagem com o futuro da aprendizagem automática