أمن جاهز للمؤسسات: متوافق مع ISO 27001 و SOC 2 Type I.

Link to this sectionنظرة عامة على مجموعات بيانات التجزئة الدلالية#

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

يشرح هذا الدليل تنسيق مجموعة البيانات المستخدم بواسطة نماذج التجزئة الدلالية من Ultralytics YOLO ويسرد تهيئات مجموعات البيانات المضمنة المتاحة للتدريب والتحقق.

Link to this sectionتنسيقات مجموعات البيانات المدعومة#

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

Link to this sectionتنسيق قناع 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.

Link to this sectionتنسيق تسمية المضلعات لـ 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 كتسمية تجاهل.

استخدم هذا المسار عندما تكون بياناتك مصنفة بالفعل كمضلعات مثيلات وتريد نموذج تجزئة دلالية من نفس الملفات.

Link to this sectionتنسيق 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 وتتجاهل التسميات غير المستخدمة.

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

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

مثال
from ultralytics import YOLO

# Load a pretrained semantic segmentation model
model = YOLO("yolo26n-sem.pt")

# Train on the Cityscapes8 semantic segmentation dataset
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)

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

توفر Ultralytics ملفات YAML الخاصة بمجموعات بيانات التقسيم الدلالي لهذه المجموعات. راجع صفحة مهمة التقسيم الدلالي للحصول على جدول قياس الأداء الكامل للنماذج المدربة مسبقًا.

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

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

Link to this sectionالخيار أ — أقنعة 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

Link to this sectionالخيار ب — تسميات المضلعات#

  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 — قم بالتخطيط مباشرة في المتصفح وقم بالتصدير أو التدريب على مجموعة البيانات المسمّاة بالمضلعات الناتجة دون إعداد هذا التخطيط يدويًا.

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

Link to this sectionما الفرق بين أقنعة التجزئة الدلالية وتسميات التجزئة للمثيلات؟#

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

Link to this sectionما هي قيمة البكسل التي يتم تجاهلها أثناء التدريب؟#

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

Link to this sectionهل تحتاج أسماء ملفات القناع إلى مطابقة أسماء ملفات الصور؟#

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

Link to this sectionهل يمكنني استخدام معرفات تسمية مجموعة البيانات الأصلية مباشرة؟#

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

Link to this sectionهل يمكنني استخدام مجموعة بيانات التجزئة للمثيلات الخاصة بي لتدريب التجزئة الدلالية؟#

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

Link to this sectionما هي مجموعات البيانات التي تأتي مع Ultralytics للتقسيم الدلالي؟#

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

التعليقات