Conjunto de dados Roboflow 100#
O Roboflow 100, patrocinado pela Intel, é um conjunto de dados de benchmark inovador de object detection. Ele inclui 100 conjuntos de dados diversos. Este benchmark foi projetado especificamente para testar a adaptabilidade de modelos de computer vision, como os Ultralytics YOLO models, a vários domínios, incluindo saúde, imagens aéreas e videojogos.
A Ultralytics oferece duas opções de licenciamento para acomodar diferentes casos de uso:
- AGPL-3.0 License: Esta licença de código aberto aprovada pela OSI é ideal para estudantes e entusiastas, promovendo a colaboração aberta e a partilha de conhecimento. Vê o ficheiro LICENSE para mais detalhes e visita a nossa página da AGPL-3.0 License.
- Licença Empresarial: Para utilização em desenvolvimento e produção, esta licença permite a integração perfeita do software Ultralytics e modelos de IA em produtos e serviços empresariais, incluindo ferramentas internas, fluxos de trabalho automatizados e implementações de produção, contornando os requisitos open-source da AGPL-3.0. Para começar, contacta-nos através de Licenciamento da Ultralytics.
Principais recursos#
- Domínios Diversos: Inclui 100 conjuntos de dados em sete domínios distintos: Aéreo, Videojogos, Microscópico, Subaquático, Documentos, Eletromagnético e Mundo Real.
- Scale: O benchmark compreende 224.714 imagens em 805 classes, representando mais de 11.170 horas de esforço de data labeling.
- Standardization: Todas as imagens são preprocessed e redimensionadas para 640x640 píxeis para uma avaliação consistente.
- Clean Evaluation: Foca-se em eliminar a ambiguidade de classes e filtra classes sub-representadas para garantir uma model evaluation mais limpa.
- Annotations: Inclui bounding boxes para objetos, adequadas para training e avaliação de modelos de deteção de objetos usando métricas como o mAP.
Estrutura do Dataset#
O conjunto de dados Roboflow 100 está 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.
- Videojogos: 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 um terreno de teste diversificado e extensivo para modelos de object detection, refletindo uma vasta gama de cenários de aplicação do mundo real encontrados em várias Ultralytics Solutions.
Benchmarking#
O benchmarking de conjuntos de dados envolve avaliar o desempenho de modelos de machine learning em conjuntos de dados específicos usando métricas padronizadas. As métricas comuns incluem accuracy, mean Average Precision (mAP) e F1-score. Podes saber mais sobre estas no nosso guia de Métricas de Desempenho do YOLO.
Todos os resultados são agrupados num único diretório runs/<task>/multitrain/: cada conjunto de dados é ajustado no seu próprio subdiretório (com o seu próprio results.png), e as métricas por conjunto de dados e médias são escritas em multitrain_results.json juntamente com um gráfico de barras multitrain_results.png. A chamada model.train() também devolve um dicionário {dataset: metrics} para acesso programático.
O script abaixo descarrega os conjuntos de dados do Roboflow 100 listados em datasets_links.txt do Roboflow e, em seguida, ajusta um único modelo base (por exemplo, YOLO26n) em toda a coleção numa única chamada model.train(). Passar uma lista de conjuntos de dados ajusta o modelo base em cada um deles em série e visualiza automaticamente os resultados entre conjuntos de dados.
import re
from pathlib import Path
from roboflow import Roboflow
from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download
# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt") # list of RF100 dataset links
datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
try:
_, _url, workspace, project, version = re.split("/+", line.strip())
location = f"rf-100/{project}-{version}"
rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
yaml = Path(location) / "data.yaml"
cfg = YAML.load(yaml) # point train/val at the downloaded image folders
cfg["train"], cfg["val"] = "train/images", "valid/images"
YAML.save(yaml, cfg)
datasets.append(str(yaml))
except Exception as e:
LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")
# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640) # {dataset: metrics}
# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
if metrics: # None if that dataset failed to train
print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")Aplicações#
O Roboflow 100 é inestimável para várias aplicações relacionadas com computer vision e deep learning. Investigadores e engenheiros podem tirar partido deste benchmark para:
- Avaliar o desempenho de modelos de detecção de objetos em um contexto de múltiplos domínios.
- Testar a adaptabilidade e a robustness de modelos a cenários do mundo real além de benchmark datasets comuns como o COCO ou o PASCAL VOC.
- Avaliar as capacidades de modelos de detecção de objetos em diversos conjuntos de dados, incluindo áreas especializadas como saúde, imagens aéreas e videojogos.
- Comparar o desempenho de modelos entre diferentes arquiteturas de neural network e técnicas de optimization.
- Identificar desafios específicos de domínios que possam requerer model training tips especializados ou abordagens de fine-tuning como o transfer learning.
Para mais ideias e inspiração sobre aplicações no mundo real, explora os nossos guias sobre projetos práticos ou consulta a Ultralytics Platform para um model training e deployment simplificados.
Uso#
O conjunto de dados Roboflow 100, incluindo metadados e links de descarga, está disponível no repositório oficial do Roboflow 100 no GitHub. Podes aceder e utilizar o conjunto de dados diretamente a partir daí para as tuas necessidades de benchmarking. Assim que os conjuntos de dados forem descarregados e preparados conforme mostrado acima, os modelos Ultralytics podem ser ajustados em toda a coleção numa única chamada model.train() passando a lista de YAMLs de conjuntos de dados.
Dados de Amostra e Anotações#
O Roboflow 100 consiste em conjuntos de dados com diversas imagens capturadas a partir de vários ângulos e domínios. Abaixo encontram-se exemplos de imagens anotadas incluídas no benchmark RF100, demonstrando a variedade de objetos e cenas. Técnicas como data augmentation podem melhorar ainda mais a diversidade durante o treino.
A diversidade observada no benchmark Roboflow 100 representa um avanço significativo em relação aos benchmarks tradicionais, que frequentemente se focam em otimizar uma única métrica dentro de um domínio limitado. Esta abordagem abrangente ajuda no desenvolvimento de modelos de computer vision mais robustos e versáteis, capazes de ter um bom desempenho numa multiplicidade de cenários diferentes.
Citações e Agradecimentos#
Se usares o conjunto de dados Roboflow 100 no teu trabalho de pesquisa ou desenvolvimento, por favor cite o artigo original:
@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 tens interesse em explorar mais conjuntos de dados para melhorar os teus projetos de deteção de objetos e machine learning, não hesites em visitar a nossa coleção abrangente de conjuntos de dados, que inclui uma variedade de outros detection datasets.
FAQ#
O conjunto de dados Roboflow 100 é um benchmark para modelos de object detection. Ele compreende 100 conjuntos de dados diversos que cobrem domínios como saúde, imagens aéreas e videojogos. A sua importância reside no facto de fornecer uma forma padronizada de testar a adaptabilidade e robustez dos modelos numa ampla gama de cenários do mundo real, indo além de benchmarks tradicionais e frequentemente limitados a um domínio.
O conjunto de dados Roboflow 100 abrange sete domínios diversos, oferecendo desafios únicos para modelos de object detection:
- Aéreo: 7 conjuntos de dados (por exemplo, imagens de satélite, vistas de drones).
- Videojogos: 7 conjuntos de dados (por exemplo, objetos de vários ambientes de jogos).
- Microscópico: 11 conjuntos de dados (por exemplo, células, partículas).
- Subaquático: 5 conjuntos de dados (por exemplo, vida marinha, objetos submersos).
- Documentos: 8 conjuntos de dados (por exemplo, regiões de texto, elementos de formulários).
- Eletromagnético: 12 conjuntos de dados (por exemplo, assinaturas de radar, visualizações de dados espectrais).
- Mundo Real: 50 conjuntos de dados (uma categoria ampla que inclui objetos do dia a dia, cenas, varejo, etc.).
Esta variedade torna o RF100 um excelente recurso para avaliar a generalizability de modelos de visão por computador.
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 uma exploração mais aprofundada, considera visitar a nossa coleção abrangente de conjuntos de dados ou navegar por outros detection datasets compatíveis com os modelos Ultralytics.