コンテンツへスキップ

Roboflow 100 データセット

Roboflow 100は Roboflowインテルがスポンサーとなって開発されたこのベンチマークは、画期的な物体検出ベンチマークである。90,000を超える公開データセットからサンプリングされた100の多様なデータセットが含まれている。このベンチマークは、ヘルスケア、航空画像、ビデオゲームなど、様々なドメインへのモデルの適応性をテストするために設計されている。

Roboflow 100 概要

主な特徴

  • 7つの領域にわたる100のデータセットを収録:空中、ビデオゲーム、顕微鏡、水中、文書、電磁気、実世界。
  • このベンチマークは、805クラスにわたる224,714枚の画像で構成されており、11,170時間を超えるラベリング作業によるものである。
  • すべての画像は640x640ピクセルにリサイズされ、クラスの曖昧さを排除し、代表性の低いクラスをフィルタリングすることに重点を置いている。
  • アノテーションにはオブジェクトのバウンディングボックスが含まれており、オブジェクト検出モデルのトレーニングや評価に適している。

データセット構造

Roboflow 100データセットは7つのカテゴリーに分類され、それぞれデータセット、画像、クラスが異なる:

  • 航空写真:合計9,683枚の画像からなる7つのデータセットで構成され、24の異なるクラスをカバーする。
  • ビデオゲーム:88クラス、11,579枚の画像を含む7つのデータセットを収録。
  • 顕微鏡:28のクラスにまたがる13,378の画像からなる11のデータセットから構成される。
  • 水中:39クラス、18,003画像からなる5つのデータセットを含む。
  • ドキュメント:24,813枚の画像を90のクラスに分けた8つのデータセットからなる。
  • 電磁気:12のデータセットで構成され、41クラス、合計36,381画像。
  • 実世界:50のデータセットからなる最大のカテゴリーで、495のクラスにわたって110,615の画像が提供されている。

この構造により、実世界のアプリケーションシナリオを反映した、多様で広範な物体検出モデルのテストが可能になる。

ベンチマーキング

データセット・ベンチマークは、精度、平均平均精度、F1スコアなどの標準化された指標を用いて、特定のデータセットにおける機械学習モデルの性能を評価する。

ベンチマーキング

ベンチマーク結果は "ultralytics-benchmarks/evaluation.txt" に保存される。

ベンチマーク例

from pathlib import Path
import shutil
import os
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のデータセットはGitHubと Roboflow 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 100データセットの作成と維持に尽力してくれたRoboflow チームとすべての貢献者に感謝する。

あなたの物体検出や機械学習プロジェクトを強化するために、より多くのデータセットを検索することに興味がある場合は、お気軽に私たちの包括的なデータセットコレクションをご覧ください。



作成 2024-02-07 更新 2024-04-29
著者RizwanMunawar(2)、glenn-jocher(1)、abirami-vina(1)

コメント