Meet YOLO26: next-gen vision AI.

Link to this sectionالتجزئة الدلالية#

Semantic segmentation examples

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

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

تلميح

استخدم task=semantic أو مهمة CLI yolo semantic للتجزئة الدلالية. تستخدم ملفات نموذج التجزئة الدلالية YOLO26 اللاحقة -sem، مثل yolo26n-sem.pt.

Link to this sectionنماذج#

نماذج التجزئة الدلالية YOLO26 المدربة مسبقاً على مجموعة بيانات Cityscapes معروضة أدناه.

يتم تنزيل النماذج تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام الأول.

نموذجالحجم
(بكسل)
mIoUvalالسرعة
RTX3090 PyTorch
(مللي ثانية)
المعاملات
(M)
FLOPs
(B)
YOLO26n-sem1024 × 204878.34.4 ± 0.01.622.7
YOLO26s-sem1024 × 204880.88.4 ± 0.06.588.8
YOLO26m-sem1024 × 204882.019.9 ± 0.114.3304.5
YOLO26l-sem1024 × 204882.926.5 ± 0.117.9384.7
YOLO26x-sem1024 × 204883.648.9 ± 0.240.2861.7
  • قيم mIoUval هي لنموذج واحد وعلى مقياس واحد على مجموعة التحقق Cityscapes.
    يمكن إعادة التجربة باستخدام yolo semantic val data=cityscapes.yaml device=0 imgsz=2048
  • تم حساب متوسط مقاييس السرعة عبر صور التحقق من Cityscapes باستخدام مثيل RTX3090.
    يمكن إعادة التجربة باستخدام yolo semantic val data=cityscapes.yaml batch=1 device=0|cpu imgsz=2048
  • قيم المعاملات (Params) و FLOPs هي للنموذج المدمج بعد تنفيذ model.fuse()، والذي يقوم بدمج طبقات Conv و BatchNorm. تحتفظ نقاط التحقق المدربة مسبقاً ببنية التدريب الكاملة وقد تظهر أعداداً أعلى.

Link to this sectionتدريب#

قم بتدريب YOLO26n-sem على مجموعة بيانات Cityscapes8 لمدة 100 حقبة (epoch) بحجم صورة 1024. للحصول على قائمة كاملة بالوسائط المتاحة، راجع صفحة الإعدادات (Configuration).

مثال
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 الكاملة في صفحة التدريب (Train).

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

تستخدم مجموعات بيانات التجزئة الدلالية صور قناع أحادية القناة، وعادة ما تكون بتنسيق PNG، حيث تمثل كل قيمة بكسل معرف فئة. يتم التعامل مع البكسلات ذات القيمة 255 على أنها "تجاهل" ويتم استبعادها من حساب الخسارة. يجب أن يحدد ملف YAML الخاص بمجموعة البيانات مسارات الصور ومجلدات الأقنعة المقابلة لها. راجع دليل مجموعة بيانات التجزئة الدلالية للحصول على تفاصيل التنسيق. تتضمن مجموعات البيانات المدعومة Cityscapes و ADE20K.

Link to this sectionالتحقق#

تحقق من دقة (accuracy) نموذج 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 accuracy

Link 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 واحداً لكل صورة. تخزن كل نتيجة خريطة فئة كثيفة واحدة للصورة الكاملة بدلاً من قائمة بأقنعة الكائنات. تشترك البكسلات التي لها نفس الفئة المتوقعة في نفس معرف الفئة، حتى عندما تنتمي إلى كائنات منفصلة.

السمةالنوعالشكلالوصف
result.semantic_maskSemanticMask(H,W)خريطة فئة كثيفة.
result.semantic_mask.datatorch.uint8
torch.int16
torch.int32
(H,W)معرفات الفئات؛ يتم تحديد dtype حسب عدد الفئات.
result.masks--لا توجد أقنعة مثيلات.
result.boxes--لا توجد مربعات مثيلات/ثقة.
result.masks.xy--لا توجد مضلعات افتراضية.

للحصول على حقول Results الخاصة بكل مهمة عبر جميع المهام، راجع قسم نتائج التنبؤ حسب المهمة.

Link to this sectionتجزئة المثيلات مقابل التجزئة الدلالية#

الجانبتجزئة المثيلات (task="segment")التجزئة الدلالية (task="semantic")
هدف التنبؤتجزئة كل كائن مكتشف على حدةتعيين معرف فئة واحد لكل بكسل
حقل المخرجاتresult.masksresult.semantic_mask
البيانات الرئيسيةresult.masks.dataresult.semantic_mask.data
الشكل(N,H,W)(H,W)
قيم البكسلقيم القناع الثنائي: 0 أو 1معرفات الفئات: 0، 1، 2، ...
نوع البيانات (Dtype)torch.uint8torch.uint8
torch.int16
torch.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نموذجبيانات وصفيةوسيطات
PyTorch-yolo26n-sem.pt-
TorchScripttorchscriptyolo26n-sem.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-sem.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-sem_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-sem.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-sem.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-sem_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-sem.pbimgsz, batch, device
TF Litetfliteyolo26n-sem.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-sem_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-sem_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-sem_paddle_model/imgsz, batch, device
MNNmnnyolo26n-sem.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-sem_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-sem_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-sem_rknn_model/imgsz, batch, name, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-sem_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-sem_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-sem_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-sem_qnn_model/imgsz, batch, name, int8, data, fraction, device

راجع تفاصيل export الكاملة في صفحة التصدير.

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

Link to this sectionكيف أقوم بتدريب نموذج تجزئة دلالية YOLO26 على مجموعة بيانات مخصصة؟#

لتدريب نموذج تجزئة دلالية (semantic segmentation) باستخدام YOLO26 على مجموعة بيانات مخصصة، تحتاج إلى تجهيز صور أقنعة (masks) بتنسيق 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)

راجع صفحة Configuration لمزيد من الوسائط المتاحة.

Link to this sectionما الفرق بين تجزئة المثيلات (instance segmentation) والتجزئة الدلالية (semantic segmentation)؟#

تعتبر كل من تجزئة المثيلات والتجزئة الدلالية مهام على مستوى البكسل، لكنهما تختلفان في جانب رئيسي:

  • التجزئة الدلالية تعين تسمية فئة لكل بكسل ولكنها لا تميز بين الكائنات الفردية من نفس الفئة. على سبيل المثال، تشترك جميع السيارات في المشهد في نفس تسمية الفئة.
  • تجزئة المثيلات تحدد كل كائن فردي على حدة، وتنتج أقنعة متميزة لكل كائن حتى لو كانت تنتمي إلى نفس الفئة.

التجزئة الدلالية هي الأنسب لمهام فهم المشهد مثل القيادة الذاتية ورسم خرائط الغطاء الأرضي، بينما يُفضل استخدام تجزئة المثيلات عندما يكون عد أو تتبع الكائنات الفردية أمراً مهماً.

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")

لمزيد من التفاصيل حول التصدير إلى تنسيقات مختلفة، راجع صفحة Export.

التعليقات