Visão geral dos datasets

A Ultralytics oferece suporte a diversos datasets para facilitar tarefas de visão computacional, tais como detecção, segmentação de instâncias, segmentação semântica, estimativa de pose, classificação e rastreamento de múltiplos objetos. Abaixo, apresentamos uma lista dos principais datasets da Ultralytics, seguida por um resumo de cada tarefa de visão computacional e seus respectivos datasets.



Watch: Ultralytics Datasets Overview

Detecção de Objetos

A detecção de objetos por caixa delimitadora é uma técnica de visão computacional que envolve detectar e localizar objetos em uma imagem, desenhando uma caixa ao redor de cada um deles.

  • African-wildlife: Um dataset com imagens da vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
  • Argoverse: Um dataset contendo dados de rastreamento 3D e previsão de movimento em ambientes urbanos, com anotações ricas.
  • Brain-tumor: Um dataset para detecção de tumores cerebrais que inclui imagens de ressonância magnética ou tomografia computadorizada, com detalhes sobre a presença, localização e características do tumor.
  • COCO: Common Objects in Context (COCO) é um dataset de larga escala para detecção, segmentação e legendagem de objetos, com 80 categorias.
  • COCO8: Um subconjunto menor das primeiras 4 imagens do COCO train e COCO val, adequado para testes rápidos.
  • COCO8-Grayscale: Uma versão em escala de cinza do COCO8 criada convertendo RGB para escala de cinza, útil para avaliação de modelos de canal único.
  • COCO8-Multispectral: Uma versão multiespectral de 10 canais do COCO8 criada interpolando comprimentos de onda RGB, útil para avaliação de modelos sensíveis ao espectro.
  • COCO128: Um subconjunto menor das primeiras 128 imagens do COCO train e COCO val, adequado para testes.
  • Construction-PPE: Um dataset de imagens de canteiros de obras anotadas com equipamentos de segurança essenciais, como capacetes, coletes, luvas, botas e óculos de proteção, junto com rótulos para equipamentos ausentes, apoiando o desenvolvimento de modelos de IA para conformidade e proteção dos trabalhadores.
  • Global Wheat 2020: Um dataset contendo imagens de espigas de trigo para o Global Wheat Challenge 2020.
  • HomeObjects-3K: Um dataset de cenas internas anotadas contendo 12 itens domésticos comuns, ideal para desenvolver e testar modelos de visão computacional em sistemas de casas inteligentes, robótica e realidade aumentada.
  • KITTI Novo: Um dataset de direção autônoma bem conhecido que apresenta entradas estéreo, LiDAR e GPS/IMU, usado para detecção de objetos 2D em cenas rodoviárias variadas.
  • LVIS: Um dataset de larga escala para detecção, segmentação e legendagem de objetos com 1203 categorias.
  • Medical-pills: Um dataset contendo imagens rotuladas de pílulas médicas, projetado para auxiliar em tarefas como controle de qualidade farmacêutico, triagem e garantia de conformidade com os padrões da indústria.
  • Objects365: Um dataset de alta qualidade e larga escala para detecção de objetos com 365 categorias e mais de 600 mil imagens anotadas.
  • OpenImagesV7: Um dataset abrangente do Google com 1,7 milhão de imagens de treino e 42 mil imagens de validação.
  • RF100: Um benchmark diversificado de detecção de objetos com 100 datasets abrangendo sete domínios de imagem para uma avaliação completa do modelo.
  • Signature: Um dataset com imagens de vários documentos com assinaturas anotadas, apoiando a verificação de documentos e a pesquisa de detecção de fraudes.
  • SKU-110K: Um dataset focado em detecção de objetos densos em ambientes de varejo, com mais de 11 mil imagens e 1,7 milhão de caixas delimitadoras.
  • VisDrone: Um dataset contendo dados de detecção e rastreamento 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 dataset Pascal Visual Object Classes (VOC) para detecção e segmentação de objetos com 20 classes e mais de 11 mil imagens.
  • xView: Um dataset para detecção de objetos em imagens aéreas com 60 categorias 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 envolve identificar e localizar objetos em uma imagem no nível de pixel. 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: Dataset criado com o propósito de identificar peças de veículos, atendendo às necessidades de design, manufatura e pesquisa. Ele serve tanto para tarefas de detecção quanto de segmentação de objetos.
  • COCO: Um dataset de larga escala projetado para tarefas de detecção, segmentação e legendagem de objetos, com mais de 200 mil imagens rotuladas.
  • COCO8-seg: Um dataset menor para tarefas de segmentação de instâncias, contendo um subconjunto de 8 imagens COCO com anotações de segmentação.
  • COCO128-seg: Um dataset menor para tarefas de segmentação de instâncias, contendo um subconjunto de 128 imagens COCO com anotações de segmentação.
  • Crack-seg: Dataset especificamente elaborado para detectar rachaduras em estradas e paredes, aplicável tanto para tarefas de detecção quanto de segmentação de objetos.
  • Package-seg: Dataset personalizado para identificar pacotes em armazéns ou ambientes industriais, adequado para aplicações de detecção e segmentação de objetos.

Segmentação Semântica

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

  • Cityscapes: Dataset de segmentação semântica de cenas urbanas com 19 classes de treino.
  • Cityscapes8: Um subconjunto compacto de 8 imagens do Cityscapes para verificações rápidas de pipelines de segmentação semântica.
  • ADE20K: Dataset de análise de cena com 150 classes semânticas.

Estimativa de Pose

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

  • COCO: Um dataset de larga escala com anotações de pose humana, projetado para tarefas de estimativa de pose.
  • COCO8-pose: Um dataset menor para tarefas de estimativa de pose, contendo um subconjunto de 8 imagens COCO com anotações de pose humana.
  • Dog-pose: Um dataset abrangente apresentando aproximadamente 6.000 imagens focadas em cães, anotadas com 24 pontos-chave por cão, adaptado para tarefas de estimativa de pose.
  • Hand-Keypoints: Um dataset conciso contendo mais de 26.000 imagens centradas em mãos humanas, anotadas com 21 pontos-chave por mão, projetado para tarefas de estimativa de pose.
  • Tiger-pose: Um dataset compacto composto por 263 imagens focadas em tigres, anotadas com 12 pontos-chave por tigre para tarefas de estimativa de pose.

Classificação

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

  • Caltech 101: Um dataset contendo imagens de 101 categorias de objetos para tarefas de classificação de imagens.
  • Caltech 256: Uma versão estendida do Caltech 101 com 256 categorias de objetos e imagens mais desafiadoras.
  • CIFAR-10: Um dataset de 60 mil imagens coloridas de 32x32 em 10 classes, com 6 mil imagens por classe.
  • CIFAR-100: Uma versão estendida do CIFAR-10 com 100 categorias de objetos e 600 imagens por classe.
  • Fashion-MNIST: Um dataset consistindo em 70.000 imagens em escala de cinza de 10 categorias de moda para tarefas de classificação de imagens.
  • ImageNet: Um dataset de larga 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 que contém 10 classes facilmente distinguíveis para treinamento e testes mais rápidos.
  • Imagewoof: Um subconjunto mais desafiador do ImageNet contendo 10 categorias de raças de cães para tarefas de classificação de imagens.
  • MNIST: Um dataset de 70.000 imagens em escala de cinza de dígitos manuscritos para tarefas de classificação de imagens.
  • MNIST160: Primeiras 8 imagens de cada categoria MNIST do dataset original. O dataset contém 160 imagens no total.

Caixas Delimitadoras Orientadas (OBB)

Caixas Delimitadoras Orientadas (OBB) são um método em visão computacional para detectar objetos angulados em imagens usando caixas delimitadoras rotacionadas, frequentemente aplicadas a imagens aéreas e de satélite. Ao contrário das caixas delimitadoras tradicionais, as OBB conseguem se ajustar melhor a objetos em várias orientações.

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

Rastreamento de Múltiplos Objetos

O rastreamento de múltiplos objetos é uma técnica de visão computacional que envolve detectar e rastrear vários objetos ao longo do tempo em uma sequência de vídeo. Esta tarefa estende a detecção de objetos mantendo identidades consistentes dos objetos entre os quadros.

  • Argoverse: Um dataset contendo dados de rastreamento 3D e previsão de movimento de ambientes urbanos, com ricas anotações para tarefas de rastreamento de múltiplos objetos.
  • VisDrone: Um dataset contendo dados de detecção e rastreamento de múltiplos objetos a partir de imagens capturadas por drones, com mais de 10 mil imagens e sequências de vídeo.

Contribuir com novos datasets

Contribuir com um novo dataset envolve várias etapas para garantir que ele esteja bem alinhado com a infraestrutura existente. Abaixo estão as etapas necessárias:



Watch: How to Contribute to Ultralytics Datasets

Passos para contribuir com um novo dataset

  1. Coletar imagens: Reúna as imagens que pertencem ao dataset. Elas podem ser coletadas de várias fontes, como bancos de dados públicos ou da 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 que a Ultralytics suporta.

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

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
  5. Criar um arquivo data.yaml: No diretório raiz do seu dataset, crie um arquivo data.yaml que descreva o dataset, as classes e outras informações necessárias.

  6. Otimizar imagens (opcional): Se você quiser reduzir o tamanho do dataset para um processamento mais eficiente, pode otimizar as imagens usando o código abaixo. Isso não é obrigatório, mas é recomendado para tamanhos de dataset menores e velocidades de download mais rápidas.

  7. Compactar dataset: Comprima toda a pasta do dataset em um arquivo zip.

  8. Documentação e PR: Crie uma página de documentação descrevendo seu dataset e como ele se encaixa no framework existente. Depois disso, envie um Pull Request (PR). Consulte as Diretrizes de Contribuição da Ultralytics para obter mais detalhes sobre como enviar um PR.

Exemplo de código para otimizar e compactar um dataset

Otimizar e compactar um dataset
   from pathlib import Path

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

   # Define dataset directory
   path = Path("path/to/dataset")

   # Optimize images in dataset (optional)
   for f in path.rglob("*.jpg"):
       compress_one_image(f)

   # Zip dataset into 'path/to/dataset.zip'
   zip_directory(path)

Ao seguir essas etapas, você pode contribuir com um novo dataset que se integra bem à estrutura existente da Ultralytics.

FAQ

Quais datasets a Ultralytics suporta para detecção de objetos?

A Ultralytics suporta uma grande variedade de datasets para detecção de objetos, incluindo:

  • COCO: Um dataset de larga escala para detecção, segmentação e legendagem de objetos com 80 categorias.
  • LVIS: Um dataset extenso com 1203 categorias de objetos, projetado para uma detecção e segmentação de objetos mais detalhada.
  • Argoverse: Um dataset contendo dados de rastreamento 3D e previsão de movimento em ambientes urbanos, com anotações ricas.
  • VisDrone: Um dataset com dados de detecção e rastreamento de múltiplos objetos a partir de imagens capturadas por drones.
  • SKU-110K: Focado em detecção de objetos densos em ambientes de varejo com mais de 11 mil imagens.

Esses datasets facilitam o treinamento de modelos Ultralytics YOLO robustos para várias aplicações de detecção de objetos.

Como contribuo com um novo dataset para a Ultralytics?

Contribuir com um novo dataset envolve várias etapas:

  1. Coletar imagens: Reúna imagens de bancos de dados públicos ou coleções pessoais.
  2. Anotar imagens: Aplique caixas delimitadoras, segmentos ou pontos-chave, dependendo da tarefa.
  3. Exportar anotações: Converta as anotações para o formato YOLO *.txt.
  4. Organizar o dataset: Use a estrutura de pastas com diretórios train/ e val/, cada um contendo subdiretórios images/ e labels/.
  5. Criar um arquivo data.yaml: Inclua descrições do dataset, classes e outras informações relevantes.
  6. Otimizar imagens (opcional): Reduza o tamanho do dataset para maior eficiência.
  7. Compactar dataset: Comprima o dataset em um arquivo zip.
  8. Documentação e PR: Descreva seu dataset e envie um Pull Request seguindo as Diretrizes de Contribuição da Ultralytics.

Visite Contribuir com novos datasets para um guia completo.

Por que devo usar a plataforma Ultralytics para o meu dataset?

A Ultralytics Platform oferece recursos poderosos para gestão e análise de datasets, incluindo:

  • Gestão Contínua de Datasets: Faz upload, organiza e gere os teus datasets num único local.
  • Integração Imediata de Treino: Usa datasets carregados diretamente para o treino de modelos sem necessidade de configuração adicional.
  • Ferramentas de Visualização: Explora e visualiza as imagens e anotações do teu dataset.
  • Análise de Dataset: Obtém insights sobre a distribuição e as características do teu dataset.

A plataforma simplifica a transição da gestão de datasets para o treino de modelos, tornando todo o processo mais eficiente. Sabe mais sobre Ultralytics Platform Datasets.

Quais são as funcionalidades únicas dos modelos Ultralytics YOLO para visão computacional?

Os modelos Ultralytics YOLO oferecem várias funcionalidades únicas para tarefas de computer vision:

  • Desempenho em Tempo Real: Capacidades de inferência e treino de alta velocidade para aplicações sensíveis ao tempo.
  • Versatilidade: Suporte para tarefas de deteção, segmentação de instâncias, segmentação semântica, classificação e estimativa de pose numa estrutura unificada.
  • Modelos Pré-treinados: Acesso a modelos pré-treinados de alto desempenho para várias aplicações, reduzindo o tempo de treino.
  • Extenso Suporte da Comunidade: Comunidade ativa e documentação abrangente para resolução de problemas e desenvolvimento.
  • Integração Fácil: API simples para integração com projetos e fluxos de trabalho existentes.

Descobre mais sobre modelos YOLO na página Ultralytics Models.

Como posso otimizar e comprimir um dataset usando ferramentas Ultralytics?

Para otimizar e comprimir (zip) um dataset usando ferramentas Ultralytics, segue este exemplo de código:

Otimizar e compactar um dataset
from pathlib import Path

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

# Define dataset directory
path = Path("path/to/dataset")

# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
    compress_one_image(f)

# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)

Este processo ajuda a reduzir o tamanho do dataset para um armazenamento mais eficiente e velocidades de transferência mais rápidas. Sabe mais sobre como Otimizar e Comprimir um Dataset.

Comentários