Ultralytics YOLO27:
Get Started

نظرة عامة على مجموعات بيانات التقسيم الدلالي#

يسند التقسيم الدلالي تسمية فئة واحدة إلى كل بكسل في الصورة. وعلى عكس تقسيم الكائنات الفردية، لا يفصل التقسيم الدلالي بين الكائنات الفردية التي تنتمي إلى الفئة نفسها. والهدف التدريبي هو خريطة فئات كثيفة تخزّن معرّف فئة لكل بكسل.

يوضح هذا الدليل تنسيق مجموعة البيانات الذي تستخدمه نماذج Ultralytics YOLO للتقسيم الدلالي، ويسرد إعدادات مجموعات البيانات المضمّنة والمتاحة للتدريب والتحقق.

تنسيقات مجموعات البيانات المدعومة#

يُدعم تنسيقان للتسميات. ويختار محمّل مجموعة البيانات أقنعة PNG إذا كان ملف YAML لمجموعة البيانات يعرّف مفتاح masks_dir، أو إذا كان المجلد masks/ موجودًا مسبقًا بجوار صورك في جذر مجموعة البيانات؛ وإلا فسيستخدم تسميات مضلعات YOLO.

تنسيق أقنعة PNG#

تستخدم مجموعات بيانات التقسيم الدلالي ملف صورة واحدًا وملف قناع واحدًا لكل عينة. والقناع صورة أحادية القناة، بصيغة PNG عادةً، حيث تمثل قيمة كل بكسل فهرس الفئة للبكسل المناظر في الصورة.

  • تمثل قيم البكسل 0 و1 و2 ... معرّفات الفئات من تعيين مجموعة البيانات names.
  • تُعامل قيمة البكسل 255 على أنها تسمية التجاهل، وتُستبعد من حساب الخسارة والمقاييس.
  • ينبغي أن تستخدم ملفات الأقنعة الاسم الأساسي نفسه لملف الصورة المطابق، مثل frankfurt_000000_000294.png.
  • تُحدَّد ملفات الأقنعة افتراضيًا بصيغة .png؛ وإذا لم تكن موجودة، تُقبل أيضًا امتدادات الصور الأخرى المدعومة. استخدم صيغًا دون فقدان مثل .png أو .tiff، لأن الضغط مع فقدان البيانات (مثل .jpg) يُفسد قيم بكسلات معرّفات الفئات.

يضع التخطيط الافتراضي الصور والأقنعة في مجلدات متوازية. وتُستخدم قيمة masks_dir من ملف YAML لمجموعة البيانات بدلًا من مكوّن المسار images للعثور على الأقنعة.

dataset/
├── images/
│   ├── train/
│   └── val/
└── masks/
    ├── train/
    └── val/

على سبيل المثال، تُقرن الصورة الموجودة في images/train/aachen_000000_000019.png بقناع في masks/train/aachen_000000_000019.png عندما يكون masks_dir: masks.

تنسيق تسميات مضلعات YOLO#

إذا كانت مجموعة بياناتك تحتوي بالفعل على تسميات مضلعات Ultralytics YOLO (تسمية واحدة .txt لكل صورة مع صفوف <class-index> <x1> <y1> <x2> <y2> ...)، فيمكنك تدريب نموذج التقسيم الدلالي مباشرةً عليها — دون الحاجة إلى تحويل أقنعة PNG. راجع تنسيق مجموعة بيانات تقسيم الكائنات الفردية للاطلاع على تخطيط الصفوف.

يُحدَّد هذا المسار تلقائيًا عندما لا يتضمن ملف YAML لمجموعة البيانات masks_dir ولا يوجد مجلد masks/ بجوار صورك في جذر مجموعة البيانات — أزل أي مجلد masks/ متبقٍ أو أعد تسميته، وإلا فسيعود المحمّل إلى وضع أقنعة PNG ويبحث عن الأقنعة فيه بدلًا من ذلك. السلوك:

  • تُحوَّل المضلعات إلى قناع دلالي لكل صورة وقت التحميل، وتُرتب حسب المساحة بحيث تتقدم الكائنات الأصغر على الأكبر في مناطق التداخل.
  • متعدد الفئات (N > 1 في names): تُضاف فئة background إضافية بعد الفئات المعلنة لتمثيل البكسلات التي لا تغطيها أي مضلع. ويُنشأ النموذج مع N + 1 قناة إخراج، وتكون القناة الأخيرة للخلفية.
  • أحادي الفئة (N == 1 في names): يظل التدريب على فئة واحدة. ويكون القناع ثنائيًا، إذ تظهر الفئة المعلنة لديك على أنها 1، وتُمثّل البكسلات التي لا تغطيها أي مضلع على أنها 0. ولا تُضاف فئة خلفية إضافية إلى names.
  • تظل البكسلات المضافة بواسطة حشو تعزيز البيانات (مثل الاقتصاص العشوائي) تستخدم 255 كتسمية للتجاهل.

استخدم هذا المسار عندما تكون بياناتك موسومة بالفعل بمضلعات الكائنات الفردية وتريد إنشاء نموذج تقسيم دلالي من الملفات نفسها.

تنسيق YAML لمجموعة البيانات#

تُهيأ مجموعات بيانات التقسيم الدلالي باستخدام ملفات YAML. والحقول الرئيسية هي:

المفتاحالوصف
pathالدليل الجذر لمجموعة البيانات.
trainمسار صور التدريب نسبةً إلى path، أو مسار مطلق.
valمسار صور التحقق نسبةً إلى path، أو مسار مطلق.
testمسار اختياري لصور الاختبار.
masks_dirاسم الدليل المستخدم للأقنعة الدلالية. احذف هذا المفتاح (مع عدم وجود مجلد masks/ في جذر مجموعة البيانات) للتبديل إلى تنسيق تسميات مضلعات YOLO.
namesتعيين معرّفات الفئات إلى أسمائها.
label_mappingتعيين اختياري لمعرّفات مجموعة البيانات المصدر إلى معرّفات التدريب أو ignore_label.
ultralytics/cfg/datasets/cityscapes8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Cityscapes semantic segmentation dataset (19 classes)
# Documentation: https://docs.ultralytics.com/datasets/semantic/cityscapes8
# Example usage: yolo semantic train data=cityscapes8.yaml model=yolo26n-sem.pt
# parent
# ├── ultralytics
# └── datasets
#     └── cityscapes8 ← downloads here (small subset)
#         └── images
#         └── masks

# Dataset root directory
path: cityscapes8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 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

# Download URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/cityscapes8.zip

استخدم label_mapping عندما لا تتطابق معرّفات الأقنعة المصدرية مسبقًا مع معرّفات فئات التدريب المتتالية. تتضمن Cityscapes وADE20K تعيينات تحوّل معرّفات التسميات الأصلية إلى معرّفات تدريب YOLO للتجزئة الدلالية، وتتجاهل التسميات غير المستخدمة.

الاستخدام#

درّب نموذج YOLO26 للتجزئة الدلالية باستخدام Python أو CLI:

مثال
from ultralytics import YOLO

# ⁨تحميل نموذج مُدرّب مسبقًا للتجزئة الدلالية⁩
model = YOLO("yolo26n-sem.pt")

# ⁨التدريب على مجموعة بيانات Cityscapes8 للتجزئة الدلالية⁩
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)

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

توفر Ultralytics ملفات YAML لمجموعات بيانات التجزئة الدلالية الخاصة بهذه المجموعات. راجع صفحة مهمة التجزئة الدلالية للاطلاع على جدول المقارنة المعيارية الكامل للنماذج المُدرّبة مسبقًا.

  • Cityscapes: مجموعة بيانات للتجزئة الدلالية لمشاهد شوارع المدن، تضم 19 فئة تدريب.
  • Cityscapes8: مجموعة فرعية من Cityscapes تضم 8 صور لإجراء الاختبارات السريعة وفحوصات CI.
  • ADE20K: مجموعة بيانات لتحليل المشاهد تضم 150 فئة دلالية.

إضافة مجموعة البيانات الخاصة بك#

الخيار أ — أقنعة PNG#

  1. احفظ صورك في مجلدات التقسيم، مثل images/train وimages/val.
  2. احفظ قناعًا واحدًا أحادي القناة لكل صورة في مجلدات الأقنعة المناظرة، مثل masks/train وmasks/val.
  3. تأكد من أن قيم بكسلات الأقنعة هي معرّفات الفئات. استخدم 255 للبكسلات التي ينبغي تجاهلها.
  4. أنشئ ملف YAML لمجموعة البيانات يتضمن path وtrain وval وmasks_dir وnames.
  5. أضف label_mapping فقط عندما تحتاج معرّفات الأقنعة إلى تحويلها إلى معرّفات تدريب متتالية.
path: path/to/my-semantic-dataset
train: images/train
val: images/val
masks_dir: masks

names:
    0: background
    1: road
    2: building

الخيار ب — تسميات المضلعات#

  1. رتّب الصور وملفات المضلعات .txt بالطريقة نفسها تمامًا المتبعة في تجزئة المثيلات.
  2. أنشئ ملف YAML لمجموعة البيانات يتضمن path وtrain وval وnames — ولا تضف masks_dir.
  3. تأكد من عدم وجود مجلد masks/ بجوار صورك في جذر مجموعة البيانات — فوجوده وحده يحوّل أداة تحميل البيانات إلى وضع أقنعة PNG، حتى من دون masks_dir في ملف YAML.
  4. لا تضف إدخالًا باسم "background" إلى names. تضيف أداة التحميل فئة تلقائيًا لمجموعات البيانات متعددة الفئات؛ أما التدريب على مجموعة بيانات أحادية الفئة فيبقى بفئة واحدة — إذ تصبح الفئة التي تعلن عنها 1 في القناع، وتصبح البكسلات غير المغطاة 0.
path: path/to/my-polygon-dataset
train: images/train
val: images/val

names:
    0: person
    1: car

توفر منصة Ultralytics أداة للتعليق التوضيحي بالمضلعات لمهمة التجزئة الدلالية، إلى جانب التعليق التوضيحي الذكي بمساعدة SAM — أضف التعليقات التوضيحية مباشرةً في المتصفح، ثم صدّر مجموعة البيانات الموسومة بالمضلعات الناتجة أو درّب عليها من دون إعداد هذا الهيكل يدويًا.

الأسئلة الشائعة#

  • أقنعة التجزئة الدلالية خرائط كثيفة للبكسلات. يخزّن كل بكسل معرّف فئة، وتوجد صورة قناع واحدة لكل صورة تدريب. تستخدم تسميات تجزئة المثيلات في Ultralytics YOLO ملفات نصية تتضمن إحداثيات المضلعات، مع صف واحد لكل مثيل كائن.

  • تُستخدم قيمة البكسل 255 كتسمية للتجاهل. تُستثنى هذه البكسلات من حساب الخسارة والمقاييس، وهو أمر مفيد للمناطق الخالية، والبكسلات غير الموسومة، والفئات غير الموجودة في مجموعة تسميات التدريب.

  • نعم. ينبغي أن يكون اسم الملف الأساسي لكل قناع دلالي مطابقًا لاسم الصورة المقابلة. تستبدل أداة تحميل مجموعة البيانات مكوّن المجلد images بالمكوّن masks_dir، ثم تبحث عن ملفات أقنعة مطابقة، مع الرجوع إلى امتدادات الصور الأخرى المدعومة (.jpg و.tiff وما إلى ذلك) إذا لم يُعثر على قناع .png — لكن يُوصى بالتنسيقات غير الفقدية فقط، لأن آلية الرجوع لا تفرض ذلك.

  • نعم، إذا كانت تطابق بالفعل معرّفات الفئات names لديك. إذا كانت مجموعة البيانات المصدرية تستخدم معرّفات غير متتالية أو تتضمن تسميات ينبغي تجاهلها، فأضف قسم label_mapping لتحويل قيم البكسلات المصدرية إلى معرّفات التدريب.

  • نعم. تستخدم مجموعات بيانات تجزئة المثيلات تسميات مضلعات Ultralytics YOLO (ملف .txt واحد لكل صورة، مع صفوف <class-index> <x1> <y1> <x2> <y2> ...)، ويمكن إعادة استخدام الملفات نفسها للتجزئة الدلالية — ما عليك سوى حذف masks_dir من ملف YAML لمجموعة البيانات، والتأكد من عدم وجود مجلد masks/ بجوار الصور في جذر مجموعة البيانات (فوجوده وحده يفعّل وضع أقنعة PNG حتى من دون ضبط masks_dir). بعد ذلك، تحوّل أداة التحميل المضلعات إلى أقنعة لكل صورة أثناء التشغيل. تُضاف فئة background إضافية لمجموعات البيانات متعددة الفئات (N > 1)، ويُبنى النموذج بقنوات إخراج N + 1. أما التدريب على مجموعات البيانات أحادية الفئة (N == 1) فيبقى بفئة واحدة — إذ يُظهر القناع الفئة التي أعلنت عنها بوصفها 1، والبكسلات غير المغطاة بوصفها 0.

  • تتضمن Ultralytics ملفات YAML جاهزة للاستخدام لمجموعات بيانات Cityscapes (19 فئة للمشاهد الحضرية)، والمجموعة الفرعية خفيفة الوزن Cityscapes8 لاختبار مسارات المعالجة، وADE20K (150 فئة لتحليل المشاهد). توثّق كل صفحة قائمة الفئات الدقيقة وخطوات التنزيل ومثال تدريب تم التحقق منه.

التعليقات