Visão geral dos conjuntos de dados de detecção de objetos#
O treinamento de um modelo robusto e preciso de detecção de objetos exige um conjunto de dados abrangente. Este guia apresenta vários formatos de conjuntos de dados compatíveis com o modelo Ultralytics YOLO e explica sua estrutura, uso e como converter entre diferentes formatos.
Formatos de conjuntos de dados compatíveis#
Formato Ultralytics YOLO#
O formato Ultralytics YOLO é um formato de configuração de conjunto de dados que permite definir o diretório raiz do conjunto de dados, os caminhos relativos para os diretórios de imagens de treinamento/validação/teste ou arquivos *.txt que contêm caminhos de imagens, e um dicionário de nomes de classes. Veja 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.zipCada um de train, val e test aceita um diretório, uma lista de diretórios ou um arquivo *.txt que lista um caminho de imagem por linha (os caminhos que começam com ./ são resolvidos em relação ao arquivo *.txt). Um arquivo *.txt é útil para treinar com um subconjunto de um diretório, ignorar imagens sem rótulos ou combinar imagens de várias fontes em uma divisão.
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: personOs rótulos nesse formato devem ser exportados para o formato YOLO, com um arquivo *.txt por imagem. Se uma imagem não tiver objetos, não é necessário um arquivo *.txt. O arquivo *.txt deve ser formatado com uma linha por objeto no formato class x_center y_center width height. As coordenadas das caixas devem estar no formato xywh normalizado (de 0 a 1). Se as caixas estiverem em pixels, divide x_center e width pela largura da imagem e y_center e height pela altura da imagem. Os números das classes devem começar em zero.

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

Ao usar o formato Ultralytics YOLO, organiza as imagens e os rótulos de treinamento e validação conforme mostrado no exemplo do conjunto de dados COCO8 abaixo.

Exemplo de uso#
Veja como podes usar conjuntos de dados no formato YOLO para treinar o teu modelo:
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.pt") # carregue um modelo pré-treinado (recomendado para treinamento)
# Treinar o modelo
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Formato Ultralytics NDJSON#
O formato NDJSON (JSON delimitado por linhas) oferece uma forma alternativa de definir conjuntos de dados para modelos Ultralytics YOLO. Esse formato armazena metadados e anotações do conjunto de dados em um único arquivo, no qual cada linha contém um objeto JSON separado.
Um arquivo de conjunto de dados NDJSON contém:
- Registro do conjunto de dados (primeira linha): contém metadados do conjunto de dados, incluindo o tipo de tarefa, os nomes das classes e informações gerais.
- Registros de imagens (linhas seguintes): contêm dados de cada imagem, incluindo dimensões, anotações e caminhos de arquivos.
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.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"
}Metadados personalizados de imagens#
Cada registro de imagem pode incluir um objeto JSON metadata para informações específicas da aplicação, como condições de captura, identificadores de equipamentos ou status de revisão. Valores aninhados são aceitos. Quando importados para a Ultralytics Platform, os metadados são armazenados com a imagem e podem ser visualizados ou editados no painel de informações em tela cheia.
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}A plataforma limita as chaves de metadados de nível superior a 128 caracteres, o objeto de metadados serializado de cada imagem a 500.000 caracteres e o total de metadados efetivos em uma importação NDJSON a 500.000 caracteres.
Exemplo de uso#
Para usar um conjunto de dados NDJSON com YOLO26, basta especificar o caminho para o arquivo .ndjson:
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.pt")
# Treinar usando um conjunto de dados NDJSON
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Vantagens do formato NDJSON#
- Arquivo único: todas as informações do conjunto de dados ficam em um único arquivo.
- Processamento em fluxo: permite processar grandes conjuntos de dados linha por linha, sem carregar tudo na memória.
- Integração com a nuvem: oferece suporte a URLs de imagens remotas para treinamento na nuvem.
- Extensível: é fácil 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.
Conjuntos de dados compatíveis#
Aqui está uma lista dos conjuntos de dados compatíveis e uma breve descrição de cada um. A maioria desses conjuntos de dados também está hospedada na Ultralytics Platform, onde podes explorar imagens e anotações, consultar estatísticas dos conjuntos de dados e cloná-los para treinamento na nuvem.
- African-wildlife: um conjunto de dados com imagens da vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
- Argoverse: conjunto de dados Argoverse-HD para detecção 2D, com 54.446 imagens urbanas de condução autônoma distribuídas por 8 classes de objetos rodoviários.
- Brain-tumor: um conjunto de dados para detectar tumores cerebrais, com imagens de ressonância magnética ou tomografia computadorizada e informações sobre a presença, localização e características dos tumores.
- COCO: Objetos comuns em contexto (COCO) é um conjunto de dados em grande escala para detecção de objetos, segmentação e legendagem, com 80 categorias de objetos.
- COCO8: um subconjunto menor das 8 primeiras imagens do COCO train2017, com 4 imagens para treinamento e 4 para validação, ideal para testes rápidos.
- COCO8-Grayscale: uma versão em escala de cinza do COCO8, criada pela conversão de RGB para escala de cinza e útil para avaliar modelos de canal único.
- COCO8-Multispectral: uma versão multiespectral de 10 canais do COCO8, criada por interpolação dos comprimentos de onda RGB e útil para avaliar modelos com consciência espectral.
- COCO12-Formats: conjunto de dados de teste com 12 imagens que abrangem 12 formatos de imagem compatíveis (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP), usado para validar pipelines de carregamento de imagens.
- COCO16: subconjunto das 16 primeiras imagens do COCO train2017 (8 de treinamento + 8 de validação), adequado para testes rápidos.
- COCO32: subconjunto das 32 primeiras imagens do COCO train2017 (16 de treinamento + 16 de validação), adequado para testes rápidos.
- COCO64: subconjunto das 64 primeiras imagens do COCO train2017 (32 de treinamento + 32 de validação), adequado para testes rápidos.
- COCO128: um subconjunto menor das 128 primeiras imagens do COCO train2017, ideal para testes.
- Construction-PPE: conjunto de dados com trabalhadores de canteiros de obras e equipamentos de segurança identificados, como capacetes, coletes, luvas, botas e óculos de proteção. Inclui anotações de equipamentos ausentes, como no_helmet e no_goggle, para monitoramento da conformidade em situações reais.
- Global Wheat 2020: um conjunto de dados com imagens de espigas de trigo para o Global Wheat Challenge 2020.
- HomeObjects-3K: conjunto de dados de itens domésticos de interiores, incluindo camas, cadeiras, TVs e muito mais — ideal para aplicações de automação residencial inteligente, robótica, realidade aumentada e análise de layouts de ambientes.
- KITTI: conjunto de dados com cenas reais de condução e 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 conjunto de dados em grande escala para detecção de objetos e segmentação de instâncias, com 1.203 categorias de objetos.
- Medical-pills: conjunto de dados com imagens de pílulas medicinais, anotadas para aplicações como garantia da qualidade farmacêutica, classificação de pílulas e conformidade regulatória.
- Objects365: conjunto de dados de alta qualidade e em grande escala para detecção de objetos, com 365 categorias de objetos e mais de 1,7 milhão de imagens de treinamento.
- OpenImagesV7: um conjunto de dados abrangente do Google, com 1,7 milhão de imagens de treinamento e 42 mil imagens de validação.
- Roboflow 100: Um benchmark diversificado de deteção de objetos com 100 conjuntos de dados que abrangem sete domínios de imagens para uma avaliação abrangente de modelos.
- Signature: um conjunto de dados com imagens de vários documentos que contêm assinaturas anotadas, voltado a pesquisas sobre verificação de documentos e detecção de fraudes.
- SKU-110K: Um conjunto de dados com deteção densa de objetos em ambientes de varejo, com mais de 11 mil imagens e 1,7 milhão de caixas delimitadoras.
- TT100K: Explore o conjunto de dados de sinais de trânsito Tsinghua-Tencent 100K (TT100K), com 16.817 imagens de vistas de ruas distribuídas por 221 categorias de sinais, para uma deteção e classificação robustas.
- VisDrone: um conjunto de dados com informações de detecção de objetos e rastreamento de múltiplos objetos em imagens capturadas por drones, com mais de 10 mil imagens e sequências de vídeo.
- VOC: O conjunto de dados Pascal Visual Object Classes (VOC) para deteção e segmentação de objetos, com 20 classes de objetos e mais de 11 mil imagens.
- xView: um conjunto de dados para detecção de objetos em imagens aéreas, com 60 categorias de objetos e mais de 1 milhão de objetos anotados.
Adicionar o seu próprio conjunto de dados#
Se tiver o seu próprio conjunto de dados e quiser usá-lo para treinar modelos de deteção no formato Ultralytics YOLO, certifique-se de que ele segue o formato especificado acima em "Formato Ultralytics YOLO". Converta as suas anotações para o formato necessário e especifique os caminhos, o número de classes e os nomes das classes no ficheiro de configuração YAML.
Portar ou converter formatos de rótulos#
Converter o formato do conjunto de dados COCO para o formato YOLO#
Pode converter facilmente rótulos do popular formato do conjunto de dados 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 conjunto de dados COCO ou qualquer conjunto de dados no formato COCO para o formato Ultralytics YOLO. O processo transforma as anotações COCO baseadas em JSON no formato YOLO mais simples, baseado em texto, tornando-as compatíveis com os modelos Ultralytics YOLO. Para ver o fluxo de trabalho completo — incluindo o mapeamento de IDs de classes, a estrutura de diretórios e as anotações de segmentação ou pose — consulte Converter anotações COCO para YOLO.
Lembre-se de verificar se o conjunto de dados que pretende usar é compatível com o seu modelo e segue as convenções de formato necessárias. Conjuntos de dados formatados corretamente são fundamentais para treinar modelos de deteção de objetos bem-sucedidos.
O que fazer a seguir#
Com o seu conjunto de dados formatado, comece a treinar o seu modelo. Não sabe com qual modelo pré-treinado começar? Compare as opções na família de modelos YOLO26.
Perguntas frequentes#
O formato Ultralytics YOLO é uma configuração estruturada para definir conjuntos de dados nos seus projetos de treino. Ele envolve a definição dos caminhos para as imagens de treino, validação e teste, bem como dos 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 guardados em ficheiros
*.txt, com um ficheiro por imagem, formatados comoclass x_center y_center width heightcom coordenadas normalizadas. Para ver um guia detalhado, consulte o exemplo do conjunto de dados COCO8.Pode converter um conjunto de dados COCO para o formato YOLO usando as ferramentas de conversão da Ultralytics. Veja um método rápido:
from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")Este código converte as suas anotações COCO para o formato YOLO, permitindo uma integração perfeita com os modelos Ultralytics YOLO. Para mais detalhes, consulte a secção Portar ou converter formatos de rótulos.
Ultralytics YOLO é compatível com uma ampla variedade de conjuntos de dados, incluindo:
A página de cada conjunto de dados fornece informações detalhadas sobre a estrutura e o uso, adaptadas para um treino eficiente com YOLO26. Explore a lista completa na secção Conjuntos de dados compatíveis.
Para começar a treinar um modelo YOLO26, certifique-se de que o seu conjunto de dados está formatado corretamente e que os caminhos estão definidos num ficheiro YAML. Use o seguinte script para iniciar o treino:
Exemplofrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Carregar um modelo pré-treinado results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulte a secção Uso para mais detalhes sobre como utilizar diferentes modos, incluindo comandos CLI.
A Ultralytics oferece vários exemplos e guias práticos para usar YOLO26 em diversas aplicações. Para uma visão abrangente, visite o Blog da Ultralytics, onde encontrará estudos de caso, tutoriais detalhados e histórias da comunidade que mostram a deteção de objetos, a segmentação e muito mais com YOLO26. Para ver exemplos específicos, consulte a página do modo Predict na documentação.