نظرة عامة على مجموعات بيانات تقدير الوضع
تنسيقات مجموعات البيانات المدعومة
تنسيق Ultralytics YOLO
تنسيق تسمية مجموعة البيانات المستخدم لتدريب نماذج الوضع في YOLO هو كما يلي:
- ملف نصي واحد لكل صورة: لكل صورة في مجموعة البيانات ملف نصي مطابق له نفس اسم ملف الصورة وامتداد ".txt".
- صف واحد لكل كائن: يتوافق كل صف في الملف النصي مع مثيل كائن واحد في الصورة.
- معلومات الكائن لكل صف: يحتوي كل صف على المعلومات التالية حول مثيل الكائن:
- فهرس فئة الكائن: عدد صحيح يمثل فئة الكائن (على سبيل المثال، 0 للشخص، 1 للسيارة، إلخ).
- إحداثيات مركز الكائن: إحداثيات x و y لمركز الكائن، مُطبعة لتكون بين 0 و 1.
- عرض وارتفاع الكائن: عرض وارتفاع الكائن، مُطبعان ليكونان بين 0 و 1.
- إحداثيات النقاط الرئيسية للكائن: النقاط الرئيسية للكائن، مُطبعة لتكون بين 0 و 1.
فيما يلي مثال على تنسيق التسمية لمهمة تقدير الوضع:
التنسيق مع نقاط رئيسية ثنائية الأبعاد
<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>
التنسيق مع نقاط رئيسية ثلاثية الأبعاد (يتضمن الرؤية لكل نقطة)
<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <pn-visibility>
في هذا التنسيق، <class-index> هو مؤشر الفئة للكائن، <x> <y> <width> <height> هي الإحداثيات المُطبعة لـ bbox، و <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 والتي يمكن استخدامها للتدريب تقدير الوضع (pose estimation) نماذج:
COCO-Pose
- الوصف (Description): COCO-Pose هي مجموعة بيانات واسعة النطاق لـ اكتشاف الكائنات، التجزئة، وتقدير الوضع. وهي مجموعة فرعية من مجموعة بيانات COCO الشهيرة وتركز على تقدير وضع الإنسان. تتضمن COCO-Pose نقاطًا رئيسية متعددة لكل حالة بشرية.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO الموضح أعلاه، مع نقاط رئيسية لأوضاع الإنسان.
- عدد الفئات: 1 (إنسان).
- Keypoints: 17 نقطة رئيسية تشمل الأنف، العيون، الآذان، الأكتاف، المرفقين، الرسغين، الوركين، الركبتين، والكاحلين.
- الاستخدام: مناسبة لتدريب نماذج تقدير وضع الإنسان.
- ملاحظات إضافية: مجموعة البيانات غنية ومتنوعة، وتحتوي على أكثر من 200 ألف صورة مصنفة.
- اقرأ المزيد عن COCO-Pose
COCO8-Pose
- الوصف (Description): Ultralytics COCO8-Pose هي مجموعة بيانات صغيرة ومتعددة الاستخدامات للكشف عن الوضع، تتكون من أول 8 صور من مجموعة COCO train 2017، 4 للتدريب و 4 للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO الموضح أعلاه، مع نقاط رئيسية لأوضاع الإنسان.
- عدد الفئات: 1 (إنسان).
- Keypoints: 17 نقطة رئيسية تشمل الأنف، العيون، الآذان، الأكتاف، المرفقين، الرسغين، الوركين، الركبتين، والكاحلين.
- الاستخدام: مناسبة لاختبار وتصحيح نماذج كشف الكائنات، أو لتجربة أساليب كشف جديدة.
- ملاحظات إضافية: COCO8-Pose مثالية لفحوصات السلامة و CI checks.
- اقرأ المزيد عن COCO8-Pose
Dog-Pose
- الوصف (Description): تحتوي مجموعة بيانات Dog Pose على 6,773 صورة للتدريب و 1,703 للتحقق من الصحة، مما يوفر موردًا متنوعًا وشاملًا لتقدير النقاط الرئيسية للكلاب.
- تنسيق التسمية: تتبع تنسيق Ultralytics YOLO، مع تعليقات توضيحية لنقاط رئيسية متعددة خاصة بتشريح الكلب.
- عدد الفئات: 1 (كلب).
- Keypoints: تتضمن 24 نقطة رئيسية مصممة خصيصًا لأوضاع الكلاب، مثل الأطراف، المفاصل، ومواضع الرأس.
- الاستخدام: مثالية لتدريب النماذج لتقدير أوضاع الكلاب في سيناريوهات مختلفة، من البحث إلى real-world applications.
- اقرأ المزيد عن Dog-Pose
Hand Keypoints
- الوصف (Description): تتكون مجموعة بيانات نقاط اليد الرئيسية من ما يقرب من 26 ألف صورة، مع تخصيص 18,776 صورة للتدريب و 7,992 للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO الموضح أعلاه، ولكن مع 21 نقطة رئيسية ليد الإنسان وبُعد للرؤية.
- عدد الفئات: 1 (يد).
- Keypoints: 21 نقطة رئيسية.
- الاستخدام: رائعة لتقدير وضع يد الإنسان و gesture recognition.
- اقرأ المزيد عن Hand Keypoints
Tiger-Pose
- الوصف (Description): تتكون Ultralytics مجموعة بيانات Tiger Pose من 263 صورة مأخوذة من YouTube video، مع تخصيص 210 صورة للتدريب و 53 للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع 12 نقطة رئيسية لوضع الحيوان وبدون بُعد للرؤية.
- عدد الفئات: 1 (نمر).
- Keypoints: 12 نقطة رئيسية.
- الاستخدام: رائعة لوضع الحيوانات أو أي وضع آخر لا يعتمد على الإنسان.
- اقرأ المزيد عن Tiger-Pose
إضافة مجموعة البيانات الخاصة بك
إذا كان لديك مجموعة بيانات خاصة بك وترغب في استخدامها لتدريب نماذج تقدير الوضع بتنسيق 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 لمجموعات بيانات تقدير الوضع تصنيف كل صورة بملف نصي مطابق. يخزن كل سطر من الملف النصي معلومات حول حالة كائن واحد:
- مؤشر فئة الكائن
- إحداثيات مركز الكائن (x و y مُطبعان)
- عرض وارتفاع الكائن (مُطبعان)
- إحداثيات النقاط الرئيسية للكائن (pxn و pyn مُطبعان)
بالنسبة للأوضاع ثنائية الأبعاد، تتضمن النقاط الرئيسية إحداثيات البكسل. بالنسبة للأوضاع ثلاثية الأبعاد، تحتوي كل نقطة رئيسية أيضًا على علامة رؤية. لمزيد من التفاصيل، راجع تنسيق Ultralytics YOLO.
كيف أستخدم مجموعة بيانات 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)لمزيد من المعلومات، قم بزيارة COCO-Pose و trainكيف يمكنني استخدام YOLOv8 لمهام الرؤية الحاسوبية المختلفة؟
كيف يمكنني إضافة مجموعة البيانات الخاصة بي لتقدير الوضع في 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)للحصول على الخطوات الكاملة، تحقق من إضافة مجموعة البيانات الخاصة بك.
ما هو الغرض من ملف 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 في تنسيق 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. لمزيد من التفاصيل، راجع أداة التحويل القسم و data preprocessing guide.