انتقل إلى المحتوى

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

أمثلة على تنسيق OBB

مثال على *.txt ملف التسمية للصورة أعلاه ، والذي يحتوي على كائن من الفئة 0 بتنسيق OBB ، يمكن أن يبدو مثل:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

استخدام

لتدريب نموذج باستخدام تنسيقات OBB هذه:

مثل

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the DOTAv2 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

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

حاليا، يتم دعم مجموعات البيانات التالية ذات المربعات المحيطة الموجهة:

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

كيف يمكنني تحويل تسميات مجموعة بيانات DOTA الحالية إلى تنسيق YOLO OBB للاستخدام مع Ultralytics YOLOv8 ؟

يمكنك تحويل تسميات مجموعة بيانات 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.

كيف يمكنني تدريب نموذج YOLOv8 باستخدام الصناديق المحدودة الموجهة (OBB) على مجموعة البيانات الخاصة بي؟

يتضمن تدريب نموذج YOLOv8 باستخدام OBBs التأكد من أن مجموعة البيانات الخاصة بك بتنسيق YOLO OBB ثم استخدام واجهة برمجة التطبيقات Ultralytics لتدريب النموذج. إليك مثال في كل من Python و CLI:

مثل

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the custom dataset
yolo detect train data=your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

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

ما هي مجموعات البيانات المدعومة حاليًا لتدريب OBB في نماذج Ultralytics YOLO ؟

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

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

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

هل يمكنني استخدام مجموعة البيانات الخاصة بي مع المربعات المحدودة الموجهة للتدريب YOLOv8 ، وإذا كان الأمر كذلك، كيف؟

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



تم الإنشاء 2023-11-12-2023، تم التحديث 2024-07-23
المؤلفون: جلين-جوتشر (11)

التعليقات