Link to this sectionنظرة عامة على مجموعات بيانات تقدير الوضع#
Link to this sectionتنسيقات مجموعات البيانات المدعومة#
Link to this sectionتنسيق 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>
التنسيق مع رؤية النقاط الرئيسية (يتضمن الرؤية لكل نقطة)
<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> هي إحداثيات النقاط الرئيسية المُطبعة. قناة الرؤية اختيارية ولكنها مفيدة لمجموعات البيانات التي توضح الانسداد.
Link to this sectionتنسيق 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، ولا تعدل الآخرين مثل الأنف في هذا المثال).
Link to this sectionالاستخدام#
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)Link to this sectionمجموعات البيانات المدعومة#
يحدد هذا القسم مجموعات البيانات المتوافقة مع تنسيق Ultralytics YOLO والتي يمكن استخدامها لتدريب نماذج تقدير الوضع:
Link to this sectionCOCO-Pose#
- الوصف: COCO-Pose هي مجموعة بيانات واسعة النطاق لـ اكتشاف الكائنات، والتقسيم، وتقدير الوضع. وهي مجموعة فرعية من مجموعة بيانات COCO الشهيرة وتركز على تقدير وضع الإنسان. تتضمن COCO-Pose نقاطاً رئيسية متعددة لكل مثيل إنسان.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع نقاط رئيسية لأوضاع الإنسان.
- عدد الفئات: 1 (إنسان).
- النقاط الرئيسية: 17 نقطة رئيسية تشمل الأنف، العينين، الأذنين، الكتفين، المرفقين، الرسغين، الوركين، الركبتين، والكاحلين.
- الاستخدام: مناسب لتدريب نماذج تقدير وضع الإنسان.
- ملاحظات إضافية: مجموعة البيانات غنية ومتنوعة، وتحتوي على أكثر من 200 ألف صورة مصنفة.
- اقرأ المزيد عن COCO-Pose
Link to this sectionCOCO8-Pose#
- الوصف: Ultralytics COCO8-Pose هي مجموعة بيانات صغيرة ولكنها متعددة الاستخدامات لاكتشاف الوضع تتكون من أول 8 صور من مجموعة COCO train 2017، 4 للتدريب و 4 للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع نقاط رئيسية لأوضاع الإنسان.
- عدد الفئات: 1 (إنسان).
- النقاط الرئيسية: 17 نقطة رئيسية تشمل الأنف، العينين، الأذنين، الكتفين، المرفقين، الرسغين، الوركين، الركبتين، والكاحلين.
- الاستخدام: مناسب لاختبار وتصحيح نماذج اكتشاف الكائنات، أو لتجربة أساليب اكتشاف جديدة.
- ملاحظات إضافية: COCO8-Pose مثالية لفحوصات السلامة و فحوصات CI.
- اقرأ المزيد عن COCO8-Pose
Link to this sectionDog-Pose#
- الوصف: تحتوي مجموعة بيانات Dog Pose على 6,773 صورة للتدريب و 1,703 صورة للاختبار، مما يوفر مورداً متنوعاً وشاملاً لتقدير النقاط الرئيسية للكلاب.
- تنسيق التسمية: يتبع تنسيق Ultralytics YOLO، مع تعليقات توضيحية لنقاط رئيسية متعددة خاصة بتشريح الكلب.
- عدد الفئات: 1 (كلب).
- النقاط الرئيسية: تتضمن 24 نقطة رئيسية مصممة خصيصاً لأوضاع الكلاب، مثل الأطراف والمفاصل ومواضع الرأس.
- الاستخدام: مثالية لتدريب النماذج لتقدير أوضاع الكلاب في سيناريوهات مختلفة، من البحث إلى التطبيقات الواقعية.
- اقرأ المزيد عن Dog-Pose
Link to this sectionHand Keypoints#
- الوصف: تتكون مجموعة بيانات نقاط اليد الرئيسية من ما يقرب من 26 ألف صورة، مع تخصيص 18,776 صورة للتدريب و 7,992 للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO الموضح أعلاه، ولكن مع 21 نقطة رئيسية ليد الإنسان وبُعد للرؤية.
- عدد الفئات: 1 (يد).
- النقاط الرئيسية: 21 نقطة رئيسية.
- الاستخدام: رائعة لتقدير وضع يد الإنسان والتعرف على الإيماءات.
- اقرأ المزيد عن Hand Keypoints
Link to this sectionTiger-Pose#
- الوصف: تتكون مجموعة بيانات Tiger Pose من Ultralytics من 263 صورة مستمدة من مقطع فيديو على YouTube، حيث تم تخصيص 210 صور للتدريب و53 صورة للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع 12 نقطة رئيسية لوضع الحيوان ولا يوجد بُعد مرئي.
- عدد الفئات: 1 (نمر).
- النقاط الرئيسية: 12 نقطة رئيسية.
- الاستخدام: رائعة لوضع الحيوان أو أي وضع آخر لا يعتمد على الإنسان.
- اقرأ المزيد عن Tiger-Pose
Link to this sectionإضافة مجموعة البيانات الخاصة بك#
إذا كان لديك مجموعة البيانات الخاصة بك وترغب في استخدامها لتدريب نماذج تقدير الوضع باستخدام تنسيق Ultralytics YOLO، فتأكد من أنها تتبع التنسيق المحدد أعلاه تحت "تنسيق Ultralytics YOLO". قم بتحويل تعليقاتك التوضيحية إلى التنسيق المطلوب وحدد المسارات، وعدد الفئات، وأسماء الفئات في ملف تكوين YAML.
Link to this sectionأداة التحويل#
يوفر 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 ما إذا كان سيتم تضمين النقاط الرئيسية (لتقدير الوضع) في التسميات المحولة.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هو تنسيق Ultralytics YOLO لتقدير الوضع؟#
يتضمن تنسيق Ultralytics YOLO لمجموعات بيانات تقدير الوضع تسمية كل صورة بملف نصي مطابق. يخزن كل صف من الملف النصي معلومات حول مثيل كائن:
- فهرس فئة الكائن
- إحداثيات مركز الكائن (x و y مُطبعة)
- عرض وارتفاع الكائن (مُطبعان)
- إحداثيات النقاط الرئيسية للكائن (pxn و pyn مُطبعة)
بالنسبة للأوضاع ثنائية الأبعاد، تشمل النقاط الرئيسية إحداثيات x و y المُطبعة. مع بُعد الرؤية، تحتوي كل نقطة رئيسية أيضاً على علامة رؤية. لمزيد من التفاصيل، انظر تنسيق Ultralytics YOLO.
Link to this sectionكيف يمكنني استخدام مجموعة بيانات 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)
Link to this sectionكيف يمكنني إضافة مجموعة البيانات الخاصة بي لتقدير الوضع في 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)للحصول على الخطوات الكاملة، تحقق من قسم إضافة مجموعة البيانات الخاصة بك.
Link to this sectionما هو الغرض من ملف 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 لمجموعة البيانات.
Link to this sectionكيف يمكنني تحويل تسميات مجموعة بيانات 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. لمزيد من التفاصيل، راجع قسم أداة التحويل ودليل المعالجة المسبقة للبيانات.