Link to this sectionDataset Cityscapes#
Il dataset Cityscapes è un benchmark di semantic segmentation su larga scala incentrato su scene stradali urbane riprese in 50 città europee. Fornisce annotazioni a livello di pixel di alta qualità ed è uno dei dataset più utilizzati per la ricerca sulla guida autonoma e la comprensione delle scene urbane con i modelli Ultralytics YOLO.
Link to this sectionCaratteristiche principali#
- Le annotazioni dettagliate di Cityscapes includono 2.975 immagini di training, 500 immagini di validazione e 1.525 immagini di test.
- Il dataset copre 19 classi di valutazione che abbracciano le categorie strada, veicolo, umano, costruzione, oggetto, natura e cielo.
- Cityscapes fornisce metriche di valutazione standardizzate come il mean Intersection over Union (mIoU) per la semantic segmentation, consentendo un confronto efficace delle prestazioni del modello.
Link to this sectionStruttura del dataset#
La configurazione di Ultralytics prevede il seguente layout dopo la preparazione:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Le maschere semantiche sono file PNG a canale singolo. Gli ID delle etichette originali di Cityscapes vengono mappati sui 19 ID standard di training tramite la sezione label_mapping, mentre le etichette ignorate o vuote vengono mappate su 255 in modo da essere escluse dal training e dalla valutazione. Scarica gli archivi ufficiali leftImg8bit e gtFine dal sito web di Cityscapes ed estraili nella radice del dataset; il blocco di preparazione in cityscapes.yaml organizza poi immagini e maschere in questo layout.
Link to this sectionApplicazioni#
Cityscapes è ampiamente utilizzato per addestrare e valutare modelli di deep learning nella semantic segmentation, in particolare per la autonomous driving, i sistemi avanzati di assistenza alla guida (ADAS) e la robotica urbana.
Le sue immagini ad alta risoluzione e le annotazioni dettagliate lo rendono prezioso anche per la ricerca sull'analisi delle scene in tempo reale, la comprensione di corsie e ostacoli e qualsiasi attività che richieda una comprensione densa a livello di pixel di ambienti urbani complessi.
Link to this sectionDataset YAML#
Un file YAML del dataset definisce i percorsi, le classi, la directory delle maschere e la mappatura delle etichette di Cityscapes. Il file cityscapes.yaml è mantenuto su 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)Link to this sectionUtilizzo#
Per addestrare un modello YOLO26n-sem sul dataset Cityscapes per 100 epochs con una dimensione immagine di 1024, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina di Training del modello.
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 sectionCitazioni e riconoscimenti#
Se utilizzi il dataset Cityscapes nel tuo lavoro di ricerca o sviluppo, cita il seguente articolo:
@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}
}Desideriamo ringraziare il team di Cityscapes per aver creato e mantenuto questa preziosa risorsa per le comunità della guida autonoma e della computer vision. Per ulteriori informazioni sul dataset Cityscapes e sui suoi creatori, visita il sito web del dataset Cityscapes.
Link to this sectionFAQ#
Link to this sectionCos'è il dataset Cityscapes e perché è importante per la computer vision?#
Il dataset Cityscapes è un benchmark di semantic segmentation su larga scala focalizzato su scene stradali urbane riprese in 50 città europee. Contiene 5.000 immagini finemente annotate suddivise in 19 classi di valutazione, rendendolo una risorsa fondamentale per la ricerca sulla guida autonoma e la comprensione delle scene urbane. Le sue immagini ad alta risoluzione, le annotazioni dense e la metrica standardizzata mean Intersection over Union (mIoU) lo rendono ideale per il benchmarking di modelli di previsione densa.
Link to this sectionCome posso addestrare un modello YOLO utilizzando il dataset Cityscapes?#
Per addestrare un modello YOLO26n-sem sul dataset Cityscapes per 100 epoche con una dimensione immagine di 1024, puoi utilizzare i seguenti frammenti di codice. Per un elenco dettagliato degli argomenti disponibili, consulta la pagina di Training del modello.
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 sectionCome è strutturato il dataset Cityscapes?#
Dopo la preparazione, il dataset è organizzato nelle directory images/{train,val,test}/ e masks/{train,val,test}/, con ogni immagine abbinata a una maschera PNG a canale singolo. Il file YAML di Ultralytics abbina ogni immagine alla sua maschera tramite il campo masks_dir: masks e utilizza label_mapping per convertire gli ID delle etichette originali di Cityscapes nei 19 ID di training contigui standard, mappando le etichette ignorate e vuote su 255.
Link to this sectionDevo scaricare Cityscapes manualmente?#
Sì. Cityscapes richiede l'accettazione dei termini del dataset sul sito web ufficiale. Scarica ed estrai leftImg8bit e gtFine nella radice del dataset cityscapes prima di utilizzare il blocco di preparazione in cityscapes.yaml per creare il layout images/ e masks/ previsto.
Link to this sectionPerché Cityscapes utilizza label_mapping?#
Le maschere sorgente di Cityscapes memorizzano ID di etichette originali che differiscono dai 19 ID di training utilizzati per la valutazione. La sezione label_mapping converte le etichette valide in ID di classe contigui da 0 a 18 e assegna 255 alle etichette ignorate e vuote in modo che vengano escluse dalla loss e dalle metriche durante il training e la validazione.