Ultralytics YOLO27:

Dataset Roboflow 100#

O Roboflow 100, patrocinado pela Intel, é um dataset de referência inovador para deteção de objetos. Inclui 100 datasets diversificados. Esta referência foi especificamente concebida para testar a adaptabilidade de modelos de visão computacional, como os modelos Ultralytics YOLO, a vários domínios, incluindo cuidados de saúde, imagens aéreas e videojogos.

Roboflow 100 diverse object detection benchmark

Principais funcionalidades#

  • Diversidade de domínios: inclui 100 datasets em sete domínios distintos: aéreo, videojogos, microscópico, subaquático, documentos, eletromagnético e mundo real.
  • Escala: a referência inclui 224.714 imagens em 805 classes, representando mais de 11.170 horas de trabalho de rotulagem de dados.
  • Normalização: todas as imagens são pré-processadas e redimensionadas para 640x640 píxeis, para uma avaliação consistente.
  • Avaliação rigorosa: centra-se na eliminação da ambiguidade entre classes e filtra classes sub-representadas para garantir uma avaliação de modelos mais consistente.
  • Anotações: inclui caixas delimitadoras para objetos, adequadas para treinar e avaliar modelos de deteção de objetos utilizando métricas como mAP.

Estrutura do Conjunto de Dados#

O dataset Roboflow 100 está organizado em sete categorias, cada uma contendo uma coleção única de datasets, imagens e classes:

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

Esta estrutura proporciona um campo de testes diversificado e abrangente para modelos de deteção de objetos, refletindo uma ampla variedade de cenários de aplicação do mundo real presentes em várias soluções da Ultralytics.

Avaliação de referência#

A avaliação de referência de datasets envolve avaliar o desempenho de modelos de aprendizagem automática em datasets específicos, utilizando métricas normalizadas. As métricas comuns incluem exatidão, precisão média (mAP) e pontuação F1. Podes saber mais sobre estas métricas no nosso guia de métricas de desempenho do YOLO.

Resultados da avaliação de referência

Cada resultado é agrupado num único diretório runs/<task>/multitrain/: cada dataset é ajustado individualmente no seu próprio subdiretório (com o seu próprio results.png), e as métricas por dataset e médias são gravadas 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.

Exemplo de avaliação de referência

O script abaixo descarrega do Roboflow os datasets Roboflow 100 listados em datasets_links.txt 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 datasets ajusta o modelo base a cada um deles em sequência e visualiza automaticamente os resultados entre datasets.

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 é extremamente útil para várias aplicações relacionadas com visão computacional e aprendizagem profunda. Investigadores e engenheiros podem utilizar esta referência para:

Para obter mais ideias e inspiração sobre aplicações do mundo real, explora os nossos guias sobre projetos práticos ou consulta a Ultralytics Platform para simplificar o treino de modelos e a implementação.

Utilização#

O dataset Roboflow 100, incluindo metadados e ligações para download, está disponível no repositório oficial do Roboflow 100 no GitHub. Podes aceder diretamente ao dataset e utilizá-lo a partir daí para as tuas necessidades de avaliação de referência. Depois de os datasets serem 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 ficheiros YAML dos datasets.

Dados e anotações de exemplo#

O Roboflow 100 é composto por datasets com imagens diversificadas, captadas a partir de vários ângulos e em diferentes domínios. Seguem-se exemplos de imagens anotadas incluídas na referência RF100, que mostram a variedade de objetos e cenários. Técnicas como o aumento de dados podem aumentar ainda mais a diversidade durante o treino.

Roboflow 100 sample images with annotations

A diversidade observada 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 num domínio limitado. Esta abordagem abrangente ajuda a desenvolver modelos de visão computacional mais robustos e versáteis, capazes de obter bons resultados numa multiplicidade de cenários diferentes.

Citações e agradecimentos#

Se utilizares o dataset Roboflow 100 no teu trabalho de investigação ou desenvolvimento, cita 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}
}

Agradecemos à equipa do Roboflow e a todos os contribuidores pelos seus esforços significativos na criação e manutenção do dataset Roboflow 100 como recurso valioso para a comunidade de visão computacional.

Se tiveres interesse em explorar mais datasets para melhorar os teus projetos de deteção de objetos e aprendizagem automática, visita a nossa coleção abrangente de datasets, que inclui vários outros datasets de deteção.

Perguntas frequentes#

  • O dataset Roboflow 100 é uma referência para modelos de deteção de objetos. É composto por 100 datasets diversificados que abrangem domínios como cuidados de saúde, imagens aéreas e videojogos. A sua importância reside em proporcionar uma forma normalizada de testar a adaptabilidade e a robustez dos modelos numa vasta gama de cenários do mundo real, indo além das referências tradicionais, frequentemente limitadas a um único domínio.

  • O dataset Roboflow 100 abrange sete domínios diversificados, oferecendo desafios únicos para modelos de deteção de objetos:

    1. Aéreo: 7 datasets (por exemplo, imagens de satélite e vistas captadas por drones).
    2. Videojogos: 7 datasets (por exemplo, objetos de vários ambientes de jogos).
    3. Microscópico: 11 datasets (por exemplo, células e partículas).
    4. Subaquático: 5 datasets (por exemplo, vida marinha e objetos submersos).
    5. Documentos: 8 datasets (por exemplo, regiões de texto e elementos de formulários).
    6. Eletromagnético: 12 datasets (por exemplo, assinaturas de radar e visualizações de dados espectrais).
    7. Mundo real: 50 datasets (uma categoria abrangente que inclui objetos do quotidiano, cenários, comércio a retalho, etc.).

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

  • Ao utilizar o dataset Roboflow 100, cita o artigo original para atribuir o devido crédito aos seus criadores. Eis 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 explorar mais, considera visitar a nossa coleção abrangente de datasets ou consultar outros datasets de deteção compatíveis com modelos Ultralytics.

Comentários