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

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

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

تنسيق Ultralytics YOLO

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

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

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

تنسيق مع Dim = 2

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

تنسيق مع Dim = 3

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

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

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

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

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← 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: 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
names:
  0: person

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

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

COCO8-Pose

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

وضعية النمر

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

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

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

Dog-Pose (وضعية الكلب)

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

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

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

أداة التحويل

توفر Ultralytics أداة تحويل ملائمة لتحويل التصنيفات من تنسيق COCO dataset الشائع إلى تنسيق 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 لمجموعات بيانات تقدير الوضع وضع علامات على كل صورة بملف نصي مطابق. يخزن كل صف من الملف النصي معلومات حول مثيل كائن:

  • فهرس فئة الكائن
  • إحداثيات مركز الكائن (x و y مطبعة)
  • عرض وارتفاع الكائن (تم تطبيعه)
  • إحداثيات النقاط الرئيسية للكائن (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:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← 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: 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
names:
  0: person

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

اقرأ المزيد عن إنشاء ملفات تهيئة YAML في تنسيق 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. للحصول على التفاصيل، راجع قسم أداة التحويل و دليل المعالجة المسبقة للبيانات.



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 19 يومًا

تعليقات