Jeu de données Cityscapes#
Le jeu de données Cityscapes est un benchmark à grande échelle de segmentation sémantique de scènes de rues urbaines capturées dans 50 villes européennes, avec 2 975 images d'entraînement et 500 images de validation annotées avec précision selon 19 classes. Il s'agit de l'un des jeux de données les plus utilisés pour la recherche sur la conduite autonome et la compréhension des 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 contient également 1 525 images de test, mais les masques publiés n'annotent que le véhicule-ego et la bordure de l'image — les annotations réelles des classes ne sont pas disponibles, et l'obtention des scores officiels sur l'ensemble de test nécessite de soumettre les prédictions au serveur d'évaluation Cityscapes.
- Le jeu de données couvre 19 classes d'évaluation réparties entre les catégories surface plane, humain, véhicule, construction, objet, nature et ciel.
- Cityscapes fournit des métriques d'évaluation standardisées telles que l'intersection moyenne sur union (mIoU) pour la segmentation sémantique, ce qui permet de comparer efficacement les performances des modèles.
- Avant de lancer le téléchargement manuel de ~11 Go, vérifie le bon fonctionnement de ton pipeline d'entraînement avec le sous-ensemble de 8 images Cityscapes8.
Structure du jeu de données#
La configuration Ultralytics attend la structure suivante après la préparation :
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Cityscapes ne propose pas de téléchargement automatique de l'archive. Crée un compte sur le site web de Cityscapes, puis télécharge les archives leftImg8bit_trainvaltest.zip et gtFine_trainvaltest.zip (~11 Go au total) et extrais-les toutes les deux dans la racine du jeu de données cityscapes. Ultralytics les réorganise automatiquement selon la structure 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 d'origine de Cityscapes sont convertis en ID d'entraînement standard 19 via la section label_mapping, et les étiquettes ignorées ou vides sont converties en 255 afin d'être exclues de l'entraînement et de l'évaluation.
Les masques gtFine/test publiés ne contiennent des étiquettes que pour le véhicule-ego et les régions de la bordure de l'image — toutes les autres classes sont vides. Calcule la mIoU sur la partition val pour l'évaluation locale ; l'obtention des scores officiels sur l'ensemble de test nécessite de soumettre les prédictions au serveur d'évaluation Cityscapes.
Applications#
Cityscapes est largement utilisé pour entraîner et évaluer des modèles d'apprentissage profond en segmentation sémantique, notamment pour la conduite autonome, 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, ainsi que pour toute tâche nécessitant une compréhension dense, au niveau des pixels, d'environnements urbains complexes. Les modèles YOLO26 de segmentation sémantique préentraînés atteignent jusqu'à 83,6 mIoU sur l'ensemble de validation Cityscapes — consulte la page des modèles de segmentation sémantique pour découvrir le tableau complet des benchmarks. Tu peux organiser, visualiser et gérer les données Cityscapes tout au long du processus de développement des 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 à l'adresse https://github.com/ultralytics/ultralytics/blob/main/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 époques avec une taille d'image de 1024, tu peux utiliser les extraits de code suivants. Pour consulter la liste complète des arguments disponibles, reporte-toi à la page Entraînement du modèle.
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 distribué sous une licence personnalisée non commerciale — il est gratuit pour la recherche universitaire 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, cite l'article suivant :
@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 souhaitons remercier l'équipe Cityscapes pour avoir créé et assuré 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, consulte le site web du jeu de données Cityscapes.
FAQ#
Le jeu de données Cityscapes est un benchmark à grande échelle de segmentation sémantique de scènes de rues urbaines dans 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, ses images haute résolution et sa métrique standardisée d'intersection moyenne sur union (mIoU) en font l'un des benchmarks les plus cités pour les modèles de compréhension dense des scènes.
Après la préparation, le jeu de données est organisé en répertoires
images/{train,val,test}/etmasks/{train,val,test}/, chaque image étant associée à un masque PNG à canal unique. Le fichier YAML Ultralytics associe chaque image à son masque via le champmasks_dir: maskset utiliselabel_mappingpour convertir les ID d'étiquettes d'origine de Cityscapes en 19 ID d'entraînement contigus standard, en mappant les étiquettes ignorées et vides vers255. Les masques de la partitiontestn'annotent que le véhicule-ego et les régions de la bordure ; utilise doncvalpour les vérifications locales de la mIoU.Oui. Crée un compte sur le site web de Cityscapes et télécharge les archives
leftImg8bit_trainvaltest.zipetgtFine_trainvaltest.zip(~11 Go au total). Extrais-les toutes les deux dans la racine du jeu de donnéescityscapes— Ultralytics les réorganise automatiquement selon la structure attendueimages/etmasks/lors de ton premier entraînement.Les masques sources 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_mappingconvertit les étiquettes valides en ID de classes contigus0–18et attribue255aux étiquettes ignorées et vides afin qu'elles soient exclues de la fonction de perte et des métriques pendant l'entraînement et la validation.Non. Cityscapes est distribué sous une licence non commerciale qui autorise la recherche universitaire, 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.
Pour entraîner un modèle YOLO26n-sem sur le jeu de données Cityscapes pendant 100 époques avec une taille d'image de 1024, tu peux utiliser les extraits de code suivants. Pour consulter la liste détaillée des arguments disponibles, reporte-toi à la page Entraînement du modèle.