Ultralytics YOLO27:

Conjunto de datos Roboflow 100#

Roboflow 100, patrocinado por Intel, es un conjunto de datos de referencia revolucionario para la detección de objetos. Incluye 100 conjuntos de datos diversos. Esta referencia está diseñada específicamente para poner a prueba la adaptabilidad de los modelos de visión artificial, como los modelos YOLO de Ultralytics, a distintos ámbitos, como la atención sanitaria, las imágenes aéreas y los videojuegos.

Roboflow 100 diverse object detection benchmark

Características principales#

  • Diversidad de ámbitos: Incluye 100 conjuntos de datos de siete ámbitos distintos: aéreo, videojuegos, microscópico, submarino, documentos, electromagnético y mundo real.
  • Escala: La referencia contiene 224.714 imágenes de 805 clases, lo que representa más de 11.170 horas de trabajo de etiquetado de datos.
  • Estandarización: Todas las imágenes están preprocesadas y redimensionadas a 640x640 píxeles para garantizar una evaluación coherente.
  • Evaluación depurada: Se centra en eliminar la ambigüedad entre clases y filtra las clases infrarrepresentadas para garantizar una evaluación de modelos más limpia.
  • Anotaciones: Incluye cuadros delimitadores para los objetos, adecuados para el entrenamiento y la evaluación de modelos de detección de objetos mediante métricas como mAP.

Estructura del dataset#

El conjunto de datos Roboflow 100 está organizado en siete categorías, cada una con una colección única de conjuntos de datos, imágenes y clases:

  • Aéreo: 7 conjuntos de datos, 9.683 imágenes y 24 clases.
  • Videojuegos: 7 conjuntos de datos, 11.579 imágenes y 88 clases.
  • Microscópico: 11 conjuntos de datos, 13.378 imágenes y 28 clases.
  • Submarino: 5 conjuntos de datos, 18.003 imágenes y 39 clases.
  • Documentos: 8 conjuntos de datos, 24.813 imágenes y 90 clases.
  • Electromagnético: 12 conjuntos de datos, 36.381 imágenes y 41 clases.
  • Mundo real: 50 conjuntos de datos, 110.615 imágenes y 495 clases.

Esta estructura proporciona un entorno de prueba diverso y extenso para modelos de detección de objetos, que refleja una amplia variedad de escenarios de aplicación del mundo real presentes en distintas soluciones de Ultralytics.

Evaluación comparativa#

La evaluación comparativa de conjuntos de datos consiste en evaluar el rendimiento de modelos de aprendizaje automático en conjuntos de datos específicos mediante métricas estandarizadas. Entre las métricas habituales se incluyen la precisión, la precisión media promedio (mAP) y la puntuación F1. Puedes obtener más información en nuestra guía de métricas de rendimiento de YOLO.

Resultados de la evaluación comparativa

Cada resultado se agrupa en un único directorio runs/<task>/multitrain/: cada conjunto de datos se ajusta en su propio subdirectorio (con su propio results.png), y las métricas de cada conjunto de datos y las medias se escriben en multitrain_results.json, junto a un gráfico de barras multitrain_results.png. La llamada model.train() también devuelve un diccionario {dataset: metrics} para el acceso mediante programación.

Ejemplo de evaluación comparativa

El script siguiente descarga de Roboflow los conjuntos de datos de Roboflow 100 enumerados en datasets_links.txt y, a continuación, ajusta un único modelo base (por ejemplo, YOLO26n) en toda la colección mediante una sola llamada model.train(). Al pasar una lista de conjuntos de datos, el modelo base se ajusta en cada uno de forma secuencial y los resultados entre conjuntos de datos se visualizan automáticamente.

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}")

Aplicaciones#

Roboflow 100 es de gran utilidad para diversas aplicaciones relacionadas con la visión artificial y el aprendizaje profundo. Investigadores e ingenieros pueden aprovechar esta referencia para:

Para obtener más ideas e inspiración sobre aplicaciones del mundo real, explora nuestras guías sobre proyectos prácticos o descubre Ultralytics Platform para optimizar el entrenamiento de modelos y su implementación.

Uso#

El conjunto de datos Roboflow 100, incluidos los metadatos y los enlaces de descarga, está disponible en el repositorio oficial de GitHub de Roboflow 100. Puedes acceder al conjunto de datos y utilizarlo directamente desde allí para tus necesidades de evaluación comparativa. Una vez descargados y preparados los conjuntos de datos como se muestra arriba, los modelos de Ultralytics pueden ajustarse en toda la colección mediante una sola llamada model.train(), pasando la lista de archivos YAML de los conjuntos de datos.

Datos de ejemplo y anotaciones#

Roboflow 100 consta de conjuntos de datos con imágenes diversas capturadas desde distintos ángulos y ámbitos. A continuación se muestran ejemplos de imágenes anotadas incluidas en la referencia RF100, que ilustran la variedad de objetos y escenas. Técnicas como el aumento de datos pueden aumentar aún más la diversidad durante el entrenamiento.

Roboflow 100 sample images with annotations

La diversidad presente en la referencia Roboflow 100 supone un avance significativo con respecto a las referencias tradicionales, que a menudo se centran en optimizar una única métrica dentro de un ámbito limitado. Este enfoque integral contribuye a desarrollar modelos de visión artificial más robustos y versátiles, capaces de rendir bien en multitud de escenarios diferentes.

Citas y agradecimientos#

Si utilizas el conjunto de datos Roboflow 100 en tu investigación o trabajo de desarrollo, cita el artículo original:

Cita
@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 al equipo de Roboflow y a todos los colaboradores sus importantes esfuerzos para crear y mantener el conjunto de datos Roboflow 100 como un recurso valioso para la comunidad de visión artificial.

Si te interesa explorar más conjuntos de datos para mejorar tus proyectos de detección de objetos y aprendizaje automático, no dudes en visitar nuestra colección completa de conjuntos de datos, que incluye otros conjuntos de datos de detección.

Preguntas frecuentes#

  • El conjunto de datos Roboflow 100 es una referencia para modelos de detección de objetos. Está compuesto por 100 conjuntos de datos diversos que abarcan ámbitos como la atención sanitaria, las imágenes aéreas y los videojuegos. Su importancia radica en que proporciona una forma estandarizada de probar la adaptabilidad y robustez de los modelos en una amplia variedad de escenarios del mundo real, superando las referencias tradicionales, a menudo limitadas a un único ámbito.

  • El conjunto de datos Roboflow 100 abarca siete ámbitos diversos, que ofrecen desafíos únicos para los modelos de detección de objetos:

    1. Aéreo: 7 conjuntos de datos (p. ej., imágenes de satélite y vistas desde drones).
    2. Videojuegos: 7 conjuntos de datos (p. ej., objetos de distintos entornos de juego).
    3. Microscópico: 11 conjuntos de datos (p. ej., células y partículas).
    4. Submarino: 5 conjuntos de datos (p. ej., vida marina y objetos sumergidos).
    5. Documentos: 8 conjuntos de datos (p. ej., regiones de texto y elementos de formularios).
    6. Electromagnético: 12 conjuntos de datos (p. ej., firmas de radar y visualizaciones de datos espectrales).
    7. Mundo real: 50 conjuntos de datos (una categoría amplia que incluye objetos cotidianos, escenas, comercios minoristas, etc.).

    Esta variedad convierte RF100 en un recurso excelente para evaluar la capacidad de generalización de los modelos de visión artificial.

  • Al utilizar el conjunto de datos Roboflow 100, cita el artículo original para reconocer a sus creadores. Esta es la cita BibTeX recomendada:

    Cita
    @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 seguir explorando, visita nuestra colección completa de conjuntos de datos o consulta otros conjuntos de datos de detección compatibles con los modelos de Ultralytics.

Comentarios