نظرة عامة على مجموعات بيانات تجزئة المثيل
تجزئة المثيل هي مهمة رؤية حاسوبية تتضمن تحديد وتعيين الكائنات الفردية داخل الصورة. يوفر هذا الدليل نظرة عامة على تنسيقات مجموعات البيانات التي يدعمها Ultralytics YOLO لمهام تجزئة المثيلات، بالإضافة إلى إرشادات حول كيفية إعداد مجموعات البيانات هذه وتحويلها واستخدامها لتدريب نماذجك.
تنسيقات مجموعة البيانات المدعومة
Ultralytics YOLO التنسيق
يكون تنسيق تسمية مجموعة البيانات المستخدم لتدريب نماذج التجزئة YOLO على النحو التالي:
- ملف نصي واحد لكل صورة: تحتوي كل صورة في مجموعة البيانات على ملف نصي مطابق يحمل نفس اسم ملف الصورة وامتداد ".txt".
- صف واحد لكل كائن: يتوافق كل صف في الملف النصي مع مثيل كائن واحد في الصورة.
- معلومات الكائن لكل صف: يحتوي كل صف على المعلومات التالية حول مثيل الكائن:
- فهرس فئة الكائن: عدد صحيح يمثل فئة الكائن (على سبيل المثال، 0 للشخص، 1 للسيارة، إلخ).
- إحداثيات تحديد الكائن: الإحداثيات المحدودة حول منطقة القناع، مع تطبيعها لتكون بين 0 و1.
يكون تنسيق الصف الواحد في ملف مجموعة بيانات التجزئة على النحو التالي:
بهذا الشكل, <class-index>
هو فهرس فئة الكائن، و <x1> <y1> <x2> <y2> ... <xn> <yn>
هي الإحداثيات المحددة لقناع تجزئة الكائن. الإحداثيات مفصولة بمسافات.
في ما يلي مثال على تنسيق مجموعة البيانات 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 نقاط xy كحد أدنى:
<class-index> <x1> <y1> <x2> <y2> <x3> <y3>
تنسيق مجموعة البيانات YAML
يستخدم إطار عمل Ultralytics تنسيق ملف YAML لتحديد مجموعة البيانات وتكوين النموذج لتدريب نماذج الكشف. فيما يلي مثال على تنسيق YAML المستخدم لتحديد مجموعة بيانات الكشف:
# 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: ../datasets/coco8-seg # dataset root dir (absolute or relative; if relative, it's relative to default datasets_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 (80 COCO classes)
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
إن train
و val
تحدد المسارات إلى الدلائل التي تحتوي على صور التدريب والتحقق من الصحة، على التوالي.
names
هو قاموس لأسماء الفئات. يجب أن يتطابق ترتيب الأسماء مع ترتيب مؤشرات فئات الكائنات في ملفات مجموعة البيانات YOLO .
الاستخدام
مثال على ذلك
مجموعات البيانات المدعومة
يدعم Ultralytics YOLO مجموعات بيانات متنوعة لمهام التجزئة على سبيل المثال. فيما يلي قائمة بأكثرها استخدامًا:
- COCO: مجموعة بيانات شاملة للكشف عن الكائنات وتجزئتها وتسميتها وتسميتها بالعلامات التوضيحية تضم أكثر من 200 ألف صورة موسومة عبر مجموعة واسعة من الفئات.
- COCO8-سيج: مجموعة فرعية مدمجة مكونة من 8 صور من COCO مصممة للاختبار السريع لتدريب نموذج التجزئة، وهي مثالية لفحوصات CI والتحقق من صحة سير العمل في
ultralytics
المستودع. - COCO128-seg: مجموعة بيانات أصغر لمهام التجزئة على سبيل المثال، تحتوي على مجموعة فرعية من 128 صورة COCO مع شروح التجزئة.
- Carparts-seg: مجموعة بيانات متخصصة تركز على تجزئة أجزاء السيارة، وهي مثالية لتطبيقات السيارات. تتضمن مجموعة متنوعة من السيارات مع شروح مفصلة لمكونات السيارة الفردية.
- Crack-seg: مجموعة بيانات مصممة خصيصاً لتجزئة الشقوق في الأسطح المختلفة. وهي ضرورية لصيانة البنية التحتية ومراقبة الجودة، وتوفر صوراً مفصلة لتدريب النماذج لتحديد نقاط الضعف الهيكلية.
- Package-seg: مجموعة بيانات مخصصة لتجزئة أنواع مختلفة من مواد التعبئة والتغليف وأشكالها. وهي مفيدة بشكل خاص للخدمات اللوجستية وأتمتة المستودعات، حيث تساعد في تطوير أنظمة مناولة العبوات وفرزها.
إضافة مجموعة البيانات الخاصة بك
إذا كان لديك مجموعة البيانات الخاصة بك وترغب في استخدامها لتدريب نماذج التجزئة بتنسيق Ultralytics YOLO ، تأكد من أنها تتبع التنسيق المحدد أعلاه تحت "Ultralytics YOLO التنسيق". حوّل شروحك إلى التنسيق المطلوب وحدد المسارات وعدد الفئات وأسماء الفئات في ملف تكوين YAML.
نقل تنسيقات التسمية أو تحويلها
تنسيق مجموعة بيانات COCO إلى تنسيق YOLO
يمكنك بسهولة تحويل التسميات من تنسيق مجموعة بيانات COCO الشائعة إلى تنسيق YOLO باستخدام مقتطف الكود التالي:
مثال على ذلك
يمكن استخدام أداة التحويل هذه لتحويل مجموعة بيانات COCO أو أي مجموعة بيانات بتنسيق COCO إلى تنسيق Ultralytics YOLO .
تذكّر أن تتحقق مرة أخرى مما إذا كانت مجموعة البيانات التي تريد استخدامها متوافقة مع نموذجك وتتبع اصطلاحات التنسيق اللازمة. تُعد مجموعات البيانات المنسقة بشكل صحيح أمرًا بالغ الأهمية لتدريب نماذج ناجحة للكشف عن الكائنات.
التعليق التلقائي
يعد التعليق التلقائي ميزة أساسية تتيح لك إنشاء مجموعة بيانات تجزئة باستخدام نموذج كشف مدرب مسبقًا. وهي تمكّنك من وضع تعليقات توضيحية سريعة ودقيقة لعدد كبير من الصور دون الحاجة إلى وضع علامات يدوية، مما يوفر الوقت والجهد.
توليد مجموعة بيانات التجزئة باستخدام نموذج الكشف
لتعليل مجموعة بياناتك تلقائيًا باستخدام إطار العمل Ultralytics ، يمكنك استخدام auto_annotate
كما هو موضح أدناه:
مثال على ذلك
الجدال | النوع | افتراضي | الوصف |
---|---|---|---|
data |
str |
مطلوب | المسار إلى الدليل الذي يحتوي على الصور المستهدفة للتعليق التوضيحي أو التجزئة. |
det_model |
str |
'yolo11x.pt' |
YOLO مسار نموذج الكشف عن مسار نموذج الكشف عن الكائن الأولي. |
sam_model |
str |
'sam_b.pt' |
مسار نموذج SAM للتجزئة (يدعم نماذج SAM ومتغيرات SAM2 ونماذج SAM2 المتنقلة). |
device |
str |
'' |
جهاز الحساب (على سبيل المثال، "cuda:0" أو "cpu" أو " " أو "للكشف التلقائي عن الجهاز). |
conf |
float |
0.25 |
YOLO عتبة الثقة في الكشف لتصفية الاكتشافات الضعيفة. |
iou |
float |
0.45 |
عتبة IoU للقمع غير الأقصى لتصفية المربعات المتداخلة. |
imgsz |
int |
640 |
حجم الإدخال لتغيير حجم الصور (يجب أن يكون من مضاعفات 32). |
max_det |
int |
300 |
الحد الأقصى لعدد الاكتشافات لكل صورة لكفاءة الذاكرة. |
classes |
list[int] |
None |
قائمة مؤشرات الفئات المراد اكتشافها (على سبيل المثال, [0, 1] للشخص والدراجة). |
output_dir |
str |
None |
حفظ الدليل للتعليقات التوضيحية (افتراضيًا إلى "./ملصقات" بالنسبة إلى مسار البيانات). |
إن auto_annotate
تأخذ الدالة المسار إلى صورك، إلى جانب وسيطات اختيارية لتحديد نماذج الكشف المُدرَّبة مسبقًا، أي YOLO11, YOLOv8 أو غيرها الموديلات ونماذج التجزئة، أي SAM, SAM2 أو MobileSAMوالجهاز المراد تشغيل النماذج عليه، ودليل الإخراج لحفظ النتائج المشروحة.
من خلال الاستفادة من قوة النماذج المدربة مسبقًا، يمكن للتعليق التلقائي أن يقلل بشكل كبير من الوقت والجهد اللازمين لإنشاء مجموعات بيانات تجزئة عالية الجودة. تُعد هذه الميزة مفيدة بشكل خاص للباحثين والمطورين الذين يعملون مع مجموعات كبيرة من الصور، حيث تتيح لهم التركيز على تطوير النماذج وتقييمها بدلاً من التعليق التوضيحي اليدوي.
تصور شروح مجموعة البيانات التوضيحية
قبل تدريب نموذجك، غالبًا ما يكون من المفيد تصور شروح مجموعة البيانات الخاصة بك للتأكد من صحتها. توفر 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,
)
ترسم هذه الدالة المربعات الحدودية، وتسمي الكائنات بأسماء الفئات، وتضبط لون النص لتحسين إمكانية قراءته، مما يساعدك على تحديد أي أخطاء في التعليقات التوضيحية وتصحيحها قبل التدريب.
تحويل أقنعة التجزئة إلى تنسيق 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 وحفظها في دليل الإخراج المحدد.
الأسئلة الشائعة
ما هي تنسيقات مجموعات البيانات التي يدعمها موقع Ultralytics YOLO لتجزئة المثيل؟
Ultralytics YOLO يدعم العديد من تنسيقات مجموعات البيانات لتجزئة المثيلات، حيث يكون التنسيق الأساسي هو التنسيق الخاص به Ultralytics YOLO . تحتاج كل صورة في مجموعة البيانات الخاصة بك إلى ملف نصي مطابق يحتوي على معلومات الكائنات مقسمة إلى صفوف متعددة (صف واحد لكل كائن)، مع سرد فهرس الفئة والإحداثيات المحدودة الطبيعية. للمزيد من الإرشادات التفصيلية حول تنسيق مجموعة البيانات YOLO ، يرجى زيارة نظرة عامة على مجموعات بيانات تجزئة المثيل.
كيف يمكنني تحويل شروح مجموعة بيانات 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 الخاصة بك. لمزيد من التفاصيل، راجع المنفذ أو تحويل تنسيقات التسمية.
كيف يمكنني إعداد ملف YAML لتدريب نماذج Ultralytics YOLO ؟
لإعداد ملف YAML لتدريب نماذج YOLO باستخدام Ultralytics ، تحتاج إلى تحديد مسارات مجموعة البيانات وأسماء الفئات. إليك مثال على تكوين YAML:
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
names:
0: person
1: bicycle
2: car
# ...
تأكد من تحديث المسارات وأسماء الفئات وفقًا لمجموعة البيانات الخاصة بك. لمزيد من المعلومات، راجع قسم تنسيق YAML لمجموعة البيانات.
ما هي ميزة التعليق التلقائي في Ultralytics YOLO ؟
يتيح لك التعليل التلقائي في Ultralytics YOLO إنشاء شروح تجزئة لمجموعة البيانات الخاصة بك باستخدام نموذج كشف مدرب مسبقًا. وهذا يقلل بشكل كبير من الحاجة إلى التسمية اليدوية. يمكنك استخدام auto_annotate
الدالة على النحو التالي:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam_b.pt") # or sam_model="mobile_sam.pt"
تعمل هذه الدالة على أتمتة عملية التعليق التوضيحي مما يجعلها أسرع وأكثر كفاءة. لمزيد من التفاصيل، استكشف مرجع التعليق التلقائي.