رؤية YOLO 2026:

نظرة عامة على مجموعات بيانات الصناديق المحيطة الموجهة (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) والعرض والارتفاع والدوران الخاصة بـ الإطار المحيط.

Oriented bounding box annotation format examples

مثال على ملف تسميات *.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/cfg/datasets/dota8.yaml
# 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 مفيداً للتدريب على مجموعة فرعية من دليل ما، أو تخطي الصور غير المسماة، أو دمج الصور من مصادر متعددة في مجموعة تقسيم واحدة.

مسارات الصور كملف `*.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.

التعليقات