Meet YOLO26: next-gen vision AI.

Link to this sectionنظرة عامة على مجموعات بيانات تجزئة المثيل#

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

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

Link to this sectionتنسيق Ultralytics YOLO#

تنسيق ملصقات مجموعة البيانات المستخدم لتدريب نماذج تجزئة YOLO هو كما يلي:

  1. ملف نصي واحد لكل صورة: كل صورة في مجموعة البيانات لها ملف نصي مطابق يحمل نفس اسم ملف الصورة وامتداد ".txt".
  2. صف واحد لكل كائن: كل صف في الملف النصي يتوافق مع مثيل كائن واحد في الصورة.
  3. معلومات الكائن لكل صف: يحتوي كل صف على المعلومات التالية حول مثيل الكائن:
    • مؤشر فئة الكائن: عدد صحيح يمثل فئة الكائن (مثلاً، 0 للشخص، 1 للسيارة، إلخ).
    • إحداثيات تحديد الكائن: إحداثيات التحديد حول منطقة القناع، مطبعة لتكون بين 0 و1.

تنسيق صف واحد في ملف مجموعة بيانات التجزئة هو كما يلي:

<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn>

في هذا التنسيق، <class-index> هو مؤشر فئة الكائن، و <x1> <y1> <x2> <y2> ... <xn> <yn> هي إحداثيات المضلع المطبّعة لقناع تجزئة الكائن (القيم في النطاق [0, 1] بالنسبة لعرض الصورة وارتفاعها). يتم فصل الإحداثيات بمسافات.

إليك مثال على تنسيق مجموعة بيانات YOLO لصورة واحدة تحتوي على كائنين يتكونان من قطعة ذات 3 نقاط وقطعة ذات 5 نقاط.

0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104
تلميح
  • طول كل صف لا يجب أن يكون متساويًا.
  • يجب أن يحتوي كل ملصق تجزئة على 3 نقاط (x, y) على الأقل: <class-index> <x1> <y1> <x2> <y2> <x3> <y3>

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

يستخدم إطار عمل Ultralytics تنسيق ملف YAML لتعريف إعدادات مجموعة البيانات والنموذج لتدريب نماذج التجزئة. إليك مثال على تنسيق YAML المستخدم لتعريف مجموعة بيانات التجزئة:

ultralytics/cfg/datasets/coco8-seg.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/segment/coco8-seg/
# Example usage: yolo train data=coco8-seg.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-seg ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8-seg # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip

تحدد الحقول train و val المسارات إلى الأدلة التي تحتوي على صور التدريب والتحقق من الصحة، على التوالي.

names هو قاموس لأسماء الفئات. يجب أن يتطابق ترتيب الأسماء مع ترتيب مؤشرات فئة الكائنات في ملفات مجموعة بيانات YOLO.

Link to this sectionالاستخدام#

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load a pretrained model (recommended for training)

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

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

تدعم Ultralytics YOLO مجموعات بيانات متنوعة لمهام تجزئة المثيل. إليك قائمة بأكثرها استخداماً:

  • Carparts-seg: مجموعة بيانات متخصصة تركز على تجزئة أجزاء السيارات، مثالية لتطبيقات السيارات. تتضمن مجموعة متنوعة من المركبات مع تعليقات توضيحية مفصلة لمكونات السيارة الفردية.
  • COCO: مجموعة بيانات شاملة لـ اكتشاف الكائنات، والتجزئة، والتعليق، وتتميز بأكثر من 200 ألف صورة مصنفة عبر مجموعة واسعة من الفئات.
  • COCO8-seg: مجموعة فرعية مدمجة مكونة من 8 صور من COCO مصممة للاختبار السريع لتدريب نموذج التجزئة، ومثالية لفحوصات CI والتحقق من سير العمل في مستودع ultralytics.
  • COCO128-seg: مجموعة بيانات أصغر لمهام تجزئة المثيل، تحتوي على مجموعة فرعية من 128 صورة COCO مع تعليقات توضيحية للتجزئة.
  • Crack-seg: مجموعة بيانات مصممة لتجزئة الشقوق في الأسطح المختلفة. ضرورية لصيانة البنية التحتية ومراقبة الجودة، وتوفر صوراً مفصلة لتدريب النماذج على تحديد نقاط الضعف الهيكلية.
  • Package-seg: مجموعة بيانات مخصصة لتجزئة أنواع مختلفة من مواد وأشكال التعبئة والتغليف. إنها مفيدة بشكل خاص لأتمتة الخدمات اللوجستية والمستودعات، وتساعد في تطوير أنظمة مناولة وفرز الطرود.

Link to this sectionإضافة مجموعة البيانات الخاصة بك#

إذا كان لديك مجموعة بيانات خاصة بك وترغب في استخدامها لتدريب نماذج التجزئة بتنسيق Ultralytics YOLO، فتأكد من أنها تتبع التنسيق المحدد أعلاه تحت "تنسيق Ultralytics YOLO". قم بتحويل تعليقاتك التوضيحية إلى التنسيق المطلوب وحدد المسارات، وعدد الفئات، وأسماء الفئات في ملف إعدادات YAML. احتفظ بـ images/ و labels/ كمجلدات منفصلة في نفس المستوى، مع هيكل مجلدات فرعية متطابق؛ فوضع ملفات الملصقات .txt في مجلد الصور قد يؤدي إلى تفويت النماذج للملصقات.

Link to this sectionنقل أو تحويل تنسيقات الملصقات#

Link to this sectionتحويل تنسيق مجموعة بيانات COCO إلى تنسيق YOLO#

يمكنك بسهولة تحويل الملصقات من تنسيق مجموعة بيانات COCO الشائع إلى تنسيق YOLO باستخدام مقتطف الشفرة التالي:

مثال
from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)

يمكن استخدام أداة التحويل هذه لتحويل مجموعة بيانات COCO أو أي مجموعة بيانات بتنسيق COCO إلى تنسيق Ultralytics YOLO.

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

Link to this sectionالتعليق التوضيحي التلقائي#

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

Link to this sectionإنشاء مجموعة بيانات تجزئة باستخدام نموذج اكتشاف#

للتعليق التوضيحي التلقائي على مجموعة البيانات الخاصة بك باستخدام إطار عمل Ultralytics، يمكنك استخدام دالة auto_annotate كما هو موضح أدناه:

مثال
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")
الوسيط (Argument)النوعالافتراضيالوصف
datastrمطلوبمسار الدليل الذي يحتوي على الصور المستهدفة للتعليق أو التجزئة.
det_modelstr'yolo26x.pt'مسار نموذج اكتشاف YOLO للاكتشاف الأولي للكائنات.
sam_modelstr'sam_b.pt'مسار نموذج SAM للتجزئة (يدعم أوزان SAM وSAM 2 وMobileSAM وSAM 3).
devicestr''جهاز الحساب (على سبيل المثال، 'cuda:0' أو 'cpu' أو '' للاكتشاف التلقائي للجهاز).
conffloat0.25عتبة ثقة اكتشاف YOLO لتصفية الاكتشافات الضعيفة.
ioufloat0.45عتبة IoU لـ Non-Maximum Suppression لتصفية المربعات المتداخلة.
imgszint640حجم الإدخال لتغيير حجم الصور (يجب أن يكون مضاعفاً لـ 32).
max_detint300الحد الأقصى لعدد الاكتشافات لكل صورة من أجل كفاءة الذاكرة.
classeslist[int]Noneقائمة بفهارس الفئات المراد اكتشافها (على سبيل المثال، [0, 1] للشخص والدراجة).
output_dirstrNoneدليل الحفظ للتعليقات التوضيحية (الافتراضي: <data>_auto_annotate_labels المجاور).

تأخذ دالة auto_annotate مسار صورك، إلى جانب وسيطات اختيارية لتحديد نماذج الاكتشاف المدربة مسبقًا، على سبيل المثال YOLO26، YOLO11، أو نماذج أخرى، ونماذج التجزئة، على سبيل المثال SAM، SAM 2، MobileSAM، أو SAM 3، والجهاز المراد تشغيل النماذج عليه، ودليل الإخراج لحفظ النتائج المعلقة.

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

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

قبل تدريب نموذجك، من المفيد غالبًا تصور تعليقات مجموعة البيانات الخاصة بك للتأكد من صحتها. توفر Ultralytics دالة مساعدة لهذا الغرض:

from ultralytics.data.utils import visualize_image_annotations

label_map = {  # Define the label map with all annotated class labels.
    0: "person",
    1: "car",
}

# Visualize
visualize_image_annotations(
    "path/to/image.jpg",  # Input image path.
    "path/to/annotations.txt",  # Annotation file path for the image.
    label_map,
)

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

Link to this sectionتحويل أقنعة التجزئة إلى تنسيق YOLO#

إذا كان لديك أقنعة تجزئة بتنسيق ثنائي، يمكنك تحويلها إلى تنسيق تجزئة YOLO باستخدام:

from ultralytics.data.converter import convert_segment_masks_to_yolo_seg

# For datasets like COCO with 80 classes
convert_segment_masks_to_yolo_seg(masks_dir="path/to/masks_dir", output_dir="path/to/output_dir", classes=80)

تقوم هذه الأداة بتحويل صور القناع الثنائي إلى تنسيق تجزئة YOLO وحفظها في دليل الإخراج المحدد.

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

Link to this sectionما هي تنسيقات مجموعات البيانات التي تدعمها Ultralytics YOLO لتجزئة المثيل؟#

تدعم Ultralytics YOLO العديد من تنسيقات مجموعات البيانات لتجزئة المثيل، حيث يكون التنسيق الأساسي هو تنسيق Ultralytics YOLO الخاص بها. تحتاج كل صورة في مجموعة بياناتك إلى ملف نصي مطابق يحتوي على معلومات الكائن المقطعة إلى صفوف متعددة (صف واحد لكل كائن)، مع سرد مؤشر الفئة وإحداثيات التحديد المطبّعة. لمزيد من التعليمات التفصيلية حول تنسيق مجموعة بيانات YOLO، تفضل بزيارة نظرة عامة على مجموعات بيانات تجزئة المثيل.

Link to this sectionكيف يمكنني تحويل تعليقات مجموعة بيانات COCO إلى تنسيق YOLO؟#

تحويل تعليقات تنسيق COCO إلى تنسيق YOLO أمر مباشر باستخدام أدوات Ultralytics. يمكنك استخدام دالة convert_coco من وحدة ultralytics.data.converter:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)

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

Link to this sectionكيف أقوم بإعداد ملف YAML لتدريب نماذج Ultralytics YOLO؟#

لإعداد ملف YAML لتدريب نماذج YOLO باستخدام Ultralytics، تحتاج إلى تحديد مسارات مجموعة البيانات وأسماء الفئات. إليك مثال على إعداد YAML:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/segment/coco8-seg/
# Example usage: yolo train data=coco8-seg.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-seg ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8-seg # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip

تأكد من تحديث المسارات وأسماء الفئات وفقًا لمجموعة البيانات الخاصة بك. لمزيد من المعلومات، راجع قسم تنسيق YAML لمجموعة البيانات.

Link to this sectionما هي ميزة التعليق التوضيحي التلقائي في Ultralytics YOLO؟#

يسمح التعليق التوضيحي التلقائي في Ultralytics YOLO لك بإنشاء تعليقات تجزئة توضيحية لمجموعة البيانات الخاصة بك باستخدام نموذج اكتشاف مدرب مسبقًا. هذا يقلل بشكل كبير من الحاجة إلى وضع علامات يدوية. يمكنك استخدام دالة auto_annotate كما يلي:

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")  # or sam_model="mobile_sam.pt"

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

التعليقات