Ultralytics YOLO27:

Roboflow 100データセット#

Intelがスポンサーを務めるRoboflow 100は、画期的な物体検出ベンチマークデータセットです。100種類の多様なデータセットが含まれています。このベンチマークは、Ultralytics YOLOモデルなどのコンピュータービジョンモデルが、医療、航空画像、ビデオゲームなど、さまざまなドメインに適応できるかをテストするために特別に設計されています。

Roboflow 100 diverse object detection benchmark

主な特徴#

  • 多様なドメイン: 航空、ビデオゲーム、顕微鏡画像、水中、ドキュメント、電磁波、実世界の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}辞書も返されます。

ベンチマークの例

以下のスクリプトは、datasets_links.txtに記載されたRoboflow 100データセットをRoboflowからダウンロードし、1つのmodel.train()呼び出しで、単一のベースモデル(例: YOLO26n)をコレクション全体にわたってファインチューニングします。データセットのリストを渡すと、各データセットでベースモデルを順番にファインチューニングし、データセット間の結果を自動的に可視化します。

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は、コンピュータービジョンおよびディープラーニングに関連するさまざまなアプリケーションにとって非常に価値があります。研究者やエンジニアは、このベンチマークを次の目的に活用できます。

実世界でのアプリケーションに関するさらなるアイデアやインスピレーションについては、実践的なプロジェクトに関するガイドをご覧いただくか、効率化されたモデルのトレーニングデプロイメントのためにUltralytics Platformをご確認ください。

使用方法#

Roboflow 100データセットは、メタデータとダウンロードリンクを含め、公式のRoboflow 100 GitHubリポジトリで入手できます。ベンチマークのニーズに応じて、そこからデータセットに直接アクセスして利用できます。上記の手順でデータセットをダウンロードして準備すると、データセットYAMLのリストを渡すことで、1回のmodel.train()呼び出しでUltralyticsモデルをコレクション全体にわたってファインチューニングできます。

サンプルデータとアノテーション#

Roboflow 100は、さまざまな角度やドメインから撮影された多様な画像を含むデータセットで構成されています。以下は、RF100ベンチマークに含まれるアノテーション済み画像の例であり、オブジェクトやシーンの多様性を示しています。データ拡張などの手法により、トレーニング中の多様性をさらに高めることができます。

Roboflow 100 sample images with annotations

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チームとすべての貢献者に、心より感謝申し上げます。

物体検出や機械学習プロジェクトを強化するためのさらなるデータセットに関心がある場合は、さまざまな他の検出データセットを含む包括的なデータセットコレクションをご覧ください。

FAQ#

  • Roboflow 100データセットは、物体検出モデル向けのベンチマークです。医療、航空画像、ビデオゲームなどのドメインをカバーする、100種類の多様なデータセットで構成されています。その重要性は、従来の、ドメインが限定されがちなベンチマークを超えて、幅広い実世界のシナリオにおけるモデルの適応性と堅牢性を標準化された方法でテストできる点にあります。

  • Roboflow 100データセットは7つの多様なドメインにまたがり、物体検出モデルに固有の課題を提供します。

    1. 航空: 7データセット(例: 衛星画像、ドローン映像)。
    2. ビデオゲーム: 7データセット(例: さまざまなゲーム環境のオブジェクト)。
    3. 顕微鏡画像: 11データセット(例: 細胞、粒子)。
    4. 水中: 5データセット(例: 海洋生物、水中のオブジェクト)。
    5. ドキュメント: 8データセット(例: テキスト領域、フォーム要素)。
    6. 電磁波: 12データセット(例: レーダーシグネチャ、スペクトルデータの可視化)。
    7. 実世界: 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モデルと互換性のある他の検出データセットを参照してください。

コメント