Visão geral dos conjuntos de dados de classificação de imagens#
Estrutura do 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 dentro do diretório root. Essa estrutura inclui um diretório train e um diretório val (valid e validation também são aceitos), além de um diretório test opcional. Se não houver um diretório de validação, o diretório test será usado para validação. Se a raiz não tiver nenhum diretório train, mas contiver uma pasta por classe, a Ultralytics dividirá automaticamente as imagens em 80/20 e as colocará em um novo diretório <root>_split, com os subdiretórios train e val.
Cada um desses diretórios deve conter um subdiretório para cada classe do conjunto de dados. Os subdiretórios recebem o nome da classe correspondente e contêm todas as imagens dessa classe. Verifique se cada arquivo de imagem tem um nome exclusivo e está 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 de pastas deve ser semelhante a esta:
cifar10/
|
|-- train/
| |-- airplane/
| | |-- 10008_airplane.png
| | |-- 10009_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 1000_automobile.png
| | |-- 1001_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 10014_bird.png
| | |-- 10015_bird.png
| | |-- ...
| |
| |-- ...
|
|-- test/ (optional)
| |-- airplane/
| | |-- 10_airplane.png
| | |-- 11_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 100_automobile.png
| | |-- 101_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1000_bird.png
| | |-- 1001_bird.png
| | |-- ...
| |
| |-- ...
|
|-- val/
| |-- 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 aprenda com eficiência a partir de classes bem organizadas durante o treinamento e avalie o desempenho com precisão durante as etapas de teste e validação.
Uso#
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n-cls.pt") # carregue um modelo pré-treinado (recomendado para treinamento)
# Treinar o modelo
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) baixa e armazena os dados em cache automaticamente quando você os referencia pela primeira vez. Aponte data para o caminho de uma pasta somente quando tiver organizado um conjunto de dados personalizado.
Conjuntos de dados compatíveis#
A Ultralytics oferece suporte aos seguintes conjuntos de dados com download automático. A maioria deles também está hospedada na Plataforma Ultralytics, onde você pode explorar as imagens e anotações, ver as estatísticas do conjunto de dados e cloná-los para treinamento na nuvem.
- Caltech 101: conjunto de dados com imagens de 101 categorias de objetos para tarefas de classificação de imagens.
- Caltech 256: uma versão ampliada do Caltech 101, com 256 categorias de objetos e imagens mais desafiadoras.
- CIFAR-10: um conjunto de dados com 60 mil imagens coloridas de 32x32, distribuídas por 10 classes, com 6 mil imagens por classe.
- CIFAR-100: uma versão ampliada do CIFAR-10, com 100 categorias de objetos e 600 imagens por classe.
- Fashion-MNIST: um conjunto de dados com 70.000 imagens em escala de cinza de 10 categorias de moda para tarefas de classificação de imagens.
- ImageNet: benchmark de classificação de imagens ImageNet-1k (ILSVRC-2012), com 1.000 classes, 1,28 milhão de imagens de treinamento e 50.000 imagens de validação.
- ImageNet-10: um subconjunto menor do ImageNet, com 10 categorias, para experimentação e testes mais rápidos.
- Imagenette: um subconjunto menor do ImageNet com 10 classes facilmente distinguíveis, para treinamento e testes mais rápidos.
- Imagewoof: um subconjunto mais desafiador do ImageNet, com 10 categorias de raças de cães para tarefas de classificação de imagens.
- MNIST: um conjunto de dados com 70.000 imagens em escala de cinza de dígitos manuscritos para tarefas de classificação de imagens.
- MNIST160: as 8 primeiras imagens de cada dígito (0-9) das divisões de treinamento e teste do MNIST. O conjunto de dados contém 160 imagens no total.
Adicionar o seu próprio conjunto de dados#
Se você tem seu próprio conjunto de dados e quer usá-lo para treinar modelos de classificação com YOLO da Ultralytics, verifique se ele segue o formato especificado acima na seção "Estrutura do conjunto de dados" e, ao inicializar o script de treinamento, aponte o argumento data para o diretório do conjunto de dados.
Perguntas frequentes#
Para estruturar seu conjunto de dados para tarefas de classificação YOLO da Ultralytics, siga um formato específico de diretórios divididos. Organize o conjunto de dados em diretórios separados para
trainevale, opcionalmente,test. Cada um desses diretórios deve conter subdiretórios com o nome de cada classe e as imagens correspondentes. Isso facilita os processos de treinamento e avaliação. Como exemplo, considere o formato do conjunto de dados CIFAR-10:cifar10/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Para mais detalhes, acesse a seção Estrutura do conjunto de dados para tarefas de classificação YOLO.
YOLO da Ultralytics oferece suporte ao 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 para facilitar o uso com YOLO. A página de cada conjunto de dados fornece mais detalhes sobre sua estrutura e aplicações.
Para usar seu próprio conjunto de dados com YOLO da Ultralytics, verifique se ele segue o formato de diretórios exigido para a tarefa de classificação, com diretórios separados
traineval(e, opcionalmente,test), além de subdiretórios para cada classe contendo as respectivas imagens. Quando o conjunto de dados estiver estruturado corretamente, aponte o argumentodatapara o diretório raiz do conjunto de dados ao inicializar o script de treinamento. Veja um exemplo em Python:from ultralytics import YOLO # Carregar um modelo model = YOLO("yolo26n-cls.pt") # carregue um modelo pré-treinado (recomendado para treinamento) # Treinar o modelo results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)Você encontra mais detalhes na seção Como adicionar seu próprio conjunto de dados.
YOLO da Ultralytics oferece vários benefícios para a classificação de imagens, incluindo:
- Modelos pré-treinados: carregue modelos pré-treinados, como
yolo26n-cls.pt, para dar início ao processo de treinamento. - Facilidade de uso: comandos simples de API e CLI para treinamento e avaliação.
- Alto desempenho: precisão e velocidade de ponta, ideais para aplicações em tempo real.
- Suporte a vários conjuntos de dados: integração simples com diversos conjuntos de dados conhecidos, como CIFAR-10, ImageNet e outros.
- Comunidade e suporte: acesso a documentação abrangente e a uma comunidade ativa para solucionar problemas e promover melhorias.
Para mais informações e aplicações reais, explore YOLO da Ultralytics.
- Modelos pré-treinados: carregue modelos pré-treinados, como
É fácil treinar um modelo usando YOLO da Ultralytics, tanto em Python quanto na CLI. Veja um exemplo:
Exemplofrom ultralytics import YOLO # Carregar um modelo model = YOLO("yolo26n-cls.pt") # carrega um modelo pré-treinado # Treinar o modelo results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Esses exemplos demonstram como é simples treinar um modelo YOLO usando qualquer uma das abordagens. Para mais informações, visite a seção Uso e a página Treinamento para tarefas de classificação.