نظرة عامة على مجموعات بيانات تجزئة المثيل
تنسيقات مجموعة البيانات المدعومة
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 |
required | Path to directory containing target images/videos for annotation or segmentation. |
det_model |
str |
"yolo11x.pt" |
YOLO detection model path for initial object detection. |
sam_model |
str |
"sam2_b.pt" |
SAM2 model path for segmentation (supports t/s/b/l variants and SAM2.1) and mobile_sam models. |
device |
str |
"" |
Computation device (e.g., 'cuda:0', 'cpu', or '' for automatic device detection). |
conf |
float |
0.25 |
YOLO detection confidence threshold for filtering weak detections. |
iou |
float |
0.45 |
IoU threshold for Non-Maximum Suppression to filter overlapping boxes. |
imgsz |
int |
640 |
Input size for resizing images (must be multiple of 32). |
max_det |
int |
300 |
Maximum number of detections per image for memory efficiency. |
classes |
list[int] |
None |
List of class indices to detect (e.g., [0, 1] for person & bicycle). |
output_dir |
str |
None |
Save directory for annotations (defaults to './labels' relative to data path). |
إن auto_annotate
function takes the path to your images, along with optional arguments for specifying the pre-trained detection models i.e. YOLO11, YOLOv8 or other الموديلات and segmentation models i.e, SAM, SAM2 أو MobileSAMوالجهاز المراد تشغيل النماذج عليه، ودليل الإخراج لحفظ النتائج المشروحة.
من خلال الاستفادة من قوة النماذج المدربة مسبقًا، يمكن للتعليق التلقائي أن يقلل بشكل كبير من الوقت والجهد اللازمين لإنشاء مجموعات بيانات تجزئة عالية الجودة. تُعد هذه الميزة مفيدة بشكل خاص للباحثين والمطورين الذين يعملون مع مجموعات كبيرة من الصور، حيث تتيح لهم التركيز على تطوير النماذج وتقييمها بدلاً من التعليق التوضيحي اليدوي.
الأسئلة الشائعة
ما هي تنسيقات مجموعات البيانات التي يدعمها موقع 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"
This function automates the annotation process, making it faster and more efficient. For more details, explore the Auto-Annotate Reference.