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

Descubra como a 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, Comet, cria 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.
O 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 personalizados do Comet!
Além disso, o Comet garante que nunca perde o controlo do seu trabalho e facilita a partilha de resultados e a colaboração entre equipas de todas as dimensões!
O YOLOv5 é um ótimo ponto de partida para a sua jornada de 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 do Comet e do YOLOv5 oferece 3 caraterísticas principais:
Este guia explica como utilizar o YOLOv5 com o Comet.
Então, pronto para acompanhar as suas experiências em tempo real? Vamos lá começar!
Pip install comet_ml
Existem duas formas de configurar o Comet com o YOLOv5.
Pode definir as suas credenciais através de variáveis de ambiente ou criar um ficheiro .comet.config no seu diretório de trabalho e definir aí as suas credenciais.
export COMET_API_KEY=export COMET_PROJECT_NAME= # A predefinição será 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Treinar YOLOv5s em COCO128 para 5 épocasspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
É isso mesmo!
O 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 do Comet.
Veja um exemplo de uma execução concluída aqui.
Ou melhor ainda, experimente-o você mesmo neste caderno Colab.
Por predefinição, o Comet regista os seguintes itens:
O 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 em modo 'online' ou 'offline'. A predefinição é onlineexport COMET_MODEL_NAME= #Definir o nome do modelo guardado. Por defeito, yolov5export COMET_LOG_CONFUSION_MATRIX=false # Definir para desativar o registo de uma Matriz de Confusão do Comet. Por defeito, trueexport COMET_MAX_IMAGE_UPLOADS= # Controla o número total de previsões de imagens a registar no Comet. A predefinição é 100.export COMET_LOG_PER_CLASS_METRICS=true # Definir para registar métricas de avaliação para cada classe detectada no final do treino. Por defeito, falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Defina isto se quiser retomar a formação a partir de um ponto de controlo diferente. A predefinição é 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Defina esta opção se pretender registar as métricas de formação ao nível do lote. A predefinição é false.export COMET_LOG_PREDICTIONS=true # Defina esta opção como false para desativar o registo das previsões do modelo
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 coco128.yaml \
--weights yolov5s.pt \
--save-period 1
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_interval. 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 do YOLOv5 utiliza por defeito um tamanho de lote de 32, pelo que terá de definir a frequência de registo em conformidade.
Eis 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
Ao registar previsões do YOLOv5, o 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_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
Utilize 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
Se pretender armazenar os seus dados utilizando artefactos Comet, pode fazê-lo utilizando o sinalizador upload_dataset.
O conjunto de dados é organizado da forma descrita na documentação do YOLOv5. O ficheiro yaml de configuração do dataset deve seguir o mesmo formato do ficheiro coco128.yaml.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset
Pode encontrar o conjunto de dados carregado no separador Artefactos no seu Comet Workspace
Pode pré-visualizar os dados diretamente na IU do Comet.
Os artefactos são versionados e também suportam a adição de metadados sobre o conjunto de dados. O Comet registará automaticamente os metadados do seu ficheiro yaml do conjunto de dados.
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 artifact.yaml: "comet:///::"
Em seguida, passe este ficheiro para o seu script de formação da seguinte forma:
python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt
Os artefactos também lhe permitem seguir 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.
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 do 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 de artefatos do conjunto de dados do Comet, caso tenham sido usados na execução original. A execução retomada continuará a registar a experiência existente na IU do Comet.
python train.py \--resume "comet://"
O YOLOv5 também está integrado no Optimizador do Comet, tornando simples a visualização de varrimentos de hiperparâmetros na IU do Comet.
Para configurar o Comet Optimizer, terá 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 desejar passar argumentos adicionais ao seu 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
comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"
O Comet fornece muitas formas de visualizar os resultados da sua varredura. Veja um projeto com uma varredura concluída aqui:
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 à Comunidade Ultralytics - um local para colocar questões e partilhar dicas sobre a formação, validação e implementação do YOLOv5.