YOLO Vision 2026:

Visão geral de datasets de detecção de objetos#

Treinar um modelo de object detection robusto e preciso exige um conjunto de dados abrangente. Este guia apresenta vários formatos de conjuntos de dados compatíveis com o modelo Ultralytics YOLO e fornece detalhes sobre a sua estrutura, utilização e como converter entre diferentes formatos.

Formatos de dataset 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 arquivos *.txt contendo os caminhos das imagens, e um dicionário de nomes de classes. Eis um exemplo:

ultralytics/cfg/datasets/coco8.yaml
# 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.zip

Cada um de train, val e test aceita um diretório, uma lista de diretórios ou um arquivo *.txt que liste um caminho de imagem por linha (os caminhos iniciados por ./ 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ótulo ou combinar imagens de várias origens numa única divisão.

Caminhos de imagem como um arquivo `*.txt`
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: person

Os rótulos para este formato devem ser exportados para o formato YOLO com um arquivo *.txt por imagem. Se não existirem objetos numa imagem, não é necessário qualquer 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, 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 começar em zero (iniciar com 0).

YOLO labeled image with bounding boxes on persons and tie

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

YOLO format label file with normalized coordinates

Ao utilizar o formato Ultralytics YOLO, organiza as tuas imagens e rótulos de treino e validação conforme mostrado no exemplo do COCO8 dataset abaixo.

YOLO dataset directory structure with train and val folders

Exemplo de Uso#

Veja como você pode usar datasets no formato YOLO para treinar seu modelo:

Exemplo
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:

  1. Registro de dataset (primeira linha): Contém metadados do dataset, incluindo tipo de tarefa, nomes de classes e informações gerais
  2. Registros de imagem (linhas subsequentes): Contém dados individuais da imagem, incluindo dimensões, anotações e caminhos de arquivo
Exemplo de NDJSON
{
    "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"
}

Metadados de imagem personalizados#

Cada registo de imagem pode incluir um objeto JSON metadata para contexto específico da aplicação, como condições de captura, identificadores de equipamentos ou estado de revisão. Os valores aninhados são suportados. 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 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 os metadados efetivos combinados numa importação NDJSON a 500.000 caracteres.

Exemplo de Uso#

Para utilizar um conjunto de dados NDJSON com YOLO26, basta especificar o caminho para o arquivo .ndjson:

Exemplo
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 na nuvem: Suporta URLs de imagem remotas 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 conjunto de dados com imagens de vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
  • Argoverse: Um conjunto de dados que contém dados de rastreio 3D e previsão de movimento de ambientes urbanos com anotações ricas.
  • Brain-tumor: Um conjunto de dados para a deteção de tumores cerebrais que inclui imagens de exames de ressonância magnética (MRI) ou tomografia computorizada (CT) com detalhes sobre a presença, localização e características do tumor.
  • COCO: Common Objects in Context (COCO) é um conjunto de dados em grande escala de object detection, segmentação e legendagem com 80 categorias de objetos.
  • COCO8: Um subconjunto menor das primeiras 4 imagens dos conjuntos de treino e validação do COCO, adequado para testes rápidos.
  • COCO8-Grayscale: Uma versão em escala de cinzentos do COCO8 criada através da conversão de RGB para escala de cinzentos, útil para a avaliação de modelos de canal único.
  • COCO8-Multispectral: Uma versão multiespetral de 10 canais do COCO8 criada interpolando comprimentos de onda RGB, útil para a avaliação de modelos com perceção espetral.
  • COCO12-Formats: Um conjunto de dados de teste com 12 imagens que cobrem 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 do COCO train2017 (8 de treino + 8 de validação), adequado para testes rápidos.
  • COCO32: Um subconjunto das primeiras 32 imagens do COCO train2017 (16 de treino + 16 de validação), adequado para testes rápidos.
  • COCO64: Um subconjunto das primeiras 64 imagens do COCO train2017 (32 de treino + 32 de validação), adequado para testes rápidos.
  • COCO128: Um subconjunto menor das primeiras 128 imagens do COCO train2017, adequado para testes.
  • Construction-PPE: Um conjunto de dados com trabalhadores de construção civil equipados com equipamento de segurança rotulado, 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 de conformidade no mundo real.
  • Global Wheat 2020: Um conjunto de dados que contém imagens de espigas de trigo para o Global Wheat Challenge 2020.
  • HomeObjects-3K: Um conjunto de dados de artigos domésticos de interior, incluindo camas, cadeiras, televisores e muito mais — ideal para aplicações em automação de casas inteligentes, robótica, realidade aumentada e análise de disposição de divisões.
  • KITTI: Um conjunto de dados com cenas de condução do mundo real com dados estéreo, LiDAR e GPS/IMU, utilizado aqui para tarefas de 2D object detection, tais como identificar carros, pedestres e ciclistas em ambientes urbanos, rurais e rodoviários.
  • LVIS: Um conjunto de dados em grande escala de deteção de objetos, segmentação e legendagem com 1203 categorias de objetos.
  • Medical-pills: Um conjunto de dados com imagens de comprimidos médicos, anotados para aplicações como controlo de qualidade farmacêutica, triagem de comprimidos e conformidade regulamentar.
  • Objects365: Um conjunto de dados de alta qualidade e em grande escala para a deteção de objetos, com 365 categorias de objetos e mais de 600 mil imagens anotadas.
  • OpenImagesV7: Um conjunto de dados abrangente criado pela Google com 1,7 milhão de imagens de treino 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 com assinaturas anotadas, apoiando a investigação em verificação de documentos e deteção de fraudes.
  • SKU-110K: Um conjunto de dados com deteção de objetos densos em ambientes de retalho, com mais de 11 mil imagens e 1,7 milhão de bounding boxes.
  • TT100K: Explora o conjunto de dados de sinais de trânsito Tsinghua-Tencent 100K (TT100K), que contém 16.817 imagens de vistas de rua em 221 categorias de sinais para uma deteção e classificação robustas.
  • VisDrone: Um conjunto de dados que contém dados de deteção de objetos e rastreio de múltiplos objetos a partir de 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 deteçã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 gostaria de 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 etiqueta#

Formato de dataset COCO para formato YOLO#

Podes converter facilmente rótulos do formato popular do COCO dataset para o formato YOLO utilizando o seguinte trecho de código:

Exemplo
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 do COCO baseadas em JSON no formato YOLO baseado em texto mais simples, tornando-o compatível com Ultralytics YOLO models.

Lembre-se de verificar duas vezes 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.

O que vem a seguir#

Com o teu conjunto de dados formatado, start training your model. Tens dúvidas sobre qual modelo pré-treinado deves escolher? Compara as opções na YOLO26 model family.

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 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.zip

Os rótulos são guardados em arquivos *.txt com um arquivo por imagem, formatados como class x_center y_center width height com coordenadas normalizadas. Para obteres um guia detalhado, consulta o COCO8 dataset example.

Como converto um dataset COCO para o formato YOLO?#

Podes converter um conjunto de dados COCO para o formato YOLO utilizando as Ultralytics conversion tools. Eis um método rápido:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Este código irá converter as tuas anotações do COCO para o formato YOLO, permitindo uma integração perfeita com os modelos Ultralytics YOLO. Para obter detalhes adicionais, visita a secção Port or Convert Label Formats.

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 conjunto de dados fornece informações detalhadas sobre a estrutura e utilização adaptadas para um treino eficiente do YOLO26. Explora a lista completa na secção Supported Datasets.

Como começo a treinar um modelo YOLO26 usando meu dataset?#

Para começar a treinar um modelo YOLO26, certifique-se de que seu dataset esteja formatado corretamente e que os caminhos estejam definidos em um arquivo YAML. Use o script a seguir para iniciar o treinamento:

Exemplo
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)

Consulta a secção Usage para mais detalhes sobre a utilização de diferentes modos, incluindo comandos da CLI.

Onde posso encontrar exemplos práticos de uso do Ultralytics YOLO para detecção de objetos?#

A Ultralytics fornece vários exemplos e guias práticos para a utilização do YOLO26 em diversas aplicações. Para uma visão geral abrangente, visita o Ultralytics Blog, onde podes encontrar estudos de caso, tutoriais detalhados e histórias da comunidade que demonstram a deteção de objetos, segmentação e muito mais com o YOLO26. Para exemplos específicos, verifica a secção Usage na documentação.

Comentários