YOLO Vision 2026:

تقدير الوضعية باستخدام Ultralytics YOLO#

Ultralytics YOLO pose estimation with human body keypoint detection

تقدير الوضعية هو مهمة تتضمن تحديد مواقع النقاط المحددة في الصورة، والتي يُشار إليها عادةً بالنقاط الرئيسية. يمكن أن تمثل النقاط الرئيسية أجزاء مختلفة من الكائن مثل المفاصل، أو المعالم، أو غيرها من الميزات المميزة. عادةً ما يتم تمثيل مواقع النقاط الرئيسية كمجموعة من إحداثيات [x, y] ثنائية الأبعاد، اختياريًا مع علامة رؤية [x, y, visible].

مخرجات نموذج تقدير الوضعية هي مجموعة من النقاط التي تمثل النقاط الرئيسية لكائن ما في الصورة، وعادة ما تكون مصحوبة بنقاط ثقة (confidence scores) لكل نقطة. يعد تقدير الوضعية خياراً جيداً عندما تحتاج إلى تحديد أجزاء معينة من كائن في مشهد ما، وموقعها بالنسبة لبعضها البعض.



Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
نصيحة

تستخدم نماذج الوضعيات YOLO26 اللاحقة -pose، أي yolo26n-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، بينما تم تدريب النماذج الدلالية مسبقًا على Cityscapes، وتم تدريب نماذج التصنيف مسبقًا على مجموعة بيانات ImageNet.

يتم تنزيل النماذج تلقائيًا من أحدث إصدار لـ 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
  • تم حساب متوسط Speed عبر صور COCO val باستخدام مثيل Amazon EC2 P4d.
    يمكن إعادة الإنتاج بواسطة yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
  • قيم Params و FLOPs هي للنموذج المدمج بعد model.fuse()، والذي يدمج طبقات Conv و BatchNorm، وبالنسبة للنماذج من طرف إلى طرف (end2end)، يزيل رأس الكشف الإضافي من واحد إلى متعدد. تحتفظ نقاط التحقق المدربة مسبقاً ببنية التدريب الكاملة وقد تُظهر أعداداً أعلى.

التدريب#

قم بتدريب نموذج YOLO26-pose على مجموعة بيانات COCO8-pose. تُعد مجموعة بيانات COCO8-pose مجموعة بيانات عينة صغيرة مثالية لاختبار وتصحيح أخطاء نماذج تقدير الوضعية الخاصة بك.

مثال
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 الكاملة في صفحة التدريب. يمكن أيضًا تدريب نماذج الوضعيات باستخدام التدريب السحابي لنظام Ultralytics Platform.

تنسيق مجموعة البيانات#

يمكن العثور على تفاصيل تنسيق مجموعة بيانات وضعيات YOLO بالتفصيل في دليل مجموعة البيانات. لتحويل مجموعة البيانات الحالية الخاصة بك من تنسیقات أخرى (مثل COCO وما إلى ذلك) إلى تنسيق YOLO، يرجى استخدام أداة JSON2YOLO بواسطة Ultralytics. يدعم توثيق المنصة Ultralytics Platform annotation أيضًا تسميات الوضعيات مع قوالب الهيكل العظمي المدمجة للأشخاص، والأيدي، والوجوه، وتخطيطات النقاط الرئيسية المخصصة.

لمهام تقدير الوضعية المخصصة، يمكنك أيضًا استكشاف مجموعات بيانات متخصصة مثل Tiger-Pose لتقدير وضعية الحيوانات، أو Hand Keypoints لتتبع الأيدي، أو Dog-Pose لتحليل وضعية الكلاب.

التحقق#

تحقق من دقة نموذج 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 مُدربًا لتشغيل التنبؤات على الصور. تتيح لك وضع التنبؤ إجراء الاستدلال على الصور أو مقاطع الفيديو أو التدفقات في الوقت الفعلي.

مثال
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 الكاملة في صفحة التنبؤ (Predict).

مخرجات النتائج#

يُرجع تقدير الوضعية كائن Results واحدًا لكل صورة. حقول التنبؤ الرئيسية هي result.keypoints لإحداثيات الوضعية و result.boxes للحالات المُكتشفة التي تنتمي إليها تلك النقاط الرئيسية.

السمة (Attribute)النوعالشكلالوصف
result.keypointsKeypoints(N)النقاط الرئيسية.
result.keypoints.datatorch.float32(N,K,2/3)x,y بالإضافة إلى إمكانية الرؤية/الثقة الاختيارية.
result.keypoints.xytorch.float32(N,K,2)النقاط الرئيسية للبكسل.
result.keypoints.xyntorch.float32(N,K,2)النقاط الرئيسية الطبيعية (Normalized).
result.boxesBoxes(N)مربعات المثيلات.

للحصول على حقول Results الخاصة بكل مهمة عبر كل مهمة، راجع قسم نتائج التنبؤ حسب المهمة (Predict Results by Task).

التصدير#

قم بتصدير نموذج 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النموذجالبيانات الوصفيةالوسائط (Arguments)
PyTorch-yolo26n-pose.pt-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz، quantize، dynamic، simplify، opset، nms، batch، data، fraction، device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz، quantize، dynamic، nms، batch، data، fraction، device
TensorRTengineyolo26n-pose.engineimgsz، quantize، dynamic، simplify، opset، workspace، nms، batch، data، fraction، device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz، keras، quantize، opset، nms، batch، data، fraction، device
TF GraphDefpbyolo26n-pose.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz، batch، device
MNNmnnyolo26n-pose.mnnimgsz، batch، dynamic، quantize، simplify، opset، nms، device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-pose_rknn_model/imgsz، batch، name، quantize، simplify، opset، data، fraction، device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz، batch، device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-pose_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-pose_qnn.onnximgsz، batch، name، quantize، simplify، opset، data، fraction، device
LiteRTlitertyolo26n-pose.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n-pose_hailo_model/imgsz، name، quantize، data، fraction، simplify، conf، iou
Huawei Ascendascendyolo26n-pose_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms

راجع تفاصيل export الكاملة في صفحة التصدير (Export).

الأسئلة الشائعة#

  • يتضمن تقدير الوضعية باستخدام Ultralytics YOLO26 تحديد نقاط محددة، تُعرف بالنقاط الرئيسية، في الصورة. عادةً ما تمثل هذه النقاط الرئيسية المفاصل أو الميزات الهامة الأخرى للكائن. يتضمن الناتج إحداثيات [x, y] ودرجات الثقة لكل نقطة. تم تصميم نماذج YOLO26-pose خصيصًا لهذه المهام وتستخدم اللاحقة -pose، مثل yolo26n-pose.pt. تم تدريب هذه النماذج مسبقًا على مجموعات بيانات مثل COCO keypoints ويمكن استخدامها لمهام تقدير الوضعية المختلفة. لمزيد من المعلومات، تفضل بزيارة صفحة تقدير الوضعية.

  • يتضمن تدريب نموذج 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 Platform لنهج خالٍ من التعليمات البرمجية لتدريب نماذج تقدير وضعية مخصصة.

  • يتضمن التحقق من نموذج 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

    لمزيد من المعلومات، تفضل بزيارة قسم التحقق Val Section.

  • نعم، يمكنك تصدير نموذج 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 نماذج وضعيات مُدربة مسبقًا مختلفة مثل YOLO26n-pose و YOLO26s-pose و YOLO26m-pose وغيرها. تختلف هذه النماذج في الحجم، والدقة (mAP)، والسرعة. على سبيل المثال، يحقق نموذج YOLO26n-pose قيمة mAPpose50-95 تبلغ 57.2 وقيمة mAPpose50 تبلغ 83.3. للحصول على قائمة كاملة وتفاصيل الأداء، تفضل بزيارة قسم النماذج.

التعليقات