Cityscapes Veri Kümesi
Cityscapes veri kümesi, 50 Avrupa şehrinden çekilen kentsel sokak sahnelerine odaklanan büyük ölçekli bir anlamsal bölütleme kıyaslama testidir. Yüksek kaliteli piksel düzeyinde açıklamalar sağlar ve Ultralytics YOLO modelleri ile otonom sürüş araştırmaları ve kentsel sahne anlama için en yaygın kullanılan veri kümelerinden biridir.
Temel Özellikler
- Cityscapes ince açıklamaları; 2.975 eğitim görüntüsü, 500 doğrulama görüntüsü ve 1.525 test görüntüsü içerir.
- Veri kümesi; yol, taşıt, insan, inşaat, nesne, doğa ve gökyüzü kategorilerini kapsayan 19 değerlendirme sınıfını içerir.
- Cityscapes, anlamsal bölütleme için Ortalama Kesişim Üzerinden Birleşim (mIoU) gibi standartlaştırılmış değerlendirme metrikleri sunarak model performansının etkin bir şekilde karşılaştırılmasını sağlar.
Veri Kümesi Yapısı
Ultralytics yapılandırması, hazırlıktan sonra aşağıdaki düzeni bekler:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Anlamsal maskeler tek kanallı PNG dosyalarıdır. Orijinal Cityscapes etiket kimlikleri, label_mapping bölümü aracılığıyla standart 19 eğitim kimliğine eşlenir ve göz ardı edilen veya boş etiketler 255 olarak eşlenerek eğitim ve değerlendirme dışı bırakılır. Resmi leftImg8bit ve gtFine arşivlerini Cityscapes web sitesinden indirip veri kümesi kök dizinine çıkar; cityscapes.yaml içindeki hazırlık bloğu daha sonra görüntüleri ve maskeleri bu düzene göre organize eder.
Uygulamalar
Cityscapes is widely used for training and evaluating deep learning models in semantic segmentation, particularly for autonomous driving, advanced driver-assistance systems (ADAS), and urban robotics.
Yüksek çözünürlüklü görüntüleri ve ayrıntılı açıklamaları, onu gerçek zamanlı sahne ayrıştırma, şerit ve engel anlama ve karmaşık kentsel ortamların yoğun piksel düzeyinde anlaşılmasını gerektiren her türlü görev için değerli kılmaktadır.
Veri Kümesi YAML
Bir veri kümesi YAML dosyası; Cityscapes yollarını, sınıflarını, maske dizinini ve etiket eşlemesini tanımlar. cityscapes.yaml dosyası https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml adresinde tutulmaktadır.
# 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)Kullanım
Cityscapes veri kümesi üzerinde 1024 görüntü boyutu ile 100 çağ boyunca bir YOLO26n-sem modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut argümanların kapsamlı bir listesi için Eğitim sayfası modeline başvur.
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)Alıntılar ve Teşekkür
Cityscapes veri kümesini araştırma veya geliştirme çalışmalarında kullanıyorsan, lütfen şu makaleye atıfta bulun:
@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}
}Otonom sürüş ve bilgisayarlı görü toplulukları için bu değerli kaynağı oluşturdukları ve sürdürdükleri için Cityscapes ekibine teşekkür ederiz. Cityscapes veri kümesi ve yaratıcıları hakkında daha fazla bilgi için Cityscapes veri kümesi web sitesini ziyaret et.
SSS
Cityscapes veri kümesi nedir ve bilgisayarlı görü için neden önemlidir?
Cityscapes veri kümesi, 50 Avrupa şehrinden çekilen kentsel sokak sahnelerine odaklanan büyük ölçekli bir anlamsal bölütleme kıyaslama testidir. 19 değerlendirme sınıfında 5.000 adet ince açıklamalı görüntü içerir, bu da onu otonom sürüş ve kentsel sahne anlama araştırmaları için temel bir kaynak haline getirir. Yüksek çözünürlüklü görüntüleri, yoğun açıklamaları ve standartlaştırılmış Ortalama Kesişim Üzerinden Birleşim (mIoU) metriği, onu yoğun tahmin modellerini kıyaslamak için ideal kılar.
Cityscapes veri kümesini kullanarak nasıl YOLO modeli eğitebilirim?
Cityscapes veri kümesi üzerinde 1024 görüntü boyutu ile 100 çağ boyunca bir YOLO26n-sem modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut argümanların ayrıntılı bir listesi için Eğitim sayfası modeline başvur.
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)Cityscapes veri kümesi nasıl yapılandırılmıştır?
Hazırlıktan sonra veri kümesi; her görüntü tek kanallı bir PNG maskesi ile eşleştirilmiş şekilde images/{train,val,test}/ ve masks/{train,val,test}/ dizinlerinde organize edilir. Ultralytics YAML dosyası, masks_dir: masks alanı aracılığıyla her görüntüyü maskesiyle eşleştirir ve orijinal Cityscapes etiket kimliklerini standart 19 ardışık eğitim kimliğine dönüştürmek için label_mapping kullanır, göz ardı edilen ve boş etiketleri 255 olarak eşler.
Cityscapes'i manuel olarak indirmem gerekiyor mu?
Yes. Cityscapes requires accepting the dataset terms on the official website. Download and extract leftImg8bit and gtFine into the cityscapes dataset root before using the preparation block in cityscapes.yaml to create the expected images/ and masks/ layout.
Cityscapes neden label_mapping kullanıyor?
Cityscapes kaynak maskeleri, değerlendirme için kullanılan 19 eğitim kimliğinden farklı olan orijinal etiket kimliklerini depolar. label_mapping bölümü, geçerli etiketleri 0–18 arası ardışık sınıf kimliklerine dönüştürür ve göz ardı edilen veya boş etiketlere 255 atayarak, eğitim ve doğrulama sırasında kayıp ve metriklerin dışında tutulmalarını sağlar.