Ultralytics YOLO27:

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/
Manuel İndirme Gerekli

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.

Not

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/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)

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.

Eğitim Örneği
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:

Alıntı
@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ği
    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)
  • Hazırlık sonrasında veri kümesi images/{train,val,test}/ ve masks/{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: masks alanı 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çin label_mapping alanını kullanır; yok sayılan ve boş etiketleri 255 değerine eşler. test bölümündeki maskeler yalnızca ego aracı ile kenar bölgelerini etiketlediğinden, yerel mIoU kontrolleri için val kullan.

  • Evet. Cityscapes web sitesinde bir hesap oluştur ve leftImg8bit_trainvaltest.zip ile gtFine_trainvaltest.zip arşivlerini indir (toplamda ~11 GB). İkisini de cityscapes veri kümesi kök dizinine çıkart — ilk eğitiminde Ultralytics bunları beklenen images/ ve masks/ 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_mapping bölümü, geçerli etiketleri ardışık sınıf kimlikleri olan 0–18 değerlerine dönüştürür ve yok sayılan ya da boş etiketlere 255 atayarak 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ç.

Yorumlar