نظرة عامة على مجموعات بيانات الصندوق المحيط الموجه (OBB)
يتطلب تدريب نموذج اكتشاف الكائنات دقيق باستخدام مربعات الإحاطة الموجهة (OBB) مجموعة بيانات شاملة. يشرح هذا الدليل تنسيقات مجموعات بيانات OBB المختلفة المتوافقة مع نماذج Ultralytics YOLO، ويقدم رؤى حول هيكلها وتطبيقها وطرق تحويل التنسيقات.
تنسيقات مجموعات بيانات OBB المدعومة
تنسيق YOLO OBB
تحدد صيغة YOLO OBB المربعات المحيطة بنقاط الزاوية الأربعة الخاصة بها مع إحداثيات مُعيّرة بين 0 و 1. وهي تتبع هذا التنسيق:
class_index x1 y1 x2 y2 x3 y3 x4 y4
داخليًا، تعالج YOLO الخسائر والمخرجات في xywhr
التنسيق، الذي يمثل مربع إحاطةنقطة المركز (xy)، والعرض، والارتفاع، والدوران.
مثال على *.txt
ملف الملصقات للصورة أعلاه، والذي يحتوي على كائن من فئة 0
بتنسيق OBB، يمكن أن تبدو كما يلي:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758
تنسيق YAML لمجموعة البيانات
يستخدم إطار عمل Ultralytics تنسيق ملف YAML لتحديد تكوين مجموعة البيانات والنموذج لتدريب نماذج OBB. فيما يلي مثال على تنسيق YAML المستخدم لتحديد مجموعة بيانات OBB:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset 8 images from split DOTAv1 dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8/
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── dota8 ← downloads here (1MB)
# 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: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
# Classes for DOTA 1.0
names:
0: plane
1: ship
2: storage tank
3: baseball diamond
4: tennis court
5: basketball court
6: ground track field
7: harbor
8: bridge
9: large vehicle
10: small vehicle
11: helicopter
12: roundabout
13: soccer ball field
14: swimming pool
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/dota8.zip
الاستخدام
لتدريب نموذج باستخدام تنسيقات OBB هذه:
مثال
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024
مجموعات البيانات المدعومة
حاليًا، يتم دعم مجموعات البيانات التالية مع مربعات الإحاطة الموجهة:
- DOTA-v1: الإصدار الأول من مجموعة بيانات DOTA، التي توفر مجموعة شاملة من الصور الجوية مع مربعات إحاطة موجهة للكشف عن الكائنات.
- DOTA-v1.5: نسخة وسيطة من مجموعة بيانات DOTA، تقدم تعليقات توضيحية وتحسينات إضافية على DOTA-v1 لمهام الكشف عن الكائنات المحسنة.
- DOTA-v2: DOTA (مجموعة بيانات واسعة النطاق للكشف عن الكائنات في الصور الجوية) الإصدار 2، يؤكد على الكشف من وجهات النظر الجوية ويحتوي على مربعات إحاطة موجهة مع 1.7 مليون مثيل و 11268 صورة.
- DOTA8: مجموعة فرعية صغيرة مكونة من 8 صور من مجموعة بيانات DOTA الكاملة، وهي مناسبة لاختبار سير العمل وفحوصات التكامل المستمر (CI) لتدريب OBB في
ultralytics
المستودع.
دمج مجموعة بيانات OBB الخاصة بك
بالنسبة لأولئك الذين يتطلعون إلى تقديم مجموعات البيانات الخاصة بهم مع مربعات إحاطة موجهة، تأكد من التوافق مع "تنسيق YOLO OBB" المذكور أعلاه. قم بتحويل التعليقات التوضيحية الخاصة بك إلى هذا التنسيق المطلوب وقم بتفصيل المسارات والفئات وأسماء الفئات في ملف تكوين YAML المقابل.
تحويل تنسيقات الملصقات
تحويل تنسيق مجموعة بيانات DOTA إلى تنسيق YOLO OBB
يمكن تحقيق نقل التصنيفات من تنسيق مجموعة بيانات DOTA إلى تنسيق YOLO OBB باستخدام هذا البرنامج النصي:
مثال
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")
تعتبر آلية التحويل هذه أساسية لمجموعات البيانات بتنسيق DOTA، مما يضمن التوافق مع تنسيق Ultralytics YOLO OBB.
من الضروري التحقق من توافق مجموعة البيانات مع النموذج الخاص بك والالتزام باتفاقيات التنسيق الضرورية. مجموعات البيانات المهيكلة بشكل صحيح ضرورية لتدريب نماذج الكشف عن الكائنات بكفاءة باستخدام مربعات إحاطة موجهة.
الأسئلة الشائعة
ما هي الصناديق المحيطة الموجهة (OBB) وكيف يتم استخدامها في نماذج Ultralytics YOLO؟
الصناديق المحيطة الموجهة (OBB) هي نوع من ترميز الصناديق المحيطة حيث يمكن تدوير الصندوق لمحاذاة أقرب مع الكائن الذي يتم اكتشافه، بدلاً من مجرد محاذاته مع المحاور. هذا مفيد بشكل خاص في الصور الجوية أو صور الأقمار الصناعية حيث قد لا تكون الكائنات محاذية مع محاور الصورة. في نماذج Ultralytics YOLO، يتم تمثيل OBBs بنقاط الزاوية الأربعة الخاصة بهم في تنسيق YOLO OBB. يتيح ذلك اكتشافًا أكثر دقة للكائنات نظرًا لأنه يمكن تدوير الصناديق المحيطة لتناسب الكائنات بشكل أفضل.
كيف يمكنني تحويل تسميات مجموعة بيانات DOTA الموجودة لدي إلى تنسيق YOLO OBB لاستخدامها مع Ultralytics YOLO11؟
يمكنك تحويل تسميات مجموعة بيانات DOTA إلى تنسيق YOLO OBB باستخدام convert_dota_to_yolo_obb
الدالة من Ultralytics. يضمن هذا التحويل التوافق مع نماذج Ultralytics YOLO، مما يتيح لك الاستفادة من إمكانات OBB لتحسين الكشف عن الكائنات. إليك مثال سريع:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")
سيعيد هذا البرنامج النصي تنسيق تعليقات DOTA التوضيحية الخاصة بك إلى تنسيق متوافق مع YOLO.
كيف يمكنني تدريب نموذج YOLO11 مع مربعات إحاطة موجهة (OBB) على مجموعة البيانات الخاصة بي؟
يتضمن تدريب نموذج YOLO11 باستخدام OBBs التأكد من أن مجموعة البيانات الخاصة بك بتنسيق YOLO OBB ثم استخدام Ultralytics API لتدريب النموذج. إليك مثال في كل من Python و CLI:
مثال
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640
يضمن ذلك أن نموذجك يستفيد من تعليقات OBB التفصيلية لتحسين دقة الاكتشاف.
ما هي مجموعات البيانات المدعومة حاليًا لتدريب OBB في نماذج Ultralytics YOLO؟
تدعم Ultralytics حاليًا مجموعات البيانات التالية لتدريب OBB:
- DOTA-v1: الإصدار الأول من مجموعة بيانات DOTA، التي توفر مجموعة شاملة من الصور الجوية مع مربعات إحاطة موجهة للكشف عن الكائنات.
- DOTA-v1.5: نسخة وسيطة من مجموعة بيانات DOTA، تقدم تعليقات توضيحية وتحسينات إضافية على DOTA-v1 لمهام الكشف عن الكائنات المحسنة.
- DOTA-v2: تتضمن مجموعة البيانات هذه 1.7 مليون مثيل مع مربعات إحاطة موجهة و 11268 صورة، مع التركيز في المقام الأول على الكشف عن الكائنات الجوية.
- DOTA8: مجموعة فرعية أصغر من 8 صور من مجموعة بيانات DOTA المستخدمة للاختبار وفحوصات التكامل المستمر (CI).
تم تصميم مجموعات البيانات هذه خصيصًا للسيناريوهات التي توفر فيها OBBs ميزة كبيرة، مثل تحليل صور الأقمار الصناعية والجوية.
هل يمكنني استخدام مجموعة البيانات الخاصة بي مع مربعات الإحاطة الموجهة لتدريب YOLO11، وإذا كان الأمر كذلك، فكيف؟
نعم، يمكنك استخدام مجموعة البيانات الخاصة بك مع مربعات الإحاطة الموجهة لتدريب YOLO11. تأكد من تحويل تعليقات توضيحية لمجموعة البيانات الخاصة بك إلى تنسيق YOLO OBB، والذي يتضمن تحديد مربعات الإحاطة بواسطة نقاط الزاوية الأربعة الخاصة بها. يمكنك بعد ذلك إنشاء ملف تكوين YAML يحدد مسارات مجموعة البيانات والفئات والتفاصيل الضرورية الأخرى. لمزيد من المعلومات حول إنشاء وتكوين مجموعات البيانات الخاصة بك، راجع قسم مجموعات البيانات المدعومة.