Ultralytics YOLO27:

Roboflow-100-Datensatz#

Roboflow 100, gesponsert von Intel, ist ein wegweisender Benchmark-Datensatz für die Objekterkennung. Er umfasst 100 vielfältige Datensätze. Dieser Benchmark wurde speziell entwickelt, um die Anpassungsfähigkeit von Computer-Vision-Modellen wie Ultralytics YOLO-Modellen an verschiedene Bereiche zu testen, darunter Gesundheitswesen, Luftaufnahmen und Videospiele.

Roboflow 100 diverse object detection benchmark

Wichtige Funktionen#

  • Vielfältige Bereiche: Umfasst 100 Datensätze aus sieben unterschiedlichen Bereichen: Luftaufnahmen, Videospiele, Mikroskopie, Unterwasser, Dokumente, Elektromagnetik und reale Welt.
  • Umfang: Der Benchmark umfasst 224.714 Bilder aus 805 Klassen und entspricht einem Aufwand von mehr als 11.170 Stunden für die Datenannotation.
  • Standardisierung: Alle Bilder werden vorverarbeitet und auf 640x640 Pixel skaliert, um eine einheitliche Bewertung zu ermöglichen.
  • Saubere Bewertung: Der Schwerpunkt liegt auf der Beseitigung von Klassenmehrdeutigkeiten und dem Herausfiltern unterrepräsentierter Klassen, um eine aussagekräftigere Modellbewertung zu gewährleisten.
  • Annotationen: Enthält Bounding Boxes für Objekte, die sich zum Training und zur Bewertung von Objekterkennungsmodellen anhand von Metriken wie mAP eignen.

Datensatzstruktur#

Der Roboflow-100-Datensatz ist in sieben Kategorien gegliedert, die jeweils eine einzigartige Sammlung von Datensätzen, Bildern und Klassen enthalten:

  • Luftaufnahmen: 7 Datensätze, 9.683 Bilder, 24 Klassen.
  • Videospiele: 7 Datensätze, 11.579 Bilder, 88 Klassen.
  • Mikroskopie: 11 Datensätze, 13.378 Bilder, 28 Klassen.
  • Unterwasser: 5 Datensätze, 18.003 Bilder, 39 Klassen.
  • Dokumente: 8 Datensätze, 24.813 Bilder, 90 Klassen.
  • Elektromagnetik: 12 Datensätze, 36.381 Bilder, 41 Klassen.
  • Reale Welt: 50 Datensätze, 110.615 Bilder, 495 Klassen.

Diese Struktur bietet eine vielfältige und umfangreiche Testumgebung für Objekterkennungs-modelle und bildet eine große Bandbreite realer Anwendungsszenarien in verschiedenen Ultralytics Solutions ab.

Benchmarking#

Beim Benchmarking von Datensätzen wird die Leistung von Machine-Learning-Modellen auf bestimmten Datensätzen anhand standardisierter Metriken bewertet. Zu den gängigen Metriken gehören Genauigkeit, die mittlere durchschnittliche Präzision (mAP) und der F1-Wert. Weitere Informationen findest du in unserem Leitfaden zu den YOLO-Leistungsmetriken.

Benchmarking-Ergebnisse

Jede Ausgabe wird unter einem einzigen Verzeichnis runs/<task>/multitrain/ zusammengefasst: Jeder Datensatz wird in einem eigenen Unterverzeichnis (mit einer eigenen results.png) feinabgestimmt, und die Metriken für die einzelnen Datensätze sowie der Mittelwert werden zusammen mit einem Balkendiagramm multitrain_results.png in multitrain_results.json geschrieben. Der Aufruf model.train() gibt außerdem ein {dataset: metrics}-Dictionary für den programmgesteuerten Zugriff zurück.

Benchmarking-Beispiel

Das folgende Skript lädt die in datasets_links.txt aufgeführten Roboflow-100-Datensätze von Roboflow herunter und führt anschließend einen Aufruf model.train() aus, um ein einzelnes Basismodell (z. B. YOLO26n) über die gesamte Sammlung hinweg feinabzustimmen. Durch die Übergabe einer Liste von Datensätzen wird das Basismodell nacheinander auf jedem Datensatz feinabgestimmt und die datensatzübergreifenden Ergebnisse werden automatisch visualisiert.

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}")

Anwendungen#

Roboflow 100 ist für verschiedene Anwendungen im Bereich Computer Vision und Deep Learning äußerst wertvoll. Forschende und Ingenieurinnen und Ingenieure können diesen Benchmark nutzen, um:

Weitere Ideen und Inspirationen für Anwendungen in der Praxis findest du in unseren Leitfäden zu praktischen Projekten. Für ein optimiertes Modelltraining und die Bereitstellung kannst du auch die Ultralytics Platform nutzen.

Verwendung#

Der Roboflow-100-Datensatz einschließlich Metadaten und Download-Links ist im offiziellen Roboflow-100-GitHub-Repository verfügbar. Du kannst von dort direkt auf den Datensatz zugreifen und ihn für deine Benchmarking-Anforderungen nutzen. Sobald die Datensätze wie oben gezeigt heruntergeladen und vorbereitet wurden, können Ultralytics-Modelle über die gesamte Sammlung hinweg in einem einzigen Aufruf model.train() feinabgestimmt werden, indem die Liste der Datensatz-YAML-Dateien übergeben wird.

Beispieldaten und Annotationen#

Roboflow 100 besteht aus Datensätzen mit vielfältigen Bildern, die aus verschiedenen Perspektiven und Bereichen aufgenommen wurden. Nachfolgend findest du Beispiele annotierter Bilder aus dem RF100-Benchmark, die die Vielfalt der Objekte und Szenen veranschaulichen. Techniken wie Datenerweiterung können die Vielfalt während des Trainings weiter erhöhen.

Roboflow 100 sample images with annotations

Die Vielfalt des Roboflow-100-Benchmarks stellt einen bedeutenden Fortschritt gegenüber herkömmlichen Benchmarks dar, die sich häufig auf die Optimierung einer einzelnen Metrik in einem begrenzten Bereich konzentrieren. Dieser umfassende Ansatz unterstützt die Entwicklung robusterer und vielseitigerer Computer-Vision-Modelle, die in einer Vielzahl unterschiedlicher Szenarien gute Ergebnisse erzielen können.

Zitate und Danksagungen#

Wenn du den Roboflow-100-Datensatz in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das Originalpapier:

Zitat
@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}
}

Wir danken dem Roboflow-Team und allen Mitwirkenden herzlich für ihren großen Einsatz bei der Erstellung und Pflege des Roboflow-100-Datensatzes als wertvolle Ressource für die Computer-Vision-Community.

Wenn du weitere Datensätze zur Erweiterung deiner Projekte im Bereich Objekterkennung und Machine Learning suchst, besuche gerne unsere umfassende Datensatzsammlung, die eine Vielzahl weiterer Erkennungsdatensätze umfasst.

FAQ#

  • Der Roboflow-100-Datensatz ist ein Benchmark für Objekterkennungs-modelle. Er umfasst 100 vielfältige Datensätze aus Bereichen wie Gesundheitswesen, Luftaufnahmen und Videospielen. Seine Bedeutung liegt darin, eine standardisierte Möglichkeit zum Testen der Anpassungsfähigkeit und Robustheit von Modellen über eine große Bandbreite realer Szenarien hinweg bereitzustellen und damit über herkömmliche, häufig auf einzelne Bereiche beschränkte Benchmarks hinauszugehen.

  • Der Roboflow-100-Datensatz umfasst sieben vielfältige Bereiche, die einzigartige Herausforderungen für Objekterkennungs-modelle bieten:

    1. Luftaufnahmen: 7 Datensätze (z. B. Satellitenbilder, Drohnenaufnahmen).
    2. Videospiele: 7 Datensätze (z. B. Objekte aus verschiedenen Spielumgebungen).
    3. Mikroskopie: 11 Datensätze (z. B. Zellen, Partikel).
    4. Unterwasser: 5 Datensätze (z. B. Meereslebewesen, untergetauchte Objekte).
    5. Dokumente: 8 Datensätze (z. B. Textbereiche, Formularelemente).
    6. Elektromagnetik: 12 Datensätze (z. B. Radarsignaturen, Visualisierungen von Spektraldaten).
    7. Reale Welt: 50 Datensätze (eine umfassende Kategorie mit Alltagsgegenständen, Szenen, Einzelhandel usw.).

    Diese Vielfalt macht RF100 zu einer ausgezeichneten Ressource, um die Generalisierbarkeit von Computer-Vision-Modellen zu bewerten.

  • Wenn du den Roboflow-100-Datensatz verwendest, zitiere bitte das Originalpapier, um die Urheber zu würdigen. Hier ist das empfohlene BibTeX-Zitat:

    Zitat
    @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}
    }

    Für weitere Informationen kannst du unsere umfassende Datensatzsammlung besuchen oder andere mit Ultralytics-Modellen kompatible Erkennungsdatensätze durchsuchen.

Kommentare