Ultralytics YOLO27:
Integrações

Como utilizar o Ultralytics YOLOv5 com a Comet

Descubra como a Ultralytics estabeleceu uma parceria com a Comet para otimizar modelos Ultralytics YOLOv5: acompanhamento em tempo real, colaboração simplificada e reprodutibilidade melhorada.

NUNuvola Ladi6 min read
Acompanhar o treino de modelos Ultralytics YOLOv5 com a Comet

Na Ultralytics, estabelecemos parcerias comerciais com outras startups para 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 cientistas de dados, engenheiros e líderes de equipas a acelerar e otimizar modelos de machine learning e deep learning.

O Comet é uma ferramenta poderosa para acompanhar os teus modelos, conjuntos de dados e métricas. Também regista as variáveis do sistema e do ambiente para garantir a reprodutibilidade e uma depuração eficiente em cada execução. É como ter um assistente virtual que sabe magicamente que notas guardar. Acompanha e visualiza as métricas dos modelos em tempo real, guarda os teus hiperparâmetros, conjuntos de dados e checkpoints dos modelos, e visualiza as previsões dos teus modelos com os 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 qualquer dimensão!

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

A integração do Comet com o YOLOv5 oferece 3 funcionalidades principais:

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

Este guia explica como usar o YOLOv5 com o Comet.

Então, estás pronto para acompanhar as tuas experiências em tempo real? Vamos começar!

Primeiros passos#

1. Instalar o Comet#

pip install comet_ml

2. Configurar as credenciais do Comet#

Existem duas formas de configurar o Comet com o 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#

export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

Ficheiro de configuração do Comet#

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

3. Executar o script de treino#

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

É tudo!

O Comet registará automaticamente os teus hiperparâmetros, argumentos da linha de comandos e métricas de treino e validação. Podes visualizar e analisar as tuas execuções na interface do Comet.

Experiências com YOLOv5 no painel do Comet

Experimenta por ti mesmo!#

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

Ou, melhor ainda, experimenta por ti mesmo neste Notebook do Colab.

Registo automático#

Por predefinição, o Comet registará os seguintes itens:

Métricas#

  • Perda da caixa, perda do objeto e perda de classificação para os dados de treino e validação
  • Métricas mAP_0.5 e 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 transmitidos através das opções da linha de comandos

Visualizações#

  • Matriz de confusão das previsões do modelo nos dados de validação
  • Gráficos das curvas PR e F1 para todas as classes
  • Correlograma dos rótulos das classes

Configurar o registo do Comet#

O Comet pode ser configurado para registar dados adicionais através de flags da linha de comandos transmitidas ao script de treino ou 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=<your model name> # 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=<number of allowed images to upload to Comet> # 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=<your checkpoint filename> # 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

Registar checkpoints com o Comet#

O registo de modelos no Comet está desativado por predefinição. Para o ativar, transmite o argumento save-period ao script de treino. Isto guardará no Comet os checkpoints registados 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

Registar previsões do modelo#

Por predefinição, as previsões do modelo (imagens, rótulos de verdade fundamental e caixas delimitadoras) serão registadas no Comet. Podes controlar a frequência das previsões registadas e das imagens associadas transmitindo o argumento da linha de comandos bbox_interval. As previsões podem ser visualizadas através do painel personalizado de deteção de objetos do Comet. Esta frequência corresponde a cada N.º lote de dados por época. No exemplo abaixo, registamos cada 2.º lote de dados de cada época.

Nota: o carregador de dados de validação do YOLOv5 usará por predefinição um tamanho de lote de 32, por isso terás de definir a frequência de registo em conformidade.

Aqui tens um exemplo de projeto que usa 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 no Comet#

Ao registar previsões do YOLOv5, o Comet registará as imagens associadas a cada conjunto de previsões. Por predefinição, são registadas no máximo 100 imagens de validação. Podes 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

Registar métricas ao nível da classe#

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

Carregar um conjunto de dados para os artefactos do Comet#

Se quiseres armazenar os teus dados usando os Comet Artifacts, podes fazê-lo usando a flag upload_dataset.

O conjunto de dados é organizado da forma descrita na documentação do YOLOv5. O ficheiro yaml de configuração do conjunto de dados 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

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

Separador Comet Artifacts, YOLOv5

Podes pré-visualizar os dados diretamente na interface do Comet.

Pré-visualizar dados no Comet, YOLOv5

Os artefactos têm versões e também permitem adicionar metadados sobre o conjunto de dados. O Comet registará automaticamente os metadados do ficheiro yaml do teu conjunto de dados.

Registar metadados do ficheiro YAML no Comet, YOLOv5

Usar um artefacto guardado#

Se quiseres usar um conjunto de dados dos Comet Artifacts, define a variável path no teu ficheiro yaml do conjunto de dados para apontar para o seguinte URL do recurso Artifact.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

Em seguida, transmite este ficheiro ao 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 permitem acompanhar a linhagem dos dados à medida que estes passam pelo teu fluxo de trabalho de experimentação. Aqui podes ver um grafo que mostra todas as experiências que usaram o teu conjunto de dados carregado.

Fluxo de trabalho de experimentação do Comet, YOLOv5

Retomar uma execução de treino#

Se a tua execução de treino for interrompida por qualquer motivo, por exemplo, devido a uma ligação à Internet interrompida, podes retomá-la usando a flag resume e o Comet Run Path.

O Run Path tem o seguinte formato comet://<your workspace name>/<your project name>/<experiment id>.

Isto restaurará a execução ao estado anterior à interrupção, incluindo a restauração do modelo a partir de um checkpoint, de todos os hiperparâmetros e argumentos de treino, e a transferência dos Comet dataset Artifacts, caso tenham sido usados na execução original. A execução retomada continuará a registar dados na Experiment existente na interface do Comet.

python train.py \
  --resume "comet://<your run path>"

Pesquisa de hiperparâmetros com o Comet Optimizer#

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

Configurar uma varredura do Optimizer#

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 train.py. Se quiseres transmitir argumentos adicionais à tua varredura, 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 <num_workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json

O Comet oferece várias formas de visualizar os resultados da tua varredura. Vê aqui um projeto com uma varredura concluída:

Visualizar resultados da varredura no Comet, YOLOv5

Mantém-te em contacto#

Começa a usar a nossa integração com o Comet para gerir, visualizar e otimizar os teus modelos YOLOv5 — desde as execuções de treino até à monitorização em produção.

E, claro, junta-te à Comunidade Ultralytics — um espaço para fazer perguntas e partilhar dicas sobre treino, validação e implementação do YOLOv5.

Explore solutions

Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em insights em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão para o monitoramento aéreo com os modelos do Ultralytics YOLO. Potencializa drones, fluxos de trabalho aeroespaciais, conservação ambiental e indústrias geoespaciais com soluções de visão computacional.
Saiba mais

Protege cada local com os modelos do Ultralytics YOLO. A IA de visão alimenta monitoramento de perímetro, detecção de ameaças, reconhecimento de placas e segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Dê mais inteligência às suas máquinas com os modelos Ultralytics YOLO. A IA de visão na robótica permite a navegação autónoma, a perceção, o rastreamento de objetos e o controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Simplifique a logística com os modelos Ultralytics YOLO. A IA de visão permite a inspeção de encomendas, a triagem, o rastreamento de veículos e a monitorização da segurança dos armazéns em tempo real.
Saiba mais
Visão computacional no retalho

Visão computacional no retalho

Reinvente o retalho com os modelos Ultralytics YOLO. A IA de visão permite o rastreamento do inventário, a monitorização de prateleiras, a gestão de filas e informações mais inteligentes sobre os clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Cria soluções de saúde com modelos Ultralytics YOLO. A Vision AI na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitorização de pacientes.
Saiba mais
Visão computacional na produção

Visão computacional na produção

Otimiza a produção com modelos Ultralytics YOLO. A Vision AI impulsiona o controlo de qualidade, a deteção de defeitos, a conformidade com EPI e a automatização das linhas de montagem.
Saiba mais
Visão computacional no setor automóvel

Visão computacional no setor automóvel

Aplique visão computacional no setor automóvel com modelos Ultralytics YOLO. A IA de visão melhora a segurança rodoviária, a assistência ao condutor e a automatização de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão para a agricultura inteligente com modelos Ultralytics YOLO. Potencie a monitorização das culturas, o acompanhamento do gado e a agricultura de precisão para obter colheitas maiores e mais inteligentes.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em insights em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão para o monitoramento aéreo com os modelos do Ultralytics YOLO. Potencializa drones, fluxos de trabalho aeroespaciais, conservação ambiental e indústrias geoespaciais com soluções de visão computacional.
Saiba mais

Protege cada local com os modelos do Ultralytics YOLO. A IA de visão alimenta monitoramento de perímetro, detecção de ameaças, reconhecimento de placas e segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Dê mais inteligência às suas máquinas com os modelos Ultralytics YOLO. A IA de visão na robótica permite a navegação autónoma, a perceção, o rastreamento de objetos e o controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Simplifique a logística com os modelos Ultralytics YOLO. A IA de visão permite a inspeção de encomendas, a triagem, o rastreamento de veículos e a monitorização da segurança dos armazéns em tempo real.
Saiba mais
Visão computacional no retalho

Visão computacional no retalho

Reinvente o retalho com os modelos Ultralytics YOLO. A IA de visão permite o rastreamento do inventário, a monitorização de prateleiras, a gestão de filas e informações mais inteligentes sobre os clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Cria soluções de saúde com modelos Ultralytics YOLO. A Vision AI na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitorização de pacientes.
Saiba mais
Visão computacional na produção

Visão computacional na produção

Otimiza a produção com modelos Ultralytics YOLO. A Vision AI impulsiona o controlo de qualidade, a deteção de defeitos, a conformidade com EPI e a automatização das linhas de montagem.
Saiba mais
Visão computacional no setor automóvel

Visão computacional no setor automóvel

Aplique visão computacional no setor automóvel com modelos Ultralytics YOLO. A IA de visão melhora a segurança rodoviária, a assistência ao condutor e a automatização de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão para a agricultura inteligente com modelos Ultralytics YOLO. Potencie a monitorização das culturas, o acompanhamento do gado e a agricultura de precisão para obter colheitas maiores e mais inteligentes.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em insights em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão para o monitoramento aéreo com os modelos do Ultralytics YOLO. Potencializa drones, fluxos de trabalho aeroespaciais, conservação ambiental e indústrias geoespaciais com soluções de visão computacional.
Saiba mais

Protege cada local com os modelos do Ultralytics YOLO. A IA de visão alimenta monitoramento de perímetro, detecção de ameaças, reconhecimento de placas e segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Dê mais inteligência às suas máquinas com os modelos Ultralytics YOLO. A IA de visão na robótica permite a navegação autónoma, a perceção, o rastreamento de objetos e o controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Simplifique a logística com os modelos Ultralytics YOLO. A IA de visão permite a inspeção de encomendas, a triagem, o rastreamento de veículos e a monitorização da segurança dos armazéns em tempo real.
Saiba mais
Visão computacional no retalho

Visão computacional no retalho

Reinvente o retalho com os modelos Ultralytics YOLO. A IA de visão permite o rastreamento do inventário, a monitorização de prateleiras, a gestão de filas e informações mais inteligentes sobre os clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Cria soluções de saúde com modelos Ultralytics YOLO. A Vision AI na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitorização de pacientes.
Saiba mais
Visão computacional na produção

Visão computacional na produção

Otimiza a produção com modelos Ultralytics YOLO. A Vision AI impulsiona o controlo de qualidade, a deteção de defeitos, a conformidade com EPI e a automatização das linhas de montagem.
Saiba mais
Visão computacional no setor automóvel

Visão computacional no setor automóvel

Aplique visão computacional no setor automóvel com modelos Ultralytics YOLO. A IA de visão melhora a segurança rodoviária, a assistência ao condutor e a automatização de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão para a agricultura inteligente com modelos Ultralytics YOLO. Potencie a monitorização das culturas, o acompanhamento do gado e a agricultura de precisão para obter colheitas maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

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