Ultralytics YOLO27:
Get Started

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

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

# ⁨تحميل نموذج YOLO26n-OBB مدرّب مسبقًا⁩
model = YOLO("yolo26n-obb.pt")

# ⁨تدريب النموذج على مجموعة بيانات DOTAv1⁩
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

مجموعات البيانات المدعومة#

تُدعم حاليًا مجموعات البيانات التالية التي تستخدم مربعات إحاطة موجّهة. كما تُستضاف معظم هذه المجموعات على منصة Ultralytics، حيث يمكنك استعراض الصور والتعليقات التوضيحية، والاطلاع على إحصاءات مجموعات البيانات، واستنساخها للتدريب السحابي.

  • DOTA-v1: الإصدار الأول من مجموعة بيانات DOTA، ويقدم مجموعة شاملة من الصور الجوية المزودة بمربعات إحاطة موجّهة لكشف الكائنات.
  • DOTA-v1.5: إصدار متوسط من مجموعة بيانات DOTA، يقدم تعليقات توضيحية إضافية وتحسينات على DOTA-v1 لدعم مهام كشف الكائنات بصورة أفضل.
  • DOTA-v2: الإصدار 2 من DOTA (مجموعة بيانات واسعة النطاق لكشف الكائنات في الصور الجوية)، ويركز على الكشف من المنظور الجوي، ويضم 1.7 مليون حالة و11,268 صورة مع مربعات إحاطة موجّهة.
  • DOTA8: مجموعة فرعية صغيرة من مجموعة بيانات DOTA الكاملة تضم 8 صور، ومناسبة لاختبار مسارات العمل وفحوص التكامل المستمر (CI) لتدريب OBB في مستودع ultralytics.
  • DOTA8 Multispectral: مجموعة فرعية تضم 8 صور بصيغة TIFF ذات 10 قنوات، لاختبار تدريب OBB متعدد الأطياف على منصة Ultralytics.
  • DOTA128: مجموعة فرعية من مجموعة بيانات DOTA تضم 128 صورة، مع وجود جميع الصور في مجلد التدريب (المستخدم للتدريب والتحقق معًا)، وتوفر توازنًا جيدًا بين الحجم والتنوع لاختبار نماذج 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، إذ تضمن توافقها مع تنسيق OBB الخاص بـUltralytics YOLO.

من الضروري التحقق من توافق مجموعة البيانات مع نموذجك والالتزام باصطلاحات التنسيق المطلوبة. وتُعد البنية السليمة لمجموعات البيانات عاملًا أساسيًا لتدريب نماذج فعالة لكشف الكائنات باستخدام مربعات الإحاطة الموجّهة.

الأسئلة الشائعة#

  • مربعات الإحاطة الموجّهة (OBB) هي نوع من التعليقات التوضيحية لمربعات الإحاطة، ويمكن تدويرها لتتوافق بصورة أدق مع الكائن المكتشف بدلًا من محاذاتها مع محاور الصورة فقط. ويكون ذلك مفيدًا خصوصًا في الصور الجوية أو صور الأقمار الصناعية، حيث قد لا تتوازى الكائنات مع محاور الصورة. في نماذج Ultralytics YOLO، تُمثّل مربعات OBB بنقاط زواياها الأربع بتنسيق 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 لتدريب النموذج. إليك مثالًا باستخدام Python وCLI:

    مثال
    from ultralytics import YOLO
    
    # ⁨أنشئ نموذج YOLO26n-OBB جديدًا من الصفر⁩
    model = YOLO("yolo26n-obb.yaml")
    
    # ⁨درّب النموذج على مجموعة البيانات المخصصة⁩
    results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)

    يضمن ذلك استفادة النموذج من تعليقات OBB التوضيحية التفصيلية لتحسين الدقة في الاكتشاف.

  • تدعم Ultralytics حاليًا مجموعات البيانات التالية لتدريب OBB:

    • DOTA-v1: الإصدار الأول من مجموعة بيانات DOTA، ويقدم مجموعة شاملة من الصور الجوية المزودة بمربعات إحاطة موجّهة لكشف الكائنات.
    • DOTA-v1.5: إصدار متوسط من مجموعة بيانات DOTA، يقدم تعليقات توضيحية إضافية وتحسينات على DOTA-v1 لدعم مهام كشف الكائنات بصورة أفضل.
    • DOTA-v2: تتضمن مجموعة البيانات هذه 1.7 مليون مثيل و11,268 صورة، مع تركيز أساسي على اكتشاف الأجسام الجوية باستخدام صناديق إحاطة موجهة.
    • DOTA8: مجموعة فرعية أصغر من مجموعة بيانات DOTA تضم 8 صور، وتُستخدم للاختبار وفحوصات التكامل المستمر (CI).
    • DOTA128: مجموعة فرعية تضم 128 صورة، جميعها في مجلد التدريب (وتُستخدم للتدريب والتحقق معًا)، وتوفر تنوعًا أكبر من DOTA8، مع بقائها سهلة الإدارة لتطوير نماذج OBB الأولية وتجربتها.

    صُممت مجموعات البيانات هذه للسيناريوهات التي توفر فيها OBBs ميزة كبيرة، مثل تحليل الصور الجوية وصور الأقمار الصناعية.

  • نعم، يمكنك استخدام مجموعة بياناتك الخاصة ذات صناديق الإحاطة الموجهة لتدريب YOLO26. تأكد من تحويل تعليقات مجموعة البيانات التوضيحية إلى تنسيق YOLO OBB، الذي يتطلب تحديد صناديق الإحاطة باستخدام نقاط زواياها الأربع. بعد ذلك، يمكنك إنشاء ملف إعدادات YAML لتحديد مسارات مجموعة البيانات والفئات والتفاصيل الأخرى اللازمة. لمزيد من المعلومات حول إنشاء مجموعات البيانات وإعدادها، راجع قسم مجموعات البيانات المدعومة.

التعليقات