Link to this sectionConjunto de dados Cityscapes#
O conjunto de dados Cityscapes é um benchmark de segmentação semântica em larga escala focado em cenas de ruas urbanas capturadas em 50 cidades europeias. Ele fornece anotações de alta qualidade em nível de pixel e é um dos conjuntos de dados mais utilizados para pesquisa de direção autônoma e compreensão de cenas urbanas com modelos Ultralytics YOLO.
Link to this sectionPrincipais Recursos#
- As anotações refinadas do Cityscapes incluem 2.975 imagens de treinamento, 500 imagens de validação e 1.525 imagens de teste.
- O conjunto de dados abrange 19 classes de avaliação que compreendem categorias de estrada, veículo, humano, construção, objeto, natureza e céu.
- O Cityscapes fornece métricas de avaliação padronizadas, como a mean Intersection over Union (mIoU) para segmentação semântica, permitindo uma comparação eficaz do desempenho do modelo.
Link to this sectionEstrutura do Conjunto de Dados#
A configuração do Ultralytics espera o seguinte layout após a preparação:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/As máscaras semânticas são arquivos PNG de canal único. Os IDs de rótulo originais do Cityscapes são mapeados para os 19 IDs de treinamento padrão através da seção label_mapping, e os rótulos ignorados ou nulos são mapeados para 255, de modo que sejam excluídos do treinamento e da avaliação. Baixe os arquivos oficiais leftImg8bit e gtFine do site do Cityscapes e extraia-os na raiz do conjunto de dados; o bloco de preparação em cityscapes.yaml organiza então as imagens e máscaras neste layout.
Link to this sectionAplicações#
O Cityscapes é amplamente utilizado para treinar e avaliar modelos de aprendizado profundo em segmentação semântica, particularmente para direção autônoma, sistemas avançados de assistência ao motorista (ADAS) e robótica urbana.
Suas imagens de alta resolução e anotações detalhadas também o tornam valioso para pesquisas sobre análise de cena em tempo real, compreensão de faixas e obstáculos, e qualquer tarefa que exija uma compreensão densa em nível de pixel de ambientes urbanos complexos.
Link to this sectionYAML do Conjunto de Dados#
Um arquivo YAML de conjunto de dados define os caminhos, classes, diretório de máscaras e mapeamento de rótulos do Cityscapes. O arquivo cityscapes.yaml é mantido em 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 treinar um modelo YOLO26n-sem no conjunto de dados Cityscapes por 100 épocas com um tamanho de imagem de 1024, você pode usar os seguintes trechos de código. Para uma lista abrangente de argumentos disponíveis, consulte a página de Treinamento do 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 sectionCitações e Agradecimentos#
Se você utilizar o conjunto de dados Cityscapes em seu trabalho de pesquisa ou desenvolvimento, por favor, cite o seguinte artigo:
@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}
}Gostaríamos de agradecer à equipe do Cityscapes por criar e manter este recurso valioso para as comunidades de direção autônoma e visão computacional. Para mais informações sobre o conjunto de dados Cityscapes e seus criadores, visite o site do conjunto de dados Cityscapes.
Link to this sectionPerguntas Frequentes#
Link to this sectionO que é o conjunto de dados Cityscapes e por que ele é importante para a visão computacional?#
O conjunto de dados Cityscapes é um benchmark de segmentação semântica em larga escala focado em cenas de ruas urbanas capturadas em 50 cidades europeias. Ele contém 5.000 imagens finamente anotadas em 19 classes de avaliação, tornando-o um recurso fundamental para pesquisas de direção autônoma e compreensão de cenas urbanas. Suas imagens de alta resolução, anotações densas e métrica padronizada de mean Intersection over Union (mIoU) o tornam ideal para o benchmarking de modelos de predição densa.
Link to this sectionComo posso treinar um modelo YOLO usando o conjunto de dados Cityscapes?#
Para treinar um modelo YOLO26n-sem no conjunto de dados Cityscapes por 100 épocas com um tamanho de imagem de 1024, você pode usar os seguintes trechos de código. Para uma lista detalhada de argumentos disponíveis, consulte a página de Treinamento do 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 sectionComo o conjunto de dados Cityscapes é estruturado?#
Após a preparação, o conjunto de dados é organizado em diretórios images/{train,val,test}/ e masks/{train,val,test}/, com cada imagem emparelhada com uma máscara PNG de canal único. O arquivo YAML do Ultralytics emparelha cada imagem com sua máscara através do campo masks_dir: masks e usa label_mapping para converter os IDs de rótulo originais do Cityscapes nos 19 IDs de treinamento contíguos padrão, mapeando rótulos ignorados e nulos para 255.
Link to this sectionPreciso baixar o Cityscapes manualmente?#
Sim. O Cityscapes exige a aceitação dos termos do conjunto de dados no site oficial. Baixe e extraia leftImg8bit e gtFine na raiz do conjunto de dados cityscapes antes de usar o bloco de preparação em cityscapes.yaml para criar o layout esperado de images/ e masks/.
Link to this sectionPor que o Cityscapes usa label_mapping?#
As máscaras de origem do Cityscapes armazenam IDs de rótulo originais que diferem dos 19 IDs de treinamento usados para avaliação. A seção label_mapping converte rótulos válidos em IDs de classe contíguos de 0 a 18, e atribui 255 aos rótulos ignorados e nulos para que sejam excluídos da perda e das métricas durante o treinamento e a validação.