YOLO Vision 2026:

التجزئة المثيلية باستخدام Ultralytics YOLO#

Ultralytics YOLO instance segmentation examples

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

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



Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
نصيحة

تستخدم نماذج التجزئة YOLO26 اللاحقة -seg، أي yolo26n-seg.pt، وقد تم تدريبها مسبقاً على COCO.

النماذج#

يتم عرض نماذج التجزئة المدربة مسبقاً من YOLO26 هنا. نماذج الكشف والتجزئة ووضعيات الجسم مدربة مسبقاً على مجموعة بيانات COCO، ونماذج التجزئة الدلالية مدربة مسبقاً على Cityscapes، ونماذج التصنيف مدربة مسبقاً على مجموعة بيانات ImageNet.

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

النموذجالحجم
(بكسل)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
السرعة
CPU ONNX
(ms)
السرعة
T4 TensorRT10
(ms)
المعلمات
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • mAPval قيم تخص نموذجاً واحداً بمقياس واحد على مجموعة بيانات COCO val2017.
    يمكن إعادة الإنتاج بواسطة yolo val segment data=coco.yaml device=0
  • تم حساب متوسط Speed عبر صور COCO val باستخدام مثيل Amazon EC2 P4d.
    يمكن إعادة الإنتاج بواسطة yolo val segment data=coco.yaml batch=1 device=0|cpu
  • قيم Params و FLOPs هي للنموذج المدمج بعد model.fuse()، والذي يدمج طبقات Conv و BatchNorm، وبالنسبة للنماذج من طرف إلى طرف (end2end)، يزيل رأس الكشف الإضافي من واحد إلى متعدد. تحتفظ نقاط التحقق المدربة مسبقاً ببنية التدريب الكاملة وقد تُظهر أعداداً أعلى.

التدريب#

قم بتدريب YOLO26n-seg على مجموعة بيانات COCO8-seg لمدة 100 عصر تدريب بحجم صورة 640. للحصول على قائمة كاملة بالوسائط المتاحة، راجع صفحة التكوين.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo26n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)

راجع تفاصيل وضع train الكاملة في صفحة الالتفاف/التدريب. يمكن أيضاً تدريب نماذج التجزئة باستخدام التدريب السحابي لـ Ultralytics Platform.

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

يمكن العثور على تنسيق مجموعة بيانات التجزئة لـ YOLO بالتفصيل في دليل مجموعة البيانات. لتحويل مجموعة بياناتك الحالية من تنسيقات أخرى (مثل COCO وغيرها) إلى تنسيق YOLO، يرجى استخدام أداة JSON2YOLO بواسطة Ultralytics. يمكنك أيضاً إنشاء أقنعة تجزئة باستخدام أداة التعليقات التوضيحية لـ Ultralytics Platform باستخدام أدوات المضلعات والتعليقات التوضيحية الذكية المدعومة بواسطة SAM.

التحقق#

تحقق من دقة نموذج YOLO26n-seg المدرب على مجموعة بيانات COCO8-seg. لا توجد حاجة إلى وسائط حيث يحتفظ model ببيانات data والوسائط الخاصة بالتدريب كخصائص للنموذج.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics  # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FN

التنبؤ#

استخدم نموذج YOLO26n-seg مدرباً لتشغيل التنبؤات على الصور.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.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:
    xy = result.masks.xy  # mask polygons in pixel coordinates
    xyn = result.masks.xyn  # normalized mask polygons
    masks = result.masks.data  # binary masks, shape (N,H,W), dtype torch.uint8

راجع تفاصيل وضع predict الكاملة في صفحة التنبؤ (Predict).

مخرجات النتائج#

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

السمة (Attribute)النوعالشكلالوصف
result.masksMasks(N)أقنعة المثيلات.
result.masks.datatorch.uint8(N,H,W)الأقنعة الثنائية، القيم 0 أو 1.
result.masks.xynp.float32list[(P,2)]مضلعات البكسل.
result.masks.xynnp.float32list[(P,2)]المضلعات الطبيعية (Normalized).
result.boxesBoxes(N)مربعات/فئات/ثقة المثيلات.
result.boxes.clstorch.float32(N,)معرفات الفئات؛ يتم تحويلها إلى int للأسماء.

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

كيف يختلف هذا عن التجزئة الدلالية (Semantic Segmentation)؟#

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

التصدير#

قم بتصدير نموذج YOLO26n-seg إلى تنسيق مختلف مثل ONNX، CoreML، إلخ.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

توجد تنسيقات تصدير YOLO26-seg المتاحة في الجدول أدناه. يمكنك التصدير إلى أي تنسيق باستخدام الوسيط format، أي format='onnx' أو format='engine'. يمكنك التنبؤ أو التحقق مباشرة على النماذج المصدرة، أي yolo predict model=yolo26n-seg.onnx. تُعرض أمثلة الاستخدام لنموذجك بعد اكتمال التصدير.

ملاحظة

خطوط أنابيب NMS المدمجة في CoreML (nms=True) تدعم فقط نماذج كشف الكائنات. تصديرات التجزئة إلى CoreML تُصدر تحذيراً وتفرض nms=False، مما ينتج عنه نموذج خام بدون NMS.

التنسيقوسيط formatالنموذجالبيانات الوصفيةالوسائط (Arguments)
PyTorch-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz، quantize، dynamic، simplify، opset، nms، batch، data، fraction، device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz، quantize، dynamic، nms، batch، data، fraction، device
TensorRTengineyolo26n-seg.engineimgsz، quantize، dynamic، simplify، opset، workspace، nms، batch، data، fraction، device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz، keras، quantize، opset، nms، batch، data، fraction، device
TF GraphDefpbyolo26n-seg.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz، batch، device
MNNmnnyolo26n-seg.mnnimgsz، batch، dynamic، quantize، simplify، opset، nms، device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/imgsz، batch، name، quantize، simplify، opset، data، fraction، device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz، batch، device
Axeleraaxelerayolo26n-seg_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-seg_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-seg_qnn.onnximgsz، batch، name، quantize، simplify، opset، data، fraction، device
LiteRTlitertyolo26n-seg.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n-seg_hailo_model/imgsz، name، quantize، data، fraction، simplify، conf، iou
Huawei Ascendascendyolo26n-seg_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms

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

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

  • لتدريب نموذج تجزئة YOLO26 على مجموعة بيانات مخصصة، تحتاج أولاً إلى إعداد مجموعة بياناتك بتنسيق تجزئة YOLO. يمكنك استخدام أدوات مثل JSON2YOLO لتحويل مجموعات البيانات من تنسيقات أخرى. بمجرد أن تصبح مجموعة بياناتك جاهزة، يمكنك تدريب النموذج باستخدام بايثون أو أوامر واجهة سطر الأوامر (CLI):

    مثال
    from ultralytics import YOLO
    
    # Load a pretrained YOLO26 segment model
    model = YOLO("yolo26n-seg.pt")
    
    # Train the model
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

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

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

  • Ultralytics YOLO26 هو نموذج متطور يُعرف بدقته العالية وأدائه في الوقت الفعلي، مما يجعله مثاملاً لمهام تجزئة المثيلات. تأتي نماذج تجزئة YOLO26 مدربة مسبقاً على مجموعة بيانات COCO، مما يضمن أداءً قوياً عبر مجموعة متنوعة من الكائنات. بالإضافة إلى ذلك، يدعم YOLO وظائف التدريب والتحقق والتنبؤ والتصدير بتكامل سلس، مما يجعله متعدد الاستخدامات للغاية لكل من التطبيقات البحثية والصناعية.

  • تحميل والتحقق من نموذج تجزئة YOLO مدرب مسبقاً أمر مباشر. إليك كيفية القيام بذلك باستخدام Python و CLI:

    مثال
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n-seg.pt")
    
    # Validate the model
    metrics = model.val()
    print("Mean Average Precision for boxes:", metrics.box.map)
    print("Mean Average Precision for masks:", metrics.seg.map)

    ستوفر لك هذه الخطوات مقاييس تحقق مثل متوسط الدقة المتوسطة (mAP)، وهي ضرورية لتقييم أداء النموذج.

  • تصدير نموذج تجزئة YOLO إلى تنسيق ONNX أمر بسيط ويمكن القيام به باستخدام Python أو أوامر CLI:

    مثال
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n-seg.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

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

التعليقات