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:
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!
Pip instala comet_ml
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.
exportar COMET_API_KEY=exportar COMET_PROJECT_NAME= # Isto será predefinido para 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# 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 .
Vê um exemplo de uma execução concluída aqui.
Ou melhor ainda, experimenta tu mesmo neste caderno Colab.
Por predefinição, Comet regista os seguintes itens:
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
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
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
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
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
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
Podes pré-visualizar os dados diretamente na IU de Comet .
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.
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.
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://"
YOLOv5 também está integrado com o Optimizer do Comet, tornando simples a visualização de varreduras de hiperparâmetros na IU do Comet .
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
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:
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 .
Começa a tua viagem com o futuro da aprendizagem automática