Visão geral dos conjuntos de dados de classificação de imagens#
Estrutura do conjunto de dados para tarefas de classificação com YOLO#
Para as tarefas de classificação do YOLO da Ultralytics, o conjunto de dados deve ser organizado em uma estrutura específica de diretórios divididos sob o diretório root. Essa estrutura inclui um diretório train e um diretório val (valid e validation também são aceitos), com um diretório test opcional. Se nenhum diretório de validação existir, o diretório test será usado para a validação.
Cada um destes diretórios deve conter um subdiretório para cada classe do conjunto de dados. Os subdiretórios têm o nome da classe correspondente e contêm todas as imagens dessa classe. Certifica-te de que cada ficheiro de imagem tem um nome exclusivo e é armazenado num 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 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/ (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
| | |-- ...
| |
| |-- ...Esta abordagem estruturada garante que o modelo consegue aprender eficazmente com classes bem organizadas durante a fase de treino e avaliar o desempenho com precisão durante as fases de teste e validação.
Utilização#
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) transfere e coloca automaticamente os dados em cache na primeira vez que são referenciados. Indica data como um caminho de pasta apenas quando tiveres organizado um conjunto de dados personalizado.
Conjuntos de dados suportados#
A Ultralytics suporta os seguintes conjuntos de dados com download automático. A maioria desses conjuntos de dados também está hospedada na Ultralytics Platform, onde podes navegar pelas imagens e anotações, ver estatísticas do conjunto de dados e cloná-los para treinamento na nuvem.
- 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 expandida do Caltech 101, com 256 categorias de objetos e imagens mais desafiantes.
- CIFAR-10: Um dataset com 60K imagens coloridas de 32x32 em 10 classes, com 6K imagens por classe.
- CIFAR-100: Uma versão expandida do CIFAR-10, com 100 categorias de objetos e 600 imagens por classe.
- Fashion-MNIST: Um dataset composto por 70.000 imagens em tons de cinzento de 10 categorias de moda para tarefas de classificação de imagens.
- ImageNet: um conjunto de dados de 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 mais pequeno do ImageNet, com 10 categorias para experiências e testes mais rápidos.
- Imagenette: Um subconjunto mais pequeno do ImageNet que contém 10 classes facilmente distinguíveis para treino e testes mais rápidos.
- Imagewoof: Um subconjunto mais desafiante do ImageNet, contendo 10 categorias de raças de cães para tarefas de classificação de imagens.
- MNIST: Um dataset com 70.000 imagens em tons de cinzento de dígitos manuscritos 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 dataset contém 160 imagens no total.
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 a Ultralytics YOLO, certifica-te de que segue o formato especificado acima na secção "Estrutura do conjunto de dados" e, em seguida, indica o diretório do conjunto de dados no argumento data ao inicializares o teu script de treino.
Perguntas frequentes#
Para estruturar o teu conjunto de dados para as tarefas de classificação do YOLO da Ultralytics, deves seguir um formato específico de diretórios divididos. Organiza o teu conjunto de dados em diretórios separados para
traineval, e opcionalmentetest. Cada um desses diretórios deve conter subdiretórios nomeados após cada classe, com as imagens correspondentes dentro. Isso facilita processos de treinamento e avaliação fluidos. Como exemplo, considera o formato do conjunto de dados CIFAR-10:cifar-10-/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Para obteres mais detalhes, visita a secção Estrutura do conjunto de dados para tarefas de classificação com YOLO.
A Ultralytics YOLO suporta a transferência automática 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 serem fáceis de utilizar com YOLO. A página de cada conjunto de dados fornece mais detalhes sobre a sua estrutura e aplicações.
Para usar o teu próprio conjunto de dados com o YOLO da Ultralytics, garante que ele siga o formato de diretório especificado necessário para a tarefa de classificação, com diretórios
trainevalseparados (e opcionalmentetest), e subdiretórios para cada classe contendo as respectivas 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 inicializar o script de treinamento. Aqui está 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 Adicionar o teu próprio conjunto de dados.
A Ultralytics YOLO oferece várias vantagens para a classificação de imagens, incluindo:
- Modelos pré-treinados: carrega modelos pré-treinados, como
yolo26n-cls.pt, para iniciares rapidamente o teu processo de treino. - Facilidade de utilização: comandos simples de API e CLI para treino e avaliação.
- Alto desempenho: precisão e velocidade de última geração, ideais para aplicações em tempo real.
- Suporte para vários conjuntos de dados: integração simples com vários conjuntos de dados populares, como CIFAR-10, ImageNet e outros.
- Comunidade e suporte: acesso a documentação abrangente e a uma comunidade ativa para resolução de problemas e melhorias.
Para obteres informações adicionais e conheceres aplicações do mundo real, podes explorar a Ultralytics YOLO.
- Modelos pré-treinados: carrega modelos pré-treinados, como
Podes treinar facilmente um modelo utilizando a Ultralytics YOLO, tanto em Python como através da CLI. Aqui tens 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 treino de um modelo YOLO utilizando qualquer uma das abordagens. Para obteres mais informações, visita a secção Utilização e a página Treinar para tarefas de classificação.