تقدير الوضعية
تقدير الوضعية هو مهمة تتضمن تحديد مواقع نقاط معينة في الصورة، يشار إليها عادةً باسم النقاط الرئيسية. يمكن أن تمثل النقاط الرئيسية أجزاءً مختلفة من الكائن مثل المفاصل، أو العلامات المميزة، أو ميزات فريدة أخرى. يتم تمثيل مواقع النقاط الرئيسية عادةً كمجموعة من[x, y]إحداثيات 2D أو 3D[x, y, visible].
مخرجات نموذج تقدير الوضعية هي مجموعة من النقاط التي تمثل النقاط الرئيسية على كائن في الصورة، وعادة ما تكون مصحوبة بدرجات الثقة لكل نقطة. يعد تقدير الوضعية خياراً جيداً عندما تحتاج إلى تحديد أجزاء معينة من كائن في مشهد ما، ومواقعها بالنسبة لبعضها البعض.
Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
تستخدم نماذج YOLO26pose اللاحقة -pose، أي yolo26n-pose.pt*-pose.pt*. يتم تدريب هذه النماذج على مجموعة بيانات COCO keypoints وهي مناسبة لمجموعة متنوعة من مهام تقدير الوضعية.
في نموذج تقدير الوضعية الافتراضي YOLO26، توجد 17 نقطة رئيسية، تمثل كل منها جزءاً مختلفاً من جسم الإنسان. إليك مخطط تعيين كل فهرس إلى مفصل الجسم المقابل له:
- الأنف
- العين اليسرى
- العين اليمنى
- الأذن اليسرى
- الأذن اليمنى
- الكتف الأيسر
- الكتف الأيمن
- المرفق الأيسر
- المرفق الأيمن
- الرسغ الأيسر
- الرسغ الأيمن
- الورك الأيسر
- الورك الأيمن
- الركبة اليسرى
- الركبة اليمنى
- الكاحل الأيسر
- الكاحل الأيمن
النماذج
نماذج تقدير الوضعية المدربة مسبقاً من Ultralytics YOLO26 معروضة هنا. نماذج الكشف والتجزئة وتقدير الوضعية مدربة مسبقاً على مجموعة بيانات COCO، بينما نماذج التصنيف مدربة مسبقاً على مجموعة بيانات ImageNetImageNet
النماذجيتم التنزيل تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام الأول.
| النموذج | الحجم (بالبكسل) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | السرعة CPU ONNX (ms) | السرعة T4 TensorRT10 (ms) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
- mAPvalالقيم تخص نموذجاً واحداً بمقياس واحد على مجموعة بيانات COCO Keypoints val2017.
أعد الإنتاج عبرyolo val pose data=coco-pose.yaml device=0 - السرعةمُحسَب بمتوسط عبر صور التحقق من COCO باستخدام مثيل Amazon EC2 P4d.
أعد الإنتاج عبرyolo val pose data=coco-pose.yaml batch=1 device=0|cpu - البارامترات و FLOPs القيم مخصصة للنموذج المدمج بعد
model.fuse()، الذي يدمج طبقات Conv و BatchNorm، وبالنسبة للنماذج من النوع end2end، يقوم بإزالة رأس الكشف الإضافي من واحد إلى متعدد. نقاط التحقق المدربة مسبقاً تحتفظ بهيكلية التدريب الكاملة وقد تظهر أعداداً أعلى.
Train
قم بتدريب نموذج YOLO26-pose على مجموعة بيانات COCO8-pose. مجموعة بيانات COCO8-pose dataset هي مجموعة بيانات عينة صغيرة مثالية لاختبار وتصحيح نماذج تقدير الوضعية الخاصة بك.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-pose.yaml").load("yolo26n-pose.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)شاهد كامل trainتفاصيل نمط التدريب في صفحة Trainالتدريب (Train). يمكن أيضاً تدريب نماذج تقدير الوضعية على وحدات GPU سحابية من خلال منصة Ultralytics.
تنسيق مجموعة البيانات
يمكن العثور على تنسيق مجموعة بيانات YOLO للوضعية بالتفصيل في دليل مجموعات البيانات. لتحويل مجموعة بياناتك الحالية من تنسيقات أخرى (مثل COCOCOCOJSON2YOLO) إلى تنسيق YOLO، يرجى استخدام أداة من Ultralytics. منصة Ultralyticsتدعم Ultralytics أيضاً تعليقات تقدير الوضعية مع قوالب هيكل عظمي مدمجة للأشخاص، واليدين، والوجوه، وتخطيطات النقاط الرئيسية المخصصة.
لمهام تقدير الوضعية المخصصة، يمكنك أيضاً استكشاف مجموعات بيانات متخصصة مثل Tiger-Pose لتقدير وضعية الحيوانات، و Hand Keypoints لتتبع اليد، أو Dog-Pose لتحليل وضعية الكلاب.
Val
تحقق من صحة نموذج YOLO26n-pose المدرب الدقة على مجموعة بيانات COCO8-pose. لا حاجة إلى وسيطات حيث أن model بـ data والوسائط الخاصة بالتدريب كسمات للنموذج.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary for box with precision, recall, F1, TP, FP, and FN
metrics.pose.map # map50-95(P)
metrics.pose.map50 # map50(P)
metrics.pose.map75 # map75(P)
metrics.pose.maps # a list containing mAP50-95(P) for each category
metrics.pose.image_metrics # per-image metrics dictionary for pose with precision, recall, F1, TP, FP, and FNالتنبؤ
استخدم نموذج YOLO26n-pose مدرباً لتشغيل التنبؤات على الصور. وضع التنبؤ (predict mode) يتيح لك إجراء الاستدلال على الصور، أو مقاطع الفيديو، أو البث المباشر.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
xy = result.keypoints.xy # x and y coordinates
xyn = result.keypoints.xyn # normalized
kpts = result.keypoints.data # x, y, visibility (if available)شاهد كامل predictتفاصيل نمط التدريب في صفحة التنبؤ.
Export
تصدير نموذج YOLO26n Pose إلى تنسيق مختلف مثل ONNX أو CoreML، إلخ. يسمح لك هذا بنشر نموذجك على منصات وأجهزة متنوعة من أجل الاستدلال في الوقت الفعلي.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")تنسيقات تصدير YOLO26-pose المتاحة موجودة في الجدول أدناه. يمكنك التصدير إلى أي تنسيق باستخدام format وسيط، أي format='onnx' أو format='engine'. يمكنك التنبؤ أو التحقق مباشرة من النماذج المُصدرة، أي yolo predict model=yolo26n-pose.onnx. يتم عرض أمثلة الاستخدام لنموذجك بعد اكتمال التصدير.
| الصيغة | format الوسيط | النموذج | البيانات الوصفية | الوسائط |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-pose.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
شاهد كامل export تفاصيل في صفحة Export.
الأسئلة الشائعة (FAQ)
ما هو تقدير الوضع (Pose Estimation) باستخدام Ultralytics YOLO26 وكيف يعمل؟
يتضمن تقدير الوضع باستخدام Ultralytics YOLO26 تحديد نقاط محددة، تُعرف بالنقاط الرئيسية (keypoints)، في الصورة. تمثل هذه النقاط الرئيسية عادةً المفاصل أو سمات مهمة أخرى للكائن. يتضمن المخرجات [x, y] إحداثيات ودرجات الثقة لكل نقطة. تم تصميم نماذج YOLO26-pose خصيصاً لهذه المهمة وتستخدم اللاحقة -pose، مثل yolo26n-pose.pt. تم تدريب هذه النماذج مسبقاً على مجموعات بيانات مثل COCO keypoints ويمكن استخدامها لمهام تقدير الوضع المختلفة. لمزيد من المعلومات، تفضل بزيارة صفحة تقدير الوضع.
كيف يمكنني تدريب نموذج YOLO26-pose على مجموعة بيانات مخصصة؟
يتضمن تدريب نموذج YOLO26-pose على مجموعة بيانات مخصصة تحميل نموذج، سواء كان نموذجاً جديداً يتم تعريفه بواسطة ملف YAML أو نموذجاً مدرباً مسبقاً. يمكنك بعد ذلك بدء عملية التدريب باستخدام مجموعة البيانات والمعلمات المحددة الخاصة بك.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)للحصول على تفاصيل شاملة حول التدريب، راجع قسم التدريب. يمكنك أيضاً استخدام منصة Ultralytics لنهج التدريب بدون برمجة لنماذج تقدير الوضع المخصصة.
كيف يمكنني التحقق من صحة نموذج YOLO26-pose مدرب؟
تتضمن عملية التحقق من صحة نموذج YOLO26-pose تقييم دقته باستخدام نفس معلمات مجموعة البيانات التي تم الاحتفاظ بها أثناء التدريب. إليك مثال:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings rememberedلمزيد من المعلومات، قم بزيارةقسم التحقق.
هل يمكنني تصدير نموذج YOLO26-pose إلى تنسيقات أخرى، وكيف؟
نعم، يمكنك تصدير نموذج YOLO26-pose إلى تنسيقات متنوعة مثل ONNX و CoreML و TensorRT وغيرها. يمكن القيام بذلك باستخدام Python أو واجهة سطر الأوامر (CLI).
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")راجع قسم التصدير لمزيد من التفاصيل. يمكن نشر النماذج المصدرة على الأجهزة الطرفية من أجل التطبيقات في الوقت الفعلي مثل تتبع اللياقة البدنية، وتحليل الرياضة، أو الروبوتات.
ما هي نماذج Ultralytics YOLO26-pose المتاحة وما هي مقاييس أدائها؟
تقدم Ultralytics YOLO26 نماذج وضع مدربة مسبقاً متنوعة مثل YOLO26n-pose و YOLO26s-pose و YOLO26m-pose، من بين نماذج أخرى. تختلف هذه النماذج في الحجم والدقة (mAP) والسرعة. على سبيل المثال، يحقق نموذج YOLO26n-pose دقة mAPpose50-95 قدرها 50.0 ودقة mAPpose50 قدرها 81.0. للحصول على قائمة كاملة وتفاصيل الأداء، تفضل بزيارة قسم النماذج.