Ultralytics YOLO27:
Get Started

Visão geral dos conjuntos de dados#

Ultralytics oferece suporte a vários conjuntos de dados para facilitar tarefas de visão computacional, como detecção, segmentação de instâncias, segmentação semântica, estimativa de profundidade, classificação, estimativa de pose e caixas delimitadoras orientadas (OBB). Abaixo está uma lista dos principais conjuntos de dados da Ultralytics, seguida de um resumo de cada tarefa de visão computacional e dos respectivos conjuntos de dados. O modo de rastreamento funciona sobre modelos de detecção, segmentação, pose e OBB sem treinamento específico para rastreadores; consulte os conjuntos de dados de rastreamento.



Assista: Visão geral dos conjuntos de dados do Ultralytics

Deteção de objetos#

A detecção de objetos com caixas delimitadoras é uma técnica de visão computacional que consiste em detectar e localizar objetos em uma imagem, desenhando uma caixa delimitadora ao redor de cada objeto.

  • African-wildlife: um conjunto de dados com imagens da vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
  • Argoverse: um conjunto de dados com informações de rastreamento 3D e previsão de movimento em ambientes urbanos, com anotações detalhadas.
  • Brain-tumor: um conjunto de dados para detectar tumores cerebrais, com imagens de ressonância magnética ou tomografia computadorizada e detalhes sobre a presença, a localização e as características dos tumores.
  • COCO: o COCO (Objetos comuns em contexto) é um conjunto de dados em grande escala para detecção, segmentação e legendagem de objetos, 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: um conjunto de dados de teste com 12 imagens, que abrange os 12 formatos de imagem compatíveis (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) para validar fluxos de carregamento de imagens.
  • COCO128: um subconjunto menor das 128 primeiras imagens do COCO train2017, ideal para testes.
  • Construction-PPE: um conjunto de dados com imagens de canteiros de obras anotadas com equipamentos de segurança essenciais, como capacetes, coletes, luvas, botas e óculos de proteção, além de rótulos para equipamentos ausentes, que auxilia no desenvolvimento de modelos de IA para conformidade e proteção dos trabalhadores.
  • Global Wheat 2020: um conjunto de dados com imagens de espigas de trigo para o Global Wheat Challenge 2020.
  • HomeObjects-3K: um conjunto de dados de cenas internas anotadas com 12 itens domésticos comuns, ideal para desenvolver e testar modelos de visão computacional em sistemas de casa inteligente, robótica e realidade aumentada.
  • KITTI: um conhecido conjunto de dados de direção autônoma com entradas estéreo, LiDAR e GPS/IMU, usado para detecção de objetos 2D em diversas cenas de estrada.
  • 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: um conjunto de dados com imagens rotuladas de comprimidos, criado para auxiliar em tarefas como controle de qualidade farmacêutica, classificação e conformidade com padrões do setor.
  • Objects365: um 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 anotadas.
  • OpenImagesV7: um conjunto de dados abrangente do Google, com 1,7 milhão de imagens de treinamento e 42 mil imagens de validação.
  • RF100: um benchmark diversificado de detecçã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 detecção densa de objetos em ambientes de varejo, com mais de 11 mil imagens e 1,7 milhão de caixas delimitadoras.
  • TT100K: o conjunto de dados de placas de trânsito Tsinghua-Tencent 100K, com 16.817 imagens de ruas distribuídas por 221 categorias de placas.
  • 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 detecção e segmentação de objetos, com 20 classes de objetos e mais de 21 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.

Segmentação de instâncias#

A segmentação de instâncias é uma técnica de visão computacional que consiste em identificar e localizar objetos em uma imagem no nível dos pixels. Ao contrário da segmentação semântica, que apenas classifica cada pixel, a segmentação de instâncias distingue diferentes instâncias da mesma classe.

  • Carparts-seg: um conjunto de dados desenvolvido especificamente para identificar peças de veículos, atendendo às necessidades de design, fabricação e pesquisa. Ele pode ser usado tanto em tarefas de detecção de objetos quanto de segmentação.
  • COCO: um conjunto de dados em grande escala desenvolvido para tarefas de detecção, segmentação e legendagem de objetos, com mais de 200 mil imagens rotuladas.
  • COCO8-seg: um conjunto de dados menor para tarefas de segmentação de instâncias, com um subconjunto de 8 imagens do COCO que incluem anotações de segmentação.
  • COCO128-seg: um conjunto de dados menor para tarefas de segmentação de instâncias, com um subconjunto de 128 imagens do COCO que incluem anotações de segmentação.
  • Crack-seg: um conjunto de dados criado especificamente para detectar rachaduras em estradas e paredes, aplicável tanto a tarefas de detecção de objetos quanto de segmentação.
  • Package-seg: um conjunto de dados desenvolvido para identificar pacotes em armazéns ou ambientes industriais, adequado tanto para aplicações de detecção de objetos quanto de segmentação.

Segmentação semântica#

A segmentação semântica atribui um rótulo de classe a cada pixel de uma imagem, produzindo mapas densos da cena para aplicações como direção autônoma, interpretação de cenas e mapeamento da cobertura do solo.

  • Cityscapes: um conjunto de dados de segmentação semântica de cenas urbanas de rua, com 19 classes de treinamento.
  • Cityscapes8: um subconjunto compacto de 8 imagens do Cityscapes para verificações rápidas de fluxos de segmentação semântica.
  • ADE20K: um conjunto de dados para interpretação de cenas, com 150 classes semânticas.

Estimativa de profundidade#

A estimativa monocular de profundidade prevê um mapa de profundidade em metros por pixel a partir de uma única imagem RGB, dando suporte à reconstrução de cenas 3D, à navegação de robôs e a aplicações de RA/RV.

  • Depth8: um subconjunto compacto de 8 imagens do SUN RGB-D para verificações rápidas de fluxos de trabalho.
  • ARKitScenes: imagens RGB-D reais de ambientes internos capturadas com o LiDAR do Apple ARKit; é a maior fonte de dados reais para treinamento.
  • SUN RGB-D: cenas reais de ambientes internos capturadas com quatro sensores RGB-D diferentes.
  • DIODE: dados densos de profundidade de ambientes internos e externos, capturados com um scanner a laser de precisão topográfica.
  • Hypersim: cenas sintéticas fotorrealistas de ambientes internos, com profundidade perfeita por pixel.
  • TartanAir: ambientes sintéticos do AirSim com dados densos de profundidade até ~80 m.
  • Virtual KITTI 2: recriação sintética de cenas de direção do KITTI com dados densos de profundidade.
  • KITTI: cenas reais de direção autônoma em ambientes externos, com dados de profundidade LiDAR do Velodyne; também é o benchmark KITTI Eigen.
  • ImageNet (rotulado por pseudorrótulos): imagens do ImageNet-1K com pseudorrótulos do Depth Anything 3 para destilação.
  • NYU Depth V2: benchmark padrão de profundidade em ambientes internos, capturado com um Microsoft Kinect v1.
  • ETH3D: benchmark de alta precisão com scanner a laser para ambientes internos e externos.
  • Make3D: benchmark de ambientes externos em campus, fora da distribuição.
  • iBims-1: benchmark de alta qualidade para bordas de profundidade e superfícies planas em ambientes internos.

Classificação#

A classificação de imagens é uma tarefa de visão computacional que consiste em categorizar uma imagem em uma ou mais classes ou categorias predefinidas, com base no conteúdo visual.

  • Caltech 101: um conjunto de dados com imagens de 101 categorias de objetos para tarefas de classificação de imagens.
  • Caltech 256: uma versão ampliada do Caltech 101, com 256 categorias de objetos e imagens mais desafiadoras.
  • CIFAR-10: um conjunto de dados com 60 mil imagens coloridas de 32x32, distribuídas por 10 classes, com 6 mil imagens por classe.
  • CIFAR-100: uma versão ampliada do CIFAR-10, com 100 categorias de objetos e 600 imagens por classe.
  • Fashion-MNIST: um conjunto de dados com 70.000 imagens em escala de cinza de 10 categorias de moda para tarefas de classificação de imagens.
  • ImageNet: um conjunto de dados em grande escala para detecção de objetos e classificação de imagens, com mais de 14 milhões de imagens e 20.000 categorias.
  • ImageNet-10: um subconjunto menor do ImageNet, com 10 categorias, para experimentação e testes mais rápidos.
  • Imagenette: um subconjunto menor do ImageNet com 10 classes facilmente distinguíveis, para treinamento e testes mais rápidos.
  • Imagewoof: um subconjunto mais desafiador do ImageNet, com 10 categorias de raças de cães para tarefas de classificação de imagens.
  • MNIST: um conjunto de dados com 70.000 imagens em escala de cinza de dígitos manuscritos para tarefas de classificação de imagens.
  • MNIST160: as 8 primeiras imagens de cada dígito (0-9) das divisões de treinamento e teste do MNIST. O conjunto de dados contém 160 imagens no total.

Estimativa de pose#

A estimativa de pose é uma técnica usada para determinar a pose de um objeto em relação à câmera ou ao sistema de coordenadas do mundo. Isso envolve identificar pontos-chave ou articulações em objetos, especialmente em pessoas ou animais.

  • COCO: um conjunto de dados em grande escala com anotações de pose humana, desenvolvido para tarefas de estimativa de pose.
  • COCO8-pose: um conjunto de dados menor para tarefas de estimativa de pose, com um subconjunto de 8 imagens do COCO que incluem anotações de pose humana.
  • Dog-pose: um conjunto de dados abrangente com aproximadamente 8.500 imagens de cães, anotadas com 24 pontos-chave por cão e desenvolvido para tarefas de estimativa de pose.
  • Hand-Keypoints: um conjunto de dados compacto com mais de 26.000 imagens de mãos humanas, anotadas com 21 pontos-chave por mão e desenvolvido para tarefas de estimativa de pose.
  • Tiger-pose: um conjunto de dados compacto com 263 imagens de tigres, anotadas com 12 pontos-chave por tigre para tarefas de estimativa de pose.

Caixas delimitadoras orientadas (OBB)#

Caixas delimitadoras orientadas (OBB) são um método de visão computacional para detectar objetos inclinados em imagens usando caixas delimitadoras giradas, geralmente aplicado a imagens aéreas e de satélite. Ao contrário das caixas delimitadoras tradicionais, OBB se ajusta melhor a objetos em diversas orientações.

  • DOTA-v2: um conjunto de dados popular de imagens aéreas OBB, com 1,7 milhão de instâncias e 11.268 imagens.
  • DOTA8: um subconjunto menor das 8 primeiras imagens do conjunto de divisão DOTAv1, com 4 imagens para treinamento e 4 para validação, ideal para testes rápidos.
  • DOTA128: um subconjunto de 128 imagens do conjunto de dados DOTA, para treinamento e validação, que oferece um bom equilíbrio entre tamanho e diversidade para testar modelos OBB.

Contribuir com novos conjuntos de dados#

Para contribuir com um novo conjunto de dados, siga algumas etapas para garantir que ele se integre bem à infraestrutura existente. Veja abaixo as etapas necessárias:



Assista: Como contribuir para os conjuntos de dados do Ultralytics

Etapas para contribuir com um novo conjunto de dados#

  1. Coletar imagens: reúna as imagens que fazem parte do conjunto de dados. Você pode coletá-las de várias fontes, como bancos de dados públicos ou sua própria coleção.

  2. Anotar imagens: anote essas imagens com caixas delimitadoras, segmentos ou pontos-chave, dependendo da tarefa.

  3. Exportar anotações: converta essas anotações para o formato de arquivo YOLO *.txt compatível com a Ultralytics.

  4. Organizar o conjunto de dados: organize o conjunto de dados na estrutura de pastas correta. Você deve ter os diretórios de nível superior images/ e labels/ e, dentro de cada um, os subdiretórios train/ e val/.

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
  5. Criar um arquivo data.yaml: crie um arquivo data.yaml no diretório raiz do conjunto de dados para descrever o conjunto de dados, as classes e outras informações necessárias.

  6. Otimizar imagens (opcional): se você quiser reduzir o tamanho do conjunto de dados para processá-lo com mais eficiência, poderá otimizar as imagens usando o código abaixo. Isso não é obrigatório, mas é recomendável para reduzir o tamanho do conjunto de dados e acelerar os downloads.

  7. Compactar o conjunto de dados: comprime toda a pasta do conjunto de dados em um arquivo zip.

  8. Documentação e PR: cria uma página de documentação que descreva o teu conjunto de dados e como ele se integra à estrutura existente. Depois, envia um pedido de revisão (PR). Consulta as Diretrizes de contribuição da Ultralytics para saber mais sobre como enviar um PR.

Código de exemplo para otimizar e compactar um conjunto de dados#

Otimizar e compactar um conjunto de dados
from pathlib import Path

from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory

# Definir o diretório do conjunto de dados
path = Path("path/to/dataset")

# Otimizar as imagens do conjunto de dados (opcional)
for f in path.rglob("*.jpg"):
    compress_one_image(f)

# Compactar o conjunto de dados em 'path/to/dataset.zip'
zip_directory(path)

Seguindo estas etapas, podes contribuir com um novo conjunto de dados que se integre bem à estrutura existente da Ultralytics.

Perguntas frequentes#

  • A Ultralytics oferece uma grande variedade de conjuntos de dados para detecção de objetos, incluindo:

    • COCO: um conjunto de dados em grande escala para detecção de objetos, segmentação e legendagem, com 80 categorias de objetos.
    • LVIS: um amplo conjunto de dados com 1.203 categorias de objetos, desenvolvido para detecção e segmentação de objetos mais detalhadas.
    • Argoverse: um conjunto de dados com informações de rastreamento 3D e previsão de movimento em ambientes urbanos, com anotações detalhadas.
    • VisDrone: um conjunto de dados com dados de detecção de objetos e rastreamento de múltiplos objetos obtidos de imagens capturadas por drones.
    • SKU-110K: inclui detecção de objetos densos em ambientes de varejo, com mais de 11 mil imagens.

    Estes conjuntos de dados facilitam o treinamento de modelos robustos Ultralytics YOLO para diversas aplicações de detecção de objetos.

  • Para contribuir com um novo conjunto de dados, segue estas etapas:

    1. Coletar imagens: reúne imagens de bases de dados públicas ou coleções pessoais.
    2. Anotar imagens: aplica caixas delimitadoras, segmentos ou pontos-chave, conforme a tarefa.
    3. Exportar anotações: converte as anotações para o formato YOLO *.txt.
    4. Organizar o conjunto de dados: usa a estrutura de pastas com os diretórios images/ e labels/, cada um contendo os subdiretórios train/ e val/.
    5. Criar um arquivo data.yaml: inclui descrições do conjunto de dados, classes e outras informações relevantes.
    6. Otimizar imagens (opcional): reduz o tamanho do conjunto de dados para torná-lo mais eficiente.
    7. Compactar o conjunto de dados: comprime o conjunto de dados em um arquivo zip.
    8. Documentação e PR: descreve o teu conjunto de dados e envia um pedido de revisão seguindo as Diretrizes de contribuição da Ultralytics.

    Consulta Contribuir com novos conjuntos de dados para obter um guia completo.

  • A Ultralytics Platform oferece recursos avançados para gerenciar e analisar conjuntos de dados, incluindo:

    • Gerenciamento simplificado de conjuntos de dados: carrega, organiza e gerencia os teus conjuntos de dados em um só lugar.
    • Integração imediata com o treinamento: usa os conjuntos de dados carregados diretamente no treinamento de modelos, sem configuração adicional.
    • Ferramentas de visualização: explora e visualiza as imagens e anotações do teu conjunto de dados.
    • Análise de conjuntos de dados: obtém informações sobre a distribuição e as características do teu conjunto de dados.

    A plataforma simplifica a transição do gerenciamento de conjuntos de dados para o treinamento de modelos, tornando todo o processo mais eficiente. Saiba mais sobre os Conjuntos de dados da Ultralytics Platform.

  • Os modelos Ultralytics YOLO oferecem diversos recursos exclusivos para tarefas de visão computacional:

    • Desempenho em tempo real: recursos de inferência e treinamento de alta velocidade para aplicações sensíveis ao tempo.
    • Versatilidade: suporte a detecção, segmentação de instâncias, segmentação semântica, estimativa de profundidade, classificação, estimativa de pose e tarefas de caixa delimitadora orientada (OBB) em uma estrutura unificada.
    • Modelos pré-treinados: acesso a modelos pré-treinados de alto desempenho para diversas aplicações, reduzindo o tempo de treinamento.
    • Amplo suporte da comunidade: comunidade ativa e documentação abrangente para solucionar problemas e desenvolver.
    • Integração fácil: API simples para integrar a projetos e fluxos de trabalho existentes.

    Descobre mais sobre os modelos YOLO na página Modelos da Ultralytics.

  • Para otimizar e compactar um conjunto de dados usando as ferramentas da Ultralytics, segue este código de exemplo:

    Otimizar e compactar um conjunto de dados
    from pathlib import Path
    
    from ultralytics.data.utils import compress_one_image
    from ultralytics.utils.downloads import zip_directory
    
    # Definir o diretório do conjunto de dados
    path = Path("path/to/dataset")
    
    # Otimizar as imagens do conjunto de dados (opcional)
    for f in path.rglob("*.jpg"):
        compress_one_image(f)
    
    # Compactar o conjunto de dados em 'path/to/dataset.zip'
    zip_directory(path)

    Esse processo ajuda a reduzir o tamanho do conjunto de dados, facilitando o armazenamento e acelerando os downloads. Saiba mais sobre como otimizar e compactar um conjunto de dados.

Comentários