コンテンツへスキップ

Roboflow 100 データセット

Roboflow 100は Roboflowによって開発され、Intel によって後援された、画期的な物体検出ベンチマークである。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" に保存される。

ベンチマーク例

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のデータセットは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 チームとすべての貢献者に感謝する。

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

よくあるご質問

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のデータセットは7つの領域にまたがっており、それぞれが物体検出モデルにユニークな課題と応用を提供している:

  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のデータセットはGitHubと Roboflow 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)

コメント