Seguridad preparada para empresas: Conforme a ISO 27001 + SOC 2 Tipo I.

Link to this sectionDataset Cityscapes#

El conjunto de datos Cityscapes es un benchmark de segmentación semántica a gran escala de escenas urbanas capturadas en 50 ciudades europeas, con 2975 imágenes de entrenamiento con anotaciones detalladas y 500 imágenes de validación en 19 clases. 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 Ultralytics YOLO.

Link to this sectionCaracterísticas clave#

  • Las anotaciones detalladas de Cityscapes incluyen 2975 imágenes de entrenamiento y 500 imágenes de validación en 19 clases; el archivo también incluye 1525 imágenes de prueba, pero sus máscaras publicadas solo etiquetan el ego-vehículo y el borde de la imagen; las anotaciones reales de clase no están disponibles, y las puntuaciones oficiales del conjunto de prueba requieren enviar predicciones al servidor de evaluación de Cityscapes.
  • El conjunto de datos abarca 19 clases de evaluación que incluyen categorías de superficies planas, humanos, vehículos, construcción, objetos, naturaleza y cielo.
  • Cityscapes proporciona métricas de evaluación estandarizadas como la Intersección sobre Unión media (mIoU) para la segmentación semántica, lo que permite una comparación eficaz del rendimiento del modelo.
  • Antes de realizar la descarga manual de ~11 GB, verifica tu pipeline de entrenamiento con el subconjunto de 8 imágenes Cityscapes8.

Link to this sectionEstructura del dataset#

La configuración de Ultralytics espera la siguiente estructura tras la preparación:

cityscapes/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
└── masks/
    ├── train/
    ├── val/
    └── test/
Descarga manual necesaria

Cityscapes no cuenta con descarga automática de archivos. Crea una cuenta en el sitio web de Cityscapes, luego descarga los archivos leftImg8bit_trainvaltest.zip y gtFine_trainvaltest.zip (~11 GB en total) y extrae ambos en la raíz del conjunto de datos cityscapes. Ultralytics los reorganiza automáticamente en el diseño images/ y masks/ la primera vez que entrenas.

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.

Nota

Las máscaras gtFine/test publicadas solo etiquetan el ego-vehículo y las regiones del borde de la imagen; todas las demás clases están vacías. Calcula el mIoU en la partición val para una evaluación local; las puntuaciones oficiales del conjunto de prueba requieren enviar predicciones al servidor de evaluación de Cityscapes.

Link to this sectionAplicaciones#

Cityscapes se utiliza ampliamente para entrenar y evaluar modelos de aprendizaje profundo en segmentación semántica, especialmente 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 sobre 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. Los modelos de segmentación semántica preentrenados YOLO26 alcanzan hasta 83.6 mIoU en el conjunto de validación de Cityscapes; consulta la página de modelos de segmentación semántica para ver la tabla de benchmarks completa. Las anotaciones de Cityscapes también están disponibles en la Plataforma Ultralytics para su exploración y gestión de conjuntos de datos.

Link to this sectionYAML del dataset#

Un archivo YAML del 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/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 usar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulta la página de Entrenamiento del modelo.

Ejemplo de entrenamiento
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, Licencia y Agradecimientos#

Cityscapes se publica bajo una licencia personalizada no comercial, gratuita para investigación académica y evaluación, pero el uso comercial, la concesión de licencias o la redistribución de los datos requieren un permiso por separado del equipo de Cityscapes.

Si utilizas el conjunto de datos Cityscapes en tu trabajo de investigación o desarrollo, por favor cita el siguiente artículo:

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

Queremos 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 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 sectionFAQ#

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 de escenas urbanas en 50 ciudades europeas, ampliamente utilizado como referencia estándar para la investigación en conducción autónoma y ADAS. Sus 19 clases de evaluación con anotaciones detalladas, imágenes de alta resolución y la métrica estandarizada de media de Intersección sobre Unión (mIoU) lo convierten en uno de los benchmarks más citados para modelos de comprensión densa de escenas.

Link to this section¿Cómo puedo entrenar un modelo YOLO usando 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 usar los siguientes fragmentos de código. Para obtener una lista detallada de los argumentos disponibles, consulta la página de Entrenamiento del modelo.

Ejemplo de entrenamiento
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}/, donde cada imagen se empareja con una máscara PNG de un solo canal. El archivo YAML de Ultralytics empareja cada imagen con su máscara mediante el campo masks_dir: masks y utiliza label_mapping para convertir los IDs de etiqueta originales de Cityscapes en los 19 IDs de entrenamiento estándar contiguos, asignando las etiquetas ignoradas y nulas a 255. Las máscaras de la partición test solo etiquetan el ego-vehículo y las regiones de borde, así que utiliza val para las comprobaciones locales de mIoU.

Link to this section¿Tengo que descargar Cityscapes manualmente?#

Sí. Crea una cuenta en el sitio web de Cityscapes y descarga los archivos leftImg8bit_trainvaltest.zip y gtFine_trainvaltest.zip (~11 GB en total). Extrae ambos en la raíz del conjunto de datos cityscapes; Ultralytics los reorganiza automáticamente en el diseño esperado images/ y masks/ la primera vez que entrenas.

Link to this section¿Por qué Cityscapes utiliza label_mapping?#

Las máscaras de origen de Cityscapes almacenan los ID de etiqueta originales que difieren de los 19 ID de entrenamiento utilizados para la evaluación. La sección label_mapping convierte las etiquetas válidas en ID de clase contiguos de 0 a 18, y asigna 255 a las etiquetas ignoradas y nulas para que queden excluidas de la pérdida y las métricas durante el entrenamiento y la validación.

Link to this section¿Es el conjunto de datos Cityscapes gratuito para uso comercial?#

No. Cityscapes se publica bajo una licencia no comercial que permite la investigación académica, la enseñanza y la evaluación, pero prohíbe el uso comercial, la concesión de licencias o la venta del conjunto de datos o de trabajos derivados. Contacta directamente con el equipo de Cityscapes para obtener opciones de licencias comerciales.

Comentarios