Roboflow 100 数据集
Roboflow 100,由 Roboflow开发,由Intel 赞助,是一项开创性的物体检测基准测试。它包括从 90,000 多个公共数据集中抽取的 100 个不同数据集。该基准旨在测试模型对不同领域的适应性,包括医疗保健、航空图像和视频游戏。
主要功能
- 包括七个领域的 100 个数据集:航空、视频游戏、显微镜、水下、文件、电磁和真实世界。
- 该基准包括 805 个类别的 224 714 幅图像,标注工作耗时超过 11 170 小时。
- 所有图像的大小均调整为 640x640 像素,重点是消除类别模糊性和过滤代表性不足的类别。
- 注释包括物体的边界框,因此适合用于训练和评估物体检测模型。
数据集结构
Roboflow 100 数据集分为七个类别,每个类别都有一套不同的数据集、图像和类别:
- 航空:由 7 个数据集组成,共有 9 683 幅图像,涵盖 24 个不同类别。
- 电子游戏:包括 7 个数据集,涉及 88 个类别的 11,579 幅图像。
- 显微镜包括 11 个数据集,共 13,378 幅图像,跨越 28 个类别。
- 水下:包含 5 个数据集,涵盖 39 个类别的 18 003 幅图像。
- 文件:由 8 个数据集组成,包含 24 813 幅图像,分为 90 个类别。
- 电磁:由 12 个数据集组成,共计 41 个类别的 36 381 幅图像。
- 真实世界:最大的类别,有 50 个数据集,提供 495 个类别的 110 615 幅图像。
这种结构为物体检测模型提供了一个多样而广泛的测试平台,反映了真实世界的应用场景。
基准
数据集基准测试使用准确率、平均精度和 F1 分数等标准化指标,评估机器学习模型在特定数据集上的性能。
基准
基准测试结果将存储在 "ultralytics-benchmarks/evaluation.txt" 中。
基准范例
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=yolo11s.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!")
应用
Roboflow 100 对于与计算机视觉和深度学习相关的各种应用都非常宝贵。研究人员和工程师可以利用这一基准来:
- 在多领域背景下评估物体检测模型的性能。
- 测试模型对真实世界场景的适应性,而不是普通的物体识别。
- 在各种数据集(包括医疗保健、航空图像和视频游戏中的数据集)中对物体检测模型的能力进行基准测试。
要获得更多实际应用的想法和灵感,请务必查看我们的实际项目指南。
使用方法
Roboflow 100 数据集可在GitHub和Roboflow Universe 上获取。
您可以直接从Roboflow 100 GitHub 存储库访问。此外,在Roboflow Universe 上,只需点击每个数据集内的导出按钮,您就可以灵活地下载单个数据集。
样本数据和注释
Roboflow RF100 包含从不同角度和领域拍摄的各种图像和视频数据集。下面是 RF100 基准中的注释图像示例。
Roboflow 100 基准的多样性是传统基准的一大进步,因为传统基准通常只关注在有限的领域内优化单一指标。
引文和致谢
如果您在研究或开发工作中使用Roboflow 100 数据集,请引用以下论文:
我们感谢Roboflow 团队和所有贡献者为创建和维持Roboflow 100 数据集所付出的辛勤努力。
如果您有兴趣探索更多数据集,以加强您的物体检测和机器学习项目,请随时访问我们的综合数据集。
常见问题
Roboflow 100 数据集是什么?为什么它对物体检测意义重大?
Roboflow 100数据集由 Roboflow开发,由Intel 赞助,是一个重要的物体检测基准。该数据集从 9 万多个公共数据集中挑选出 100 个不同的数据集,涵盖医疗保健、航空图像和视频游戏等领域。这种多样性确保了模型能够适应现实世界中的各种场景,从而提高了模型的鲁棒性和性能。
如何使用Roboflow 100 数据集对物体检测模型进行基准测试?
要使用Roboflow 100 数据集进行基准测试,可以从Ultralytics 库中实现 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=yolo11n.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 'runs' directory
runs_dir = Path.cwd() / "runs"
shutil.rmtree(runs_dir)
else:
print("YAML file path does not exist")
continue
print("RF100 Benchmarking completed!")
Roboflow 100 数据集涵盖哪些领域?
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 个类别
通过这种设置,可以在不同的实际应用中对模型进行广泛而多样的测试。
如何访问和下载Roboflow 100 数据集?
Roboflow 100数据集可在GitHub和Roboflow Universe 上访问。您可以从 GitHub 下载整个数据集,或使用导出按钮在Roboflow Universe 上选择单个数据集。
在研究中引用Roboflow 100 数据集时应包括哪些内容?
在研究中使用Roboflow 100 数据集时,请确保正确引用。以下是推荐的引用方式:
更多详情,请参阅我们的综合数据集。