Link to this sectionDataset Cityscapes#
El conjunto de datos Cityscapes es un benchmark de segmentación semántica a gran escala centrado en escenas urbanas capturadas en 50 ciudades europeas. Proporciona anotaciones a nivel de píxel de alta calidad y es uno de los conjuntos de datos más utilizados para la investigación en conducción autónoma y la comprensión de escenas urbanas con modelos de Ultralytics YOLO.
Link to this sectionCaracterísticas principales#
- Las anotaciones detalladas de Cityscapes incluyen 2975 imágenes de entrenamiento, 500 imágenes de validación y 1525 imágenes de prueba.
- El conjunto de datos abarca 19 clases de evaluación que incluyen categorías como carretera, vehículo, humano, construcción, objeto, naturaleza y cielo.
- Cityscapes proporciona métricas de evaluación estandarizadas como mean Intersection over Union (mIoU) para la segmentación semántica, lo que permite comparar eficazmente el rendimiento de los modelos.
Link to this sectionEstructura del conjunto de datos#
La configuración de Ultralytics espera el siguiente diseño tras la preparación:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Las máscaras semánticas son archivos PNG de un solo canal. Los IDs de etiqueta originales de Cityscapes se asignan a los 19 IDs de entrenamiento estándar a través de la sección label_mapping, y las etiquetas ignoradas o nulas se asignan a 255 para que se excluyan del entrenamiento y la evaluación. Descarga los archivos oficiales leftImg8bit y gtFine del sitio web de Cityscapes y extráelos en la raíz del conjunto de datos; el bloque de preparación en cityscapes.yaml organiza entonces las imágenes y máscaras en este diseño.
Link to this sectionAplicaciones#
Cityscapes se utiliza ampliamente para entrenar y evaluar modelos de deep learning en segmentación semántica, particularmente para conducción autónoma, sistemas avanzados de asistencia al conductor (ADAS) y robótica urbana.
Sus imágenes de alta resolución y anotaciones detalladas también lo hacen valioso para la investigación en análisis de escenas en tiempo real, comprensión de carriles y obstáculos, y cualquier tarea que requiera una comprensión densa a nivel de píxel de entornos urbanos complejos.
Link to this sectionYAML del conjunto de datos#
Un archivo YAML de conjunto de datos define las rutas, las clases, el directorio de máscaras y el mapeo de etiquetas de Cityscapes. El archivo cityscapes.yaml se mantiene en 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 sectionUso#
Para entrenar un modelo YOLO26n-sem en el conjunto de datos Cityscapes durante 100 épocas con un tamaño de imagen de 1024, puedes utilizar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulta la página de Entrenamiento del modelo.
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 sectionCitas y agradecimientos#
Si utilizas el conjunto de datos Cityscapes en tu trabajo de investigación o desarrollo, por favor cita el siguiente artículo:
@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}
}Nos gustaría agradecer al equipo de Cityscapes por crear y mantener este valioso recurso para las comunidades de conducción autónoma y visión artificial. Para obtener más información sobre el conjunto de datos Cityscapes y sus creadores, visita el sitio web del conjunto de datos Cityscapes.
Link to this sectionPreguntas frecuentes#
Link to this section¿Qué es el conjunto de datos Cityscapes y por qué es importante para la visión artificial?#
El conjunto de datos Cityscapes es un benchmark de segmentación semántica a gran escala centrado en escenas urbanas capturadas en 50 ciudades europeas. Contiene 5000 imágenes minuciosamente anotadas en 19 clases de evaluación, lo que lo convierte en un recurso fundamental para la investigación en conducción autónoma y comprensión de escenas urbanas. Sus imágenes de alta resolución, anotaciones densas y la métrica estandarizada mIoU lo hacen ideal para evaluar modelos de predicción densa.
Link to this section¿Cómo puedo entrenar un modelo YOLO utilizando el conjunto de datos Cityscapes?#
Para entrenar un modelo YOLO26n-sem en el conjunto de datos Cityscapes durante 100 épocas con un tamaño de imagen de 1024, puedes utilizar los siguientes fragmentos de código. Para obtener una lista detallada de los argumentos disponibles, consulta la página de Entrenamiento del modelo.
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 section¿Cómo está estructurado el conjunto de datos Cityscapes?#
Tras la preparación, el conjunto de datos se organiza en directorios images/{train,val,test}/ y masks/{train,val,test}/, con cada imagen emparejada con una máscara PNG de un solo canal. El archivo YAML de Ultralytics empareja cada imagen con su máscara a través del campo masks_dir: masks, y utiliza label_mapping para convertir los IDs de etiqueta originales de Cityscapes en los 19 IDs de entrenamiento contiguos estándar, asignando las etiquetas ignoradas y nulas a 255.
Link to this section¿Necesito descargar Cityscapes manualmente?#
Sí. Cityscapes requiere aceptar los términos del conjunto de datos en el sitio web oficial. Descarga y extrae leftImg8bit y gtFine en la raíz del conjunto de datos cityscapes antes de usar el bloque de preparación en cityscapes.yaml para crear el diseño esperado de images/ y masks/.
Link to this section¿Por qué Cityscapes utiliza label_mapping?#
Las máscaras de origen de Cityscapes almacenan IDs de etiqueta originales que difieren de los 19 IDs de entrenamiento utilizados para la evaluación. La sección label_mapping convierte las etiquetas válidas en IDs de clase contiguos de 0 a 18, y asigna 255 a las etiquetas ignoradas y nulas para que se excluyan de la pérdida y las métricas durante el entrenamiento y la validación.