Conjunto de datos Roboflow 100
Roboflow 100, patrocinado por Intel, es un innovador conjunto de datos de referencia para detección de objetos. Incluye 100 conjuntos de datos diversos. Este benchmark está diseñado específicamente para poner a prueba la adaptabilidad de los modelos de visión artificial, como los modelos Ultralytics YOLO, a diversos dominios, incluyendo atención sanitaria, imágenes aéreas y videojuegos.
Ultralytics ofrece dos opciones de licencia para adaptarse a diferentes casos de uso:
- Licencia AGPL-3.0: Esta licencia de código abierto aprobada por la OSI es ideal para estudiantes y entusiastas, ya que promueve la colaboración abierta y el intercambio de conocimientos. Consulta el archivo LICENSE para obtener más detalles y visita nuestra página de licencia AGPL-3.0.
- Licencia Enterprise: Diseñada para uso comercial, esta licencia permite la integración fluida del software y los modelos de IA de Ultralytics en productos y servicios comerciales. Si tu escenario implica aplicaciones comerciales, por favor contáctanos a través de Ultralytics Licensing.
Características clave
- Dominios diversos: Incluye 100 conjuntos de datos a través de siete dominios distintos: Aéreo, Videojuegos, Microscópico, Subacuático, Documentos, Electromagnético y Real.
- Escala: El benchmark comprende 224.714 imágenes en 805 clases, representando más de 11.170 horas de esfuerzo en etiquetado de datos.
- Estandarización: Todas las imágenes están preprocesadas y redimensionadas a 640x640 píxeles para una evaluación consistente.
- Evaluación limpia: Se centra en eliminar la ambigüedad de las clases y filtra las clases infrarrepresentadas para garantizar una evaluación del modelo más limpia.
- Anotaciones: Incluye cajas delimitadoras para objetos, adecuadas para el entrenamiento y la evaluación de modelos de detección de objetos utilizando métricas como mAP.
Estructura del conjunto de datos
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.
- Subacuático: 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.
- Real: 50 conjuntos de datos, 110.615 imágenes, 495 clases.
Esta estructura proporciona un campo de pruebas diverso y extenso para modelos de detección de objetos, reflejando una amplia gama de escenarios de aplicación del mundo real que se encuentran en varias Soluciones de Ultralytics.
Benchmarking
El benchmarking de conjuntos de datos implica evaluar el rendimiento de modelos de aprendizaje automático en conjuntos de datos específicos utilizando métricas estandarizadas. Las métricas comunes incluyen precisión, mean Average Precision (mAP) y F1-score. Puedes aprender más sobre esto en nuestra guía de métricas de rendimiento de YOLO.
Los resultados del benchmarking utilizando el script proporcionado se almacenarán en el directorio ultralytics-benchmarks/, específicamente en evaluation.txt.
El siguiente script demuestra cómo realizar un benchmark programático de un modelo Ultralytics YOLO (p. ej., YOLO26n) en los 100 conjuntos de datos dentro del benchmark Roboflow 100 utilizando la clase 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!")Aplicaciones
Roboflow 100 es invaluable para diversas aplicaciones relacionadas con la visión artificial y el aprendizaje profundo. Investigadores e ingenieros pueden aprovechar este benchmark para:
- Evaluar el rendimiento de los modelos de detección de objetos en un contexto multidominio.
- Probar la adaptabilidad y robustez de los modelos ante escenarios del mundo real más allá de los conjuntos de datos de referencia comunes como COCO o PASCAL VOC.
- Comparar las capacidades de los modelos de detección de objetos en diversos conjuntos de datos, incluyendo áreas especializadas como la atención sanitaria, imágenes aéreas y videojuegos.
- Comparar el rendimiento de los modelos entre diferentes arquitecturas de redes neuronales y técnicas de optimización.
- Identificar desafíos específicos de dominio que puedan requerir consejos de entrenamiento de modelos especializados o enfoques de ajuste fino como el aprendizaje por transferencia.
Para más ideas e inspiración sobre aplicaciones del mundo real, explora nuestras guías sobre proyectos prácticos o consulta Ultralytics Platform para obtener un entrenamiento de modelos y despliegue optimizados.
Uso
El conjunto de datos Roboflow 100, incluyendo metadatos y enlaces de descarga, está disponible en el repositorio oficial de GitHub de Roboflow 100. Puedes acceder y utilizar el conjunto de datos directamente desde allí para tus necesidades de benchmarking. La utilidad RF100Benchmark de Ultralytics simplifica el proceso de descarga y preparación de estos conjuntos de datos para su uso con modelos de Ultralytics.
Muestra de datos y anotaciones
Roboflow 100 consiste en conjuntos de datos con imágenes diversas capturadas desde varios ángulos y dominios. A continuación, se muestran ejemplos de imágenes anotadas incluidas en el benchmark RF100, mostrando la variedad de objetos y escenas. Técnicas como la aumentación de datos pueden mejorar aún más la diversidad durante el entrenamiento.
La diversidad vista en el benchmark Roboflow 100 representa un avance significativo respecto a los benchmarks 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 visión artificial más robustos y versátiles capaces de funcionar bien en multitud de escenarios diferentes.
Citas y reconocimientos
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 importantes esfuerzos en la creación y el mantenimiento del conjunto de datos Roboflow 100 como un recurso valioso para la comunidad de visión artificial.
Si estás interesado en explorar más conjuntos de datos para mejorar tus proyectos de detección de objetos y aprendizaje automático, no dudes en visitar nuestra completa colección de conjuntos de datos, que incluye una variedad de otros conjuntos de datos de detección.
Preguntas frecuentes
¿Qué es el conjunto de datos Roboflow 100 y por qué es significativo para la detección de objetos?
El conjunto de datos Roboflow 100 es un benchmark para modelos de detección de objetos. Comprende 100 conjuntos de datos diversos que cubren dominios como atención sanitaria, imágenes aéreas y videojuegos. Su importancia radica en proporcionar una forma estandarizada de probar la adaptabilidad y robustez del modelo en una amplia gama de escenarios del mundo real, yendo más allá de los benchmarks tradicionales, a menudo limitados a un dominio específico.
¿Qué dominios cubre el conjunto de datos Roboflow 100?
El conjunto de datos Roboflow 100 abarca siete dominios diversos, ofreciendo desafíos únicos para los modelos de detección de objetos:
- Aéreo: 7 conjuntos de datos (p. ej., imágenes satelitales, vistas de drones).
- Videojuegos: 7 conjuntos de datos (p. ej., objetos de diversos entornos de juego).
- Microscópico: 11 conjuntos de datos (p. ej., células, partículas).
- Subacuático: 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).
- Real: 50 conjuntos de datos (una categoría amplia que incluye objetos cotidianos, escenas, comercio minorista, etc.).
Esta variedad hace que el RF100 sea un recurso excelente para evaluar la generalización de los modelos de visión artificial.
¿Qué debo incluir al citar el conjunto de datos Roboflow 100 en mi investigación?
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:
@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 una exploración adicional, considera visitar nuestra completa colección de conjuntos de datos o navegar por otros conjuntos de datos de detección compatibles con los modelos de Ultralytics.