Enterprise-ready Sicherheit: ISO 27001 + SOC 2 Type I konform.

Link to this sectionCityscapes-Datensatz#

Das Cityscapes Dataset ist ein groß angelegter Benchmark für semantic segmentation von städtischen Straßenszenen, die in 50 europäischen Städten aufgenommen wurden, mit 2.975 fein annotierten Trainingsbildern und 500 Validierungsbildern über 19 Klassen hinweg. Es ist eines der am häufigsten verwendeten Datensätze für die Erforschung des autonomen Fahrens und das Verständnis städtischer Szenen mit Ultralytics YOLO Modellen.

Link to this sectionHauptfunktionen#

  • Die feinen Annotationen von Cityscapes umfassen 2.975 Trainingsbilder und 500 Validierungsbilder für 19 Klassen; das Archiv enthält außerdem 1.525 Testbilder, deren veröffentlichte Masken jedoch nur das Ego-Fahrzeug und den Bildrand kennzeichnen – echte Klassenannotationen sind zurückgehalten, und für offizielle Test-Set-Scores musst du Vorhersagen beim Cityscapes evaluation server einreichen.
  • Das Dataset deckt 19 Evaluationsklassen ab, die sich über die Kategorien flach, Mensch, Fahrzeug, Konstruktion, Objekt, Natur und Himmel erstrecken.
  • Cityscapes bietet standardisierte Evaluationsmetriken wie die mean Intersection over Union (mIoU) für die semantische Segmentierung, was einen effektiven Vergleich der Modellleistung ermöglicht.
  • Bevor du den ~11 GB manuellen Download startest, teste deine Trainings-Pipeline mit dem Cityscapes8 Subset, das 8 Bilder umfasst.

Link to this sectionDatensatzstruktur#

Die Ultralytics-Konfiguration erwartet nach der Vorbereitung das folgende Layout:

cityscapes/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
└── masks/
    ├── train/
    ├── val/
    └── test/
Manueller Download erforderlich

Cityscapes bietet keinen automatischen Archiv-Download. Erstelle ein Konto auf der Cityscapes website, lade dann die Archive leftImg8bit_trainvaltest.zip und gtFine_trainvaltest.zip (~11 GB kombiniert) herunter und entpacke beide im Stammverzeichnis des cityscapes Datasets. Ultralytics organisiert sie beim ersten Training automatisch in das images/ und masks/ Layout um.

Die semantischen Masken sind einkanalige PNG-Dateien. Die ursprünglichen Cityscapes-Label-IDs werden über den Abschnitt label_mapping auf die standardmäßigen 19 Train-IDs abgebildet, und ignorierte oder ungültige Labels werden auf 255 gesetzt, damit sie vom Training und der Evaluierung ausgeschlossen werden.

Hinweis

Die öffentlich zugänglichen gtFine/test Masken kennzeichnen nur das Ego-Fahrzeug und die Bildrandbereiche – alle anderen Klassen sind ungültig. Berechne mIoU für den val Split für die lokale Evaluierung; für offizielle Test-Set-Scores musst du Vorhersagen beim Cityscapes evaluation server einreichen.

Link to this sectionAnwendungen#

Cityscapes wird häufig zum Trainieren und Evaluieren von Deep Learning Modellen zur semantischen Segmentierung verwendet, insbesondere für autonomes Fahren, fortschrittliche Fahrerassistenzsysteme (ADAS) und urbane Robotik.

Seine hochauflösenden Bilder und detaillierten Annotationen machen es zudem wertvoll für die Forschung an Echtzeit-Szenenanalyse, Spur- und Hinderniserkennung sowie für jede Aufgabe, die ein dichtes, pixelebenes Verständnis komplexer städtischer Umgebungen erfordert. Vorab trainierte YOLO26 Semantic-Segmentation-Modelle erreichen bis zu 83,6 mIoU auf dem Cityscapes-Validierungsset – siehe die Seite semantic segmentation models für die vollständige Benchmark-Tabelle. Cityscapes-Annotationen sind auch auf der Ultralytics Platform zum Durchsuchen und für das Dataset-Management verfügbar.

Link to this sectionDatensatz-YAML#

Eine YAML-Datei für Datensätze definiert die Cityscapes-Pfade, Klassen, das Maskenverzeichnis und das Label-Mapping. Die Datei cityscapes.yaml wird unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml gepflegt.

ultralytics/cfg/datasets/cityscapes.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Cityscapes semantic segmentation dataset (19 classes)
# Documentation: https://docs.ultralytics.com/datasets/semantic/cityscapes
# Example usage: yolo semantic train data=cityscapes.yaml model=yolo26n-sem.pt
# parent
# ├── ultralytics
# └── datasets
#     └── cityscapes ← downloads here (11 GB)
#         └── images
#         └── masks

# Dataset root directory
path: cityscapes # dataset root dir
train: images/train # train images (relative to 'path') 2975 images
val: images/val # val images (relative to 'path') 500 images
test: images/test # test images (relative to 'path') 1525 images

masks_dir: masks # semantic mask directory

# Cityscapes 19-class labels
names:
  0: road
  1: sidewalk
  2: building
  3: wall
  4: fence
  5: pole
  6: traffic light
  7: traffic sign
  8: vegetation
  9: terrain
  10: sky
  11: person
  12: rider
  13: car
  14: truck
  15: bus
  16: train
  17: motorcycle
  18: bicycle

# Map source label IDs to train IDs; ignore_label is converted to 255.
label_mapping:
  -1: ignore_label
  0: ignore_label
  1: ignore_label
  2: ignore_label
  3: ignore_label
  4: ignore_label
  5: ignore_label
  6: ignore_label
  7: 0
  8: 1
  9: ignore_label
  10: ignore_label
  11: 2
  12: 3
  13: 4
  14: ignore_label
  15: ignore_label
  16: ignore_label
  17: 5
  18: ignore_label
  19: 6
  20: 7
  21: 8
  22: 9
  23: 10
  24: 11
  25: 12
  26: 13
  27: 14
  28: 15
  29: ignore_label
  30: ignore_label
  31: 16
  32: 17
  33: 18

# Preparation script (requires manual Cityscapes download)
download: |
  from pathlib import Path
  from shutil import copy2

  cityscapes_dir = Path(yaml["path"])  # dataset root dir
  # Download and extract the official Cityscapes leftImg8bit and gtFine archives into cityscapes_dir first.
  leftimg8bit_dir = cityscapes_dir / "leftImg8bit"
  gtfine_dir = cityscapes_dir / "gtFine"

  for split in ("train", "val", "test"):
      print(f"Processing {split} set")
      src_image_dir = leftimg8bit_dir / split
      dst_image_dir = cityscapes_dir / "images" / split
      dst_mask_dir = cityscapes_dir / "masks" / split
      dst_image_dir.mkdir(parents=True, exist_ok=True)
      dst_mask_dir.mkdir(parents=True, exist_ok=True)

      image_paths = sorted(src_image_dir.rglob("*_leftImg8bit.png"))
      for image_path in image_paths:
          relative_path = image_path.relative_to(src_image_dir)
          mask_path = gtfine_dir / split / relative_path.parent / image_path.name.replace(
              "_leftImg8bit.png", "_gtFine_labelIds.png"
          )
          if not mask_path.exists():
              raise FileNotFoundError(f"Mask not found for {image_path}: {mask_path}")

          image_name = image_path.name.replace("_leftImg8bit", "")
          mask_name = mask_path.name.replace("_gtFine_labelIds", "")
          copy2(image_path, dst_image_dir / image_name)
          copy2(mask_path, dst_mask_dir / mask_name)

Link to this sectionVerwendung#

Um ein YOLO26n-sem Modell für 100 Epochen mit einer Bildgröße von 1024 auf dem Cityscapes-Datensatz zu trainieren, kannst du die folgenden Code-Schnipsel verwenden. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite zum Modell-Training.

Trainingsbeispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-sem.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="cityscapes.yaml", epochs=100, imgsz=1024)

Link to this sectionZitate, Lizenz und Danksagungen#

Cityscapes wird unter einer custom non-commercial license veröffentlicht – kostenlos für akademische Forschung und Evaluierung, aber kommerzielle Nutzung, Lizenzierung oder Weitergabe der Daten erfordert eine gesonderte Genehmigung des Cityscapes-Teams.

Wenn du den Cityscapes-Datensatz in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Paper:

Zitat
@inproceedings{Cordts2016Cityscapes,
  title={The Cityscapes Dataset for Semantic Urban Scene Understanding},
  author={Cordts, Marius and Omran, Mohamed and Ramos, Sebastian and Rehfeld, Timo and Enzweiler, Markus and Benenson, Rodrigo and Franke, Uwe and Roth, Stefan and Schiele, Bernt},
  booktitle={Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2016}
}

Wir möchten dem Cityscapes-Team dafür danken, dass es diese wertvolle Ressource für die Communities des autonomen Fahrens und der Computer Vision erstellt und gepflegt hat. Weitere Informationen über den Cityscapes-Datensatz und seine Ersteller findest du auf der Cityscapes-Website.

Link to this sectionFAQ#

Link to this sectionWas ist der Cityscapes-Datensatz und warum ist er wichtig für Computer Vision?#

Das Cityscapes Dataset ist ein groß angelegter semantic segmentation Benchmark von städtischen Straßenszenen in 50 europäischen Städten, der weithin als Standardreferenz für Forschung zu autonomem Fahren und ADAS genutzt wird. Seine 19 fein annotierten Evaluationsklassen, die hochauflösende Bildgebung und die standardisierte Metrik mean Intersection over Union (mIoU) machen es zu einem der meistzitierten Benchmarks für Modelle zum dichten Szenenverständnis.

Link to this sectionWie kann ich ein YOLO-Modell mit dem Cityscapes-Datensatz trainieren?#

Um ein YOLO26n-sem Modell für 100 Epochen mit einer Bildgröße von 1024 auf dem Cityscapes-Datensatz zu trainieren, kannst du die folgenden Code-Schnipsel verwenden. Eine detaillierte Liste der verfügbaren Argumente findest du auf der Seite zum Modell-Training.

Trainingsbeispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-sem.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="cityscapes.yaml", epochs=100, imgsz=1024)

Link to this sectionWie ist der Cityscapes-Datensatz strukturiert?#

Nach der Vorbereitung ist das Dataset in die Verzeichnisse images/{train,val,test}/ und masks/{train,val,test}/ organisiert, wobei jedes Bild mit einer einkanaligen PNG-Maske gepaart ist. Die Ultralytics YAML-Datei koppelt jedes Bild über das Feld masks_dir: masks mit seiner Maske und verwendet label_mapping, um die ursprünglichen Cityscapes-Label-IDs in die standardmäßigen 19 fortlaufenden Train-IDs zu konvertieren, wobei ignorierte und ungültige Labels auf 255 abgebildet werden. Die Masken des test Splits kennzeichnen nur das Ego-Fahrzeug und Randbereiche, verwende daher val für lokale mIoU-Überprüfungen.

Link to this sectionMuss ich Cityscapes manuell herunterladen?#

Ja. Erstelle ein Konto auf der Cityscapes website und lade die Archive leftImg8bit_trainvaltest.zip und gtFine_trainvaltest.zip (~11 GB kombiniert) herunter. Entpacke beide im Stammverzeichnis des cityscapes Datasets – Ultralytics organisiert sie beim ersten Training automatisch in das erwartete images/ und masks/ Layout um.

Link to this sectionWarum verwendet Cityscapes label_mapping?#

Die Quellmasken von Cityscapes enthalten ursprüngliche Label-IDs, die sich von den 19 Train-IDs unterscheiden, die für die Evaluierung verwendet werden. Der Abschnitt label_mapping konvertiert gültige Labels in fortlaufende Klassen-IDs von 0 bis 18 und weist ignorierte sowie leere Labels 255 zu, damit sie während des Trainings und der Validierung von der Verlustberechnung und den Metriken ausgeschlossen werden.

Link to this sectionIst das Cityscapes Dataset für kommerzielle Nutzung kostenlos?#

Nein. Cityscapes wird unter einer non-commercial license veröffentlicht, die akademische Forschung, Lehre und Evaluierung gestattet, aber kommerzielle Nutzung, Lizenzierung oder den Verkauf des Datasets bzw. abgeleiteter Werke untersagt. Kontaktiere das Cityscapes-Team direkt für Optionen zur kommerziellen Lizenzierung.

Kommentare