Visão geral de conjuntos de dados para classificação de imagens

Estrutura de 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 sob o diretório root para facilitar processos adequados de treinamento, teste e validação opcional. Esta estrutura inclui diretórios separados para as fases de treinamento (train) e teste (test), com um diretório opcional para validação (val).

Cada um desses diretórios deve conter um subdiretório para cada classe no conjunto de dados. Os subdiretórios recebem o nome da classe correspondente e contêm todas as imagens dessa classe. Certifique-se de que cada arquivo de imagem seja nomeado de forma exclusiva e 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 da pasta deve ser assim:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- 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 possa aprender efetivamente com classes bem organizadas durante a fase de treinamento e avaliar o desempenho com precisão durante as fases de teste e validação.

Utilização

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
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) fará o download e o cache dos dados automaticamente na primeira vez que você os referenciar. Aponte data para um caminho de pasta apenas quando você tiver preparado um conjunto de dados personalizado.

Datasets Suportados

A Ultralytics suporta os seguintes conjuntos de dados com download automático:

  • Caltech 101: Um conjunto de dados contendo imagens de 101 categorias de objetos para tarefas de classificação de imagem.
  • Caltech 256: Uma versão estendida do Caltech 101 com 256 categorias de objetos e imagens mais desafiadoras.
  • CIFAR-10: Um conjunto de dados de 60 mil imagens coloridas 32x32 em 10 classes, com 6 mil imagens por classe.
  • CIFAR-100: Uma versão estendida do CIFAR-10 com 100 categorias de objetos e 600 imagens por classe.
  • Fashion-MNIST: Um conjunto de dados que consiste em 70.000 imagens em tons de cinza de 10 categorias de moda para tarefas de classificação de imagens.
  • ImageNet: Um conjunto de dados em larga escala para detecção de objetos e classificação de imagens com mais de 14 milhões de imagens e 20.000 categorias.
  • ImageNet-10: Um subconjunto menor do ImageNet com 10 categorias para experimentação e testes mais rápidos.
  • Imagenette: Um subconjunto menor do ImageNet que contém 10 classes facilmente distinguíveis para treinamento e teste mais rápidos.
  • Imagewoof: Um subconjunto mais desafiador do ImageNet contendo 10 categorias de raças de cães para tarefas de classificação de imagens.
  • MNIST: Um conjunto de dados de 70.000 imagens em tons de cinza de dígitos escritos à mão para tarefas de classificação de imagens.
  • MNIST160: As primeiras 8 imagens de cada categoria MNIST do conjunto de dados MNIST. O conjunto de dados contém 160 imagens no total.

Adicionando seu próprio dataset

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

FAQ

Como estruturo meu conjunto de dados para tarefas de classificação YOLO?

Para estruturar seu conjunto de dados para tarefas de classificação Ultralytics YOLO, você deve seguir um formato específico de diretório dividido. Organize seu conjunto de dados em diretórios separados para train, test e, opcionalmente, val. Cada um desses diretórios deve conter subdiretórios nomeados após cada classe, com as imagens correspondentes dentro. Isso facilita processos suaves de treinamento e avaliação. Como exemplo, considere o formato do conjunto de dados CIFAR-10:

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

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

Quais conjuntos de dados são suportados pelo Ultralytics YOLO para classificação de imagens?

O Ultralytics YOLO suporta o 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 de forma a facilitar o uso com YOLO. A página de cada conjunto de dados fornece mais detalhes sobre sua estrutura e aplicações.

Como adiciono meu próprio conjunto de dados para classificação de imagens YOLO?

Para usar seu próprio conjunto de dados com o Ultralytics YOLO, certifique-se de que ele siga o formato de diretório especificado necessário para a tarefa de classificação, com diretórios separados para train, test e, opcionalmente, val, e subdiretórios para cada classe contendo as respectivas imagens. Uma vez que seu conjunto de dados esteja estruturado corretamente, aponte o argumento data para o diretório raiz do seu conjunto de dados ao inicializar o script de treinamento. Aqui está um exemplo em Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

Mais detalhes podem ser encontrados na seção Adicionando seu próprio conjunto de dados.

Por que devo usar o Ultralytics YOLO para classificação de imagens?

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

  • Modelos Pré-treinados: Carregue modelos pré-treinados como yolo26n-cls.pt para acelerar seu processo de treinamento.
  • Facilidade de uso: API simples e comandos CLI para treinamento e avaliação.
  • Alto Desempenho: Precisão e velocidade de ponta, ideal para aplicações em tempo real.
  • Suporte para Múltiplos Conjuntos de Dados: Integração perfeita com vários conjuntos de dados populares como CIFAR-10, ImageNet e muito mais.
  • Comunidade e Suporte: Acesso a documentação extensa e uma comunidade ativa para solução de problemas e melhorias.

Para obter insights adicionais e aplicações no mundo real, você pode explorar o Ultralytics YOLO.

Como posso treinar um modelo usando o Ultralytics YOLO?

Treinar um modelo usando o Ultralytics YOLO pode ser feito facilmente tanto em Python quanto via CLI. Aqui está um exemplo:

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

Estes exemplos demonstram o processo direto de treinar um modelo YOLO usando qualquer uma das abordagens. Para mais informações, visite a seção Uso e a página Treinar para tarefas de classificação.

Comentários