Ultralytics YOLO27:
Get Started

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

Caminhos de imagens em 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 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.

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

YOLO dataset directory structure with train and val folders

Exemplo de uso#

Veja como podes usar conjuntos de dados no formato YOLO para treinar o teu modelo:

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

  1. 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.
  2. Registros de imagens (linhas seguintes): contêm dados de cada imagem, incluindo dimensões, anotações e caminhos de arquivos.
Exemplo de NDJSON
{
    "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:

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

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

    Os rótulos são guardados em ficheiros *.txt, com um ficheiro por imagem, formatados como class x_center y_center width height com 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:

    Exemplo
    from 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.

Comentários