Visão Geral de Datasets de Detecção de Objetos
Treinar um modelo de detecção de objetos robusto e preciso requer um dataset abrangente. Este guia apresenta vários formatos de datasets que são compatíveis com o modelo Ultralytics YOLO e fornece insights sobre suas estruturas, uso e como converter entre diferentes formatos.
Formatos de Dataset Suportados
Formato Ultralytics YOLO
O formato Ultralytics YOLO é um formato de configuração de dataset que permite definir o diretório raiz do dataset, os caminhos relativos para diretórios de imagem de treinamento/validação/teste ou arquivos *.txt contendo caminhos de imagem, e um dicionário de nomes de classes. Aqui está um exemplo:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zipOs rótulos para este formato devem ser exportados para o formato YOLO com um arquivo *.txt por imagem. Se não houver objetos em uma imagem, nenhum arquivo *.txt é necessário. O arquivo *.txt deve ser formatado com uma linha por objeto no formato class x_center y_center width height. As coordenadas da caixa devem estar no formato xywh normalizado (de 0 a 1). Se as suas caixas estiverem em pixels, você deve dividir x_center e width pela largura da imagem, e y_center e height pela altura da imagem. Os números das classes devem ser indexados em zero (começando com 0).

O arquivo de rótulo correspondente à imagem acima contém 2 pessoas (classe 0) e uma gravata (classe 27):

Ao usar o formato Ultralytics YOLO, organize suas imagens e rótulos de treinamento e validação como mostrado no exemplo do dataset COCO8 abaixo.

Exemplo de Uso
Veja como você pode usar datasets no formato YOLO para treinar seu modelo:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Formato Ultralytics NDJSON
O formato NDJSON (Newline Delimited JSON) fornece uma maneira alternativa de definir datasets para modelos Ultralytics YOLO. Este formato armazena metadados e anotações do dataset em um único arquivo, onde cada linha contém um objeto JSON separado.
Um arquivo de dataset NDJSON contém:
- Registro do dataset (primeira linha): Contém metadados do dataset, incluindo tipo de tarefa, nomes de classes e informações gerais
- Registros de imagem (linhas subsequentes): Contém dados individuais da imagem, incluindo dimensões, anotações e caminhos de arquivo
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://app.ultralytics.com/user/datasets/example",
"class_names": { "0": "person", "1": "bicycle", "2": "car" },
"bytes": 426342,
"version": 0,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}Exemplo de Uso
Para usar um dataset NDJSON com YOLO26, basta especificar o caminho para o arquivo .ndjson:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Vantagens do formato NDJSON
- Arquivo único: Todas as informações do dataset contidas em um arquivo
- Streaming: Pode processar grandes datasets linha por linha sem carregar tudo na memória
- Integração com a nuvem: Suporta URLs de imagem remota para treinamento baseado em nuvem
- Extensível: Fácil de adicionar campos de metadados personalizados
- Controle de versão: O formato de arquivo único funciona bem com git e sistemas de controle de versão
Datasets Suportados
Aqui está uma lista dos datasets suportados e uma breve descrição para cada um:
- African-wildlife: Um dataset com imagens da vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
- Argoverse: Um dataset contendo dados de rastreamento 3D e previsão de movimento de ambientes urbanos com anotações ricas.
- Brain-tumor: Um dataset para detectar tumores cerebrais que inclui imagens de ressonância magnética ou tomografia computadorizada com detalhes sobre a presença, localização e características do tumor.
- COCO: Common Objects in Context (COCO) é um dataset de grande escala de detecção de objetos, segmentação e legendagem com 80 categorias de objetos.
- COCO8: Um subconjunto menor das primeiras 4 imagens do treino e validação do COCO, adequado para testes rápidos.
- COCO8-Grayscale: Uma versão em escala de cinza do COCO8 criada convertendo RGB para escala de cinza, útil para avaliação de modelos de canal único.
- COCO8-Multispectral: Uma versão multiespectral de 10 canais do COCO8 criada interpolando comprimentos de onda RGB, útil para avaliação de modelos com consciência espectral.
- COCO12-Formats: Um dataset de teste com 12 imagens cobrindo todos os formatos de imagem suportados (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) para validar pipelines de carregamento de imagem.
- COCO128: Um subconjunto menor das primeiras 128 imagens do treino e validação do COCO, adequado para testes.
- Construction-PPE: Um dataset apresentando trabalhadores de canteiros de obras com equipamentos de segurança rotulados, como capacetes, coletes, luvas, botas e óculos de proteção, incluindo anotações de equipamentos ausentes, como no_helmet, no_googles para monitoramento de conformidade no mundo real.
- Global Wheat 2020: Um dataset contendo imagens de cabeças de trigo para o Global Wheat Challenge 2020.
- HomeObjects-3K: Um dataset de itens domésticos internos, incluindo camas, cadeiras, TVs e muito mais — ideal para aplicações em automação residencial inteligente, robótica, realidade aumentada e análise de layout de salas.
- KITTI: Um dataset apresentando cenas reais de direção com dados estéreo, LiDAR e GPS/IMU, usado aqui para tarefas de detecção de objetos 2D, como identificar carros, pedestres e ciclistas em ambientes urbanos, rurais e rodoviários.
- LVIS: Um dataset de grande escala de detecção de objetos, segmentação e legendagem com 1203 categorias de objetos.
- Medical-pills: Um dataset apresentando imagens de pílulas médicas, anotadas para aplicações como controle de qualidade farmacêutica, triagem de pílulas e conformidade regulatória.
- Objects365: Um dataset de alta qualidade e grande escala para detecção de objetos com 365 categorias de objetos e mais de 600 mil imagens anotadas.
- OpenImagesV7: Um dataset abrangente do Google com 1,7M de imagens de treino e 42k de imagens de validação.
- Roboflow 100: Um benchmark diverso de detecção de objetos com 100 datasets abrangendo sete domínios de imagem para uma avaliação abrangente do modelo.
- Signature: Um dataset apresentando imagens de vários documentos com assinaturas anotadas, apoiando pesquisas de verificação de documentos e detecção de fraudes.
- SKU-110K: Um dataset apresentando detecção de objetos densos em ambientes de varejo com mais de 11 mil imagens e 1,7 milhão de caixas delimitadoras.
- TT100K: Explore o dataset de sinais de trânsito Tsinghua-Tencent 100K (TT100K) com 100.000 imagens de vista de rua e mais de 30.000 sinais de trânsito anotados para detecção e classificação robustas.
- VisDrone: Um dataset contendo dados de detecção de objetos e rastreamento de múltiplos objetos de imagens capturadas por drones com mais de 10 mil imagens e sequências de vídeo.
- VOC: O dataset Pascal Visual Object Classes (VOC) para detecção e segmentação de objetos com 20 classes de objetos e mais de 11 mil imagens.
- xView: Um dataset para detecção de objetos em imagens aéreas com 60 categorias de objetos e mais de 1 milhão de objetos anotados.
Adicionando seu próprio dataset
Se você tem seu próprio dataset e deseja usá-lo para treinar modelos de detecção com o formato Ultralytics YOLO, certifique-se de que ele siga o formato especificado acima em "Formato Ultralytics YOLO". Converta suas anotações para o formato necessário e especifique os caminhos, número de classes e nomes de classes no arquivo de configuração YAML.
Portar ou Converter Formatos de Rótulo
Formato de Dataset COCO para Formato YOLO
Você pode converter facilmente rótulos do popular formato de dataset COCO para o formato YOLO usando o seguinte trecho de código:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Esta ferramenta de conversão pode ser usada para converter o dataset COCO ou qualquer dataset no formato COCO para o formato Ultralytics YOLO. O processo transforma as anotações COCO baseadas em JSON no formato YOLO baseado em texto mais simples, tornando-o compatível com modelos Ultralytics YOLO.
Lembre-se de verificar se o dataset que você deseja usar é compatível com seu modelo e segue as convenções de formato necessárias. Datasets formatados corretamente são cruciais para treinar modelos de detecção de objetos bem-sucedidos.
FAQ
O que é o formato de dataset Ultralytics YOLO e como estruturá-lo?
O formato Ultralytics YOLO é uma configuração estruturada para definir datasets em seus projetos de treinamento. Envolve definir caminhos para suas imagens de treinamento, validação e teste e rótulos correspondentes. Por exemplo:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zipOs rótulos são salvos em arquivos *.txt com um arquivo por imagem, formatados como class x_center y_center width height com coordenadas normalizadas. Para um guia detalhado, veja o exemplo do dataset COCO8.
Como converto um dataset COCO para o formato YOLO?
Você pode converter um dataset COCO para o formato YOLO usando as ferramentas de conversão Ultralytics. Aqui está um método rápido:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Este código converterá suas anotações COCO para o formato YOLO, permitindo uma integração perfeita com os modelos Ultralytics YOLO. Para detalhes adicionais, visite a seção Portar ou Converter Formatos de Rótulo.
Quais datasets são suportados pelo Ultralytics YOLO para detecção de objetos?
O Ultralytics YOLO suporta uma ampla gama de datasets, incluindo:
Cada página de dataset fornece informações detalhadas sobre a estrutura e o uso adaptado para um treinamento eficiente do YOLO26. Explore a lista completa na seção Datasets Suportados.
Como começo a treinar um modelo YOLO26 usando meu dataset?
Para começar a treinar um modelo YOLO26, garanta que seu dataset esteja formatado corretamente e os caminhos estejam definidos em um arquivo YAML. Use o seguinte script para começar o treinamento:
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulte a seção Uso para mais detalhes sobre como utilizar diferentes modos, incluindo comandos CLI.
Onde posso encontrar exemplos práticos de como usar o Ultralytics YOLO para detecção de objetos?
A Ultralytics fornece inúmeros exemplos e guias práticos para usar o YOLO26 em diversas aplicações. Para uma visão geral abrangente, visite o Blog da Ultralytics, onde você pode encontrar estudos de caso, tutoriais detalhados e histórias da comunidade mostrando detecção de objetos, segmentação e mais com o YOLO26. Para exemplos específicos, verifique a seção Uso na documentação.