تقدير الوضعية
تقدير الوضعية هو مهمة تنطوي على تحديد موقع نقاط محددة في الصورة ، وعادةً ما يشار إليها بنقاط الوضوح. يمكن أن تمثل نقاط الوضوح أجزاءً مختلفةً من الكائن مثل المفاصل أو العلامات المميزة أو الميزات البارزة الأخرى. عادةً ما يتم تمثيل مواقع نقاط الوضوح كمجموعة من الإحداثيات 2D [x ، y]
أو 3D [x ، y ، visible]
.
يكون ناتج نموذج تقدير الوضعية مجموعة من النقاط التي تمثل نقاط الوضوح على كائن في الصورة ، عادةً مع نقاط الثقة لكل نقطة. تقدير الوضعية هو خيار جيد عندما تحتاج إلى تحديد أجزاء محددة من كائن في مشهد، وموقعها بالنسبة لبعضها البعض.
شاهد: تقدير الوضعية مع Ultralytics YOLOv8.
نصيحة
النماذج التي تحتوي على البادئة "-pose" تستخدم لنماذج YOLOv8 pose ، على سبيل المثال yolov8n-pose.pt
. هذه النماذج مدربة على مجموعة بيانات نقاط الوضوح COCO وهي مناسبة لمجموعة متنوعة من مهام تقدير الوضعية.
النماذج
تعرض نماذج مدرّبة مسبقًا لـ YOLOv8 التي تستخدم لتقدير الوضعية هنا. النماذج للكشف والشريحة والوضعية يتم تدريبها على مجموعة بيانات COCO، بينما تتم تدريب نماذج التصنيف على مجموعة بيانات ImageNet.
يتم تنزيل النماذج من آخر إصدار Ultralytics تلقائيًا عند استخدامها لأول مرة.
النموذج | الحجم (بالبكسل) | mAPالوضعية 50-95 | mAPالوضعية 50 | سرعةالوحدة المركزية ONNX(ms) | سرعةA100 TensorRT(ms) | المعلمات (مليون) | FLOPs (بالمليار) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
- تعتبر القيم mAPval لنموذج واحد ومقياس واحد فقط على COCO Keypoints val2017
مجموعة البيانات.
يمكن إعادة إنتاجه بواسطةيولو val pose data=coco-pose.yaml device=0
- يتم حساب السرعة من خلال متوسط صور COCO val باستخدام المروحة الحرارية Amazon EC2 P4d
مثيل.
يمكن إعادة إنتاجه بواسطةيولو val pose data=coco8-pose.yaml batch=1 device=0|cpu
التدريب
يتم تدريب نموذج YOLOv8-pose على مجموعة بيانات COCO128-pose.
مثال
from ultralytics import YOLO
# تحميل النموذج
model = YOLO('yolov8n-pose.yaml') # بناء نموذج جديد من ملف YAML
model = YOLO('yolov8n-pose.pt') # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt') # بناء نموذج من YAML ونقل الوزن
# تدريب النموذج
results = model.train(data='coco8-pose.yaml', epochs=100, imgsz=640)
# بناء نموذج جديد من YAML وبدء التدريب من البداية.
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml epochs=100 imgsz=640
# البدء في التدريب من نموذج مدرب مسبقًا *.pt
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640
# بناء نموذج جديد من YAML ، ونقل الأوزان المدرّبة مسبقًا إليه ، والبدء في التدريب.
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml pretrained=yolov8n-pose.pt epochs=100 imgsz=640
تنسيق مجموعة البيانات
يمكن العثور على تنسيق مجموعات بيانات نقاط الوضوح YOLO في دليل المجموعة البيانات. لتحويل مجموعة البيانات الحالية التي لديك من تنسيقات أخرى (مثل COCO إلخ) إلى تنسيق YOLO ، يرجى استخدام أداة JSON2YOLO من Ultralytics.
التحقق من الصحة
تحقق من دقة نموذج YOLOv8n-pose المدرّب على مجموعة بيانات COCO128-pose. لا يلزم تمرير سبب ما كوسيط إلى model
عند استدعاء.
مثال
from ultralytics import YOLO
# تحميل النموذج
model = YOLO('yolov8n-pose.pt') # تحميل نموذج رسمي
model = YOLO('path/to/best.pt') # تحميل نموذج مخصص
# التحقق من النموذج
metrics = model.val() # لا يوجد حاجة لأي سبب، يتذكر النموذج البيانات والوسائط كمجالات للنموذج
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # قائمة تحتوي على map50-95 لكل فئة
التنبؤ
استخدم نموذج YOLOv8n-pose المدرّب لتشغيل توقعات على الصور.
مثال
انظر تفاصيل predict
كاملة في صفحة التنبؤ.
التصدير
قم بتصدير نموذج YOLOv8n-pose إلى تنسيق مختلف مثل ONNX، CoreML، الخ.
مثال
تتوفر تنسيقات تصدير YOLOv8-pose في الجدول أدناه. يمكنك التنبؤ أو التحقق مباشرةً على النماذج المصدرة ، على سبيل المثال yolo predict model=yolov8n-pose.onnx
. توجد أمثلة استخدام متاحة لنموذجك بعد اكتمال عملية التصدير.
تنسيق | إجراء format |
النموذج | البيانات الوصفية | الوسائط |
---|---|---|---|---|
PyTorch | - | yolov8n-pose.pt |
✅ | - |
TorchScript | torchscript |
yolov8n-pose.torchscript |
✅ | imgsz , optimize |
ONNX | onnx |
yolov8n-pose.onnx |
✅ | imgsz , half , dynamic , simplify , opset |
OpenVINO | openvino |
yolov8n-pose_openvino_model/ |
✅ | imgsz , half |
TensorRT | engine |
yolov8n-pose.engine |
✅ | imgsz , half , dynamic , simplify , workspace |
CoreML | coreml |
yolov8n-pose.mlpackage |
✅ | imgsz , half , int8 , nms |
TF SavedModel | saved_model |
yolov8n-pose_saved_model/ |
✅ | imgsz , keras |
TF GraphDef | pb |
yolov8n-pose.pb |
❌ | imgsz |
TF Lite | tflite |
yolov8n-pose.tflite |
✅ | imgsz , half , int8 |
TF Edge TPU | edgetpu |
yolov8n-pose_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n-pose_web_model/ |
✅ | imgsz |
PaddlePaddle | paddle |
yolov8n-pose_paddle_model/ |
✅ | imgsz |
ncnn | ncnn |
yolov8n-pose_ncnn_model/ |
✅ | imgsz , half |
انظر تفاصيل export
كاملة في صفحة التصدير.