Ultralytics YOLO27:

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

# Load a pretrained YOLO26n-OBB model
model = YOLO("yolo26n-obb.pt")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

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

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

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

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

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

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

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

التعليقات