مجموعة بيانات Cityscapes#
مجموعة بيانات Cityscapes هي معيار واسع النطاق لـالتجزئة الدلالية لمشاهد الشوارع الحضرية الملتقطة في 50 مدينة أوروبية، وتضم 2,975 صورة تدريب موسومة بدقة و500 صورة تحقق موزعة على 19 فئة. وهي من أكثر مجموعات البيانات استخدامًا في أبحاث القيادة الذاتية وفهم المشاهد الحضرية باستخدام نماذج Ultralytics YOLO.
الميزات الرئيسية#
- تتضمن التعليقات التوضيحية الدقيقة في Cityscapes عدد 2,975 صورة تدريب و500 صورة تحقق موزعة على 19 فئة؛ كما يضم الأرشيف 1,525 صورة اختبار، لكن الأقنعة المنشورة لها لا تضع تسميات إلا على مركبة الأنا وحدود الصورة — أما التعليقات التوضيحية الحقيقية للفئات فغير متاحة، وتتطلب درجات مجموعة الاختبار الرسمية إرسال التنبؤات إلى خادم تقييم Cityscapes.
- تغطي مجموعة البيانات 19 فئة للتقييم تشمل فئات المسطحات والبشر والمركبات والإنشاءات والأجسام والطبيعة والسماء.
- توفر Cityscapes مقاييس تقييم موحّدة مثل متوسط التقاطع على الاتحاد (mIoU) للتجزئة الدلالية، مما يتيح مقارنة أداء النماذج بفعالية.
- قبل الالتزام بالتنزيل اليدوي الذي يبلغ حجمه ~11 GB، تحقّق من سلامة مسار التدريب باستخدام المجموعة الفرعية Cityscapes8 المؤلفة من 8 صور.
بنية مجموعة البيانات#
يتوقع إعداد Ultralytics الهيكل التالي بعد التجهيز:
cityscapes/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── masks/
├── train/
├── val/
└── test/لا يتوفر تنزيل تلقائي للأرشيف في Cityscapes. أنشئ حسابًا على موقع Cityscapes، ثم نزّل الأرشيفين leftImg8bit_trainvaltest.zip وgtFine_trainvaltest.zip (بحجم إجمالي يبلغ ~11 GB)، واستخرجهما في جذر مجموعة البيانات 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 🚀 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
# تحميل نموذج
model = YOLO("yolo26n-sem.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)
# تدريب النموذج
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 # تحميل نموذج model = YOLO("yolo26n-sem.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب) # تدريب النموذج 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 GB). استخرجهما في جذر مجموعة البياناتcityscapes— وستعيد Ultralytics تنظيمهما تلقائيًا إلى الهيكل المتوقعimages/وmasks/عند التدريب للمرة الأولى.تخزّن أقنعة Cityscapes المصدرية معرّفات التسميات الأصلية التي تختلف عن معرّفات التدريب الـ19 المستخدمة في التقييم. يحوّل القسم
label_mappingالتسميات الصالحة إلى معرّفات فئات متتالية0–18، ويعيّن255للتسميات المتجاهلة والخالية لاستثنائها من الخسارة والمقاييس أثناء التدريب والتحقق.لا. تُصدر Cityscapes بموجب ترخيص غير تجاري يسمح بالأبحاث الأكاديمية والتعليم والتقييم، لكنه يحظر الاستخدام التجاري أو ترخيص مجموعة البيانات أو الأعمال المشتقة منها أو بيعها. تواصل مباشرةً مع فريق Cityscapes للاستفسار عن خيارات الترخيص التجاري.