跳至内容

Roboflow 100 数据集

Roboflow 100,由 Roboflow开发,由Intel 赞助,是一项开创性的物体检测基准。它包括从 90,000 多个公共数据集中抽取的 100 个不同数据集。该基准旨在测试模型对不同领域的适应性,包括医疗保健、航空图像和视频游戏。

Roboflow 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=yolov8s.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 数据集可在GitHubRoboflow Universe 上获取。

您可以直接从Roboflow 100 GitHub 存储库访问。此外,在Roboflow Universe 上,只需点击每个数据集内的导出按钮,您就可以灵活地下载单个数据集。

样本数据和注释

Roboflow 100 由数据集组成,其中包含从不同角度和域捕获的各种图像和视频。以下是 RF100 基准测试中的注释图像示例。

样本数据和注释

Roboflow 100 基准的多样性是传统基准的一大进步,传统基准通常只关注在有限的领域内优化单一指标。

引文和致谢

如果您在研究或开发工作中使用Roboflow 100 数据集,请引用以下论文:

@misc{2211.13523,
    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},
    Eprint = {arXiv:2211.13523},
}

我们感谢Roboflow 团队和所有贡献者为创建和维持Roboflow 100 数据集所付出的辛勤努力。

如果您有兴趣探索更多数据集,以加强您的物体检测和机器学习项目,请随时访问我们的综合数据集

常见问题

Roboflow 100 数据集是什么?为什么它对物体检测意义重大?

Roboflow 100数据集由 Roboflow开发,由Intel 赞助,是一个重要的物体检测基准。它从 90,000 多个公共数据集中选取了 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=yolov8s.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数据集横跨七个领域,每个领域都为物体检测模型提供了独特的挑战和应用:

  1. 航拍:7 个数据集,9,683 幅图像,24 个类别
  2. 视频游戏:7 个数据集,11,579 幅图像,88 个类别
  3. 显微镜11 个数据集,13,378 幅图像,28 个类别
  4. 水下5 个数据集,18 003 幅图像,39 个类别
  5. 文件:8 个数据集,24,813 幅图像,90 个类别
  6. 电磁:12 个数据集,36 381 幅图像,41 个类别
  7. 真实世界: 50 个数据集,110,615 幅图像,495 个类别

通过这种设置,可以在不同的实际应用中对模型进行广泛而多样的测试。

如何访问和下载Roboflow 100 数据集?

Roboflow 100数据集可在GitHubRoboflow Universe 上访问。您可以从 GitHub 下载整个数据集,或使用导出按钮在Roboflow Universe 上选择单个数据集。

在研究中引用Roboflow 100 数据集时应包括哪些内容?

在研究中使用Roboflow 100 数据集时,请确保正确引用。以下是推荐的引用方式:

报价

@misc{2211.13523,
    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},
    Eprint = {arXiv:2211.13523},
}

更多详情,请参阅我们的综合数据集



创建于 2024-02-07,更新于 2024-07-04
作者:glenn-jocher(5)、RizwanMunawar(2)、abirami-vina(1)

评论