Cityscapes Veri Seti#
Cityscapes veri seti, 50 Avrupa şehrinden toplanan kentsel sokak sahnelerine ait, 19 sınıf üzerinde 2.975 ayrıntılı etiketlenmiş eğitim görüntüsü ve 500 doğrulama görüntüsü içeren büyük ölçekli bir semantic segmentation kıyaslama setidir. Otonom sürüş araştırmaları ve Ultralytics YOLO modelleri ile kentsel sahne analizi için en yaygın kullanılan veri setlerinden biridir.
Temel Özellikler#
- Cityscapes detaylı etiketleri, 19 sınıf üzerinde 2.975 eğitim görüntüsü ve 500 doğrulama görüntüsü içerir; arşiv ayrıca 1.525 test görüntüsü sunar, ancak yayınlanan maskeleri yalnızca ego-aracı ve görüntü kenarını etiketler — gerçek sınıf etiketleri gizli tutulur ve resmi test seti skorları Cityscapes evaluation server adresine tahminlerin gönderilmesini gerektirir.
- Veri kümesi; düz, insan, araç, inşaat, nesne, doğa ve gökyüzü kategorilerini kapsayan 19 değerlendirme sınıfını içerir.
- Cityscapes, model performansının etkili bir şekilde karşılaştırılmasını sağlayarak anlamsal segmentasyon için mean Intersection over Union (mIoU) gibi standartlaştırılmış değerlendirme metrikleri sağlar.
- ~11 GB boyutundaki manuel indirmeyi onaylamadan önce, eğitim boru hattınızı 8 görüntülük Cityscapes8 alt kümesine karşı test edin.
Veri Kümesi Yapısı#
Ultralytics yapılandırması, hazırlık sonrası aşağıdaki düzeni bekler:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Cityscapes için otomatik arşiv indirmesi bulunmamaktadır. Cityscapes website üzerinden bir hesap oluşturun, ardından leftImg8bit_trainvaltest.zip ve gtFine_trainvaltest.zip arşivlerini (toplamda ~11 GB) indirin ve her ikisini de cityscapes veri seti kök dizinine çıkarın. Ultralytics, ilk kez eğitim yaptığınızda bunları otomatik olarak images/ ve masks/ düzenine göre yeniden organize eder.
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 yoksayılan veya boş etiketler, eğitim ile değerlendirmenin dışına tutulmaları için 255 olarak eşlenir.
Genel kullanıma sunulan gtFine/test maskeleri yalnızca ego-aracı ve görüntü kenar bölgelerini etiketler — diğer tüm sınıflar boştur. Yerel değerlendirme için val bölümü üzerinde mIoU hesaplayın; resmi test seti skorları, tahminlerin Cityscapes evaluation server adresine gönderilmesini gerektirir.
Uygulamalar#
Cityscapes, özellikle autonomous driving, gelişmiş sürücü destek sistemleri (ADAS) ve kentsel robotik alanlarında, deep learning modellerini anlamsal segmentasyonda eğitmek ve değerlendirmek için yaygın olarak kullanılır.
Yüksek çözünürlüklü görüntüleri ve ayrıntılı etiketlemeleri; gerçek zamanlı sahne ayrıştırma, şerit ve engel anlama araştırmaları ile karmaşık kentsel ortamların yoğun pikselsel düzeyde anlaşılmasını gerektiren tüm görevler için de değerli kılmaktadır. Önceden eğitilmiş YOLO26 anlamsal segmentasyon modelleri, Cityscapes doğrulama setinde 83,6 mIoU değerine kadar ulaşır; eksiksiz kıyaslama tablosu için semantic segmentation models sayfasına göz atın. Ultralytics Platform ile model geliştirme iş akışı boyunca Cityscapes verilerini düzenleyebilir, görselleştirebilir ve yönetebilirsiniz.
Veri Kümesi YAML#
Bir veri seti 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 barındırılmaktadı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 seti üzerinde 1024 görüntü boyutuyla 100 epochs boyunca bir YOLO26n-sem modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Mevcut argümanların kapsamlı bir listesi için modelin Training sayfasına bakın.
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, Lisans ve Teşekkür#
Cityscapes, custom non-commercial license altında yayınlanmıştır; akademik araştırma ve değerlendirme için ücretsizdir, ancak verilerin ticari kullanımı, lisanslanması veya yeniden dağıtılması Cityscapes ekibinden ayrı bir izin gerektirir.
Cityscapes veri setini 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şturan ve bakımını yapan Cityscapes ekibine teşekkür ederiz. Cityscapes veri seti ve yaratıcıları hakkında daha fazla bilgi edinmek için Cityscapes dataset website adresini ziyaret edin.
SSS#
Cityscapes veri seti, 50 Avrupa şehri genelindeki kentsel sokak sahnelerinin yer aldığı, otonom sürüş ve ADAS araştırmaları için standart bir referans olarak yaygın şekilde kullanılan büyük ölçekli bir semantic segmentation kıyaslama setidir. 19 detaylı etiketlenmiş değerlendirme sınıfı, yüksek çözünürlüklü görüntüleri ve standartlaştırılmış ortalama Sınırlı Kesişim Üzeri Birleşim (mIoU) metriği, burayı yoğun sahne anlama modelleri için en çok atıfta bulunulan kıyaslama setlerinden biri haline getirmektedir.
Cityscapes veri seti üzerinde 1024 görüntü boyutuyla 100 epoch boyunca bir YOLO26n-sem modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Mevcut argümanların ayrıntılı bir listesi için modelin Training sayfasına bakın.
Eğitim Örneğifrom 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)Hazırlık aşamasından sonra veri seti, her bir görüntünün tek kanallı bir PNG maskesiyle eşleştirildiği
images/{train,val,test}/vemasks/{train,val,test}/dizinlerinde organize edilir. Ultralytics YAML dosyası,masks_dir: masksalanı aracılığıyla her görüntüyü maskesiyle eşleştirir ve orijinal Cityscapes etiket kimliklerini standart 19 bitişik eğitim kimliğine dönüştürmek içinlabel_mappingkullanır; böylece yoksayılan ve boş etiketler255olarak haritalandırılır.testbölümünün maskeleri yalnızca ego-aracı ve kenar bölgelerini etiketler, bu nedenle yerel mIoU kontrolleri içinvalkullanın.Evet. Cityscapes website üzerinden bir hesap oluşturun ve
leftImg8bit_trainvaltest.zipilegtFine_trainvaltest.ziparşivlerini (~11 GB toplam) indirin. Her ikisini decityscapesveri seti kök dizinine çıkarın; Ultralytics, ilk eğitiminizde bunları beklenenimages/vemasks/düzeninde otomatik olarak yeniden organize eder.Cityscapes kaynak maskeleri, değerlendirme için kullanılan 19 eğitim kimliğinden farklı olan orijinal etiket kimliklerini saklar.
label_mappingbölümü, geçerli etiketleri bitişik sınıf kimlikleri olan0–18aralığına dönüştürür ve eğitim ile doğrulama sırasında kayıp ve metriklerin dışına tutulmaları için yoksayılan ve boş etiketlere255atar.Hayır. Cityscapes; akademik araştırmalara, öğretime ve değerlendirmeye izin veren ancak ticari kullanımı, veri setinin veya türev çalışmaların lisanslanmasını ya da satılmasını yasaklayan bir non-commercial license altında yayınlanmıştır. Ticari lisanslama seçenekleri için doğrudan Cityscapes ekibiyle iletişime geçin.