Cityscapes Veri Kümesi#
Cityscapes veri kümesi, 50 Avrupa şehrinde çekilmiş kentsel sokak sahnelerinden oluşan, 19 sınıfta 2.975 ayrıntılı şekilde etiketlenmiş eğitim görüntüsü ve 500 doğrulama görüntüsü içeren büyük ölçekli bir semantik segmentasyon kıyaslama veri kümesidir. Otonom sürüş araştırmaları ve Ultralytics YOLO modelleriyle kentsel sahne anlama için en yaygın kullanılan veri kümelerinden biridir.
Temel Özellikler#
- Cityscapes ayrıntılı anotasyonları, 19 sınıfta 2.975 eğitim görüntüsü ve 500 doğrulama görüntüsü içerir; arşivde ayrıca 1.525 test görüntüsü bulunur, ancak yayımlanan maskeleri yalnızca ego aracını ve görüntü kenarını etiketler — gerçek sınıf anotasyonları paylaşılmaz ve resmî test kümesi skorları için tahminlerin Cityscapes değerlendirme sunucusuna gönderilmesi gerekir.
- Veri kümesi; düz zemin, insan, araç, yapı, nesne, doğa ve gökyüzü kategorilerine yayılan 19 değerlendirme sınıfını kapsar.
- Cityscapes, semantik segmentasyon için ortalama Intersection over Union (mIoU) gibi standartlaştırılmış değerlendirme metrikleri sağlayarak model performansının etkili şekilde karşılaştırılmasını mümkün kılar.
- ~11 GB'lık manuel indirmeyi başlatmadan önce eğitim işlem hattını 8 görüntüden oluşan Cityscapes8 alt kümesiyle kontrol et.
Veri Kümesi Yapısı#
Ultralytics yapılandırması, hazırlık sonrasında aşağıdaki düzeni bekler:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/Cityscapes'in otomatik arşiv indirmesi yoktur. Cityscapes web sitesinde bir hesap oluştur, ardından leftImg8bit_trainvaltest.zip ve gtFine_trainvaltest.zip arşivlerini (birlikte ~11 GB) indir ve ikisini de cityscapes veri kümesi kök dizinine çıkart. Ultralytics, ilk eğitim yaptığında bunları otomatik olarak yukarıdaki images/ ve masks/ düzeninde yeniden organize eder.
Semantik 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 yok sayılan veya geçersiz etiketler, eğitim ve değerlendirme dışında tutulmaları için 255 ile eşlenir.
Herkese açık olarak yayımlanan gtFine/test maskeleri yalnızca ego aracı ve görüntü kenarı bölgelerini etiketler — diğer tüm sınıflar geçersizdir. Yerel değerlendirme için val bölmesinde mIoU hesapla; resmî test kümesi skorları için tahminlerin Cityscapes değerlendirme sunucusuna gönderilmesi gerekir.
Uygulamalar#
Cityscapes, semantik segmentasyonda derin öğrenme modellerini eğitmek ve değerlendirmek için, özellikle otonom sürüş, gelişmiş sürücü destek sistemleri (ADAS) ve kentsel robotik alanlarında yaygın olarak kullanılır.
Yüksek çözünürlüklü görüntüleri ve ayrıntılı anotasyonları, 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 üzerine yapılan araştırmalar için de değerlidir. Önceden eğitilmiş YOLO26 semantik segmentasyon modelleri, Cityscapes doğrulama kümesinde 83,6 mIoU'ya kadar ulaşır — tam kıyaslama tablosu için semantik segmentasyon modelleri sayfasına bak. Ultralytics Platform ile model geliştirme iş akışı boyunca Cityscapes verilerini düzenleyebilir, görselleştirebilir ve yönetebilirsin.
Veri Kümesi YAML'i#
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 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ümesi üzerinde 100 epoch boyunca ve 1024 görüntü boyutuyla bir 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
# 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)Atıflar, Lisans ve Teşekkürler#
Cityscapes, özel bir ticari olmayan lisans kapsamında yayımlanır — akademik araştırma ve değerlendirme için ücretsizdir, ancak verilerin ticari kullanımı, lisanslanması veya yeniden dağıtımı 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 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 sürdüren Cityscapes ekibine teşekkür etmek isteriz. Cityscapes veri kümesi ve oluşturucuları hakkında daha fazla bilgi için Cityscapes veri kümesi web sitesini ziyaret et.
SSS#
Cityscapes veri kümesi, 50 Avrupa şehrindeki kentsel sokak sahnelerinden oluşan büyük ölçekli bir semantik 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ı şekilde etiketlenmiş 19 değerlendirme sınıfı, yüksek çözünürlüklü görüntüleri ve standartlaştırılmış ortalama Intersection over Union (mIoU) metriği, onu yoğun sahne anlama modelleri için en çok atıf yapılan kıyaslama veri kümelerinden biri hâline getirir.
Cityscapes veri kümesi üzerinde 100 epoch boyunca ve 1024 görüntü boyutuyla bir 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 # 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 sonrasında veri kümesi,
images/{train,val,test}/vemasks/{train,val,test}/dizinleri hâlinde düzenlenir ve her görüntü, tek kanallı bir PNG maskesiyle eşleştirilir. 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 ardışık eğitim kimliğine dönüştürmek içinlabel_mappingalanını kullanır; yok sayılan ve geçersiz etiketleri255ile eşler.testbölmesinin maskeleri yalnızca ego aracı ve 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 (birlikte ~11 GB) indir. İkisini decityscapesveri kümesi kök dizinine çıkart — Ultralytics, ilk eğitim yaptığında 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 depolar.
label_mappingbölümü geçerli etiketleri ardışık sınıf kimlikleri olan0–18değerlerine dönüştürür ve eğitim ile doğrulama sırasında kayıp ve metriklerin dışında tutulmaları için yok sayılan ve geçersiz etiketlere255atar.Hayır. Cityscapes, akademik araştırma, öğretim ve değerlendirmeye izin veren, ancak veri kümesinin veya türetilmiş çalışmaların ticari kullanımını, lisanslanmasını veya satışını yasaklayan ticari olmayan bir lisans kapsamında yayımlanır. Ticari lisanslama seçenekleri için doğrudan Cityscapes ekibiyle iletişime geç.