تخطي إلى المحتوى

تجزئة المثيل

أمثلة على تجزئة المثيلات

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

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



شاهد: تشغيل التجزئة باستخدام نموذج Ultralytics YOLO المدرب مسبقًا في python.

نصيحة

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

النماذج

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

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

النموذج الحجم
(بالبكسل)
mAPمربع
50-95
mAPقناع
50-95
السرعة
وحدة المعالجة المركزية CPU ONNX
(بالمللي ثانية)
السرعة
T4 TensorRT10
(بالمللي ثانية)
المعلمات
(M)
FLOPs
(B)
YOLO11n-seg 640 38.9 32.0 65.9 ± 1.1 1.8 ± 0.0 2.9 10.4
YOLO11s-seg 640 46.6 37.8 117.6 ± 4.9 2.9 ± 0.0 10.1 35.5
YOLO11m-seg 640 51.5 41.5 281.6 ± 1.2 6.3 ± 0.1 22.4 123.3
YOLO11l-seg 640 53.4 42.9 344.2 ± 3.2 7.8 ± 0.2 27.6 142.2
YOLO11x-seg 640 54.7 43.8 664.5 ± 3.2 15.8 ± 0.7 62.1 319.0
  • 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

تدريب

تدريب YOLO11n-seg على مجموعة بيانات COCO8-seg لـ 100 epoch بحجم صورة 640. للحصول على قائمة كاملة بالحجج المتاحة، راجع صفحة Configuration.

مثال

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo11n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.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=yolo11n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-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=yolo11n-seg.yaml pretrained=yolo11n-seg.pt epochs=100 imgsz=640

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

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

التحقق

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

مثال

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list contains map50-95(M) of each category
yolo segment val model=yolo11n-seg.pt  # val official model
yolo segment val model=path/to/best.pt # val custom model

توقع

استخدم نموذج YOLO11n-seg مُدرَّب لتشغيل التنبؤات على الصور.

مثال

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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=yolo11n-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 لأوضاع التشغيل في صفحة توقع التنبؤ.

تصدير

يمكنك تصدير نموذج YOLO11n-seg إلى تنسيق مختلف مثل ONNX و CoreML وما إلى ذلك.

مثال

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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=yolo11n-seg.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

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

التنسيق format الوسيطة النموذج البيانات الوصفية الوسائط
PyTorch - yolo11n-seg.pt -
TorchScript torchscript yolo11n-seg.torchscript imgsz, half, optimize, nms, batch, device
ONNX onnx yolo11n-seg.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n-seg_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n-seg.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n-seg.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n-seg_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n-seg.pb imgsz, batch, device
TF Lite tflite yolo11n-seg.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n-seg_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n-seg_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n-seg_paddle_model/ imgsz, batch, device
MNN mnn yolo11n-seg.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n-seg_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n-seg_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n-seg_rknn_model/ imgsz, batch, name, device

اطلع على التفاصيل الكاملة export التفاصيل في تصدير التنبؤ.

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

كيف يمكنني تدريب نموذج تجزئة YOLO11 على مجموعة بيانات مخصصة؟

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

مثال

from ultralytics import YOLO

# Load a pretrained YOLO11 segment model
model = YOLO("yolo11n-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=yolo11n-seg.pt epochs=100 imgsz=640

تحقق من صفحة التكوين لمزيد من الوسائط المتاحة.

ما هو الفرق بين اكتشاف الكائنات وتجزئة المثيلات في YOLO11؟

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

لماذا نستخدم YOLO11 لتجزئة المثيل؟

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

كيف يمكنني تحميل نموذج تجزئة YOLO مدرب مسبقًا والتحقق منه؟

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

مثال

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-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=yolo11n-seg.pt

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

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

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

مثال

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx

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



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 4 أشهر

تعليقات