مجموعة بيانات Cityscapes

تعد مجموعة بيانات Cityscapes معيارًا واسع النطاق للتجزئة الدلالية يركز على مشاهد الشوارع الحضرية التي تم تصويرها في 50 مدينة أوروبية. توفر المجموعة تعليقات توضيحية عالية الجودة على مستوى البكسل، وهي واحدة من أكثر مجموعات البيانات استخدامًا على نطاق واسع لأبحاث القيادة الذاتية وفهم المشاهد الحضرية باستخدام نماذج Ultralytics YOLO.

المميزات الرئيسية

  • تتضمن التعليقات التوضيحية الدقيقة لـ Cityscapes 2975 صورة تدريب، و500 صورة تحقق، و1525 صورة اختبار.
  • تغطي مجموعة البيانات 19 فئة تقييم تمتد عبر فئات الطرق، والمركبات، والبشر، والإنشاءات، والكائنات، والطبيعة، والسماء.
  • توفر Cityscapes مقاييس تقييم موحدة مثل متوسط التقاطع فوق الاتحاد (mIoU) للتجزئة الدلالية، مما يتيح مقارنة فعالة لأداء النماذج.

هيكل مجموعة البيانات

يتوقع إعداد Ultralytics التخطيط التالي بعد التجهيز:

cityscapes/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
└── masks/
    ├── train/
    ├── val/
    └── test/

أقنعة التجزئة الدلالية هي ملفات PNG أحادية القناة. يتم تعيين معرفات تسميات Cityscapes الأصلية إلى 19 معرف تدريب قياسي عبر قسم label_mapping، ويتم تعيين التسميات المتجاهلة أو الفارغة إلى 255 بحيث يتم استبعادها من التدريب والتقييم. قم بتنزيل أرشيفات leftImg8bit و gtFine الرسمية من موقع Cityscapes الإلكتروني واستخرجها في جذر مجموعة البيانات؛ ثم يقوم كتلة التجهيز في cityscapes.yaml بتنظيم الصور والأقنعة في هذا التخطيط.

التطبيقات

تُستخدم Cityscapes على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في التجزئة الدلالية، لا سيما في مجالات القيادة الذاتية، وأنظمة مساعدة السائق المتقدمة (ADAS)، والروبوتات الحضرية.

تجعلها صورها عالية الدقة وتعليقاتها التوضيحية التفصيلية ذات قيمة أيضًا للأبحاث حول تحليل المشهد في الوقت الفعلي، وفهم الممرات والعوائق، وأي مهمة تتطلب فهماً كثيفاً على مستوى البكسل للبيئات الحضرية المعقدة.

ملف YAML لمجموعة البيانات

يحدد ملف YAML لمجموعة البيانات مسارات Cityscapes، والفئات، ودليل الأقنعة، وتعيين التسميات. تتم صيانة ملف cityscapes.yaml على الرابط https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/cityscapes.yaml.

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)

الاستخدام

لتدريب نموذج YOLO26n-sem على مجموعة بيانات Cityscapes لـ 100 حقبة بحجم صورة 1024، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالوسيطات المتاحة، ارجع إلى صفحة التدريب الخاصة بالنموذج.

مثال على التدريب
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 في بحثك أو عملك التطويري، فيرجى الاستشهاد بالورقة البحثية التالية:

اقتباس
@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}
}

نود أن نشكر فريق Cityscapes على إنشاء وصيانة هذا المورد القيم لمجتمعات القيادة الذاتية ورؤية الكمبيوتر. لمزيد من المعلومات حول مجموعة بيانات Cityscapes ومبتكريها، تفضل بزيارة موقع مجموعة بيانات Cityscapes.

أسئلة شائعة

ما هي مجموعة بيانات Cityscapes ولماذا تعتبر مهمة لرؤية الكمبيوتر؟

تعد مجموعة Cityscapes معيارًا واسع النطاق للتجزئة الدلالية يركز على مشاهد الشوارع الحضرية التي تم تصويرها في 50 مدينة أوروبية. تحتوي على 5000 صورة معلق عليها بدقة عبر 19 فئة تقييم، مما يجعلها مورداً أساسياً لأبحاث القيادة الذاتية وفهم المشاهد الحضرية. تجعلها صورها عالية الدقة، والتعليقات التوضيحية الكثيفة، ومقياس متوسط التقاطع فوق الاتحاد (mIoU) الموحد مثالية لمقارنة نماذج التنبؤ الكثيف.

كيف يمكنني تدريب نموذج YOLO باستخدام مجموعة بيانات Cityscapes؟

لتدريب نموذج YOLO26n-sem على مجموعة بيانات Cityscapes لـ 100 حقبة بحجم صورة 1024، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة مفصلة بالوسيطات المتاحة، ارجع إلى صفحة التدريب الخاصة بالنموذج.

مثال على التدريب
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؟

بعد التجهيز، يتم تنظيم مجموعة البيانات في أدلة images/{train,val,test}/ و masks/{train,val,test}/، مع إقران كل صورة بقناع PNG أحادي القناة. يقوم ملف Ultralytics YAML بإقران كل صورة بالقناع الخاص بها عبر حقل masks_dir: masks، ويستخدم label_mapping لتحويل معرفات تسميات Cityscapes الأصلية إلى 19 معرف تدريب متصل قياسي، مع تعيين التسميات المتجاهلة والفارغة إلى 255.

هل أحتاج إلى تنزيل Cityscapes يدويًا؟

نعم. تتطلب Cityscapes الموافقة على شروط مجموعة البيانات على الموقع الرسمي. قم بتنزيل واستخراج leftImg8bit و gtFine في جذر مجموعة بيانات cityscapes قبل استخدام كتلة التجهيز في cityscapes.yaml لإنشاء تخطيط images/ و masks/ المتوقع.

لماذا تستخدم Cityscapes خاصية label_mapping؟

تخزن أقنعة مصدر Cityscapes معرفات تسميات أصلية تختلف عن معرفات التدريب الـ 19 المستخدمة للتقييم. يقوم قسم label_mapping بتحويل التسميات الصالحة إلى معرفات فئات متصلة من 0 إلى 18، ويعين 255 للتسميات المتجاهلة والفارغة بحيث يتم استبعادها من الخسارة والمقاييس أثناء التدريب والتحقق.

التعليقات