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 os processos adequados de treinamento, teste e validação opcional. Esta estrutura inclui diretórios separados para as fases de treinamento (train) e validação (val), com um diretório opcional para teste (test).
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. Certifica-te de que cada arquivo de imagem seja nomeado de forma única e armazenado em um formato comum, como JPEG ou PNG.
Exemplo de Estrutura de Pastas#
Considera o conjunto de dados CIFAR-10 como exemplo. A estrutura de pastas deve ter este 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 possa aprender eficazmente a partir de classes bem organizadas durante a fase de treinamento e avaliar com precisão o desempenho durante as fases de teste e validação.
Uso#
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)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 os referenciares. Aponta data para um caminho de pasta apenas quando tiveres 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 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 60K imagens coloridas de 32x32 em 10 classes, com 6K 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 grande escala para deteçã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 dígito (0-9) das divisões de treino e teste do MNIST. O conjunto de dados contém 160 imagens no total.
Adicionando seu próprio dataset#
Se tens o teu próprio conjunto de dados e gostarias de usá-lo para treinar modelos de classificação com Ultralytics YOLO, certifica-te de que ele segue o formato especificado acima em "Dataset Structure" e, em seguida, aponta o teu argumento data para o diretório do conjunto de dados ao inicializar o teu script de treinamento.
FAQ#
Como estruturo o meu conjunto de dados para tarefas de classificação YOLO?#
Para estruturar o teu conjunto de dados para tarefas de classificação YOLO da Ultralytics, deves seguir um formato específico de diretórios divididos. Organiza o teu 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 no interior. Isto facilita os processos suaves de treinamento 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 mais detalhes, visita a secção Dataset Structure for YOLO Classification Tasks.
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. Estes conjuntos de dados estão estruturados de forma a torná-los fáceis de usar com o YOLO. A página de cada conjunto de dados fornece mais detalhes sobre a sua estrutura e aplicações.
Como adiciono o meu próprio conjunto de dados para classificação de imagens YOLO?#
Para usar o teu próprio conjunto de dados com o Ultralytics YOLO, certifica-te de que ele segue o formato de diretório especificado necessário para a tarefa de classificação, com diretórios separados de train, test e, opcionalmente, val, e subdiretórios para cada classe contendo as respetivas imagens. Uma vez que o teu conjunto de dados esteja estruturado corretamente, aponta o argumento data para o diretório raiz do teu conjunto de dados ao inicializar o script de treinamento. Eis 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 secção Adding your own dataset.
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: Carrega modelos pré-treinados como
yolo26n-cls.ptpara dar início ao teu processo de treinamento. - Facilidade de Uso: API simples e comandos CLI para treinamento e avaliação.
- Alto Desempenho: Precisão e velocidade de ponta, ideais 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 mais.
- Comunidade e Suporte: Acesso a documentação extensa e a uma comunidade ativa para resolução de problemas e melhorias.
Para insights adicionais e aplicações do mundo real, podes explorar o Ultralytics YOLO.
Como posso treinar um modelo usando o Ultralytics YOLO?#
O treinamento de um modelo usando o Ultralytics YOLO pode ser feito facilmente tanto em Python quanto em CLI. Eis um 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, visita a secção Usage e a página Train para tarefas de classificação.