Ultralytics YOLO27:
Get Started

Visão geral dos conjuntos de dados de classificação de imagens#

Estrutura do conjunto de dados para tarefas de classificação YOLO#

Para tarefas de classificação YOLO da Ultralytics, o conjunto de dados deve ser organizado em uma estrutura específica de diretórios divididos dentro do diretório root. Essa estrutura inclui um diretório train e um diretório val (valid e validation também são aceitos), além de um diretório test opcional. Se não houver um diretório de validação, o diretório test será usado para validação. Se a raiz não tiver nenhum diretório train, mas contiver uma pasta por classe, a Ultralytics dividirá automaticamente as imagens em 80/20 e as colocará em um novo diretório <root>_split, com os subdiretórios train e val.

Cada um desses diretórios deve conter um subdiretório para cada classe do conjunto de dados. Os subdiretórios recebem o nome da classe correspondente e contêm todas as imagens dessa classe. Verifique se cada arquivo de imagem tem um nome exclusivo e está armazenado em um formato comum, como JPEG ou PNG.

Exemplo de estrutura de pastas#

Considere o conjunto de dados CIFAR-10 como exemplo. A estrutura de pastas deve ser semelhante a esta:

cifar10/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/ (optional)
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

Essa abordagem estruturada garante que o modelo aprenda com eficiência a partir de classes bem organizadas durante o treinamento e avalie o desempenho com precisão durante as etapas de teste e validação.

Uso#

Exemplo
from ultralytics import YOLO

# Carregar um modelo
model = YOLO("yolo26n-cls.pt")  # carregue um modelo pré-treinado (recomendado para treinamento)

# Treinar o modelo
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
Dica

A maioria dos nomes de conjuntos de dados integrados (por exemplo, cifar10, imagenette ou mnist160) baixa e armazena os dados em cache automaticamente quando você os referencia pela primeira vez. Aponte data para o caminho de uma pasta somente quando tiver organizado um conjunto de dados personalizado.

Conjuntos de dados compatíveis#

A Ultralytics oferece suporte aos seguintes conjuntos de dados com download automático. A maioria deles também está hospedada na Plataforma Ultralytics, onde você pode explorar as imagens e anotações, ver as estatísticas do conjunto de dados e cloná-los para treinamento na nuvem.

  • Caltech 101: conjunto de dados com imagens de 101 categorias de objetos para tarefas de classificação de imagens.
  • Caltech 256: uma versão ampliada do Caltech 101, com 256 categorias de objetos e imagens mais desafiadoras.
  • CIFAR-10: um conjunto de dados com 60 mil imagens coloridas de 32x32, distribuídas por 10 classes, com 6 mil imagens por classe.
  • CIFAR-100: uma versão ampliada do CIFAR-10, com 100 categorias de objetos e 600 imagens por classe.
  • Fashion-MNIST: um conjunto de dados com 70.000 imagens em escala de cinza de 10 categorias de moda para tarefas de classificação de imagens.
  • ImageNet: benchmark de classificação de imagens ImageNet-1k (ILSVRC-2012), com 1.000 classes, 1,28 milhão de imagens de treinamento e 50.000 imagens de validação.
  • ImageNet-10: um subconjunto menor do ImageNet, com 10 categorias, para experimentação e testes mais rápidos.
  • Imagenette: um subconjunto menor do ImageNet com 10 classes facilmente distinguíveis, para treinamento e testes mais rápidos.
  • Imagewoof: um subconjunto mais desafiador do ImageNet, com 10 categorias de raças de cães para tarefas de classificação de imagens.
  • MNIST: um conjunto de dados com 70.000 imagens em escala de cinza de dígitos manuscritos para tarefas de classificação de imagens.
  • MNIST160: as 8 primeiras imagens de cada dígito (0-9) das divisões de treinamento e teste do MNIST. O conjunto de dados contém 160 imagens no total.

Adicionar o seu próprio conjunto de dados#

Se você tem seu próprio conjunto de dados e quer usá-lo para treinar modelos de classificação com YOLO da Ultralytics, verifique se ele segue o formato especificado acima na seção "Estrutura do conjunto de dados" e, ao inicializar o script de treinamento, aponte o argumento data para o diretório do conjunto de dados.

Perguntas frequentes#

  • Para estruturar seu conjunto de dados para tarefas de classificação YOLO da Ultralytics, siga um formato específico de diretórios divididos. Organize o conjunto de dados em diretórios separados para train e val e, opcionalmente, test. Cada um desses diretórios deve conter subdiretórios com o nome de cada classe e as imagens correspondentes. Isso facilita os processos de treinamento e avaliação. Como exemplo, considere o formato do conjunto de dados CIFAR-10:

    cifar10/
    |-- train/
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...
    |-- val/
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...
    |-- test/ (optional)
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...

    Para mais detalhes, acesse a seção Estrutura do conjunto de dados para tarefas de classificação YOLO.

  • YOLO da Ultralytics oferece suporte ao download automático de vários conjuntos de dados para classificação de imagens, incluindo Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof e MNIST. Esses conjuntos de dados são estruturados para facilitar o uso com YOLO. A página de cada conjunto de dados fornece mais detalhes sobre sua estrutura e aplicações.

  • Para usar seu próprio conjunto de dados com YOLO da Ultralytics, verifique se ele segue o formato de diretórios exigido para a tarefa de classificação, com diretórios separados train e val (e, opcionalmente, test), além de subdiretórios para cada classe contendo as respectivas imagens. Quando o conjunto de dados estiver estruturado corretamente, aponte o argumento data para o diretório raiz do conjunto de dados ao inicializar o script de treinamento. Veja um exemplo em Python:

    from ultralytics import YOLO
    
    # Carregar um modelo
    model = YOLO("yolo26n-cls.pt")  # carregue um modelo pré-treinado (recomendado para treinamento)
    
    # Treinar o modelo
    results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

    Você encontra mais detalhes na seção Como adicionar seu próprio conjunto de dados.

  • YOLO da Ultralytics oferece vários benefícios para a classificação de imagens, incluindo:

    • Modelos pré-treinados: carregue modelos pré-treinados, como yolo26n-cls.pt, para dar início ao processo de treinamento.
    • Facilidade de uso: comandos simples de API e CLI para treinamento e avaliação.
    • Alto desempenho: precisão e velocidade de ponta, ideais para aplicações em tempo real.
    • Suporte a vários conjuntos de dados: integração simples com diversos conjuntos de dados conhecidos, como CIFAR-10, ImageNet e outros.
    • Comunidade e suporte: acesso a documentação abrangente e a uma comunidade ativa para solucionar problemas e promover melhorias.

    Para mais informações e aplicações reais, explore YOLO da Ultralytics.

  • É fácil treinar um modelo usando YOLO da Ultralytics, tanto em Python quanto na CLI. Veja um exemplo:

    Exemplo
    from ultralytics import YOLO
    
    # Carregar um modelo
    model = YOLO("yolo26n-cls.pt")  # carrega um modelo pré-treinado
    
    # Treinar o modelo
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

    Esses exemplos demonstram como é simples treinar um modelo YOLO usando qualquer uma das abordagens. Para mais informações, visite a seção Uso e a página Treinamento para tarefas de classificação.

Comentários