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

نظرة عامة على مجموعات بيانات تقدير الوضع

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

Ultralytics YOLO تنسيق

تنسيق تسمية مجموعة البيانات المستخدم للتدريب YOLO تشكل النماذج على النحو التالي:

  1. ملف نصي واحد لكل صورة: تحتوي كل صورة في مجموعة البيانات على ملف نصي مطابق بنفس اسم ملف الصورة والامتداد ".txt".
  2. صف واحد لكل كائن: يتوافق كل صف في الملف النصي مع مثيل كائن واحد في الصورة.
  3. معلومات الكائن لكل صف: يحتوي كل صف على المعلومات التالية حول مثيل الكائن:
    • فهرس فئة الكائن: عدد صحيح يمثل فئة الكائن (على سبيل المثال ، 0 للشخص ، 1 للسيارة ، إلخ).
    • إحداثيات مركز الكائن: إحداثيات x و y لمركز الكائن ، تمت تسويتها لتكون بين 0 و 1.
    • عرض الكائن وارتفاعه: عرض الكائن وارتفاعه ، تم تسويته ليكون بين 0 و 1.
    • إحداثيات النقطة الرئيسية للكائن: النقاط الرئيسية للكائن ، تمت تسويتها لتكون بين 0 و 1.

فيما يلي مثال على تنسيق التسمية لمهمة تقدير الوضع:

التنسيق مع خافت = 2

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

التنسيق مع خافت = 3

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>

في هذا التنسيق، <class-index> هو فهرس فئة الكائن ،<x> <y> <width> <height> إحداثيات المربع المحيط، و <px1> <py1> <px2> <py2> ... <pxn> <pyn> هي إحداثيات البكسل للنقاط الرئيسية. الإحداثيات مفصولة بمسافات.

تنسيق YAML لمجموعة البيانات

ال Ultralytics يستخدم إطار العمل تنسيق ملف YAML لتحديد تكوين مجموعة البيانات والنموذج لتدريب نماذج الكشف. فيما يلي مثال على تنسيق YAML المستخدم لتحديد مجموعة بيانات الكشف:

# 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: ../datasets/coco8-pose  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Keypoints
kpt_shape: [17, 3]  # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes dictionary
names:
  0: person

ال train و val تحدد الحقول المسارات إلى الدلائل التي تحتوي على صور التدريب والتحقق من الصحة، على التوالي.

names هو قاموس لأسماء الفئات. يجب أن يتطابق ترتيب الأسماء مع ترتيب فهارس فئة الكائن في YOLO ملفات مجموعة البيانات.

(اختياري) إذا كانت النقاط متماثلة ، فستحتاج إلى flip_idx ، مثل الجانب الأيسر الأيمن من الإنسان أو الوجه. على سبيل المثال ، إذا افترضنا خمس نقاط رئيسية لمعلم الوجه: [العين اليسرى ، العين اليمنى ، الأنف ، الفم الأيسر ، الفم الأيمن] ، والفهرس الأصلي هو [0 ، 1 ، 2 ، 3 ، 4] ، فإن flip_idx هو [1 ، 0 ، 2 ، 4 ، 3] (فقط استبدل الفهرس الأيسر الأيمن ، أي 0-1 و 3-4 ، ولا تعدل الآخرين مثل الأنف في هذا المثال).

استخدام

مثل

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

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

يوضح هذا القسم مجموعات البيانات المتوافقة مع Ultralytics YOLO شكل ويمكن استخدامها للتدريب نماذج تقدير الوضع:

كوكو بوز

  • الوصف: COCO-Pose عبارة عن مجموعة بيانات واسعة النطاق للكشف عن الكائنات وتقسيمها وتقديرها. إنها مجموعة فرعية من مجموعة بيانات COCO الشائعة وتركز على تقدير الوضع البشري. يتضمن COCO-Pose نقاط رئيسية متعددة لكل مثيل بشري.
  • تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه ، مع النقاط الرئيسية للأوضاع البشرية.
  • عدد الفصول: 1 (إنسان).
  • النقاط الرئيسية: 17 نقطة رئيسية بما في ذلك الأنف والعينين والأذنين والكتفين والمرفقين والمعصمين والوركين والركبتين والكاحلين.
  • الاستخدام: مناسبة لتدريب نماذج تقدير الوضع البشري.
  • ملاحظات إضافية: مجموعة البيانات غنية ومتنوعة ، وتحتوي على أكثر من 200 ألف صورة مصنفة.
  • اقرأ المزيد عن كوكو بوز

COCO8-بوز

  • الوصف: Ultralytics COCO8-Pose عبارة عن مجموعة بيانات صغيرة ولكنها متعددة الاستخدامات للكشف عن الوضع تتكون من أول 8 صور لمجموعة قطار COCO 2017 ، 4 للتدريب و 4 للتحقق من الصحة.
  • تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه ، مع النقاط الرئيسية للأوضاع البشرية.
  • عدد الفصول: 1 (إنسان).
  • النقاط الرئيسية: 17 نقطة رئيسية بما في ذلك الأنف والعينين والأذنين والكتفين والمرفقين والمعصمين والوركين والركبتين والكاحلين.
  • الاستخدام: مناسب لاختبار نماذج اكتشاف الكائنات وتصحيحها ، أو لتجربة أساليب الكشف الجديدة.
  • ملاحظات إضافية: COCO8-Pose مثالي لفحوصات السلامة وفحوصات CI.
  • اقرأ المزيد عن COCO8-Pose

النمر بوز

  • الوصف: Ultralytics تتكون مجموعة بيانات وضع هذه من 263 صورة مصدرها فيديو YouTube ، مع تخصيص 210 صورة للتدريب و 53 للتحقق من صحتها.
  • تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه ، مع 12 نقطة رئيسية لوضع وبدون بعد مرئي.
  • عدد الفصول: 1 (النمر).
  • النقاط الرئيسية: 12 نقطة رئيسية.
  • الاستخدام: عظيم لوضع أو أي وضع آخر لا يعتمد على الإنسان.
  • قراءة المزيد عن تايجر بوز

إضافة مجموعة البيانات الخاصة بك

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

أداة التحويل

Ultralytics يوفر أداة تحويل ملائمة لتحويل الملصقات من تنسيق مجموعة بيانات COCO الشهير إلى YOLO تنسيق:

مثل

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

يمكن استخدام أداة التحويل هذه لتحويل مجموعة بيانات COCO أو أي مجموعة بيانات بتنسيق COCO إلى Ultralytics YOLO تنسيق. ال use_keypoints تحدد المعلمة ما إذا كان سيتم تضمين النقاط الرئيسية (لتقدير الوضع) في التسميات المحولة.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (8)

التعليقات