تخطي إلى المحتوى

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

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

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 .

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

الاستخدام

مثال على ذلك

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

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

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

كوكو-بوز

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

COCO8-وضعية COCO8

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

وضعية النمر

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

النقاط الرئيسية اليدوية

  • الوصف: تضم مجموعة بيانات وضعية النقاط الرئيسية لليد ما يقرب من 26 ألف صورة، مع تخصيص 18776 صورة للتدريب و7992 صورة للتحقق من الصحة.
  • تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، ولكن مع 21 نقطة رئيسية لليد البشرية والبعد المرئي.
  • عدد الفصول: 1 (يدوي).
  • النقاط الرئيسية 21 نقطة رئيسية.
  • الاستخدام: رائع لتقدير وضع اليد البشرية.
  • قراءة المزيد عن النقاط الرئيسية لليد

وضعية الكلب

  • الوصف: تحتوي مجموعة بيانات وضعية الكلب على ما يقرب من 6000 صورة، مما يوفر موردًا متنوعًا وشاملًا لتدريب نماذج تقدير وضعية الكلب والتحقق من صحتها.
  • تنسيق التسمية: يتبع تنسيق Ultralytics YOLO ، مع تعليقات توضيحية لنقاط رئيسية متعددة خاصة بتشريح الكلاب.
  • عدد الفصول: 1 (كلب).
  • النقاط الرئيسية: يتضمن 24 نقطة أساسية مصممة خصيصاً لوضعيات الكلاب، مثل الأطراف والمفاصل ووضعيات الرأس.
  • الاستخدام: مثالية لنماذج التدريب لتقدير وضعيات الكلاب في سيناريوهات مختلفة، بدءًا من الأبحاث وحتى التطبيقات الواقعية.
  • قراءة المزيد عن وضعية الكلب

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

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

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

ما هو تنسيق Ultralytics YOLO لتقدير الوضعية؟

يتضمن تنسيق Ultralytics YOLO الخاص بمجموعات بيانات تقدير الوضعية تسمية كل صورة بملف نصي مطابق. يخزن كل صف من الملف النصي معلومات حول مثيل كائن:

  • فهرس فئة الكائن
  • إحداثيات مركز الكائن (س و ص العاديين)
  • عرض الكائن وارتفاعه (طبيعي)
  • إحداثيات النقطة الرئيسية للكائن (الإحداثيات الطبيعية pxn و pyn)

بالنسبة للوضعيات ثنائية الأبعاد، تتضمن نقاط المفتاح إحداثيات البكسل. بالنسبة للوضعيات ثلاثية الأبعاد، تحتوي كل نقطة أساسية أيضًا على علامة رؤية. للمزيد من ال تفاصيل، راجع Ultralytics YOLO تنسيق .

كيف يمكنني استخدام مجموعة بيانات COCO-Pose مع Ultralytics YOLO ؟

لاستخدام مجموعة بيانات COCO-Pose مع Ultralytics YOLO :

  1. قم بتنزيل مجموعة البيانات وإعداد ملفات التسمية الخاصة بك بتنسيق YOLO .
  2. قم بإنشاء ملف تكوين YAML يحدد مسارات صور التدريب والتحقق من الصحة، وشكل نقطة المفتاح، وأسماء الفئات.
  3. استخدم ملف التكوين للتدريب:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")  # load pretrained model
    results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
    

    للمزيد من المعلومات، يرجى زيارة قسمي COCO-Pose وقسم التدريب.

كيف يمكنني إضافة مجموعة البيانات الخاصة بي لتقدير الوضعية في Ultralytics YOLO ؟

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

  1. قم بتحويل تعليقاتك التوضيحية إلى تنسيق Ultralytics YOLO .
  2. قم بإنشاء ملف تكوين YAML يحدد مسارات مجموعة البيانات وعدد الفئات وأسماء الفئات.
  3. استخدم ملف التكوين لتدريب النموذج الخاص بك:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
    

    للحصول على الخطوات الكاملة، راجع قسم إضافة مجموعة البيانات الخاصة بك.

ما هو الغرض من ملف مجموعة البيانات YAML في Ultralytics YOLO ؟

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

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
    0: person

اقرأ المزيد حول إنشاء ملفات تكوين YAML بتنسيق Dataset YAML.

كيف يمكنني تحويل تسميات مجموعة بيانات COCO إلى تنسيق Ultralytics YOLO لتقدير الوضعية؟

Ultralytics يوفر أداة تحويل لتحويل تسميات مجموعة بيانات COCO إلى تنسيق YOLO ، بما في ذلك معلومات النقاط الرئيسية:

from ultralytics.data.converter import convert_coco

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

تساعد هذه الأداة على دمج مجموعات بيانات COCO بسلاسة في مشاريع YOLO . للحصول على التفاصيل، راجع قسم أداة التحويل.

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 24 يومًا

التعليقات