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/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ü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.

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

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ş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.

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

Yorumlar