Meet YOLO26: next-gen vision AI.

Link to this sectionتقسيم المثيلات#

Instance segmentation examples

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

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



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

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

Link to this sectionالنماذج#

نماذج Segment المدربة مسبقاً من YOLO26 موضحة هنا. نماذج Detect و Segment و Pose مدربة مسبقاً على مجموعة بيانات COCO، بينما نماذج Semantic مدربة مسبقاً على Cityscapes، ونماذج Classify مدربة مسبقاً على مجموعة بيانات 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 باستخدام مثيل Amazon EC2 P4d.
    يمكن إعادة إنتاجها عبر yolo val segment data=coco.yaml batch=1 device=0|cpu
  • قيم Params و FLOPs هي للنموذج المدمج بعد model.fuse()، والذي يدمج طبقات Conv و BatchNorm، وبالنسبة لنماذج end2end، فإنه يزيل رأس الكشف الإضافي واحد-إلى-متعدد. تحتفظ نقاط الفحص المدربة مسبقاً ببنية التدريب الكاملة وقد تظهر أعداداً أعلى.

Link to this sectionالتدريب#

درب 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 الكاملة في صفحة التدريب. يمكن أيضاً تدريب نماذج التجزئة على وحدات معالجة الرسوميات (GPUs) السحابية من خلال منصة Ultralytics.

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

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

Link to this sectionالتحقق#

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

Link to this sectionالتنبؤ#

استخدم نموذج 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 الكاملة في صفحة التنبؤ.

Link to this sectionمخرجات النتائج#

تُرجع تجزئة النسخ في 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 الخاصة بالمهمة عبر كل مهمة، راجع قسم نتائج التنبؤ حسب المهمة.

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

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

Link to this sectionالتصدير#

قم بتصدير نموذج 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. يتم عرض أمثلة الاستخدام لنموذجك بعد اكتمال التصدير.

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

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

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

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

لتدريب نموذج تجزئة YOLO26 على مجموعة بيانات مخصصة، تحتاج أولاً إلى تجهيز مجموعة بياناتك بتنسيق تجزئة YOLO. يمكنك استخدام أدوات مثل JSON2YOLO لتحويل مجموعات البيانات من تنسيقات أخرى. بمجرد أن تصبح مجموعة بياناتك جاهزة، يمكنك تدريب النموذج باستخدام Python أو أوامر 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)

راجع صفحة التكوين لمزيد من المعلمات المتاحة.

Link to this sectionما الفرق بين اكتشاف الكائنات وتجزئة النسخ في YOLO26؟#

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

Link to this sectionلماذا نستخدم YOLO26 لتجزئة النسخ؟#

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

Link to this sectionكيف يمكنني تحميل والتحقق من نموذج تجزئة 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)، وهي بالغة الأهمية لتقييم أداء النموذج.

Link to this sectionكيف يمكنني تصدير نموذج تجزئة YOLO إلى تنسيق ONNX؟#

تصدير نموذج تجزئة 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")

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

التعليقات