رؤية YOLO لعام 2026:

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

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

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

  • تتضمن التعليقات التوضيحية الدقيقة لمجموعة Cityscapes 2,975 صورة تدريبية و500 صورة تحقق عبر 19 فئة؛ كما يحتوي الأرشيف على 1,525 صورة اختبار، لكن الأقنعة الصادرة عنها تصنف فقط المركبة ذاتية القيادة وحدود الصورة — بينما تظل تعليقات الفئات الحقيقية محجوبة، وتتطلب درجات مجموعة الاختبار الرسمية إرسال التنبؤات إلى خادم تقييم Cityscapes.
  • تغطي مجموعة البيانات 19 فئة تقييم تشمل فئات المسطحات، الإنسان، المركبة، الإنشاءات، الكائنات، الطبيعة، والسماء.
  • توفر Cityscapes مقاييس تقييم قياسية مثل متوسط التقاطع على الاتحاد (mIoU) للتجزئة الدلالية، مما يتيح مقارنة فعالة لأداء النماذج.
  • قبل الالتزام بالتنزيل اليدوي الذي يبلغ حجمه ~11 جيجابايت، تحقق من صحة خط أنابيب التدريب الخاص بك مقارنةً بـمجموعة فرعية Cityscapes8 المكونة من 8 صور.

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

يتوقع إعداد Ultralytics الهيكل التالي بعد التحضير:

cityscapes/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
└── masks/
    ├── train/
    ├── val/
    └── test/
يتطلب تنزيلاً يدويًا

لا تحتوي مجموعة Cityscapes على تنزيل تلقائي للأرشيف. أنشئ حساباً على موقع Cityscapes، ثم قم بتنزيل أرشيفات leftImg8bit_trainvaltest.zip و gtFine_trainvaltest.zip (بحجم إجمالي يبلغ ~11 جيجابايت) وقم بفك ضغط كليهما في جذر مجموعة بيانات cityscapes. يقوم نظام Ultralytics تلقائياً بإعادة تنظيمها في تخطيط images/ و masks/ أعلاه في أول مرة تقوم فيها بالتدريب.

الأقنعة الدلالية هي ملفات PNG احادية القناة. يتم تعيين معرفات تسميات Cityscapes الأصلية إلى معرفات التدريب القياسية الـ 19 عبر قسم label_mapping، بينما يتم تعيين التسميات المُهملة أو الفارغة إلى 255 بحيث يتم استبعادها من التدريب والتقييم.

ملاحظة

أقنعة gtFine/test المنشورة علناً تصنف فقط المركبة ذاتية القيادة ومناطق حدود الصورة — بينما تُعتبر جميع الفئات الأخرى فارغة. احسب قيمة mIoU على تقسيم val للتقييم المحلي؛ وتتطلب درجات مجموعة الاختبار الرسمية إرسال التنبؤات إلى خادم تقييم Cityscapes.

التطبيقات#

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

تُعد صورها عالية الدقة وتفاصيل تعليقاتها التوضيحية قيّمة أيضاً لأبحاث تحليل المشاهد في الوقت الفعلي، وفهم المسارات والعوائق، وأي مهمة تتطلب فهماً دقيقاً على مستوى البكسل للبيئات الحضرية المعقدة. تصل نماذج التجزئة الدلالية المسبقة التدريب YOLO26 إلى ما يصل إلى 83.6 من مقياس mIoU على مجموعة تحقق Cityscapes — راجع صفحة نماذج التجزئة الدلالية للاطلاع على جدول المعايير الكامل. يمكنك تنظيم بيانات Cityscapes وتصويرها وإدارتها طوال دورة حياة تطوير النموذج باستخدام منصة Ultralytics.

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 بموجب ترخيص مخصص غير تجاري — وهي مجانية للبحث الأكاديمي والتقييم، ولكن الاستخدام التجاري أو الترخيص أو إعادة توزيع البيانات يتطلب إذناً منفصلاً من فريق Cityscapes.

إذا كنت تستخدم مجموعة بيانات 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 هي معيار واسع النطاق للتجزئة الدلالية لمشاهد الشوارع الحضرية عبر 50 مدينة أوروبية، وتُستخدم على نطاق واسع مرجعاً قياسياً لأبحاث القيادة الذاتية وأنظمة مساعدة السائق المتقدمة (ADAS). بفضل فئات التقييم الـ 19 المعينة بدقة، والصور عالية الدقة، ومقياس متوسط التقاطع على الاتحاد (mIoU) القياسي، أصبحت واحدة من أكثر المعايير الاستشهادية لنماذج فهم المشاهد الكثيفة.

  • لتدريب نموذج 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)
  • بعد الإعداد، يتم تنظيم مجموعة البيانات في دليلي images/{train,val,test}/ و masks/{train,val,test}/، حيث يتم إقران كل صورة بقناع PNG أحادي القناة. يقوم ملف YAML الخاص بـ Ultralytics بربط كل صورة بقناعها عبر حقل masks_dir: masks، ويستخدم label_mapping لتحويل معرفات تسميات Cityscapes الأصلية إلى معرفات التدريب المتجاورة الـ 19 القياسية، مع تعيين التسميات المُهملة والفارغة إلى 255. تحتوي أقنعة تقسيم test على تصنيفات للمركبة ذاتية القيادة ومناطق الحدود فقط، لذا استخدم val لفحوصات mIoU المحلية.

  • نعم. أنشئ حساباً على موقع Cityscapes وقُم بتنزيل أرشيفات leftImg8bit_trainvaltest.zip و gtFine_trainvaltest.zip (بحجم إجمالي يبلغ ~11 جيجابايت). قُم بفك ضغط كليهما في جذر مجموعة بيانات cityscapes — حيث يقوم Ultralytics تلقائياً بإعادة تنظيمها في تخطيط images/ و masks/ المتوقع في المرة الأولى التي تقوم فيها بالتدريب.

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

  • لا. يتم إصدار Cityscapes بموجب ترخيص غير تجاري يسمح بالبحث الأكاديمي والتدريس والتقييم، ولكنه يحظر الاستخدام التجاري أو الترخيص أو بيع مجموعة البيانات أو الأعمال المشتقة منها. اتصل بفريق Cityscapes مباشره للحصول على خيارات الترخيص التجاري.

التعليقات