Cityscapes Veri Kümesi#
Cityscapes veri kümesi, 50 Avrupa şehrinde çekilmiş kentsel sokak sahnelerinden oluşan, geniş ölçekli bir anlamsal segmentasyon kıyaslama veri kümesidir. 19 sınıfta, ayrıntılı biçimde etiketlenmiş 2.975 eğitim ve 500 doğrulama görüntüsü içerir. Otonom sürüş araştırmaları ve Ultralytics YOLO modelleriyle kentsel sahne anlama alanlarında en yaygın kullanılan veri kümelerinden biridir.
Temel Özellikler#
- Cityscapes'in ayrıntılı açıklamaları 19 sınıfta 2.975 eğitim ve 500 doğrulama görüntüsü içerir; arşivde ayrıca 1.525 test görüntüsü de bulunur, ancak yayımlanan maskeler yalnızca ego aracını ve görüntü kenarını etiketler — gerçek sınıf açıklamaları paylaşılmaz ve resmî test kümesi puanları için tahminlerin Cityscapes değerlendirme sunucusuna gönderilmesi gerekir.
- Veri kümesi; düz yüzey, insan, araç, yapı, nesne, doğa ve gökyüzü kategorilerine yayılan 19 değerlendirme sınıfını kapsar.
- Cityscapes, anlamsal segmentasyonda modellerin performansını etkili biçimde karşılaştırmayı sağlayan ortalama Kesişim-Birleşim (mIoU) gibi standart değerlendirme metrikleri sunar.
- ~11 GB boyutundaki manuel indirmeyi başlatmadan önce, 8 görüntülük Cityscapes8 alt kümesiyle eğitim işlem hattının sorunsuz çalıştığını kontrol et.
Veri Kümesi Yapısı#
Ultralytics yapılandırması, hazırlık sonrasında aşağıdaki klasör yapısını bekler:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Cityscapes için otomatik arşiv indirme seçeneği yoktur. Cityscapes web sitesinde bir hesap oluştur, ardından leftImg8bit_trainvaltest.zip ve gtFine_trainvaltest.zip arşivlerini indir (toplamda ~11 GB) ve ikisini de cityscapes veri kümesi kök dizinine çıkart. İlk eğitiminde Ultralytics bunları otomatik olarak yukarıdaki images/ ve masks/ yapısına göre yeniden düzenler.
Anlamsal maskeler tek kanallı PNG dosyalarıdır. Özgün Cityscapes etiket kimlikleri, standart 19 eğitim kimliğine label_mapping bölümü aracılığıyla eşlenir; yok sayılan veya boş etiketler, eğitim ve değerlendirme dışında tutulmaları için 255 değerine eşlenir.
Herkese açık olarak yayımlanan gtFine/test maskeleri yalnızca ego aracı ve görüntü kenarındaki bölgeleri etiketler — diğer tüm sınıflar boştur. Yerel değerlendirme için mIoU değerini val bölümünde hesapla; resmî test kümesi puanları için tahminleri Cityscapes değerlendirme sunucusuna göndermen gerekir.
Uygulamalar#
Cityscapes; özellikle otonom sürüş, gelişmiş sürücü destek sistemleri (ADAS) ve kentsel robotik alanlarında, anlamsal segmentasyon için derin öğrenme modellerinin eğitiminde ve değerlendirilmesinde yaygın olarak kullanılır.
Yüksek çözünürlüklü görüntüleri ve ayrıntılı açıklamaları, gerçek zamanlı sahne ayrıştırma, şerit ve engel algılama ile karmaşık kentsel ortamlarda pikselleri yoğun biçimde anlamayı gerektiren tüm görevlerde de araştırma açısından değer taşır. Önceden eğitilmiş YOLO26 anlamsal segmentasyon modelleri, Cityscapes doğrulama kümesinde 83,6 mIoU değerine ulaşır — kıyaslama tablosunun tamamı için anlamsal segmentasyon modelleri sayfasına bak. Model geliştirme iş akışının her aşamasında Cityscapes verilerini Ultralytics Platform ile düzenleyebilir, görselleştirebilir ve yönetebilirsin.
Veri Kümesi YAML Dosyası#
Bir veri kümesi YAML dosyası; Cityscapes yollarını, sınıfları, maske dizinini ve etiket eşlemesini tanımlar. cityscapes.yaml dosyası https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml konumunda tutulur.
# 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ümesinde 1024 görüntü boyutuyla 100 epoch boyunca YOLO26n-sem modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir bağımsız değişkenlerin kapsamlı listesi için modelin Eğitim sayfasına bak.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n-sem.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
# Modeli eğit
results = model.train(data="cityscapes.yaml", epochs=100, imgsz=1024)Atıflar, Lisans ve Teşekkür#
Cityscapes, özel bir ticari olmayan lisans altında yayımlanır — akademik araştırma ve değerlendirme için ücretsizdir, ancak verilerin ticari amaçla kullanılması, lisanslanması veya yeniden dağıtılması Cityscapes ekibinden ayrıca izin alınmasını gerektirir.
Cityscapes veri kümesini araştırma veya geliştirme çalışmalarında kullanıyorsan lütfen aşağıdaki makaleyi kaynak göster:
@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şturup sürdürdükleri için Cityscapes ekibine teşekkür ederiz. Cityscapes veri kümesi ve oluşturucuları hakkında daha fazla bilgi için Cityscapes veri kümesi web sitesini ziyaret et.
Sık Sorulan Sorular#
Cityscapes veri kümesi, 50 Avrupa şehrindeki kentsel sokak sahnelerini kapsayan geniş ölçekli bir anlamsal segmentasyon kıyaslama veri kümesidir ve otonom sürüş ile ADAS araştırmalarında standart bir referans olarak yaygın biçimde kullanılır. Ayrıntılı olarak etiketlenmiş 19 değerlendirme sınıfı, yüksek çözünürlüklü görüntüleri ve standartlaştırılmış ortalama Kesişim-Birleşim (mIoU) metriği, onu yoğun sahne anlama modelleri için en çok atıf alan kıyaslama veri kümelerinden biri yapar.
Cityscapes veri kümesinde 1024 görüntü boyutuyla 100 epoch boyunca YOLO26n-sem modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir bağımsız değişkenlerin ayrıntılı listesi için modelin Eğitim sayfasına bak.
Eğitim Örneğifrom ultralytics import YOLO # Bir model yükle model = YOLO("yolo26n-sem.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir) # Modeli eğit results = model.train(data="cityscapes.yaml", epochs=100, imgsz=1024)Hazırlık sonrasında veri kümesi
images/{train,val,test}/vemasks/{train,val,test}/dizinlerinde düzenlenir; her görüntü tek kanallı bir PNG maskesiyle eşleştirilir. Ultralytics YAML dosyası, her görüntüyümasks_dir: masksalanı aracılığıyla maskesiyle eşleştirir ve özgün Cityscapes etiket kimliklerini standart 19 ardışık eğitim kimliğine dönüştürmek içinlabel_mappingalanını kullanır; yok sayılan ve boş etiketleri255değerine eşler.testbölümündeki maskeler yalnızca ego aracı ile kenar bölgelerini etiketlediğinden, yerel mIoU kontrolleri içinvalkullan.Evet. Cityscapes web sitesinde bir hesap oluştur ve
leftImg8bit_trainvaltest.zipilegtFine_trainvaltest.ziparşivlerini indir (toplamda ~11 GB). İkisini decityscapesveri kümesi kök dizinine çıkart — ilk eğitiminde Ultralytics bunları beklenenimages/vemasks/klasör yapısına göre otomatik olarak yeniden düzenler.Cityscapes kaynak maskeleri, değerlendirme için kullanılan 19 eğitim kimliğinden farklı olan özgün etiket kimliklerini içerir.
label_mappingbölümü, geçerli etiketleri ardışık sınıf kimlikleri olan0–18değerlerine dönüştürür ve yok sayılan ya da boş etiketlere255atayarak bunları eğitim ve doğrulama sırasında kayıp ve metrik hesaplamalarının dışında tutar.Hayır. Cityscapes, akademik araştırma, öğretim ve değerlendirmeye izin veren ancak veri kümesinin veya türev çalışmaların ticari amaçla kullanılmasını, lisanslanmasını ya da satılmasını yasaklayan ticari olmayan bir lisans altında yayımlanır. Ticari lisanslama seçenekleri için doğrudan Cityscapes ekibiyle iletişime geç.