Visão geral dos conjuntos de dados de deteção de objetos#
O treino de um modelo robusto e preciso de deteção de objetos requer um conjunto de dados abrangente. Este guia apresenta vários formatos de conjuntos de dados compatíveis com o modelo Ultralytics YOLO e fornece informações sobre a sua estrutura, utilização e conversão entre diferentes formatos.
Formatos de conjuntos de dados suportados#
Formato Ultralytics YOLO#
O formato Ultralytics YOLO é um formato de configuração de conjuntos de dados que permite definir o diretório raiz do conjunto de dados, os caminhos relativos para os diretórios de imagens de treino/validação/teste ou ficheiros *.txt que contêm caminhos de imagens, e um dicionário de nomes de classes. Eis 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 ficheiro *.txt que lista um caminho de imagem por linha (os caminhos que começam por ./ são resolvidos relativamente ao ficheiro *.txt). Um ficheiro *.txt é útil para treinar num subconjunto de um diretório, ignorar imagens sem etiquetas ou combinar imagens de várias fontes numa única 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: personAs etiquetas deste formato devem ser exportadas para o formato YOLO, com um ficheiro *.txt por imagem. Se não houver objetos numa imagem, não é necessário um ficheiro *.txt. O ficheiro *.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 píxeis, deves dividir x_center e width pela largura da imagem, e y_center e height pela altura da imagem. Os números das classes devem utilizar índices a partir de zero (começar em 0).

O ficheiro de etiquetas correspondente à imagem acima contém 2 pessoas (classe 0) e uma gravata (classe 27):

Ao utilizar o formato Ultralytics YOLO, organiza as imagens e etiquetas de treino e validação conforme mostrado no exemplo do conjunto de dados COCO8 abaixo.

Exemplo de utilização#
Eis como podes utilizar conjuntos de dados no formato YOLO para treinar o teu 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 (JSON delimitado por novas linhas) oferece uma forma alternativa de definir conjuntos de dados para modelos Ultralytics YOLO. Este formato armazena os metadados e as anotações do conjunto de dados num único ficheiro, no qual cada linha contém um objeto JSON separado.
Um ficheiro de conjunto de dados NDJSON contém:
- Registo do conjunto de dados (primeira linha): contém os metadados do conjunto de dados, incluindo o tipo de tarefa, os nomes das classes e informações gerais
- Registos de imagens (linhas seguintes): contêm dados individuais das imagens, incluindo dimensões, anotações e caminhos dos ficheiros
{
"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 das imagens#
Cada registo de imagem pode incluir um objeto JSON metadata para contexto específico da aplicação, como condições de captura, identificadores do equipamento ou estado da revisão. São suportados valores aninhados. Quando importados para a Ultralytics Platform, os metadados são armazenados com essa imagem e podem ser visualizados ou editados no respetivo painel de informações em ecrã inteiro.
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}A Platform 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 os metadados efetivos combinados numa importação NDJSON a 500 000 caracteres.
Exemplo de utilização#
Para utilizar um conjunto de dados NDJSON com YOLO26, basta especificar o caminho para o ficheiro .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#
- Ficheiro único: todas as informações do conjunto de dados estão contidas num único ficheiro
- Transmissão: permite processar grandes conjuntos de dados linha a linha sem carregar tudo para a memória
- Integração com a cloud: suporta URLs remotos de imagens para treino baseado na cloud
- Extensível: é fácil adicionar campos de metadados personalizados
- Controlo de versões: o formato de ficheiro único funciona bem com o git e sistemas de controlo de versões
Conjuntos de dados suportados#
Aqui está uma lista dos conjuntos de dados suportados e uma breve descrição de cada um. A maioria destes conjuntos de dados também está hospedada na Ultralytics Platform, onde podes navegar pelas imagens e anotações, ver estatísticas dos conjuntos de dados e cloná-los para treino na nuvem.
- African-wildlife: um conjunto de dados com imagens de vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
- Argoverse: Um dataset com dados de rastreamento 3D e previsão de movimento de ambientes urbanos, com anotações detalhadas.
- Brain-tumor: um conjunto de dados para deteção de tumores cerebrais que inclui imagens de exames de MRI ou CT com detalhes sobre a presença, localização e características dos tumores.
- COCO: Objetos Comuns em Contexto (COCO) é um conjunto de dados de grande escala para deteção de objetos, segmentação e geração de legendas, com 80 categorias de objetos.
- COCO8: Um subconjunto menor das primeiras 8 imagens do COCO train2017, 4 para treinamento e 4 para validação, adequado para testes rápidos.
- COCO8-Grayscale: Uma versão em tons de cinzento do COCO8, criada pela conversão de RGB para tons de cinzento, útil para avaliar modelos de canal único.
- COCO8-Multispectral: Uma versão multiespectral de 10 canais do COCO8, criada pela interpolação de comprimentos de onda RGB, útil para avaliar modelos sensíveis ao espetro.
- COCO12-Formats: um conjunto de dados de teste com 12 imagens que abrangem 12 formatos de imagem suportados (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) para validar pipelines de carregamento de imagens.
- COCO16: um subconjunto das primeiras 16 imagens de COCO train2017 (8 de treino + 8 de validação), adequado para testes rápidos.
- COCO32: um subconjunto das primeiras 32 imagens de COCO train2017 (16 de treino + 16 de validação), adequado para testes rápidos.
- COCO64: um subconjunto das primeiras 64 imagens de COCO train2017 (32 de treino + 32 de validação), adequado para testes rápidos.
- COCO128: Um subconjunto mais pequeno das primeiras 128 imagens de COCO train2017, adequado para testes.
- Construction-PPE: um conjunto de dados com trabalhadores de estaleiros de construção e equipamento de segurança etiquetado, como capacetes, coletes, luvas, botas e óculos de proteção, incluindo anotações de equipamento em falta, como no_helmet e no_goggle, para monitorização da conformidade no mundo real.
- Global Wheat 2020: Um dataset com imagens de espigas de trigo para o Global Wheat Challenge 2020.
- HomeObjects-3K: um conjunto de dados de objetos domésticos de interior, incluindo camas, cadeiras, televisores e muito mais — ideal para aplicações de automação residencial inteligente, robótica, realidade aumentada e análise da disposição dos espaços.
- KITTI: um conjunto de dados com cenas de condução do mundo real e dados estéreo, LiDAR e GPS/IMU, utilizado aqui para tarefas de deteção de objetos 2D, como a identificação de carros, peões e ciclistas em ambientes urbanos, rurais e de autoestrada.
- LVIS: Um dataset de grande escala para deteção, segmentação e geração de legendas de objetos, com 1203 categorias de objetos.
- Medical-pills: um conjunto de dados com imagens de comprimidos médicos, anotadas para aplicações como garantia de qualidade farmacêutica, triagem de comprimidos e conformidade regulamentar.
- Objects365: Um dataset de alta qualidade e grande escala para deteção de objetos, com 365 categorias de objetos e mais de 600K imagens anotadas.
- OpenImagesV7: Um dataset abrangente da Google com 1,7M de imagens de treino e 42k 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 dataset com imagens de vários documentos contendo assinaturas anotadas, apoiando a investigação sobre verificação documental e deteção de fraude.
- SKU-110K: um conjunto de dados com deteção densa de objetos em ambientes de retalho, com mais de 11K imagens e 1,7 milhões de caixas delimitadoras.
- TT100K: explora o conjunto de dados de sinais de trânsito Tsinghua-Tencent 100K (TT100K), com 16 817 imagens de vistas de rua distribuídas por 221 categorias de sinais para uma deteção e classificação robustas.
- VisDrone: Um dataset com dados de deteção de objetos e rastreamento multiobjeto a partir de imagens captadas por drones, com mais de 10K imagens e sequências de vídeo.
- VOC: O dataset Pascal Visual Object Classes (VOC) para deteção e segmentação de objetos, com 20 classes de objetos e mais de 11K imagens.
- xView: Um dataset para deteção de objetos em imagens aéreas, com 60 categorias de objetos e mais de 1 milhão de objetos anotados.
Adicionar o teu próprio conjunto de dados#
Se tens o teu próprio conjunto de dados e queres utilizá-lo para treinar modelos de deteção com o formato Ultralytics YOLO, certifica-te de que segue o formato especificado acima em "Formato Ultralytics YOLO". Converte as tuas anotações para o formato necessário e especifica os caminhos, o número de classes e os nomes das classes no ficheiro de configuração YAML.
Adaptar ou converter formatos de etiquetas#
Converter o formato de conjunto de dados COCO para o formato YOLO#
Podes converter facilmente etiquetas do popular formato do conjunto de dados COCO para o formato YOLO utilizando 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 utilizada 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-o compatível com modelos Ultralytics YOLO. Para conhecer 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 — consulta Converter anotações COCO para YOLO.
Não te esqueças de verificar se o conjunto de dados que queres utilizar é compatível com o teu modelo e segue as convenções de formato necessárias. Conjuntos de dados devidamente formatados são essenciais para treinar modelos de deteção de objetos bem-sucedidos.
E agora?#
Com o teu conjunto de dados formatado, começa a treinar o teu modelo. Não sabes com que modelo pré-treinado começar? Compara 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 teus projetos de treino. Envolve definir os caminhos para as imagens de treino, validação e teste, bem como para as etiquetas 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.zipAs etiquetas são guardadas em ficheiros
*.txt, um ficheiro por imagem, formatadas comoclass x_center y_center width heightcom coordenadas normalizadas. Para obteres um guia detalhado, consulta o exemplo do conjunto de dados COCO8.Podes converter um conjunto de dados COCO para o formato YOLO utilizando as ferramentas de conversão da Ultralytics. Eis 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 tuas anotações COCO para o formato YOLO, permitindo uma integração simples com modelos Ultralytics YOLO. Para obteres mais detalhes, consulta a secção Adaptar ou converter formatos de etiquetas.
O Ultralytics YOLO suporta uma vasta gama de conjuntos de dados, incluindo:
Cada página de conjunto de dados fornece informações detalhadas sobre a estrutura e a utilização, adaptadas para um treino eficiente de YOLO26. Explora a lista completa na secção Conjuntos de dados suportados.
Para começares a treinar um modelo YOLO26, certifica-te de que o teu conjunto de dados está corretamente formatado e de que os caminhos estão definidos num ficheiro YAML. Utiliza o seguinte script para começar o treino:
Exemplofrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Load a pretrained model results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulta a secção Utilização para obteres mais detalhes sobre a utilização de diferentes modos, incluindo comandos CLI.
A Ultralytics fornece inúmeros exemplos e guias práticos para utilizar YOLO26 em diversas aplicações. Para obteres uma visão geral abrangente, visita o Blog da Ultralytics, onde encontrarás 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 exemplos específicos, consulta a secção Utilização na documentação.