تجزئة المثيل

تجزئة المثيل تتجاوز الكشف عن الكائنات وتتضمن تحديد الكائنات الفردية في الصورة وفصلها عن بقية الصورة.
إنّ مُخرجات نموذج تجزئة المثيل هي مجموعة من الأقنعة أو الخطوط التي تحدد شكل كل كائن في الصورة، بالإضافة إلى تصنيفات الفئات ودرجات الثقة لكل كائن. تجزئة المثيل مفيدة عندما تحتاج إلى معرفة ليس فقط مكان وجود الكائنات في الصورة، ولكن أيضًا شكلها الدقيق.
شاهد: قم بتشغيل التجزئة باستخدام نموذج Ultralytics YOLO المدرب مسبقًا في Python.
نصيحة
تستخدم نماذج YOLO26 segment -seg لاحقة، أي، yolo26n-seg.pt، ويتم تدريبها مسبقًا على COCO.
النماذج
تُعرض هنا نماذج segment المدربة مسبقًا من YOLO26. نماذج detect و segment و pose مدربة مسبقًا على مجموعة بيانات COCO، بينما نماذج classify مدربة مسبقًا على مجموعة بيانات ImageNet.
يتم تنزيل النماذج تلقائيًا من أحدث إصدارات Ultralytics release عند الاستخدام الأول.
| النموذج | الحجم (بالبكسل) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.5 |
- mAPval القيم هي لنموذج واحد وحجم واحد على COCO val2017 مجموعة البيانات.
إعادة الإنتاج بواسطةyolo val segment data=coco.yaml device=0 - السرعة تم حسابه على صور COCO val باستخدام Amazon EC2 P4d مثيل.
إعادة الإنتاج بواسطةyolo val segment data=coco.yaml batch=1 device=0|cpu
تدريب
تدريب YOLO26n-seg على مجموعة بيانات COCO8-seg لمدة 100 epoch بحجم صورة 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.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo26n-seg.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo26n-seg.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo26n-seg.yaml pretrained=yolo26n-seg.pt epochs=100 imgsz=640
تنسيق مجموعة البيانات
يمكن العثور على تنسيق مجموعة بيانات تجزئة YOLO بالتفصيل في دليل مجموعة البيانات. لتحويل مجموعة البيانات الحالية الخاصة بك من تنسيقات أخرى (مثل COCO وما إلى ذلك) إلى تنسيق YOLO، يرجى استخدام أداة JSON2YOLO بواسطة Ultralytics.
التحقق
التحقق من صحة نموذج 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.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
yolo segment val model=yolo26n-seg.pt # val official model
yolo segment val model=path/to/best.pt # val custom model
توقع
استخدم نموذج 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 in polygon format
xyn = result.masks.xyn # normalized
masks = result.masks.data # mask in matrix format (num_objects x H x W)
yolo segment predict model=yolo26n-seg.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model
اطلع على التفاصيل الكاملة predict لأوضاع التشغيل في صفحة توقع التنبؤ.
تصدير
صدّر نموذج 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")
yolo export model=yolo26n-seg.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
تنسيقات تصدير YOLO26-seg المتاحة موجودة في الجدول أدناه. يمكنك التصدير إلى أي تنسيق باستخدام الـ format الوسيطة، أي format='onnx' أو format='engine'. يمكنك التنبؤ أو التحقق مباشرة على النماذج المصدرة، أي، yolo predict model=yolo26n-seg.onnx. يتم عرض أمثلة الاستخدام لنموذجك بعد اكتمال التصدير.
| التنسيق | format الوسيطة | النموذج | البيانات الوصفية | الوسائط |
|---|---|---|---|---|
| PyTorch | - | yolo26n-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-seg.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, device |
| TF.js | tfjs | yolo26n-seg_web_model/ | ✅ | imgsz, half, int8, nms, batch, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, int8, data, fraction, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
اطلع على التفاصيل الكاملة export التفاصيل في تصدير التنبؤ.
الأسئلة الشائعة
كيف أقوم بتدريب نموذج YOLO26 segmentation على مجموعة بيانات مخصصة؟
لتدريب نموذج تجزئة 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)
yolo segment train data=path/to/your_dataset.yaml model=yolo26n-seg.pt epochs=100 imgsz=640
تحقق من صفحة التكوين لمزيد من الوسائط المتاحة.
ما الفرق بين اكتشاف الكائنات وتجزئة الكائنات (instance segmentation) في YOLO26؟
يحدد اكتشاف الكائنات ويحدد موقعها داخل الصورة عن طريق رسم مربعات إحاطة حولها، بينما تجزئة الكائنات لا تحدد مربعات الإحاطة فحسب، بل تحدد أيضًا الشكل الدقيق لكل كائن. توفر نماذج تجزئة الكائنات YOLO26 أقنعة أو خطوطًا محيطية تحدد كل كائن مكتشف، وهو أمر مفيد بشكل خاص للمهام التي يكون فيها معرفة الشكل الدقيق للكائنات أمرًا مهمًا، مثل التصوير الطبي أو القيادة الذاتية.
لماذا استخدام YOLO26 لتجزئة الكائنات (instance segmentation)؟
Ultralytics YOLO26 هو نموذج متطور معروف بدقته العالية وأدائه في الوقت الفعلي، مما يجعله مثاليًا لمهام تجزئة الكائنات (instance segmentation). تأتي نماذج YOLO26 Segment مدربة مسبقًا على مجموعة بيانات COCO، مما يضمن أداءً قويًا عبر مجموعة متنوعة من الكائنات. بالإضافة إلى ذلك، يدعم YOLO وظائف التدريب والتحقق والتنبؤ والتصدير مع تكامل سلس، مما يجعله متعدد الاستخدامات للغاية لكل من تطبيقات البحث والصناعة.
كيف يمكنني تحميل نموذج تجزئة 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)
yolo segment val model=yolo26n-seg.pt
ستوفر لك هذه الخطوات مقاييس التحقق مثل متوسط الدقة المتوسطة (mAP)، وهي ضرورية لتقييم أداء النموذج.
كيف يمكنني تصدير نموذج تجزئة 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")
yolo export model=yolo26n-seg.pt format=onnx
لمزيد من التفاصيل حول التصدير إلى تنسيقات مختلفة، راجع صفحة التصدير.