نظرة عامة على مجموعات بيانات الصناديق المحيطة الموجهة (OBB)#
يتطلب تدريب نموذج دقيق لـ object detection باستخدام مربعات الإحاطة الموجهة (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 the DOTAv1 split) 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 (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: 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يقبل كل من train وval وtest دليلاً، أو قائمة أدلة، أو ملف *.txt يسرد مسار صورة واحداً لكل سطر (حيث تبدأ المسارات التي تبدأ بـ ./ كمسارات نسبية لملف *.txt). يعد ملف *.txt مفيداً للتدريب على مجموعة فرعية من دليل ما، أو تخطي الصور غير المسماة، أو دمج الصور من مصادر متعددة في مجموعة تقسيم واحدة.
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: planeالاستخدام#
لتدريب نموذج باستخدام تنسيقات OBB هذه:
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)مجموعات البيانات المدعومة#
حاليًا، يتم دعم مجموعات البيانات التالية التي تحتوي على صناديق محيطة موجهة:
- DOTA-v1: الإصدار الأول من مجموعة بيانات DOTA، والذي يوفر مجموعة شاملة من الصور الجوية مع مربعات إحاطة موجهة لاكتشاف الكائنات.
- DOTA-v1.5: إصدار وسيط من مجموعة بيانات DOTA، يقدم تعليقات توضيحية إضافية وتحسينات مقارنة بـ DOTA-v1 لمهام اكتشاف الكائنات المحسنة.
- DOTA-v2: الإصدار الثاني من DOTA (مجموعة بيانات واسعة النطاق لاكتشاف الكائنات في الصور الجوية)، يؤكد على الاكتشاف من منظومات جوية ويحتوي على مربعات إحاطة موجهة مع 1.7 مليون مثيل و11,268 صورة.
- DOTA8: مجموعة فرعية صغيرة مكونة من 8 صور من مجموعة بيانات DOTA الكاملة، وهي مناسبة لاختبار سير العمل وفحوصات التكامل المستمر (CI) لتدريب OBB في مستودع
ultralytics. - DOTA8 Multispectral: مجموعة فرعية مكونة من 8 صور و10 قنوات بصيغة TIFF لاختبار تدريب OBB متعدد الأطياف على منصة Ultralytics.
- DOTA128: مجموعة فرعية مكونة من 128 صورة من مجموعة بيانات DOTA مع جميع الصور في مجلد التدريب (تستخدم لكل من التدريب والتحقق)، مما يوفر توازناً جيداً بين الحجم والتنوع لاختبار نماذج OBB.
دمج مجموعة بيانات 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، يتم تمثيل OBBs بنقاط الزوايا الأربع الخاصة بها في تنسيق YOLO OBB. يتيح هذا اكتشافاً أكثر دقة للكائنات نظراً لأن مربعات الإحاطة يمكنها الدوران لتناسب الكائنات بشكل أفضل.
يمكنك تحويل تسميات مجموعة بيانات 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.
يتضمن تدريب نموذج YOLO26 مع OBBs التأكد من أن مجموعة بياناتك بتنسيق YOLO OBB ثم استخدام Ultralytics API لتدريب النموذج. إليك مثال بكل من Python و CLI:
مثالfrom ultralytics import YOLO # Create a new YOLO26n-OBB model from scratch model = YOLO("yolo26n-obb.yaml") # Train the model on the custom dataset results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)يضمن هذا أن نموذجك يستفيد من تعليقات OBB التفصيلية لتحسين accuracy الاكتشاف.
حاليًا، تدعم Ultralytics مجموعات البيانات التالية لتدريب OBB:
- DOTA-v1: الإصدار الأول من مجموعة بيانات DOTA، والذي يوفر مجموعة شاملة من الصور الجوية مع مربعات إحاطة موجهة لاكتشاف الكائنات.
- DOTA-v1.5: إصدار وسيط من مجموعة بيانات DOTA، يقدم تعليقات توضيحية إضافية وتحسينات مقارنة بـ DOTA-v1 لمهام اكتشاف الكائنات المحسنة.
- DOTA-v2: تتضمن مجموعة البيانات هذه 1.7 مليون مثيل مع مربعات إحاطة موجهة و11,268 صورة، مع التركيز بشكل أساسي على اكتشاف الكائنات الجوية.
- DOTA8: مجموعة فرعية أصغر مكونة من 8 صور من مجموعة بيانات DOTA تستخدم للاختبار وفحوصات continuous integration (CI).
- DOTA128: مجموعة فرعية مكونة من 128 صورة مع جميع الصور في مجلد التدريب (تستخدم لكل من التدريب والتحقق)، مما يوفر تنوعاً أكبر من DOTA8 مع الحفاظ على قابليتها للإدارة لتطوير وتجريب نموذج OBB الأولي.
تم تصميم مجموعات البيانات هذه للسيناريوهات التي توفر فيها OBBs ميزة كبيرة، مثل تحليل الصور الجوية وصور الأقمار الصناعية.
نعم، يمكنك استخدام مجموعة البيانات الخاصة بك مع مربعات إحاطة موجهة لتدريب YOLO26. تأكد من تحويل تعليقات مجموعة بياناتك إلى تنسيق YOLO OBB، والذي يتضمن تحديد مربعات الإحاطة بنقاط زواياها الأربع. يمكنك بعد ذلك إنشاء YAML configuration file يحدد مسارات مجموعة البيانات، والفئات، والتفاصيل الأخرى اللازمة. لمزيد من المعلومات حول إنشاء وتكوين مجموعات البيانات الخاصة بك، راجع قسم Supported Datasets.



