Meet YOLO26: next-gen vision AI.

Link to this sectionتقدير وضعية الجسم#

YOLO pose estimation with human body keypoint detection

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

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



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

تستخدم نماذج YOLO26 pose اللاحقة -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. الكاحل الأيمن

Link to this sectionالنماذج#

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

Link to this sectionالتدريب#

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

Link to this sectionتنسيق مجموعة البيانات#

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

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

Link to this sectionالتحقق#

تحقق من دقة نموذج YOLO26n-pose المدرب على مجموعة بيانات COCO8-pose. لا حاجة إلى وسائط (arguments) حيث يحتفظ 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

Link to this sectionالتنبؤ#

استخدم نموذج 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 الكاملة في صفحة التنبؤ.

Link to this sectionمخرجات النتائج#

يعيد تقدير الوضعية كائناً واحداً من نوع 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 الخاصة بالمهمة عبر كل مهمة، راجع قسم نتائج التنبؤ حسب المهمة.

Link to this sectionالتصدير#

قم بتصدير نموذج YOLO26n للوضعية إلى تنسيق مختلف مثل 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, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, 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, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-pose_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-pose_qnn.onnximgsz, batch, name, int8, data, fraction, device

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

Link to this sectionالأسئلة الشائعة#

Link to this sectionما هو تقدير الوضعية باستخدام Ultralytics YOLO26 وكيف يعمل؟#

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

Link to this sectionكيف يمكنني تدريب نموذج 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 للحصول على نهج بدون كود لتدريب نماذج مخصصة لتقدير الوضعية.

Link to this sectionكيف يمكنني التحقق من صحة نموذج 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

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

Link to this sectionهل يمكنني تصدير نموذج 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")

راجع قسم التصدير لمزيد من التفاصيل. يمكن نشر النماذج المصدرة على أجهزة الحافة لـ تطبيقات الوقت الفعلي مثل تتبع اللياقة البدنية، أو التحليل الرياضي، أو الروبوتات.

Link to this sectionما هي نماذج Ultralytics YOLO26-pose المتاحة ومقاييس أدائها؟#

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

التعليقات