Conjunto de datos Roboflow 100#
Roboflow 100, patrocinado por Intel, es un conjunto de datos de referencia innovador para la object detection. Incluye 100 conjuntos de datos diversos. Esta referencia está diseñada específicamente para probar la adaptabilidad de los modelos de computer vision, como los Ultralytics YOLO models, a varios dominios, incluidos la sanidad, las imágenes aéreas y los videojuegos.
Ultralytics ofrece dos opciones de licencia para adaptarse a diferentes casos de uso:
- AGPL-3.0 License: Esta licencia de código abierto OSI-approved es ideal para estudiantes y entusiastas, ya que fomenta la colaboración abierta y el intercambio de conocimientos. Consulta el archivo LICENSE para obtener más detalles y visita nuestra AGPL-3.0 License page.
- Licencia Enterprise: Para uso en desarrollo y producción, esta licencia permite una integración fluida del software y los modelos de IA de Ultralytics en productos y servicios comerciales, incluidas herramientas internas, flujos de trabajo automatizados y despliegues en producción, eludiendo los requisitos de código abierto de AGPL-3.0. Para empezar, ponte en contacto con nosotros a través de Licenciamiento de Ultralytics.
Características clave#
- Dominios diversos: Incluye 100 conjuntos de datos en siete dominios distintos: Aéreo, Videojuegos, Microscópico, Submarino, Documentos, Electromagnético y Mundo Real.
- Scale: El punto de referencia comprende 224 714 imágenes en 805 clases, lo que representa más de 11 170 horas de esfuerzo de data labeling.
- Standardization: Todas las imágenes se preprocessed y se redimensionan a 640x640 píxeles para una evaluación coherente.
- Clean Evaluation: Se centra en eliminar la ambigüedad de las clases y filtra las clases infrarrepresentadas para garantizar una model evaluation más limpia.
- Annotations: Incluye bounding boxes para objetos, aptas para el training 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 conteniendo una colección única de conjuntos de datos, imágenes y clases:
- Aéreo: 7 conjuntos de datos, 9,683 imágenes, 24 clases.
- Videojuegos: 7 conjuntos de datos, 11,579 imágenes, 88 clases.
- Microscópico: 11 conjuntos de datos, 13,378 imágenes, 28 clases.
- Submarino: 5 conjuntos de datos, 18,003 imágenes, 39 clases.
- Documentos: 8 conjuntos de datos, 24,813 imágenes, 90 clases.
- Electromagnético: 12 conjuntos de datos, 36,381 imágenes, 41 clases.
- Mundo Real: 50 conjuntos de datos, 110,615 imágenes, 495 clases.
Esta estructura proporciona un terreno de pruebas diverso y extenso para los modelos de object detection, lo que refleja una amplia gama de escenarios de aplicación del mundo real que se encuentran en varias Ultralytics Solutions.
Evaluación comparativa (Benchmarking)#
El benchmarking de conjuntos de datos consiste en evaluar el rendimiento de los modelos de machine learning en conjuntos de datos específicos utilizando métricas estandarizadas. Las métricas comunes incluyen la accuracy, la precisión media (mAP) y la F1-score. Puedes obtener más información sobre ellas en nuestra YOLO Performance Metrics guide.
Cada salida se agrupa bajo un único directorio runs/<task>/multitrain/: cada conjunto de datos se ajusta con precisión en su propio subdirectorio (con su propio results.png), y las métricas por conjunto de datos y las medias se escriben en multitrain_results.json junto con un gráfico de barras multitrain_results.png. La llamada a model.train() también devuelve un diccionario {dataset: metrics} para el acceso programático.
El script siguiente descarga los conjuntos de datos de Roboflow 100 enumerados en datasets_links.txt desde Roboflow, y luego ajusta con precisión un único modelo base (por ejemplo, YOLO26n) en toda la colección en una sola llamada a model.train(). Pasar una lista de conjuntos de datos ajusta con precisión el modelo base en cada uno de ellos en serie y visualiza automáticamente los resultados entre conjuntos de datos.
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 un valor incalculable para diversas aplicaciones relacionadas con la computer vision y el deep learning. Los investigadores e ingenieros pueden aprovechar este punto de referencia para:
- Evaluar el rendimiento de modelos de detección de objetos en un contexto multidominio.
- Probar la adaptabilidad y la robustness de los modelos a escenarios del mundo real más allá de los benchmark datasets comunes como COCO o PASCAL VOC.
- Evaluar las capacidades de modelos de detección de objetos a través de diversos conjuntos de datos, incluyendo áreas especializadas como atención sanitaria, imágenes aéreas y videojuegos.
- Comparar el rendimiento de los modelos entre diferentes arquitecturas de neural network y técnicas de optimization.
- Identificar retos específicos de un dominio que puedan requerir model training tips especializados o enfoques de fine-tuning como el transfer learning.
Para obtener más ideas e inspiración sobre aplicaciones del mundo real, explora our guides on practical projects o consulta Ultralytics Platform para simplificar el model training y el deployment.
Uso#
El conjunto de datos Roboflow 100, incluidos los metadatos y los enlaces de descarga, está disponible en el Roboflow 100 GitHub repository oficial. 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 Ultralytics se pueden ajustar con precisión en toda la colección en una sola llamada a model.train() pasando la lista de archivos YAML de los conjuntos de datos.
Ejemplos de datos y anotaciones#
Roboflow 100 consta de conjuntos de datos con diversas imágenes capturadas desde varios ángulos y dominios. A continuación se muestran ejemplos de imágenes anotadas incluidas en el punto de referencia RF100, que muestran la variedad de objetos y escenas. Técnicas como el data augmentation pueden mejorar aún más la diversidad durante el entrenamiento.
La diversidad observada en el punto de referencia Roboflow 100 representa un avance significativo con respecto a los puntos de referencia tradicionales, que a menudo se centran en optimizar una única métrica dentro de un dominio limitado. Este enfoque integral ayuda a desarrollar modelos de computer vision más robustos y versátiles capaces de funcionar bien en una multitud de escenarios diferentes.
Citas y agradecimientos#
Si utilizas el conjunto de datos Roboflow 100 en tu trabajo de investigación o desarrollo, por favor cita el artículo 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}
}Extendemos nuestra gratitud al equipo de Roboflow y a todos los colaboradores por sus esfuerzos significativos en la creación y mantenimiento del 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 our comprehensive dataset collection, que incluye una variedad de otros detection datasets.
FAQ#
El conjunto de datos Roboflow 100 es una referencia para los modelos de object detection. Comprende 100 conjuntos de datos diversos que abarcan dominios como la sanidad, las imágenes aéreas y los videojuegos. Su importancia radica en proporcionar una forma estandarizada de probar la adaptabilidad y robustez de los modelos en una amplia gama de escenarios del mundo real, yendo más allá de las referencias tradicionales y a menudo limitadas a un dominio.
El conjunto de datos Roboflow 100 abarca siete dominios diversos, lo que plantea desafíos únicos para los modelos de object detection:
- Aéreo: 7 conjuntos de datos (p. ej., imágenes satelitales, vistas de drones).
- Videojuegos: 7 conjuntos de datos (p. ej., objetos de varios entornos de juego).
- Microscópico: 11 conjuntos de datos (p. ej., células, partículas).
- Submarino: 5 conjuntos de datos (p. ej., vida marina, objetos sumergidos).
- Documentos: 8 conjuntos de datos (p. ej., regiones de texto, elementos de formularios).
- Electromagnético: 12 conjuntos de datos (p. ej., firmas de radar, visualizaciones de datos espectrales).
- Mundo Real: 50 conjuntos de datos (una categoría amplia que incluye objetos cotidianos, escenas, comercio minorista, etc.).
Esta variedad hace que RF100 sea un recurso excelente para evaluar la generalizability de los modelos de visión por computador.
Al utilizar el conjunto de datos Roboflow 100, por favor cita el artículo original para dar crédito a los creadores. Aquí tienes 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, considera la posibilidad de visitar nuestra comprehensive dataset collection o de buscar otros detection datasets compatibles con los modelos Ultralytics.