YOLO Vision 2026 :

Jeu de données Cityscapes#

Le jeu de données Cityscapes est un banc d'essai de semantic segmentation à grande échelle de scènes de rue urbaines capturées dans 50 villes européennes, comprenant 2 975 images d'entraînement finement annotées et 500 images de validation réparties sur 19 classes. C'est l'un des jeux de données les plus utilisés pour la recherche sur la conduite autonome et la compréhension de scènes urbaines avec les modèles Ultralytics YOLO.

Fonctionnalités clés#

  • Les annotations fines de Cityscapes comprennent 2 975 images d'entraînement et 500 images de validation réparties sur 19 classes ; l'archive fournit également 1 525 images de test, mais leurs masques publiés étiquettent uniquement le véhicule ego et la bordure de l'image — les véritables annotations de classes sont retenues, et les scores officiels de l'ensemble de test nécessitent de soumettre des prédictions au Cityscapes evaluation server.
  • Le jeu de données couvre 19 classes d'évaluation réparties dans les catégories surface, humain, véhicule, construction, objet, nature et ciel.
  • Cityscapes fournit des métriques d'évaluation normalisées telles que le mean Intersection over Union (mIoU) pour la segmentation sémantique, permettant une comparaison efficace des performances des modèles.
  • Avant de t'engager dans le téléchargement manuel d'environ 11 Go, vérifie la bonne santé de ton pipeline d'entraînement sur le sous-ensemble de 8 images Cityscapes8.

Structure du jeu de données#

La configuration Ultralytics attend la disposition suivante après préparation :

cityscapes/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
└── masks/
    ├── train/
    ├── val/
    └── test/
Téléchargement manuel requis

Cityscapes ne propose pas de téléchargement automatique d'archives. Crée un compte sur le Cityscapes website, puis télécharge les archives leftImg8bit_trainvaltest.zip et gtFine_trainvaltest.zip (environ 11 Go au total) et extrait les deux à la racine du jeu de données cityscapes. Ultralytics les réorganise automatiquement dans la disposition images/ et masks/ ci-dessus lors de ton premier entraînement.

Les masques sémantiques sont des fichiers PNG à canal unique. Les ID d'étiquettes Cityscapes d'origine sont mappés aux 19 ID d'entraînement standard via la section label_mapping, et les étiquettes ignorées ou vides sont mappées sur 255 afin d'être exclues de l'entraînement et de l'évaluation.

Remarque

Les masques gtFine/test publiés publiquement étiquettent uniquement le véhicule ego et les régions de bordure de l'image — toutes les autres classes sont vides. Calcule le mIoU sur la division val pour une évaluation locale ; les scores officiels de l'ensemble de test nécessitent de soumettre des prédictions au Cityscapes evaluation server.

Applications#

Cityscapes est largement utilisé pour entraîner et évaluer des modèles de deep learning en segmentation sémantique, en particulier pour la autonomous driving, les systèmes avancés d'aide à la conduite (ADAS) et la robotique urbaine.

Ses images haute résolution et ses annotations détaillées le rendent également précieux pour la recherche sur l'analyse de scènes en temps réel, la compréhension des voies et des obstacles, et toute tâche nécessitant une compréhension dense au niveau des pixels d'environnements urbains complexes. Les modèles de segmentation sémantique YOLO26 pré-entraînés atteignent jusqu'à 83,6 de mIoU sur l'ensemble de validation de Cityscapes — consulte la page semantic segmentation models pour le tableau complet des benchmarks. Tu peux organiser, visualiser et gérer les données Cityscapes tout au long du flux de travail de développement de modèles avec Ultralytics Platform.

YAML du jeu de données#

Un fichier YAML de jeu de données définit les chemins, les classes, le répertoire des masques et le mappage des étiquettes de Cityscapes. Le fichier cityscapes.yaml est maintenu sur https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml.

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)

Utilisation#

Pour entraîner un modèle YOLO26n-sem sur le jeu de données Cityscapes pendant 100 epochs avec une taille d'image de 1024, tu peux utiliser les extraits de code suivants. Pour obtenir une liste complète des arguments disponibles, consulte la page Training du modèle.

Exemple d'entraînement
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)

Citations, licence et remerciements#

Cityscapes est publié sous une custom non-commercial license — gratuit pour la recherche académique et l'évaluation, mais l'utilisation commerciale, l'octroi de licences ou la redistribution des données nécessitent une autorisation distincte de l'équipe Cityscapes.

Si tu utilises le jeu de données Cityscapes dans tes travaux de recherche ou de développement, merci de citer l'article suivant :

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

Nous tenons à remercier l'équipe Cityscapes pour la création et la maintenance de cette ressource précieuse pour les communautés de la conduite autonome et de la vision par ordinateur. Pour plus d'informations sur le jeu de données Cityscapes et ses créateurs, visite le Cityscapes dataset website.

FAQ#

  • Le jeu de données Cityscapes est un banc d'essai de semantic segmentation à grande échelle de scènes de rue urbaines à travers 50 villes européennes, largement utilisé comme référence standard pour la recherche sur la conduite autonome et les ADAS. Ses 19 classes d'évaluation finement annotées, son imagerie haute résolution et sa métrique normalisée mean Intersection over Union (mIoU) en font l'une des références les plus citées pour les modèles de compréhension de scènes denses.

  • Pour entraîner un modèle YOLO26n-sem sur le jeu de données Cityscapes pendant 100 epochs avec une taille d'image de 1024, tu peux utiliser les extraits de code suivants. Pour obtenir une liste détaillée des arguments disponibles, consulte la page Training du modèle.

    Exemple d'entraînement
    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)
  • Après la préparation, le jeu de données est organisé dans les répertoires images/{train,val,test}/ et masks/{train,val,test}/, chaque image étant associée à un masque PNG à canal unique. Le fichier YAML d'Ultralytics associe chaque image à son masque via le champ masks_dir: masks, et utilise label_mapping pour convertir les ID d'étiquettes Cityscapes d'origine en 19 ID d'entraînement contigus standard, en mappant les étiquettes ignorées et vides sur 255. Les masques de la division test étiquettent uniquement le véhicule ego et les régions de bordure, utilise donc val pour les vérifications locales du mIoU.

  • Oui. Crée un compte sur le Cityscapes website et télécharge les archives leftImg8bit_trainvaltest.zip et gtFine_trainvaltest.zip (environ 11 Go au total). Extrais les deux à la racine du jeu de données cityscapes — Ultralytics les réorganise automatiquement dans la disposition attendue images/ et masks/ lors de ton premier entraînement.

  • Les masques source de Cityscapes stockent des ID d'étiquettes d'origine qui diffèrent des 19 ID d'entraînement utilisés pour l'évaluation. La section label_mapping convertit les étiquettes valides en ID de classe contigus 018, et attribue 255 aux étiquettes ignorées et vides afin qu'elles soient exclues de la perte et des métriques lors de l'entraînement et de la validation.

  • Non. Cityscapes est publié sous une non-commercial license qui autorise la recherche académique, l'enseignement et l'évaluation, mais interdit l'utilisation commerciale, l'octroi de licences ou la vente du jeu de données ou de travaux dérivés. Contacte directement l'équipe Cityscapes pour connaître les options de licence commerciale.

Commentaires