Roboflow 100 数据集#
由 Intel 赞助的 Roboflow 100 是一个开创性的目标检测基准数据集。它包含 100 个多样化的数据集。该基准专门用于测试计算机视觉模型(例如 Ultralytics YOLO 模型)对医疗保健、航拍图像和电子游戏等不同领域的适应能力。
主要功能#
- 多样化领域:包含 100 个数据集,分布在七个不同领域:航拍、电子游戏、显微、水下、文档、电磁和现实世界。
- 规模:该基准包含 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 解决方案所涉及的广泛现实应用场景。
基准测试#
数据集基准测试是指使用标准化指标评估机器学习模型在特定数据集上的表现。常见指标包括准确率、平均精度均值 (mAP) 和 F1 分数。你可以在我们的 YOLO 性能指标指南中了解更多信息。
所有输出都归入单个 runs/<task>/multitrain/ 目录:每个数据集都在各自的子目录中进行微调(并包含自己的 results.png),每个数据集的指标和平均指标会与 multitrain_results.png 柱状图一同写入 multitrain_results.json。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 仓库中获取。你可以直接从那里访问和使用数据集,满足基准测试需求。按照上文所示下载并准备好数据集后,只需传入数据集 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} }