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 و test إلى صور التدريب والتحقق والاختبار. يقبل كل منها دليلاً (directory)، أو قائمة من الأدلة، أو ملف *.txt يسرد مسار صورة واحدة في كل سطر (المسارات التي تبدأ بـ ./ يتم حلها نسبياً إلى موقع ملف *.txt). يعد ملف *.txt مفيداً للتدريب على مجموعة فرعية من دليل ما، أو لتخطي الصور غير المصنفة، أو لدمج صور من مصادر متعددة في تقسيم واحد.
path: datasets/coco8-pose # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: personnames هو قاموس لأسماء الفئات. يجب أن يطابق ترتيب الأسماء ترتيب فهارس فئات الكائنات في ملفات مجموعة بيانات YOLO.
(اختياري) يقوم flip_idx بتعيين كل نقطة رئيسية إلى صورتها المعكوسة، بحيث يحافظ التكبير عن طريق القلب الأفقي على اتساق اليمين واليسار في الهياكل المتماثلة مثل جسم الإنسان أو الوجه. بالنسبة لخمس معالم وجه مفهرسة كـ [العين اليسرى، العين اليمنى، الأنف، الفم الأيسر، الفم الأيمن] = [0، 1، 2، 3، 4]، فإن flip_idx هو [1، 0، 2، 4، 3]: تتبادل أزواج اليسار-اليمين 0-1 و 3-4 أماكنها، ويحتفظ الأنف بمؤشره الخاص.
(اختياري) تقوم kpt_oks_sigmas بتعيين قيم sigma مخصصة لكل نقطة رئيسية (per-keypoint) لـ OKS تُستخدم أثناء التحقق من الصحة، على سبيل المثال [0.26, 0.25, 0.25, ...]. يجب أن يساوي طول القائمة عدد النقاط الرئيسية N من kpt_shape، ويجب أن تكون كل قيمة موجبة. عند حذفها، يتم استخدام قيم COCO ذات الـ 17 نقطة رئيسية لـ kpt_shape: [17, 3]، وقيمة موحدة قدرها 1/N في الحالات الأخرى.
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 2017 التي تحتوي على أشخاص محددين بنقاط رئيسية.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO كما هو موضح أعلاه، مع نقاط رئيسية لأوضاع الإنسان.
- عدد الفئات: 1 (شخص).
- النقاط الرئيسية: 17 نوعاً من النقاط الرئيسية بما في ذلك الأنف، العينان، الأذنان، الكتفان، المرفقان، الرسغان، الوركان، الركبتان، والكاحلان، ولكل منها بُعد للرؤية.
- الاستخدام: مناسب لتدريب نماذج تقدير وضع الإنسان.
- ملاحظات إضافية: تعتمد مجموعة البيانات على تحدي COCO Keypoints 2017: 58,945 صورة مشروحة بـ 156,165 شخصاً.
- اقرأ المزيد عن 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#
- الوصف: تحتوي مجموعة بيانات Ultralytics Dog-Pose على 6,773 صورة للتدريب و1,703 صورة للتحقق من الصحة لتقدير النقاط الرئيسية للكلاب.
- تنسيق التسمية: يتبع تنسيق Ultralytics YOLO، مع تعليقات توضيحية لنقاط رئيسية متعددة خاصة بتشريح الكلب.
- عدد الفئات: 1 (كلب).
- النقاط الرئيسية: 24 نقطة رئيسية، لكل منها بُعد للرؤية، مصممة خصيصاً لوضعيات الكلاب مثل الأطراف، المفاصل، ومواضع الرأس.
- الاستخدام: مثالية لتدريب النماذج لتقدير أوضاع الكلاب في سيناريوهات مختلفة، من البحث إلى التطبيقات الواقعية.
- ملاحظات إضافية: تم استقاء صور المصدر من Stanford Dogs Dataset.
- اقرأ المزيد عن Dog-Pose
Link to this sectionHand Keypoints#
- الوصف: تتكون مجموعة بيانات Ultralytics Hand Keypoints من 26,768 صورة، مع تخصيص 18,776 للتدريب و7,992 للتحقق من الصحة.
- تنسيق التسمية: نفس تنسيق Ultralytics YOLO الموضح أعلاه، ولكن مع 21 نقطة رئيسية ليد الإنسان وبُعد للرؤية.
- عدد الفئات: 1 (يد).
- النقاط الرئيسية: 21 نقطة رئيسية.
- الاستخدام: رائعة لتقدير وضع يد الإنسان والتعرف على الإيماءات.
- ملاحظات إضافية: تم إنشاء تعليقات النقاط الرئيسية باستخدام Google MediaPipe لضمان اتساق التصنيف.
- اقرأ المزيد عن Hand Keypoints
Link to this sectionTiger-Pose#
- الوصف: تتكون مجموعة بيانات Ultralytics Tiger-Pose من 263 صورة مأخوذة من فيديو YouTube، مع تخصيص 210 صورة للتدريب و53 للتحقق من الصحة.
- تنسيق التسميات: نفس تنسيق Ultralytics YOLO الموضح أعلاه، مع 12 نقطة رئيسية لوضعية الحيوان وبدون بُعد للرؤية.
- عدد الفئات: 1 (نمر).
- النقاط الرئيسية: 12 نقطة رئيسية.
- الاستخدام: رائعة لوضع الحيوان أو أي وضع آخر لا يعتمد على الإنسان.
- ملاحظات إضافية: تم الإصدار بموجب AGPL-3.0 License.
- اقرأ المزيد عن Tiger-Pose
Link to this sectionإضافة مجموعة البيانات الخاصة بك#
إذا كان لديك مجموعة البيانات الخاصة بك وترغب في استخدامها لتدريب نماذج تقدير الوضع باستخدام تنسيق Ultralytics YOLO، فتأكد من أنها تتبع التنسيق المحدد أعلاه تحت "تنسيق Ultralytics YOLO". قم بتحويل تعليقاتك التوضيحية إلى التنسيق المطلوب وحدد المسارات، وعدد الفئات، وأسماء الفئات في ملف تكوين YAML.
لتخطي خطوة التحويل تماماً، تتيح لك Ultralytics Platform تحميل صور خام، وتحديد النقاط الرئيسية في المتصفح، والتدريب على مجموعة البيانات الناتجة مباشرة.
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.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 للحصول على قائمة الوسائط الكاملة.
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. لمزيد من التفاصيل، راجع قسم أداة التحويل ودليل معالجة البيانات مسبقًا.