تقدير الوضع

تقدير وضعية الجسم هو مهمة تتضمن تحديد موقع نقاط معينة في الصورة، والتي يشار إليها عادةً باسم النقاط الرئيسية. يمكن أن تمثل النقاط الرئيسية أجزاء مختلفة من الكائن مثل المفاصل أو المعالم أو الميزات المميزة الأخرى. يتم تمثيل مواقع النقاط الرئيسية عادةً كمجموعة من ثنائية الأبعاد [x, y] أو ثلاثية الأبعاد [x, y, visible] الإحداثيات.
ناتج نموذج تقدير وضعية الجسم هو مجموعة من النقاط التي تمثل النقاط الرئيسية على كائن في الصورة، عادةً جنبًا إلى جنب مع درجات الثقة لكل نقطة. يعتبر تقدير وضعية الجسم خيارًا جيدًا عندما تحتاج إلى تحديد أجزاء معينة من كائن في مشهد، وموقعها بالنسبة لبعضها البعض.
شاهد: برنامج تعليمي لتقدير الوضعيات باستخدام Ultralytics YOLO26 | تتبع الكائنات في الوقت الفعلي واكتشاف وضعيات الإنسان
نصيحة
YOLO26 pose تستخدم نماذج -pose لاحقة، أي، yolo26n-pose.pt. يتم تدريب هذه النماذج على نقاط COCO الرئيسية وهي مناسبة لمجموعة متنوعة من مهام تقدير وضعية الجسم.
في نموذج YOLO26 الافتراضي للوضعيات، توجد 17 نقطة رئيسية (keypoints)، يمثل كل منها جزءًا مختلفًا من جسم الإنسان. إليك تعيين كل فهرس إلى مفصل الجسم الخاص به:
- الأنف
- العين اليسرى
- العين اليمنى
- الأذن اليسرى
- الأذن اليمنى
- الكتف الأيسر
- الكتف الأيمن
- الكوع الأيسر
- المرفق الأيمن
- المعصم الأيسر
- المعصم الأيمن
- الورك الأيسر
- الورك الأيمن
- الركبة اليسرى
- الركبة اليمنى
- الكاحل الأيسر
- الكاحل الأيمن
النماذج
تُعرض هنا نماذج Pose المدربة مسبقًا من Ultralytics YOLO26. نماذج detect و segment و Pose مدربة مسبقًا على مجموعة بيانات COCO، بينما نماذج classify مدربة مسبقًا على مجموعة بيانات ImageNet.
يتم تنزيل النماذج تلقائيًا من أحدث إصدارات Ultralytics release عند الاستخدام الأول.
| النموذج | الحجم (بالبكسل) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (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 val2017 مجموعة البيانات.
إعادة الإنتاج بواسطةyolo val pose data=coco-pose.yaml device=0 - السرعة تم حسابه على صور COCO val باستخدام Amazon EC2 P4d مثيل.
إعادة الإنتاج بواسطةyolo val pose data=coco-pose.yaml batch=1 device=0|cpu
تدريب
تدريب نموذج 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)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.yaml pretrained=yolo26n-pose.pt epochs=100 imgsz=640
تنسيق مجموعة البيانات
يمكن العثور على تنسيق مجموعة بيانات وضع YOLO بالتفصيل في دليل مجموعة البيانات. لتحويل مجموعة البيانات الحالية الخاصة بك من تنسيقات أخرى (مثل COCO وما إلى ذلك) إلى تنسيق YOLO، يرجى استخدام أداة JSON2YOLO بواسطة Ultralytics.
بالنسبة لمهام تقدير الوضع المخصصة، يمكنك أيضًا استكشاف مجموعات البيانات المتخصصة مثل 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.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
yolo pose val model=yolo26n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model
توقع
استخدم نموذج 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)
yolo pose predict model=yolo26n-pose.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model
اطلع على التفاصيل الكاملة predict لأوضاع التشغيل في صفحة توقع التنبؤ.
تصدير
تصدير نموذج 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")
yolo export model=yolo26n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
تنسيقات تصدير 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, 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, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, 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, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
اطلع على التفاصيل الكاملة export التفاصيل في تصدير التنبؤ.
الأسئلة الشائعة
ما هو تقدير الوضعيات باستخدام Ultralytics YOLO26 وكيف يعمل؟
يتضمن تقدير الوضع باستخدام Ultralytics YOLO26 تحديد نقاط محددة، تُعرف باسم النقاط الرئيسية (keypoints)، في الصورة. تمثل هذه النقاط الرئيسية عادةً المفاصل أو الميزات الهامة الأخرى للكائن. يتضمن الإخراج [x, y] إحداثيات ونقاط ثقة لكل نقطة. تم تصميم نماذج YOLO26-pose خصيصًا لهذه المهمة وتستخدم -pose لاحقة، مثل yolo26n-pose.pt. يتم تدريب هذه النماذج مسبقًا على مجموعات بيانات مثل نقاط COCO الرئيسية ويمكن استخدامها لمهام تقدير الوضعية المختلفة. لمزيد من المعلومات، قم بزيارة صفحة تقدير الوضعية.
كيف يمكنني تدريب نموذج 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
لمزيد من المعلومات، قم بزيارة قسم Val.
هل يمكنني تصدير نموذج 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 نماذج Pose مدربة مسبقًا متنوعة مثل YOLO26n-pose و YOLO26s-pose و YOLO26m-pose، وغيرها. تختلف هذه النماذج في الحجم والدقة (mAP) والسرعة. على سبيل المثال، يحقق نموذج YOLO26n-pose قيمة mAPpose50-95 تبلغ 50.0 و mAPpose50 تبلغ 81.0. للحصول على قائمة كاملة وتفاصيل الأداء، قم بزيارة قسم النماذج.