Yolo Vision Shenzhen
Shenzhen
Junte-se agora

Como utilizar o Ultralytics YOLOv5 com o Comet

Equipa Ultralytics

Leitura de 5 minutos

11 de outubro de 2022

Descubra como Ultralytics se associa à Comet para a otimização do modelo Ultralytics YOLOv5 : acompanhamento em tempo real, colaboração simplificada e reprodutibilidade melhorada.

Na Ultralytics , estabelecemos 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 o YOLOv5, para as manter gratuitas para todos. Este artigo pode conter links de afiliados para esses parceiros.

O nosso mais recente parceiro, Cometcria 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 acompanhar os 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 guardar. Acompanhe e visualize as métricas do modelo em tempo real, salve seus hiperparâmetros, conjuntos de dados e pontos de verificação do modelo e visualize as previsões do modelo com os painéis personalizadosComet !

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

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

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

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


Este guia explica como utilizar YOLOv5 com o Comet.

Então, pronto para track as suas experiências em tempo real? Vamos lá começar!

Começando

1. Instalar Comet

Pip install comet

2. Configurar as credenciais Comet

Há duas maneiras de configurar Comet com o YOLOv5.

Pode definir as suas credenciais através de variáveis de ambiente ou criar um ficheirocomet.config no seu diretório de trabalho e definir aí as suas credenciais.


Variáveis de Ambiente

export COMET COMET# A predefinição seráyolov5'


Ficheiro de configuração Comet

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

3. Execute o Script de Treinamento

# Treinar YOLOv5s em COCO128 para 5 épocasspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt

É isso mesmo!

Comet registará automaticamente os hiperparâmetros, os argumentos da linha de comandos, as métricas de formação e validação. É possível visualizar e analisar suas execuções na interface do usuário Comet .

Experiências com o YOLOv5 no Comet Dashboard

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 predefinição, Comet regista os seguintes itens:

Métricas

  • Box Loss, Object Loss e Classification Loss para os dados de treinamento e validação
  • métricas mAP.5, mAP.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 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# Define se Comet deve ser executado em modo 'online' ou 'offline'. A predefinição é onlineexport COMET#Definir o nome do modelo guardado. Por defeito, yolov5export COMET# Definir para desativar o registo de uma Matriz de Confusão Comet . Por defeito, trueexport COMET# Controla o número total de previsões de imagens a registar no Comet. A predefinição é 100.export COMET# Definir para registar métricas de avaliação para cada classe detectada no final do treino. Por defeito, falseexport COMET# Defina isto se quiser retomar a formação a partir de um ponto de controlo diferente. A predefinição é 'last.pt'export COMET# Defina esta opção se pretender registar as métricas de formação ao nível do lote. A predefinição é false.export COMET# Defina esta opção como false para desativar o registo das previsões do modelo

Registo de pontos de controlo com o Comet

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

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128yaml \

--weights yolov5s.pt \

--save-period 1

Registrando Previsões do Modelo

Por predefinição, as previsões do modelo (imagens, etiquetas da verdade terrestre e caixas delimitadoras) serão registadas no Comet. É possível controlar a frequência das previsões registradas e as imagens associadas passando o argumento da linha de comando bbox. As previsões podem ser visualizadas usando o painel personalizado de deteção de objetos do Comet. Essa frequência corresponde a cada N-ésimo lote de dados por época. No exemplo abaixo, estamos a registar cada 2º lote de dados para cada época.

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

Aqui está um projeto de exemplo usando o Panel.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 2

Controlo do número de imagens de previsão registadas no Comet

Ao registar previsões do YOLOv5, Comet registará as imagens associadas a cada conjunto de previsões. Por predefinição, é registado um máximo de 100 imagens de validação. É possível aumentar ou diminuir esse número usando a variável de ambiente COMET.

env COMET train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 1

Registrando Métricas de Nível de Classe

Utilize a variável de ambiente COMET para registar mAP, precisão, recuperação e f1 para cada classe.

env COMET python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt

Carregamento de um conjunto de dados para o Comet Artifacts

Se pretender armazenar os seus dados utilizando artefactosComet , pode fazê-lo utilizando o sinalizador upload_dataset.

O conjunto de dados é organizado da forma descrita na documentaçãoYOLOv5 . O ficheiro yaml de configuração do dataset deve seguir o mesmo formato do ficheiro coco128yaml .

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

Pode encontrar o conjunto de dados carregado no separador Artefactos no seu Comet Workspace

Separador de artefactos Comet , YOLOv5

Pode pré-visualizar os dados diretamente na IU Comet .

Pré-visualização de dados no Comet, YOLOv5

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

Metadados de registo do ficheiro YAML no Comet, YOLOv5

Usando um Artefato Salvo

Se pretender utilizar um conjunto de dados do Comet Artifacts, defina a variável path no ficheiro yaml do conjunto de dados para apontar para o seguinte URL do recurso Artifact.

# conteúdo do caminho do ficheiro artifactyaml :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 artifactyaml \--weights yolov5s.pt

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

Fluxo de trabalho de experimentação Comet , YOLOv5

Retomando um Treino

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

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

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

python train.py \--resumecomet://"

Pesquisa de hiperparâmetros com o optimizador Comet

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

Configurando um Optimizer Sweep

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

Um arquivo de exemplo foi fornecido em:

comet.json python comet.py comet"comet.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 comet.py comet"comet.json" \--save-period 1 bbox 1

Executando um Sweep em Paralelo

comet optimizer -j comet.py comet.json"

Comet fornece muitas formas de visualizar os resultados da sua varredura. Veja um projeto com uma varredura concluída aqui:

Visualizar os resultados da varredura no Comet, YOLOv5

Mantenha-se em contato

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

E, claro, junte-se à ComunidadeUltralytics - um local para colocar questões e partilhar dicas sobre a formação, validação e implementação YOLOv5 .

Vamos construir o futuro
da IA juntos!

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

Comece gratuitamente