Skip to main content

تقدير الوضعية

YOLO pose estimation with human body keypoint detection

تقدير الوضعية هو مهمة تتضمن تحديد مواقع نقاط معينة في الصورة، يشار إليها عادةً باسم النقاط الرئيسية. يمكن أن تمثل النقاط الرئيسية أجزاءً مختلفة من الكائن مثل المفاصل، أو العلامات المميزة، أو ميزات فريدة أخرى. يتم تمثيل مواقع النقاط الرئيسية عادةً كمجموعة من[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 نقطة رئيسية، تمثل كل منها جزءاً مختلفاً من جسم الإنسان. إليك مخطط تعيين كل فهرس إلى مفصل الجسم المقابل له:

  1. الأنف
  2. العين اليسرى
  3. العين اليمنى
  4. الأذن اليسرى
  5. الأذن اليمنى
  6. الكتف الأيسر
  7. الكتف الأيمن
  8. المرفق الأيسر
  9. المرفق الأيمن
  10. الرسغ الأيسر
  11. الرسغ الأيمن
  12. الورك الأيسر
  13. الورك الأيمن
  14. الركبة اليسرى
  15. الركبة اليمنى
  16. الكاحل الأيسر
  17. الكاحل الأيمن

النماذج

نماذج تقدير الوضعية المدربة مسبقاً من Ultralytics YOLO26 معروضة هنا. نماذج الكشف والتجزئة وتقدير الوضعية مدربة مسبقاً على مجموعة بيانات COCO، بينما نماذج التصنيف مدربة مسبقاً على مجموعة بيانات ImageNetImageNet

النماذجيتم التنزيل تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام الأول.

النموذجالحجم
(بالبكسل)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
السرعة
CPU ONNX
(ms)
السرعة
T4 TensorRT10
(ms)
المعلمات
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.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-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-pose.pbimgsz, batch, device
TF Litetfliteyolo26n-pose.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-pose_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz, batch, device
MNNmnnyolo26n-pose.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-pose_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-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. للحصول على قائمة كاملة وتفاصيل الأداء، تفضل بزيارة قسم النماذج.

التعليقات