Visão Geral dos Conjuntos de Dados de Classificação de Imagens
Estrutura do Conjunto de Dados para Tarefas de Classificação YOLO
Para Ultralytics tarefas de classificação YOLO, o conjunto de dados deve ser organizado em uma estrutura de diretório dividido específica sob o root
diretório para facilitar os processos adequados de treinamento, teste e validação opcional. Esta estrutura inclui diretórios separados para treinamento (train
) e teste (test
) fases, 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 são nomeados de acordo com a classe correspondente e contêm todas as imagens para essa 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 um exemplo. A estrutura de pastas deve ser semelhante a esta:
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 possa aprender efetivamente com classes bem organizadas durante a fase de treinamento 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("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Conjuntos de Dados 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 imagens.
- 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 de 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 testes 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 manuscritos 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 conjunto de dados
Se você tiver seu próprio conjunto de dados e quiser usá-lo para treinar modelos de classificação com o Ultralytics YOLO, certifique-se de que ele siga o formato especificado acima em "Estrutura do Conjunto de Dados" e, em seguida, aponte seu data
argumento para o diretório do conjunto de dados ao inicializar seu script de treinamento.
FAQ
Como estruturar 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 com o nome de cada classe, com as imagens correspondentes dentro. Isso facilita os processos de treinamento e avaliação. Para um exemplo, considere o CIFAR-10 formato do conjunto de dados:
cifar-10-/
|-- train/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- test/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- val/ (optional)
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
Para obter mais detalhes, visite a seção Estrutura do Conjunto de Dados para Tarefas de Classificação YOLO.
Quais datasets são suportados pelo Ultralytics YOLO para classificação de imagens?
O YOLO da Ultralytics 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 que os torna fáceis de usar com o 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 o seu próprio conjunto de dados com o Ultralytics YOLO, certifique-se de que segue o formato de diretório especificado exigido para a tarefa de classificação, com diretórios separados de train
, test
, e opcionalmente val
diretórios e subdiretórios para cada classe contendo as respectivas imagens. Uma vez que seu conjunto de dados esteja estruturado corretamente, aponte o data
argumento 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("yolo11n-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 a classificação de imagens, incluindo:
- Modelos Pré-treinados: Carregar modelos pré-treinados como
yolo11n-cls.pt
para dar um impulso inicial ao seu processo de treino. - Facilidade de Uso: API simples e comandos CLI para treinamento e avaliação.
- Alto Desempenho: Precisão e velocidade de última geração, 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 informações adicionais e aplicações no mundo real, pode explorar o Ultralytics YOLO.
Como posso treinar um modelo usando Ultralytics YOLO?
Treinar um modelo usando 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("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Esses exemplos demonstram o processo direto de treinamento de 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.