نظرة عامة على مجموعات بيانات تجزئة المثيل
تنسيقات مجموعة البيانات المدعومة
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
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 .
الاستخدام
مثال على ذلك
مجموعات البيانات المدعومة
مجموعات البيانات المدعومة
- 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 |
المسار إلى مجلد يحتوي على الصور المراد وضع تعليقات توضيحية عليها. | None |
det_model |
str, optional |
نموذج الكشف YOLO المدرب مسبقاً . افتراضي إلى 'yolo11x.pt' . |
'yolo11x.pt' |
sam_model |
str, optional |
نموذج التجزئة SAM المدرّب مسبقاً. افتراضي إلى 'sam_b.pt' . |
'sam_b.pt' |
device |
str, optional |
جهاز لتشغيل النماذج عليه. يُفترض أن يكون افتراضيًا إلى سلسلة فارغة (CPU أو GPU ، إذا كان متاحًا). | '' |
output_dir |
str or None, optional |
دليل لحفظ النتائج المشروحة. يتم تعيينه افتراضيًا إلى 'labels' في نفس المجلد الموجود في نفس دليل 'data' . |
None |
إن auto_annotate
تأخذ الدالة مسارًا إلى صورك، بالإضافة إلى وسيطات اختيارية لتحديد الكشف المُدرَّب مسبقًا و SAM نماذج التجزئةوالجهاز المراد تشغيل النماذج عليه، ودليل الإخراج لحفظ النتائج المشروحة.
من خلال الاستفادة من قوة النماذج المدربة مسبقًا، يمكن للتعليق التلقائي أن يقلل بشكل كبير من الوقت والجهد اللازمين لإنشاء مجموعات بيانات تجزئة عالية الجودة. تُعد هذه الميزة مفيدة بشكل خاص للباحثين والمطورين الذين يعملون مع مجموعات كبيرة من الصور، حيث تتيح لهم التركيز على تطوير النماذج وتقييمها بدلاً من التعليق التوضيحي اليدوي.
الأسئلة الشائعة
ما هي تنسيقات مجموعات البيانات التي يدعمها موقع 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")
تعمل هذه الوظيفة على أتمتة عملية التعليق التوضيحي مما يجعلها أسرع وأكثر كفاءة. لمزيد من التفاصيل، استكشف قسم التعليق التلقائي.