Visão Geral de Conjuntos de Dados para Classificação de Imagens#
Estrutura de Conjunto de Dados para Tarefas de Classificação YOLO#
Para as tarefas de classificação do Ultralytics YOLO, 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. Essa estrutura inclui diretórios separados para as fases de treinamento (train) e validação (val), com um diretório opcional para testes (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 ser parecida com 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 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) descarregará e armazenará automaticamente os dados em cache na primeira vez que os refernciares. Aponta data para o caminho de uma pasta apenas quando tiveres curado 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 que contém 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 consistindo 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 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: 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 o utilizar para treinar modelos de classificação com o 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 inicializares o teu script de treinamento.
FAQ#
Para estruturar o teu conjunto de dados para tarefas de classificação do Ultralytics YOLO, deves seguir um formato específico de diretório dividido. Organiza o teu conjunto de dados em diretórios separados para
train,teste, opcionalmente,val. Cada um destes diretórios deve conter subdiretórios com o nome de cada classe, com as imagens correspondentes no interior. Isto facilita processos de treinamento e avaliação suaves. Como 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.
O Ultralytics YOLO suporta o descarregamento 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 respetiva estrutura e aplicações.
Para usares o teu próprio conjunto de dados com o Ultralytics YOLO, certifica-te de que este segue o formato de diretório especificado exigido para a tarefa de classificação, com diretórios separados
train,teste, 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 argumentodatapara o diretório raiz do teu conjunto de dados ao inicializares 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)Podes encontrar mais detalhes na secção Adding your own dataset.
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 última geração, 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 muito mais.
- Comunidade e Suporte: Acesso a documentação extensa e a uma comunidade ativa para resolução de problemas e melhorias.
Para obter mais informações e aplicações no mundo real, podes explorar o Ultralytics YOLO.
- Modelos Pré-treinados: Carrega modelos pré-treinados como
O treinamento de um modelo usando o Ultralytics YOLO pode ser feito facilmente tanto em Python quanto em CLI. Eis um exemplo:
Exemplofrom 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 simples 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.