Salta para o conteúdo

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

Estrutura do conjunto de dados para YOLO Tarefas de classificação

Para Ultralytics YOLO tarefas de classificação, o conjunto de dados deve ser organizado numa estrutura específica de diretório dividido sob o root para facilitar a formação adequada, os testes e os processos de validação opcionais. Esta estrutura inclui directórios separados para a formação (train) e testes (test), com um diretório opcional para validação (val).

Cada uma destas directorias deve conter uma subdiretoria para cada classe no conjunto de dados. As subdirectorias têm o nome da classe correspondente e contêm todas as imagens para essa classe. Certifica-te de que cada ficheiro de imagem tem um nome único e é armazenado num formato comum, como JPEG ou PNG.

Exemplo de estrutura de pastas

Considera o conjunto de dados CIFAR-10 como um exemplo. A estrutura da pasta deve ter o seguinte aspeto:

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
|   |   |-- ...
|   |
|   |-- ...

Esta abordagem estruturada garante que o modelo pode aprender efetivamente a partir de classes bem organizadas durante a fase de formação e avaliar com precisão o desempenho durante as fases de teste e validação.

Utilização

Exemplo

from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Conjuntos de dados suportados

Ultralytics suporta os seguintes conjuntos de dados com transferência automática:

  • Caltech 101: Um conjunto de dados que contém imagens de 101 categorias de objectos para tarefas de classificação de imagens.
  • Caltech 256: Uma versão alargada do Caltech 101 com 256 categorias de objectos e imagens mais desafiantes.
  • CIFAR-10: Um conjunto de dados de 60K imagens a cores 32x32 em 10 classes, com 6K imagens por classe.
  • CIFAR-100: Uma versão alargada do CIFAR-10 com 100 categorias de objectos e 600 imagens por classe.
  • Moda-MNIST: Um conjunto de dados constituído por 70.000 imagens em escala de cinzentos de 10 categorias de moda para tarefas de classificação de imagens.
  • ImageNet: Um conjunto de dados em grande escala para deteção de objectos e classificação de imagens com mais de 14 milhões de imagens e 20.000 categorias.
  • ImageNet-10: Um subconjunto mais pequeno do ImageNet com 10 categorias para uma experimentação e testes mais rápidos.
  • Imagenette: Um subconjunto mais pequeno do ImageNet que contém 10 classes facilmente distinguíveis para um treino e teste mais rápidos.
  • Imagewoof: Um subconjunto mais exigente do ImageNet que contém 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 cinzento de dígitos manuscritos para tarefas de classificação de imagens.

Adicionar o teu próprio conjunto de dados

Se tiveres o teu próprio conjunto de dados e quiseres utilizá-lo para treinar modelos de classificação com Ultralytics, certifica-te de que segue o formato especificado acima em "Formato do conjunto de dados" e, em seguida, aponta o teu data para o diretório do conjunto de dados.

FAQ

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

Para estruturar o teu conjunto de dados para Ultralytics YOLO tarefas de classificação, deves seguir um formato específico de diretório dividido. Organiza o teu conjunto de dados em directórios separados para train, teste, opcionalmente val. Cada um destes directórios deve conter subdirectórios com o nome de cada classe, com as imagens correspondentes no seu interior. Isto facilita os processos de formação e avaliação. Para um exemplo, considera o formato do conjunto de dados CIFAR-10:

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

Para obter mais detalhes, visita a Estrutura do conjunto de dados para YOLO Tarefas de classificação.

Que conjuntos de dados são suportados por Ultralytics YOLO para classificação de imagens?

Ultralytics YOLO suporta o descarregamento automático de vários conjuntos de dados para classificação de imagens, incluindo:

Estes conjuntos de dados estão estruturados de forma a facilitar a sua utilização com YOLO. A página de cada conjunto de dados fornece mais pormenores sobre a sua estrutura e aplicações.

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

Para utilizar o teu próprio conjunto de dados com Ultralytics YOLO , certifica-te de que segue o formato de diretório especificado necessário para a tarefa de classificação, com train, teste, opcionalmente val e subdirectórios para cada classe que contenha as respectivas imagens. Quando o teu conjunto de dados estiver corretamente estruturado, aponta o comando data para o diretório raiz do teu conjunto de dados ao inicializar o script de treino. Aqui tens um exemplo em Python:

from ultralytics import YOLO

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

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

Para mais informações, consulta a secção Adicionar o teu próprio conjunto de dados.

Porque é que devo utilizar Ultralytics YOLO para a classificação de imagens?

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

  • Modelos pré-treinados: Carrega modelos pré-treinados como yolov8n-cls.pt para iniciar o teu processo de formação.
  • Facilidade de utilização: API simples e comandos CLI para formação e avaliação.
  • Alto desempenho: Precisão e velocidade de última geração, ideal para aplicações em tempo real.
  • Suporte para vários conjuntos de dados: Integração perfeita com vários conjuntos de dados populares, como CIFAR-10, ImageNet e muito mais.
  • Comunidade e suporte: Acede a uma vasta documentação e a uma comunidade ativa para resolução de problemas e melhorias.

Para obteres mais informações e aplicações reais, podes explorar Ultralytics YOLO.

Como é que posso treinar um modelo utilizando Ultralytics YOLO ?

Treinar um modelo utilizando Ultralytics YOLO pode ser feito facilmente em Python e CLI. Eis um exemplo:

Exemplo

from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Estes exemplos demonstram o processo simples de treinar um modelo YOLO utilizando qualquer uma das abordagens. Para mais informações, visita a secção Utilização.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (7), stormsson (1), GreatV (1)

Comentários