Ultralytics YOLO27:
Integrações

Treine e monitorize remotamente o Ultralytics YOLOv5 utilizando ClearML

Explore a nossa parceria com a ClearML para uma experiência melhorada com o Ultralytics YOLOv5, com integração de ML simplificada, acompanhamento de experiências e muito mais.

NUNuvola Ladi7 min read
Treino e monitorização do YOLOv5 com ClearML

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 ClearML é o nosso mais recente parceiro: uma caixa de ferramentas de código aberto concebida para te poupar tempo.

Com a missão de acelerar a adoção de ML, o ClearML facilita a integração de ML em qualquer produto de Software e Hardware.

Esta integração torna ainda mais simples treinar um modelo YOLOv5 e utilizar o gestor de experiências do ClearML para o monitorizar automaticamente. Podes especificar facilmente um ID de versão de um conjunto de dados do ClearML como entrada de dados, que será utilizado automaticamente para treinar o teu modelo.

Leva o acompanhamento das tuas experiências ao nível seguinte#

  • Acompanha cada execução de treino do YOLOv5 no gestor de experiências.
  • Cria versões e acede facilmente aos teus dados de treino personalizados com a ferramenta integrada de controlo de versões de dados do ClearML.
  • Obtém o melhor mAP possível com a otimização de hiperparâmetros do ClearML.
  • Transforma o teu modelo YOLOv5 recém-treinado numa API com apenas alguns comandos, utilizando o ClearML Serving.

Cabe-te a ti decidir quantas destas ferramentas queres utilizar: podes limitar-te ao gestor de experiências ou encadeá-las todas numa pipeline impressionante.

Configurar tudo#

Para acompanhar as tuas experiências e dados, o ClearML precisa de comunicar com um servidor. Tens duas opções: inscrever-te gratuitamente no ClearML Hosted Service ou configurar o teu próprio servidor; consulta a documentação de implementação do ClearML Server.

Até o servidor é de código aberto, por isso, se estiveres a lidar com dados sensíveis, não há problema!

  1. Instala o pacote Python clearml: pip install clearml
  2. Liga o SDK do ClearML ao servidor criando credenciais (acede ao canto superior direito, a Settings → Workspace → Create new credentials), executa o comando abaixo e segue as instruções: clearml-init

E já está! Estás pronto para começar...

Treinar YOLOv5 com o ClearML#

Para ativar o acompanhamento de experiências do ClearML, basta instalar o pacote pip do ClearML.

pip install clearml

Isto permitirá a integração com o script de treino do YOLOv5. A partir de agora, cada execução de treino será capturada e armazenada pelo gestor de experiências ClearML. Se quiser alterar project_name ou task_name, consulte o nosso logger personalizado, onde pode fazê-lo: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Isto irá capturar:

  • Código-fonte + alterações não submetidas
  • Pacotes instalados
  • (Hiper)parâmetros
  • Ficheiros do modelo (utiliza --save-period n para guardar um checkpoint a cada n épocas)
  • Saída da consola
  • Escalares (mAP_0.5, mAP_0.5:0.95, precisão, revocação, perdas, taxas de aprendizagem, ...)
  • Informações gerais, como detalhes da máquina, tempo de execução, data de criação, etc.
  • Todos os gráficos produzidos, como o correlograma de etiquetas e a matriz de confusão
  • Imagens com caixas delimitadoras por época
  • Mosaico por época
  • Imagens de validação por época

Nada mau! Agora podemos visualizar todas estas informações na interface do ClearML para obter uma visão geral do progresso do treino. Adiciona colunas personalizadas à vista de tabela (como, por exemplo, mAP_0.5) para ordenares facilmente pelo modelo com melhor desempenho. Ou seleciona várias experiências e compara-as diretamente!

Há ainda mais coisas que podemos fazer com todas estas informações, como otimização de hiperparâmetros e execução remota, por isso continua a ler para saberes como!

Gestão de versões de conjuntos de dados#

De modo geral, criar versões dos teus dados separadamente do teu código é uma boa ideia e também facilita a obtenção da versão mais recente. Este repositório permite fornecer um ID de versão de um conjunto de dados e garante que os dados são obtidos caso ainda não estejam disponíveis. Além disso, este fluxo de trabalho também guarda o ID do conjunto de dados utilizado como parte dos parâmetros da tarefa, para saberes sempre com certeza quais dados foram utilizados em cada experiência!

Preparar o teu conjunto de dados#

O repositório YOLOv5 suporta vários conjuntos de dados diferentes através de ficheiros YAML que contêm as respetivas informações. Por predefinição, os conjuntos de dados são descarregados para a pasta ../datasets, relativamente à pasta raiz do repositório. Assim, se tiveres descarregado o conjunto de dados coco128 através do link no YAML ou com os scripts fornecidos pelo yolov5, obterás esta estrutura de pastas:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Mas pode ser qualquer conjunto de dados que pretendas. Podes utilizar o teu próprio conjunto, desde que mantenhas esta estrutura de pastas.

Em seguida, ⚠️copia o ficheiro YAML correspondente para a raiz da pasta do conjunto de dados⚠️. Estes ficheiros YAML contêm as informações de que o ClearML necessita para utilizar corretamente o conjunto de dados. Também podes criar o teu próprio ficheiro, claro; basta seguires a estrutura dos YAML de exemplo.

Basicamente, precisamos das seguintes chaves: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Carregar o teu conjunto de dados#

Para obter este conjunto de dados no ClearML como um conjunto de dados com controlo de versões, acede à pasta raiz do conjunto de dados e executa o seguinte comando:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

O comando clearml-data sync é, na verdade, um comando abreviado. Também podes executar estes comandos um após o outro:

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

Executar o treino utilizando um conjunto de dados do ClearML#

Agora que tens um conjunto de dados do ClearML, podes utilizá-lo facilmente para treinar modelos YOLOv5 personalizados.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Otimização de hiperparâmetros#

Agora que temos as nossas experiências e a versão dos dados, está na altura de vermos o que podemos criar a partir daqui!

Utilizando as informações do código, os pacotes instalados e os detalhes do ambiente, a própria experiência é agora completamente reproduzível. Na verdade, o ClearML permite clonar uma experiência e até alterar os seus parâmetros. Depois, podemos simplesmente voltar a executá-la automaticamente com estes novos parâmetros; é basicamente isto que o HPO faz!

Para executar localmente a otimização de hiperparâmetros, incluímos um script pré-criado para ti. Certifica-te apenas de que uma tarefa de treino foi executada pelo menos uma vez, para que esteja no gestor de experiências do ClearML; essencialmente, iremos cloná-la e alterar os seus hiperparâmetros.

Terás de preencher o ID desta tarefa modelo no script localizado em utils/loggers/clearml/hpo.py e depois executá-lo. Podes alterar task.execute_locally() para task.execute() para o colocar numa fila do ClearML e permitir que um agente remoto trabalhe nele.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Execução remota (avançado)#

Executar o HPO localmente é muito prático, mas e se quisermos executar as nossas experiências numa máquina remota? Talvez tenhas acesso a uma máquina com GPU muito potente no local ou algum orçamento para utilizar GPUs na cloud. É aqui que entra o ClearML Agent.

Vê aqui o que o agente consegue fazer:

Em resumo: cada experiência acompanhada pelo gestor de experiências contém informações suficientes para ser reproduzida noutra máquina (pacotes instalados, alterações não submetidas, etc.). Assim, um agente do ClearML faz exatamente isso: monitoriza uma fila em busca de tarefas recebidas e, quando encontra uma, recria o ambiente e executa-a, continuando a comunicar os escalares, gráficos, etc. ao gestor de experiências.

Podes transformar qualquer máquina (uma VM na cloud, uma máquina local com GPU ou o teu próprio portátil) num agente do ClearML executando simplesmente:

clearml-agent daemon --queue [--docker]

Clonar, editar e colocar em fila#

Com o nosso agente em execução, podemos atribuir-lhe algum trabalho. Lembras-te da secção sobre HPO, em que podíamos clonar uma tarefa e editar os hiperparâmetros? Também podemos fazê-lo a partir da interface!

🪄 Clona a experiência clicando nela com o botão direito

🎯 Edita os hiperparâmetros conforme pretenderes

⏳ Coloca a tarefa em qualquer uma das filas clicando nela com o botão direito

Executar uma tarefa remotamente#

Agora podes clonar uma tarefa, como explicámos acima, ou simplesmente marcar o teu script atual adicionando task.execute_remotely(); quando for executado, será colocado numa fila para o agente começar a trabalhar nele!

Para executar remotamente o script de treino do YOLOv5, basta adicionares esta linha ao script train.py, depois de o registador do ClearML ter sido instanciado:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

Tens alguma pergunta? Junta-te à nossa comunidade e deixa hoje a tua pergunta!

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