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 sectionYAML مجموعة البيانات#
يحدد ملف 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)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 للتسميات المتجاهلة والفارغة حتى يتم استبعادها من الخسارة والمقاييس أثناء التدريب والتحقق.