نظرة عامة على مجموعات بيانات تقدير وضعية الجسم
تنسيقات مجموعات البيانات المدعومة
تنسيق Ultralytics YOLO
تنسيق ملصق مجموعة البيانات المستخدم لتدريب نماذج وضعية الجسم YOLO هو كما يلي:
- ملف نصي واحد لكل صورة: لكل صورة في مجموعة البيانات ملف نصي مطابق يحمل نفس اسم ملف الصورة وامتداد ".txt".
- صف واحد لكل كائن: يتوافق كل صف في الملف النصي مع مثيل كائن واحد في الصورة.
- معلومات الكائن لكل صف: يحتوي كل صف على المعلومات التالية حول مثيل الكائن:
- فهرس فئة الكائن: عدد صحيح يمثل فئة الكائن (على سبيل المثال، 0 للشخص، 1 للسيارة، إلخ).
- إحداثيات مركز الكائن: إحداثيات x و y لمركز الكائن، تمت تسويتها لتكون بين 0 و 1.
- عرض وارتفاع الكائن: عرض وارتفاع الكائن، تمت تسويتهما ليكون بين 0 و 1.
- إحداثيات النقاط الرئيسية للكائن: النقاط الرئيسية للكائن، تمت تسويتها لتكون بين 0 و 1.
إليك مثال على تنسيق الملصق لمهمة تقدير وضعية الجسم:
تنسيق مع نقاط رئيسية ثنائية الأبعاد (2D)
<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>
تنسيق مع نقاط رئيسية ثلاثية الأبعاد (3D) (يتضمن الرؤية لكل نقطة)
<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <pn-visibility>
في هذا التنسيق، <class-index> هو فهرس الفئة للكائن، و <x> <y> <width> <height> هي الإحداثيات المسواة لـ bounding box، و <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
# Keypoint names per class
kpt_names:
0:
- nose
- left_eye
- right_eye
- left_ear
- right_ear
- left_shoulder
- right_shoulder
- left_elbow
- right_elbow
- left_wrist
- right_wrist
- left_hip
- right_hip
- left_knee
- right_knee
- left_ankle
- right_ankle
# 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("yolo26n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)مجموعات البيانات المدعومة
يوضح هذا القسم مجموعات البيانات المتوافقة مع تنسيق Ultralytics YOLO والتي يمكن استخدامها لتدريب نماذج تقدير وضعية الجسم:
COCO-Pose
- الوصف: COCO-Pose هي مجموعة بيانات واسعة النطاق لـ اكتشاف الكائنات، والتقطيع، وتقدير وضعية الجسم. وهي مجموعة فرعية من مجموعة بيانات COCO الشهيرة وتركز على تقدير وضعية جسم الإنسان. تتضمن COCO-Pose نقاطًا رئيسية متعددة لكل حالة بشرية.
- تنسيق الملصق: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع نقاط رئيسية لوضعيات جسم الإنسان.
- عدد الفئات: 1 (إنسان).
- النقاط الرئيسية: 17 نقطة رئيسية بما في ذلك الأنف، والعينان، والأذنان، والكتفان، والمرفقان، والمعصمان، والورك، والركبتان، والكاحلان.
- الاستخدام: مناسب لتدريب نماذج تقدير وضعية جسم الإنسان.
- ملاحظات إضافية: مجموعة البيانات غنية ومتنوعة، وتحتوي على أكثر من 200 ألف صورة مصنفة.
- اقرأ المزيد عن COCO-Pose
COCO8-Pose
- الوصف: Ultralytics COCO8-Pose هي مجموعة بيانات صغيرة ومتعددة الاستخدامات لاكتشاف الوضعية تتكون من أول 8 صور من مجموعة COCO train 2017، منها 4 للتدريب و 4 للتحقق من الصحة.
- تنسيق الملصق: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع نقاط رئيسية لوضعيات جسم الإنسان.
- عدد الفئات: 1 (إنسان).
- النقاط الرئيسية: 17 نقطة رئيسية بما في ذلك الأنف، والعينان، والأذنان، والكتفان، والمرفقان، والمعصمان، والورك، والركبتان، والكاحلان.
- الاستخدام: مناسبة لاختبار وتصحيح نماذج اكتشاف الكائنات، أو لتجربة طرق اكتشاف جديدة.
- ملاحظات إضافية: تعد COCO8-Pose مثالية لفحوصات السلامة و فحوصات CI.
- اقرأ المزيد عن COCO8-Pose
Dog-Pose
- الوصف: تحتوي مجموعة بيانات Dog Pose على 6,773 صورة تدريب و 1,703 صورة اختبار، مما يوفر موردًا متنوعًا وشاملًا لتقدير النقاط الرئيسية للكلاب.
- تنسيق الملصق: يتبع تنسيق Ultralytics YOLO، مع تعليقات توضيحية لنقاط رئيسية متعددة خاصة بتشريح الكلب.
- عدد الفئات: 1 (كلب).
- النقاط الرئيسية: تتضمن 24 نقطة رئيسية مصممة خصيصًا لوضعيات الكلاب، مثل الأطراف والمفاصل وأوضاع الرأس.
- الاستخدام: مثالية لتدريب النماذج لتقدير وضعيات الكلاب في سيناريوهات مختلفة، من الأبحاث إلى التطبيقات الواقعية.
- اقرأ المزيد عن Dog-Pose
Hand Keypoints
- الوصف: تتكون مجموعة بيانات نقاط اليد الرئيسية من حوالي 26 ألف صورة، مع تخصيص 18,776 صورة للتدريب و 7,992 للتحقق من الصحة.
- تنسيق الملصق: نفس تنسيق Ultralytics YOLO الموضح أعلاه، ولكن مع 21 نقطة رئيسية ليد الإنسان وبُعد للرؤية.
- عدد الفئات: 1 (يد).
- النقاط الرئيسية: 21 نقطة رئيسية.
- الاستخدام: رائعة لتقدير وضعية اليد البشرية و التعرف على الإيماءات.
- اقرأ المزيد عن Hand Keypoints
Tiger-Pose
- الوصف: تتكون مجموعة بيانات Ultralytics Tiger Pose من 263 صورة مأخوذة من مقطع فيديو على YouTube، مع تخصيص 210 صور للتدريب و 53 للتحقق من الصحة.
- تنسيق الملصق: نفس تنسيق Ultralytics YOLO الموضح أعلاه، مع 12 نقطة رئيسية لوضعية الحيوان وبدون بُعد مرئي.
- عدد الفئات: 1 (نمر).
- النقاط الرئيسية: 12 نقطة رئيسية.
- الاستخدام: رائعة لوضعية الحيوانات أو أي وضعية أخرى لا تعتمد على البشر.
- اقرأ المزيد عن Tiger-Pose
إضافة مجموعة بياناتك الخاصة
إذا كانت لديك مجموعة بيانات خاصة بك وترغب في استخدامها لتدريب نماذج تقدير وضعية الجسم باستخدام تنسيق Ultralytics YOLO، فتأكد من أنها تتبع التنسيق المحدد أعلاه تحت عنوان "Ultralytics YOLO format". قم بتحويل تعليقاتك التوضيحية إلى التنسيق المطلوب وحدد المسارات، وعدد الفئات، وأسماء الفئات في ملف تكوين 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 لمجموعات بيانات تقدير وضعية الجسم تصنيف كل صورة بملف نصي مطابق. يخزن كل سطر من الملف النصي معلومات حول حالة الكائن:
- فهرس فئة الكائن
- إحداثيات مركز الكائن (x و y مسواة)
- عرض وارتفاع الكائن (مسوى)
- إحداثيات النقاط الرئيسية للكائن (pxn و pyn مسواة)
بالنسبة للوضعيات ثنائية الأبعاد، تتضمن النقاط الرئيسية إحداثيات البكسل. بالنسبة للوضعيات ثلاثية الأبعاد، تحتوي كل نقطة رئيسية أيضًا على علامة رؤية. لمزيد من التفاصيل، راجع Ultralytics YOLO format.
كيف يمكنني استخدام مجموعة بيانات COCO-Pose مع Ultralytics YOLO؟
لاستخدام مجموعة بيانات COCO-Pose مع Ultralytics YOLO:
-
قم بتنزيل مجموعة البيانات وتجهيز ملفات الملصقات الخاصة بك بتنسيق YOLO.
-
قم بإنشاء ملف تكوين YAML يحدد مسارات صور التدريب والتحقق من الصحة، وشكل النقاط الرئيسية، وأسماء الفئات.
-
استخدم ملف التكوين للتدريب:
from ultralytics import YOLO model = YOLO("yolo26n-pose.pt") # load pretrained model results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
كيف يمكنني إضافة مجموعة بيانات خاصة بي لتقدير وضعية الجسم في Ultralytics YOLO؟
لإضافة مجموعة البيانات الخاصة بك:
-
قم بتحويل تعليقاتك التوضيحية إلى تنسيق Ultralytics YOLO.
-
قم بإنشاء ملف تكوين YAML يحدد مسارات مجموعة البيانات، وعدد الفئات، وأسماء الفئات.
-
استخدم ملف التكوين لتدريب نموذجك:
from ultralytics import YOLO model = YOLO("yolo26n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)للاطلاع على الخطوات الكاملة، تحقق من قسم Adding your own dataset.
ما هو الغرض من ملف 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
# Keypoint names per class
kpt_names:
0:
- nose
- left_eye
- right_eye
- left_ear
- right_ear
- left_shoulder
- right_shoulder
- left_elbow
- right_elbow
- left_wrist
- right_wrist
- left_hip
- right_hip
- left_knee
- right_knee
- left_ankle
- right_ankle
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zipاقرأ المزيد حول إنشاء ملفات تكوين YAML في Dataset YAML format.
كيف يمكنني تحويل ملصقات مجموعة بيانات 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. لمزيد من التفاصيل، راجع قسم Conversion Tool و دليل المعالجة المسبقة للبيانات.