Meet YOLO26: next-gen vision AI.

Link to this sectionمجموعة بيانات Cityscapes#

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

Link to this sectionالميزات الرئيسية#

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

Link to this sectionهيكل مجموعة البيانات#

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

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

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

Link to this sectionالتطبيقات#

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

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

Link to this sectionملف 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)

Link to this sectionالاستخدام#

لتدريب نموذج 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)

Link to this sectionالاقتباسات والشكر#

إذا كنت تستخدم مجموعة بيانات 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.

Link to this sectionالأسئلة الشائعة#

Link to this sectionما هي مجموعة بيانات Cityscapes ولماذا تعد مهمة لرؤية الكمبيوتر؟#

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

Link to this sectionكيف يمكنني تدريب نموذج 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)

Link to this sectionكيف يتم تنظيم مجموعة بيانات Cityscapes؟#

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

Link to this sectionهل أحتاج إلى تنزيل Cityscapes يدوياً؟#

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

Link to this sectionلماذا تستخدم Cityscapes خيار label_mapping؟#

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

التعليقات