Roboflow 100 数据集#
由 Intel 赞助的 Roboflow 100 是一个开创性的目标检测基准数据集。它包含 100 个多样化的数据集。该基准专门用于测试计算机视觉模型(如 Ultralytics YOLO models)对医疗保健、航拍图像和视频游戏等不同领域的适应能力。
主要特性#
- 多样化领域:涵盖七个不同领域的 100 个数据集:航拍、视频游戏、显微、 underwater、文档、电磁和现实世界。
- 规模:该基准包含 224,714 张图像和 805 个类别,代表超过 11,170 小时的数据标注工作量。
- 标准化:所有图像均经过预处理,并调整为 640x640 像素,以实现一致的评估。
- 清晰评估:重点消除类别歧义,并过滤掉代表性不足的类别,以确保更清晰的模型评估。
- 标注:包含对象的边界框,适用于使用 mAP 等指标对目标检测模型进行训练和评估。
数据集结构#
Roboflow 100 数据集分为七个类别,每个类别都包含独特的数据集、图像和类别集合:
- 航拍:7 个数据集,9,683 张图像,24 个类别。
- 视频游戏:7 个数据集,11,579 张图像,88 个类别。
- 显微:11 个数据集,13,378 张图像,28 个类别。
- 水下:5 个数据集,18,003 张图像,39 个类别。
- 文档:8 个数据集,24,813 张图像,90 个类别。
- 电磁:12 个数据集,36,381 张图像,41 个类别。
- 现实世界:50 个数据集,110,615 张图像,495 个类别。
这种结构为目标检测模型提供了多样且广泛的测试环境,反映了各种 Ultralytics Solutions 中大量现实世界的应用场景。
基准测试#
数据集基准测试是指使用标准化指标评估机器学习模型在特定数据集上的性能。常见指标包括准确率、平均精度(mAP)和 F1-score。你可以在我们的 YOLO Performance Metrics guide 中进一步了解这些指标。
每次输出都归于单个 runs/<task>/multitrain/ 目录下:每个数据集都在自己的子目录中进行微调(并拥有自己的 results.png),每个数据集的指标和平均指标都会写入 multitrain_results.json,旁边还会生成一个 multitrain_results.png 条形图。model.train() 调用还会返回一个 {dataset: metrics} 字典,以便通过程序访问。
下面的脚本会从 Roboflow 下载 datasets_links.txt 中列出的 Roboflow 100 数据集,然后在一次 model.train() 调用中,使用单个基础模型(例如 YOLO26n)对整个数据集集合进行微调。传入数据集列表后,脚本会依次在每个数据集上微调基础模型,并自动可视化跨数据集结果。
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}")应用#
Roboflow 100 对各种与计算机视觉和深度学习相关的应用都非常有价值。研究人员和工程师可以利用这一基准来:
- 在多领域环境中评估目标检测模型的性能。
- 测试模型对超越常见基准数据集(如 COCO 或 PASCAL VOC)的现实场景的适应能力和鲁棒性。
- 在多样化数据集上对目标检测模型的能力进行基准测试,包括医疗保健、航拍图像和视频游戏等专业领域。
- 比较不同神经网络架构和优化技术下的模型性能。
- 识别可能需要专门的模型训练技巧或微调方法(如迁移学习)的领域特定挑战。
如需了解现实世界应用的更多想法和灵感,请探索我们的实用项目指南,或访问 Ultralytics Platform,以简化模型训练和部署。
使用方法#
Roboflow 100 数据集(包括元数据和下载链接)可在官方 Roboflow 100 GitHub repository 中获取。你可以直接从该处访问和使用数据集,以满足基准测试需求。按照上文所示下载并准备好数据集后,只需传入数据集 YAML 文件列表,即可在一次 model.train() 调用中对整个数据集集合进行 Ultralytics 模型微调。
示例数据和标注#
Roboflow 100 包含从不同角度和领域采集的多样化图像数据集。下面展示了 RF100 基准中包含的标注图像示例,体现了对象和场景的多样性。通过数据增强等技术,还可以在训练过程中进一步提升多样性。
Roboflow 100 基准所体现的多样性,相较于传统基准实现了重大进步;传统基准通常局限于有限领域内优化单一指标。这种全面的方法有助于开发更稳健、更通用的计算机视觉模型,使其能够在各种不同场景中表现良好。
引用和致谢#
如果你在研究或开发工作中使用 Roboflow 100 数据集,请引用原始论文:
@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}
}我们衷心感谢 Roboflow 团队及所有贡献者为创建和维护 Roboflow 100 数据集所付出的巨大努力,使其成为计算机视觉社区的一项宝贵资源。
如果你有兴趣探索更多数据集,以增强目标检测和机器学习项目,欢迎访问我们的综合数据集集合,其中包含各种其他检测数据集。
常见问题#
Roboflow 100 数据集是用于目标检测模型的基准。它包含 100 个多样化的数据集,涵盖医疗保健、航拍图像和视频游戏等领域。它的重要性在于提供了一种标准化方式,用于在广泛的现实场景中测试模型的适应能力和鲁棒性,突破传统基准通常受领域限制的局限。
使用 Roboflow 100 数据集时,请引用原始论文以注明创建者的贡献。以下是推荐的 BibTeX 引用:
引用@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} }