Roboflow 100データセット#
Intelがスポンサーを務めるRoboflow 100は、画期的な物体検出ベンチマークデータセットです。100種類の多様なデータセットが含まれています。このベンチマークは、Ultralytics YOLOモデルなどのコンピュータービジョンモデルが、医療、航空画像、ビデオゲームなどのさまざまな分野に適応できるかを評価するために特別に設計されています。
主な機能#
- 多様な分野: 航空画像、ビデオゲーム、顕微鏡画像、水中、ドキュメント、電磁気、実世界の7つの異なる分野にわたる100のデータセットが含まれています。
- 規模: このベンチマークは、805クラスにわたる224,714枚の画像で構成されており、合計で11,170時間を超えるデータラベリング作業に相当します。
- 標準化: 一貫した評価のため、すべての画像は前処理され、640x640ピクセルにリサイズされています。
- クリーンな評価: クラスの曖昧さをなくし、サンプル数の少ないクラスを除外することで、より明確なモデル評価を実現します。
- アノテーション: 物体のバウンディングボックスを含み、トレーニングや、mAPなどの指標を用いた物体検出モデルの評価に適しています。
データセットの構成#
Roboflow 100データセットは7つのカテゴリに分類され、それぞれに固有のデータセット、画像、クラスが含まれています。
- 航空画像: 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 Solutionsで見られる、幅広い実世界のアプリケーションシナリオを反映しています。
ベンチマーク評価#
データセットのベンチマーク評価では、標準化された指標を用いて、特定のデータセット上での機械学習モデルの性能を評価します。一般的な指標には、精度、平均適合率(mAP)、F1スコアなどがあります。詳しくは、YOLO性能指標ガイドをご覧ください。
すべての出力は単一のruns/<task>/multitrain/ディレクトリにまとめられます。各データセットは専用のサブディレクトリ(専用のresults.pngを含む)でファインチューニングされ、データセットごとの指標と平均指標は、multitrain_results.pngの棒グラフとともにmultitrain_results.jsonに書き込まれます。model.train()の呼び出しは、プログラムからアクセスできる{dataset: metrics}ディクショナリも返します。
以下のスクリプトは、Roboflowからdatasets_links.txtに記載されたRoboflow 100のデータセットをダウンロードし、1つのベースモデル(例: YOLO26n)をコレクション全体でファインチューニングする処理を、1回のmodel.train()呼び出しで実行します。データセットのリストを渡すと、ベースモデルは各データセットで順番にファインチューニングされ、データセット間の結果が自動的に可視化されます。
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 100データセットの作成と維持に多大な尽力をされたRoboflowチームとすべての貢献者に、心より感謝申し上げます。
物体検出や機械学習のプロジェクトを強化するため、さらにデータセットをお探しの場合は、さまざまな物体検出データセットを含む包括的なデータセットコレクションをご覧ください。
よくある質問#
Roboflow 100データセットは、物体検出モデル向けのベンチマークです。医療、航空画像、ビデオゲームなどの分野を網羅する、100種類の多様なデータセットで構成されています。実世界の幅広いシナリオにおけるモデルの適応性とロバスト性をテストするための標準化された方法を提供し、従来の、対象分野が限られがちなベンチマークを超える点に重要性があります。
Roboflow 100データセットは、物体検出モデルに固有の課題をもたらす、以下の7つの多様な分野を網羅しています。
- 航空画像: 7データセット(例: 衛星画像、ドローン映像)。
- ビデオゲーム: 7データセット(例: さまざまなゲーム環境の物体)。
- 顕微鏡画像: 11データセット(例: 細胞、粒子)。
- 水中: 5データセット(例: 海洋生物、水中の物体)。
- ドキュメント: 8データセット(例: テキスト領域、フォーム要素)。
- 電磁気: 12データセット(例: レーダー信号、スペクトルデータの可視化)。
- 実世界: 50データセット(日用品、シーン、小売などを含む幅広いカテゴリ)。
この多様性により、RF100はコンピュータービジョンモデルの汎化性能を評価するための優れたリソースとなっています。
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} }さらに詳しく調べるには、包括的なデータセットコレクションをご覧になるか、Ultralyticsモデルと互換性のある他の物体検出データセットを探してみてください。