Link to this sectionالتجزئة الدلالية#
تقوم التجزئة الدلالية بتعيين تصنيف فئة لكل بكسل في الصورة، مما ينتج عنه خريطة فئات كثيفة تغطي المشهد بالكامل. وعلى عكس تجزئة المثيلات، التي تفصل بين الكائنات الفردية، تقوم التجزئة الدلالية بتجميع كافة البكسلات التي تنتمي لنفس الفئة معاً بغض النظر عن عدد الكائنات المميزة الموجودة.
Watch: How to Train Ultralytics YOLO26 Semantic Segmentation Model on Custom Dataset | Ultralytics Platform
مخرج نموذج التجزئة الدلالية هو خريطة فئات أحادية الأبعاد (الطول × العرض) حيث تتوافق كل قيمة بكسل مع معرف فئة متوقع. وهذا يجعل التجزئة الدلالية مثالية لمهام تحليل المشاهد مثل القيادة الذاتية، والتصوير الطبي، ورسم خرائط الغطاء الأرضي.
استخدم task=semantic أو مهمة CLI yolo semantic للتجزئة الدلالية. تستخدم ملفات نموذج التجزئة الدلالية YOLO26 اللاحقة -sem، مثل yolo26n-sem.pt.
Link to this sectionالنماذج#
تظهر أدناه نماذج YOLO26 للتجزئة الدلالية المدربة مسبقاً على مجموعة بيانات Cityscapes.
يتم تنزيل النماذج تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام لأول مرة.
| النموذج | الحجم (بكسل) | mIoUval | السرعة RTX3090 PyTorch (ms) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLO26n-sem | 1024 × 2048 | 78.3 | 4.4 ± 0.0 | 1.6 | 22.7 |
| YOLO26s-sem | 1024 × 2048 | 80.8 | 8.4 ± 0.0 | 6.5 | 88.8 |
| YOLO26m-sem | 1024 × 2048 | 82.0 | 19.9 ± 0.1 | 14.3 | 304.5 |
| YOLO26l-sem | 1024 × 2048 | 82.9 | 26.5 ± 0.1 | 17.9 | 384.7 |
| YOLO26x-sem | 1024 × 2048 | 83.6 | 48.9 ± 0.2 | 40.2 | 861.7 |
- قيم mIoUval هي لنموذج واحد ومقياس واحد على مجموعة التحقق Cityscapes.
يمكنك إعادة الإنتاج باستخدامyolo semantic val data=cityscapes.yaml device=0 imgsz=2048 - تم حساب مقاييس السرعة (Speed) كمتوسط عبر صور التحقق من Cityscapes باستخدام مثيل RTX3090.
يمكنك إعادة الإنتاج باستخدامyolo semantic val data=cityscapes.yaml batch=1 device=0|cpu imgsz=2048 - قيم Params و FLOPs هي للنموذج المدمج بعد
model.fuse()، والذي يدمج طبقات Conv و BatchNorm. تحتفظ نقاط التحقق المدربة مسبقًا ببنية التدريب الكاملة وقد تظهر أعدادًا أعلى.
تظهر أدناه نماذج التجزئة الدلالية YOLO26 المدربة مسبقاً على مجموعة بيانات ADE20K.
يتم تنزيل النماذج تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام لأول مرة.
| النموذج | الحجم (بكسل) | mIoUval | السرعة RTX3090 PyTorch (ms) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLO26n-sem-ade20k | 640 | 38.8 | 3.9 ± 0.2 | 1.6 | 4.4 |
| YOLO26s-sem-ade20k | 640 | 45.6 | 4.2 ± 0.3 | 6.5 | 17.4 |
| YOLO26m-sem-ade20k | 640 | 47.4 | 4.7 ± 0.3 | 14.3 | 59.5 |
| YOLO26l-sem-ade20k | 640 | 49.7 | 8.3 ± 0.2 | 17.9 | 75.0 |
| YOLO26x-sem-ade20k | 640 | 51.5 | 9.9 ± 0.3 | 40.2 | 168.1 |
- قيم mIoUval هي لنموذج واحد بمقياس واحد على مجموعة التحقق من الصحة ADE20K.
يمكنك إعادة إنتاج النتائج باستخدامyolo semantic val model=yolo26n-sem-ade20k.pt data=ade20k.yaml device=0 imgsz=640مع استبدالyolo26n-sem-ade20k.ptبنقطة التحققyolo26*-sem-ade20k.ptالمطلوبة. - مقاييس السرعة هي متوسط على صور التحقق من الصحة ADE20K باستخدام مثيل RTX3090.
يمكنك إعادة إنتاج النتائج باستخدامyolo semantic val model=yolo26n-sem-ade20k.pt data=ade20k.yaml batch=1 device=0|cpu imgsz=640مع استبدالyolo26n-sem-ade20k.ptبنقطة التحققyolo26*-sem-ade20k.ptالمطلوبة. - قيم Params و FLOPs هي للنموذج المدمج بعد
model.fuse()، والذي يدمج طبقات Conv و BatchNorm. تحتفظ نقاط التحقق المدربة مسبقًا ببنية التدريب الكاملة وقد تظهر أعدادًا أعلى.
Link to this sectionالتدريب#
قم بتدريب YOLO26n-sem على مجموعة بيانات Cityscapes8 لمدة 100 حقبة بحجم صورة 1024. للحصول على قائمة كاملة بالوسائط المتاحة، راجع صفحة الإعدادات.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.yaml") # build a new model from YAML
model = YOLO("yolo26n-sem.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-sem.yaml").load("yolo26n-sem.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)راجع تفاصيل وضع train الكاملة في صفحة التدريب.
Link to this sectionتنسيق مجموعة البيانات#
تستخدم مجموعات بيانات التجزئة الدلالية صور قناع أحادية القناة، عادةً بصيغة PNG، حيث تمثل كل قيمة بكسل معرف فئة. يتم التعامل مع البكسلات ذات القيمة 255 على أنها "تجاهل" ويتم استبعادها من حساب الخسارة. يجب أن يحدد ملف YAML الخاص بمجموعة البيانات المسارات إلى الصور ومجلدات الأقنعة المقابلة لها. راجع دليل مجموعة بيانات التجزئة الدلالية لمعرفة تفاصيل التنسيق. تتضمن مجموعات البيانات المدعومة Cityscapes وADE20K.
Link to this sectionالتحقق#
تحقق من دقة نموذج YOLO26n-sem المدرب على مجموعة بيانات التجزئة الدلالية. قم بتمرير data بشكل صريح حتى يستخدم التحقق ملف YAML المقصود لمجموعة البيانات.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val(data="cityscapes.yaml")
metrics.miou # mean Intersection over Union
metrics.pixel_accuracy # overall pixel accuracyLink to this sectionالتنبؤ#
استخدم نموذج YOLO26n-sem مدرباً لتشغيل التنبؤات على الصور.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
semantic_mask = result.semantic_mask.data # class map, shape (H,W), integer dtype selected by class countاطلع على تفاصيل وضع predict الكاملة في صفحة التنبؤ.
Link to this sectionمخرجات النتائج#
تُرجع التجزئة الدلالية لـ YOLO كائن Results واحداً لكل صورة. تخزن كل نتيجة خريطة فئات كثيفة واحدة للصورة بأكملها بدلاً من قائمة بأقنعة الكائنات. تشترك البكسلات ذات الفئة المتوقعة نفسها في نفس معرف الفئة، حتى عندما تنتمي إلى كائنات منفصلة.
| السمة (Attribute) | النوع | الشكل | الوصف |
|---|---|---|---|
result.semantic_mask | SemanticMask | (H,W) | خريطة فئات كثيفة. |
result.semantic_mask.data | torch.uint8torch.int16torch.int32 | (H,W) | معرفات الفئات؛ يتم اختيار dtype بناءً على عدد الفئات. |
result.masks | - | - | لا توجد أقنعة مثيلات. |
result.boxes | - | - | لا توجد مربعات/ثقة للمثيلات. |
result.masks.xy | - | - | لا توجد مضلعات افتراضية. |
للحصول على حقول Results الخاصة بالمهمة عبر كل مهمة، راجع قسم نتائج التنبؤ حسب المهمة.
Link to this sectionتجزئة المثيلات مقابل التجزئة الدلالية#
| وجه المقارنة | تجزئة المثيلات (task="segment") | التجزئة الدلالية (task="semantic") |
|---|---|---|
| هدف التنبؤ | تجزئة كل كائن مكتشف على حدة | تعيين معرف فئة واحد لكل بكسل |
| حقل المخرجات | result.masks | result.semantic_mask |
| البيانات الرئيسية | result.masks.data | result.semantic_mask.data |
| الشكل | (N,H,W) | (H,W) |
| قيم البكسلات | قيم الأقنعة الثنائية: 0 أو 1 | معرفات الفئات: 0، 1، 2، ... |
| Dtype | torch.uint8 | torch.uint8torch.int16torch.int32 |
| كائنات من نفس الفئة | يتم الاحتفاظ بها كمثيلات منفصلة | يتم دمجها في نفس منطقة الفئة |
| المضلعات | نعم، من خلال result.masks.xy و result.masks.xyn | لا يوجد مخرج مضلع افتراضياً |
| الصناديق ومستوى الثقة | نعم، من خلال result.boxes | لا توجد صناديق أو درجات ثقة لكل مثيل |
| الاستخدام النموذجي | العد، التتبع، القص، القياس على مستوى الكائن | تسمية المشاهد الكثيفة، المناطق القابلة للقيادة، الغطاء الأرضي، المناطق الطبية |
Link to this sectionالتصدير#
تصدير نموذج YOLO26n-sem إلى تنسيق مختلف مثل ONNX، CoreML، إلخ.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Export the model
model.export(format="onnx")تنسيقات تصدير التجزئة الدلالية لـ YOLO26 المتاحة موجودة في الجدول أدناه. يمكنك التصدير إلى أي تنسيق باستخدام وسيط format، على سبيل المثال format='onnx' أو format='engine'. يمكنك التنبؤ أو التحقق مباشرة من النماذج المصدرة، على سبيل المثال yolo predict model=yolo26n-sem.onnx. تظهر أمثلة الاستخدام لنموذجك بعد اكتمال التصدير.
| التنسيق | وسيط format | النموذج | البيانات الوصفية | الوسائط (Arguments) |
|---|---|---|---|---|
| PyTorch | - | yolo26n-sem.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-sem.torchscript | ✅ | imgsz, quantize, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-sem.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-sem_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-sem.engine | ✅ | imgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-sem.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-sem_saved_model/ | ✅ | imgsz, keras, quantize, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-sem.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-sem.tflite | ✅ | imgsz, quantize, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-sem_edgetpu.tflite | ✅ | imgsz, quantize, data, fraction, device |
| TF.js | tfjs | yolo26n-sem_web_model/ | ✅ | imgsz, quantize, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-sem_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-sem.mnn | ✅ | imgsz, batch, quantize, device |
| NCNN | ncnn | yolo26n-sem_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n-sem_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n-sem_rknn_model/ | ✅ | imgsz, batch, name, quantize, data, fraction, device |
| ExecuTorch | executorch | yolo26n-sem_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-sem_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n-sem_deepx_model/ | ✅ | imgsz, quantize, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-sem_qnn.onnx | ✅ | imgsz, batch, name, quantize, data, fraction, device |
راجع تفاصيل export الكاملة في صفحة التصدير (Export).
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يمكنني تدريب نموذج التجزئة الدلالية YOLO26 على مجموعة بيانات مخصصة؟#
لتدريب نموذج التجزئة الدلالية YOLO26 على مجموعة بيانات مخصصة، تحتاج إلى تجهيز صور أقنعة PNG حيث تمثل كل قيمة بكسل معرف فئة (0، 1، 2، ...) ويتم تجاهل البكسلات ذات القيمة 255 أثناء التدريب. أنشئ ملف YAML لمجموعة البيانات يشير إلى أدلة الصور والأقنعة الخاصة بك، ثم قم بتدريب النموذج:
from ultralytics import YOLO
# Load a pretrained YOLO26 semantic segmentation model
model = YOLO("yolo26n-sem.pt")
# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=512)راجع صفحة التكوين لمزيد من المعلمات المتاحة.
Link to this sectionما الفرق بين تجزئة المثيلات والتجزئة الدلالية؟#
تعد تجزئة المثيلات والتجزئة الدلالية كلاهما من مهام مستوى البكسل ولكنهما تختلفان في جانب رئيسي:
- التجزئة الدلالية تعين تصنيف فئة لكل بكسل ولكنها لا تميز بين الكائنات الفردية من نفس الفئة. على سبيل المثال، تشترك جميع السيارات في المشهد في نفس تصنيف الفئة.
- تجزئة المثيلات تحدد كل كائن فردي على حدة، وتنتج أقنعة مميزة لكل كائن حتى لو كانوا ينتمون إلى نفس الفئة.
التجزئة الدلالية هي الأنسب لمهام فهم المشهد مثل القيادة الذاتية ورسم خرائط الغطاء الأرضي، بينما يتم تفضيل تجزئة المثيلات عندما يكون عد الكائنات الفردية أو تتبعها أمراً مهماً.
Link to this sectionهل يمكنني استخدام بيانات تجزئة المثيلات لتدريب التجزئة الدلالية؟#
نعم. إذا كانت مجموعة بياناتك تستخدم تسميات مضلع Ultralytics YOLO (ملف .txt واحد لكل صورة)، احذف masks_dir من ملف YAML الخاص بمجموعة البيانات وسيقوم المحمل بتحويل المضلعات إلى أقنعة دلالية لكل صورة بشكل فوري. بالنسبة لمجموعات البيانات متعددة الفئات (N > 1) يتم إلحاق فئة background إضافية بـ names تلقائياً. بالنسبة لمجموعات البيانات أحادية الفئة (N == 1) يظل التدريب على فئة واحدة — تصبح فئتك المعلنة 1 في القناع وتصبح البكسلات غير المغطاة 0. راجع دليل مجموعة بيانات التجزئة الدلالية للحصول على التفاصيل.
Link to this sectionما هي مجموعات البيانات المدعومة للتجزئة الدلالية؟#
يوفر Ultralytics YOLO26 إعدادات مدمجة للعديد من مجموعات بيانات التجزئة الدلالية:
- Cityscapes: مشاهد شوارع حضرية بها 19 فئة، وتستخدم على نطاق واسع لأبحاث القيادة الذاتية.
- ADE20K: مجموعة بيانات تحليل مشاهد واسعة النطاق بها 150 فئة.
يمكنك أيضاً استخدام أي مجموعة بيانات مخصصة توفر تعليقات توضيحية لقناع PNG حيث تتوافق قيم البكسل مع معرفات الفئات.
Link to this sectionكيف يمكنني التحقق من نموذج التجزئة الدلالية YOLO26 المدرب مسبقاً؟#
تحقق من نموذج التجزئة الدلالية YOLO26 المدرب مسبقاً باستخدام ملف YAML لمجموعة البيانات المستخدم للتقييم:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-sem.pt")
# Validate the model
metrics = model.val(data="cityscapes.yaml")
print("Mean IoU:", metrics.miou)
print("Pixel Accuracy:", metrics.pixel_accuracy)ستوفر لك هذه الخطوات مقاييس تحقق مثل متوسط تقاطع الاتحاد (mIoU) ودقة البكسل، وهي مقاييس قياسية لتقييم أداء التجزئة الدلالية.
Link to this sectionكيف يمكنني تصدير نموذج التجزئة الدلالية YOLO26 إلى تنسيق ONNX؟#
قم بتصدير نموذج التجزئة الدلالية YOLO26 إلى تنسيق ONNX باستخدام Python أو أوامر CLI:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-sem.pt")
# Export the model to ONNX format
model.export(format="onnx")لمزيد من التفاصيل حول التصدير إلى تنسيقات مختلفة، راجع صفحة التصدير.