Ultralytics YOLO27:
Get Started

Roboflow 100-Datensatz#

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

Roboflow 100 diverse object detection benchmark

Wichtige Funktionen#

  • Vielfältige Bereiche: Umfasst 100 Datensätze aus sieben unterschiedlichen Bereichen: Luftbilder, Videospiele, Mikroskopie, Unterwasser, Dokumente, elektromagnetische Daten und reale Welt.
  • Umfang: Der Benchmark umfasst 224.714 Bilder aus 805 Klassen und bildet einen Aufwand von mehr als 11.170 Stunden für die Datenannotation ab.
  • Standardisierung: Alle Bilder werden vorverarbeitet und für eine einheitliche Bewertung auf 640x640 Pixel skaliert.
  • Saubere Bewertung: Der Schwerpunkt liegt darauf, Mehrdeutigkeiten bei Klassen zu beseitigen und unterrepräsentierte Klassen herauszufiltern, um eine sauberere Modellbewertung zu ermöglichen.
  • Annotationen: Enthält Bounding-Boxen für Objekte, die sich zum Trainieren und Bewerten von Objekterkennungsmodellen anhand von Metriken wie mAP eignen.

Datensatzstruktur#

Der Roboflow 100-Datensatz ist in sieben Kategorien gegliedert, die jeweils eine einzigartige Auswahl an Datensätzen, Bildern und Klassen umfassen:

  • Luftbilder: 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.
  • Elektromagnetische Daten: 12 Datensätze, 36.381 Bilder, 41 Klassen.
  • Reale Welt: 50 Datensätze, 110.615 Bilder, 495 Klassen.

Diese Struktur bietet ein vielfältiges und umfangreiches Testfeld für Objekterkennungsmodelle und spiegelt zahlreiche reale Anwendungsszenarien wider, die in verschiedenen Ultralytics-Lösungen vorkommen.

Benchmarking#

Beim Benchmarking von Datensätzen wird die Leistung von Modellen des maschinellen Lernens auf bestimmten Datensätzen anhand standardisierter Metriken bewertet. Zu den gängigen Metriken zählen Genauigkeit, mittlere durchschnittliche Präzision (mAP) und der F1-Wert. Mehr dazu erfährst du in unserem Leitfaden zu den YOLO-Leistungsmetriken.

Benchmarking-Ergebnisse

Alle Ausgaben werden in einem einzigen Verzeichnis runs/<task>/multitrain/ zusammengefasst: Jeder Datensatz wird in einem eigenen Unterverzeichnis feinabgestimmt (mit einer eigenen results.png), und die Metriken pro Datensatz sowie die Mittelwerte werden in multitrain_results.json zusammen mit einem Balkendiagramm multitrain_results.png gespeichert. Der Aufruf model.train() gibt außerdem ein {dataset: metrics}-Wörterbuch für den programmatischen 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 stimmt anschließend ein einzelnes Basismodell (z. B. YOLO26n) mit einem einzigen Aufruf von model.train() auf die gesamte Sammlung ab. Wenn du eine Liste von Datensätzen übergibst, wird das Basismodell nacheinander auf jedem Datensatz feinabgestimmt und die Ergebnisse über alle Datensätze hinweg 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}")

Anwendungsfälle#

Roboflow 100 ist für zahlreiche Anwendungen im Bereich Bildverarbeitung und Deep Learning von großem Wert. Forschende und Ingenieurinnen und Ingenieure können diesen Benchmark nutzen, um:

  • die Leistung von Objekterkennungsmodellen in einem bereichsübergreifenden Kontext zu bewerten.
  • die Anpassungsfähigkeit und Robustheit von Modellen in realen Szenarien zu testen, die über gängige Benchmark-Datensätze wie COCO oder PASCAL VOC hinausgehen.
  • die Fähigkeiten von Objekterkennungsmodellen anhand vielfältiger Datensätze zu vergleichen, auch in spezialisierten Bereichen wie Gesundheitswesen, Luftbildern und Videospielen.
  • die Modellleistung über verschiedene Architekturen neuronaler Netze und Optimierungsverfahren hinweg zu vergleichen.
  • bereichsspezifische Herausforderungen zu erkennen, für die spezielle Tipps zum Modelltraining oder Ansätze zur Feinabstimmung wie Transferlernen nötig sein könnten.

Weitere Ideen und Anregungen für reale Anwendungen findest du in unseren Leitfäden zu praxisnahen Projekten. Oder sieh dir die Ultralytics Platform an, um das Modelltraining und die Bereitstellung zu vereinfachen.

Verwendung#

Der Roboflow 100-Datensatz ist einschließlich Metadaten und Download-Links im offiziellen Roboflow 100-GitHub-Repository verfügbar. Dort kannst du direkt auf den Datensatz zugreifen und ihn für deine Benchmarking-Anforderungen nutzen. Sobald die Datensätze wie oben beschrieben heruntergeladen und vorbereitet wurden, lassen sich Ultralytics-Modelle mit einem einzigen Aufruf von model.train() auf die gesamte Sammlung feinabstimmen, indem du die Liste der Datensatz-YAML-Dateien übergibst.

Beispieldaten und Annotationen#

Roboflow 100 umfasst Datensätze mit vielfältigen Bildern, die aus unterschiedlichen Blickwinkeln und Bereichen stammen. Im Folgenden siehst du Beispiele annotierter Bilder aus dem RF100-Benchmark, die die Vielfalt der Objekte und Szenen veranschaulichen. Techniken wie Datenerweiterung können die Vielfalt beim Training weiter erhöhen.

Roboflow 100 sample images with annotations

Die Vielfalt des Roboflow 100-Benchmarks ist ein bedeutender Fortschritt gegenüber herkömmlichen Benchmarks, die sich oft darauf konzentrieren, eine einzelne Metrik innerhalb eines begrenzten Bereichs zu optimieren. Dieser umfassende Ansatz trägt dazu bei, robustere und vielseitigere Bildverarbeitungsmodelle zu entwickeln, die in vielen unterschiedlichen Szenarien gute Ergebnisse erzielen.

Zitate und Danksagungen#

Wenn du den Roboflow 100-Datensatz für deine Forschung oder Entwicklungsarbeit verwendest, zitiere bitte die ursprüngliche wissenschaftliche Arbeit:

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 bedeutenden Einsatz bei der Erstellung und Pflege des Roboflow 100-Datensatzes als wertvolle Ressource für die Bildverarbeitungsgemeinschaft.

Wenn du weitere Datensätze für deine Objekterkennungs- und Machine-Learning-Projekte suchst, kannst du gerne unsere umfassende Datensammlung besuchen. Sie enthält eine Vielzahl weiterer Erkennungsdatensätze.

Häufig gestellte Fragen#

  • Der Roboflow 100-Datensatz ist ein Benchmark für Objekterkennungsmodelle. Er umfasst 100 vielfältige Datensätze aus Bereichen wie Gesundheitswesen, Luftbildern und Videospielen. Seine Bedeutung liegt darin, dass er eine standardisierte Möglichkeit bietet, die Anpassungsfähigkeit und Robustheit von Modellen in einer Vielzahl realer Szenarien zu testen und damit über herkömmliche, oft auf bestimmte Bereiche beschränkte Benchmarks hinausgeht.

  • Der Roboflow 100-Datensatz erstreckt sich über sieben vielfältige Bereiche, die jeweils besondere Herausforderungen für Objekterkennungsmodelle bieten:

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

    Diese Vielfalt macht RF100 zu einer hervorragenden Ressource, um die Generalisierungsfähigkeit von Bildverarbeitungsmodellen zu bewerten.

  • Wenn du den Roboflow 100-Datensatz verwendest, zitiere bitte die ursprüngliche wissenschaftliche Arbeit, um den Urhebern Anerkennung zu geben. Hier ist die empfohlene BibTeX-Zitation:

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

    Weitere Informationen findest du in unserer umfassenden Datensammlung oder in anderen Erkennungsdatensätzen, die mit Ultralytics-Modellen kompatibel sind.

Kommentare