Conjunto de dados Roboflow 100

O Roboflow 100, patrocinado pela Intel, é um conjunto de dados de referência inovador para detecção de objetos. Ele inclui 100 conjuntos de dados diversos. Esta referência foi projetada especificamente para testar a adaptabilidade de modelos de visão computacional, como os modelos YOLO da Ultralytics, a vários domínios, incluindo saúde, imagens aéreas e videogames.

Licenciamento

A Ultralytics oferece duas opções de licenciamento para acomodar diferentes casos de uso:

  • Licença AGPL-3.0: Esta licença de código aberto aprovada pela OSI é ideal para estudantes e entusiastas, promovendo a colaboração aberta e o compartilhamento de conhecimento. Veja o arquivo LICENSE para mais detalhes e visite nossa página da licença AGPL-3.0.
  • Licença Enterprise: Projetada para uso comercial, esta licença permite a integração perfeita de software e modelos de IA da Ultralytics em produtos e serviços comerciais. Se o seu cenário envolve aplicações comerciais, por favor, entre em contato através do Licenciamento da Ultralytics.

Roboflow 100 diverse object detection benchmark

Principais recursos

  • Domínios Diversos: Inclui 100 conjuntos de dados em sete domínios distintos: Aéreo, Videogames, Microscópico, Subaquático, Documentos, Eletromagnético e Mundo Real.
  • Escala: A referência compreende 224.714 imagens em 805 classes, representando mais de 11.170 horas de esforço de rotulagem de dados.
  • Padronização: Todas as imagens são pré-processadas e redimensionadas para 640x640 pixels para uma avaliação consistente.
  • Avaliação Limpa: Foca na eliminação da ambiguidade de classes e filtra classes sub-representadas para garantir uma avaliação de modelo mais limpa.
  • Anotações: Inclui caixas delimitadoras para objetos, adequadas para treinamento e avaliação de modelos de detecção de objetos usando métricas como mAP.

Estrutura do Dataset

O conjunto de dados Roboflow 100 é organizado em sete categorias, cada uma contendo uma coleção única de conjuntos de dados, imagens e classes:

  • Aéreo: 7 conjuntos de dados, 9.683 imagens, 24 classes.
  • Videogames: 7 conjuntos de dados, 11.579 imagens, 88 classes.
  • Microscópico: 11 conjuntos de dados, 13.378 imagens, 28 classes.
  • Subaquático: 5 conjuntos de dados, 18.003 imagens, 39 classes.
  • Documentos: 8 conjuntos de dados, 24.813 imagens, 90 classes.
  • Eletromagnético: 12 conjuntos de dados, 36.381 imagens, 41 classes.
  • Mundo Real: 50 conjuntos de dados, 110.615 imagens, 495 classes.

Esta estrutura fornece uma base de teste vasta e diversificada para modelos de detecção de objetos, refletindo uma ampla gama de cenários de aplicação do mundo real encontrados em várias Soluções Ultralytics.

Benchmarking

O benchmarking de conjuntos de dados envolve avaliar o desempenho de modelos de aprendizado de máquina em conjuntos de dados específicos usando métricas padronizadas. Métricas comuns incluem precisão, média da Precisão Média (mAP) e F1-score. Você pode aprender mais sobre isso em nosso guia de Métricas de Desempenho YOLO.

Resultados de Benchmarking

Os resultados do benchmarking usando o script fornecido serão armazenados no diretório ultralytics-benchmarks/, especificamente em evaluation.txt.

Exemplo de Benchmarking

O seguinte script demonstra como realizar o benchmarking programático de um modelo YOLO da Ultralytics (por exemplo, YOLO26n) em todos os 100 conjuntos de dados dentro da referência Roboflow 100 usando a classe RF100Benchmark.

import os
import shutil
from pathlib import Path

from ultralytics.utils.benchmarks import RF100Benchmark

# Initialize RF100Benchmark and set API key
benchmark = RF100Benchmark()
benchmark.set_key(api_key="YOUR_ROBOFLOW_API_KEY")

# Parse dataset and define file paths
names, cfg_yamls = benchmark.parse_dataset()
val_log_file = Path("ultralytics-benchmarks") / "validation.txt"
eval_log_file = Path("ultralytics-benchmarks") / "evaluation.txt"

# Run benchmarks on each dataset in RF100
for ind, path in enumerate(cfg_yamls):
    path = Path(path)
    if path.exists():
        # Fix YAML file and run training
        benchmark.fix_yaml(str(path))
        os.system(f"yolo detect train data={path} model=yolo26s.pt epochs=1 batch=16")

        # Run validation and evaluate
        os.system(f"yolo detect val data={path} model=runs/detect/train/weights/best.pt > {val_log_file} 2>&1")
        benchmark.evaluate(str(path), str(val_log_file), str(eval_log_file), ind)

        # Remove the 'runs' directory
        runs_dir = Path.cwd() / "runs"
        shutil.rmtree(runs_dir)
    else:
        print("YAML file path does not exist")
        continue

print("RF100 Benchmarking completed!")

Aplicações

O Roboflow 100 é inestimável para várias aplicações relacionadas a visão computacional e aprendizado profundo. Pesquisadores e engenheiros podem aproveitar esta referência para:

  • Avaliar o desempenho de modelos de detecção de objetos em um contexto de múltiplos domínios.
  • Testar a adaptabilidade e a robustez de modelos a cenários do mundo real além de conjuntos de dados de referência comuns, como COCO ou PASCAL VOC.
  • Realizar o benchmark das capacidades de modelos de detecção de objetos em diversos conjuntos de dados, incluindo áreas especializadas como saúde, imagens aéreas e videogames.
  • Comparar o desempenho do modelo entre diferentes arquiteturas de redes neurais e técnicas de otimização.
  • Identificar desafios específicos do domínio que podem exigir dicas de treinamento de modelo especializadas ou abordagens de ajuste fino, como transfer learning.

Para mais ideias e inspiração sobre aplicações no mundo real, explore nossos guias sobre projetos práticos ou confira a Plataforma Ultralytics para treinamento de modelos e implantação simplificados.

Utilização

O conjunto de dados Roboflow 100, incluindo metadados e links de download, está disponível no repositório oficial do GitHub do Roboflow 100. Você pode acessar e utilizar o conjunto de dados diretamente de lá para suas necessidades de benchmarking. O utilitário RF100Benchmark da Ultralytics simplifica o processo de download e preparação desses conjuntos de dados para uso com modelos Ultralytics.

Amostra de dados e anotações

O Roboflow 100 consiste em conjuntos de dados com imagens diversas capturadas de vários ângulos e domínios. Abaixo estão exemplos de imagens anotadas incluídas na referência RF100, mostrando a variedade de objetos e cenas. Técnicas como aumento de dados podem aumentar ainda mais a diversidade durante o treinamento.

Roboflow 100 sample images with annotations

A diversidade vista na referência Roboflow 100 representa um avanço significativo em relação às referências tradicionais, que frequentemente se concentram na otimização de uma única métrica dentro de um domínio limitado. Esta abordagem abrangente ajuda no desenvolvimento de modelos de visão computacional mais robustos e versáteis, capazes de ter um bom desempenho em uma infinidade de cenários diferentes.

Citações e Agradecimentos

Se você usar o conjunto de dados Roboflow 100 em sua pesquisa ou trabalho de desenvolvimento, por favor, cite o artigo original:

Citação
@misc{rf100benchmark,
    Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
    Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
    Year = {2022},
    Eprint = {arXiv:2211.13523},
    url = {https://arxiv.org/abs/2211.13523}
}

Estendemos nossa gratidão à equipe Roboflow e a todos os colaboradores por seus esforços significativos na criação e manutenção do conjunto de dados Roboflow 100 como um recurso valioso para a comunidade de visão computacional.

Se você estiver interessado em explorar mais conjuntos de dados para aprimorar seus projetos de detecção de objetos e aprendizado de máquina, sinta-se à vontade para visitar nossa coleção abrangente de conjuntos de dados, que inclui uma variedade de outros conjuntos de dados de detecção.

FAQ

O que é o conjunto de dados Roboflow 100 e por que ele é significativo para a detecção de objetos?

O conjunto de dados Roboflow 100 é uma referência para modelos de detecção de objetos. Ele compreende 100 conjuntos de dados diversos cobrindo domínios como saúde, imagens aéreas e videogames. Sua importância reside em fornecer uma maneira padronizada de testar a adaptabilidade e robustez do modelo em uma ampla gama de cenários do mundo real, indo além de referências tradicionais, muitas vezes limitadas ao domínio.

Quais domínios são cobertos pelo conjunto de dados Roboflow 100?

O conjunto de dados Roboflow 100 abrange sete domínios diversos, oferecendo desafios únicos para modelos de detecção de objetos:

  1. Aéreo: 7 conjuntos de dados (por exemplo, imagens de satélite, vistas de drones).
  2. Videogames: 7 conjuntos de dados (por exemplo, objetos de vários ambientes de jogos).
  3. Microscópico: 11 conjuntos de dados (por exemplo, células, partículas).
  4. Subaquático: 5 conjuntos de dados (por exemplo, vida marinha, objetos submersos).
  5. Documentos: 8 conjuntos de dados (por exemplo, regiões de texto, elementos de formulários).
  6. Eletromagnético: 12 conjuntos de dados (por exemplo, assinaturas de radar, visualizações de dados espectrais).
  7. Mundo Real: 50 conjuntos de dados (uma categoria ampla que inclui objetos do cotidiano, cenas, varejo, etc.).

Essa variedade torna o RF100 um excelente recurso para avaliar a generalização de modelos de visão computacional.

O que devo incluir ao citar o conjunto de dados Roboflow 100 em minha pesquisa?

Ao usar o conjunto de dados Roboflow 100, por favor, cite o artigo original para dar crédito aos criadores. Aqui está a citação BibTeX recomendada:

Citação
@misc{rf100benchmark,
    Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
    Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
    Year = {2022},
    Eprint = {arXiv:2211.13523},
    url = {https://arxiv.org/abs/2211.13523}
}

Para exploração adicional, considere visitar nossa coleção abrangente de conjuntos de dados ou navegar por outros conjuntos de dados de detecção compatíveis com modelos Ultralytics.

Comentários