رؤية YOLO 2026:

قياس أداء النموذج باستخدام Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

تصور قياس الأداء#

مقدمة#

بمجرد تدريب نموذجك والتحقق من صحته، تكون الخطوة المنطقية التالية هي تقييم أدائه في سيناريوهات واقعية مختلفة. يخدم وضع المقارنة المرجعية Benchmark في Ultralytics YOLO26 هذا الغرض من خلال توفير إطار عمل قوي لتقييم سرعة accuracy نموذجك عبر مجموعة من تنسيقات التصدير.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

لماذا يعد قياس الأداء أمراً بالغ الأهمية؟#

  • قرارات مستنيرة: احصل على رؤى حول المقايضات بين السرعة والدقة.
  • تخصيص الموارد: افهم كيفية أداء تنسيقات التصدير المختلفة على أجهزة مختلفة.
  • التحسين: تعرف على تنسيق التصدير الذي يوفر أفضل أداء لحالة الاستخدام المحددة الخاصة بك.
  • كفاءة التكلفة: استفد بشكل أكثر كفاءة من موارد الأجهزة بناءً على نتائج قياس الأداء.

المقاييس الرئيسية في وضع قياس الأداء#

  • mAP50-95: لاكتشاف الكائنات object detection، والتجزئة، وتقدير الوضعية.
  • accuracy_top1: لتصنيف الصور image classification.
  • وقت الاستدلال (Inference Time): الوقت المستغرق لكل صورة بالملي ثانية.

تنسيقات التصدير المدعومة#

  • ONNX: لأداء مثالي على CPU
  • TensorRT: لأقصى كفاءة على GPU
  • OpenVINO: لتحسين أداء أجهزة Intel
  • CoreML وTensorFlow SavedModel والمزيد: لاحتياجات النشر المتنوعة.
نصيحة
  • التصدير إلى ONNX أو OpenVINO للحصول على سرعة أكبر بـ 3 أضعاف على CPU.
  • التصدير إلى TensorRT للحصول على سرعة أكبر بـ 5 أضعاف على GPU.

أمثلة الاستخدام#

التثبيت الموصى به

قم بتثبيت Ultralytics مع تبعيات التصدير قبل إجراء قياس الأداء لتجنب فقدان الحزم.

pip install ultralytics[export]

قم بتشغيل قياسات أداء YOLO26n عبر جميع تنسيقات التصدير المدعومة (ONNX وTensorRT وغيرها). راجع قسم الوسائط أدناه للحصول على قائمة كاملة بخيارات التصدير.

مثال
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

الوسائط (Arguments)#

تمنح الوسائط مثل model و data و imgsz و quantize و device و verbose و format المستخدمين المرونة لضبط المقارنات المرجعية بدقة وفقاً لاحتياجاتهم الخاصة ومقارنة أداء تنسيقات التصدير المختلفة بسهولة.

المفتاحالقيمة الافتراضيةالوصف
modelNoneيحدد مسار ملف النموذج. يقبل كل من تنسيقي .pt و .yaml، على سبيل المثال، "yolo26n.pt" للنماذج المدربة مسبقاً أو ملفات التكوين.
dataNoneمسار ملف YAML الخاص بمجموعة البيانات للمقارنة المرجعية، والذي يتضمن عادةً المسارات والإعدادات الخاصة ببيانات التحقق validation data. مثال: "coco8.yaml". يأخذ التصنيف بدلاً من ذلك مجلد مجموعة بيانات أو اسم مجموعة بيانات مدمجاً (مثل imagenet10).
imgsz640حجم صورة الإدخال للنموذج. يجب أن يكون رقماً صحيحاً مفرداً للصور المربعة (مثل 640)؛ يدعم benchmark() أحجام الصور المربعة فقط.
quantizeNoneدقة التكميم: 16 (FP16) أو 8 (INT8/PTQ؛ يتطلب المعايرة data/fraction32/غير المحدد هو FP32. يحل محل علامات half/int8 المهملة.
device'cpu'يحدد جهاز (أجهزة) الحساب للمقارنة المرجعية، مثل "cpu" أو "cuda:0".
verboseFalseيتحكم في مستوى التفاصيل في مخرجات التجليد (logging). اضبط verbose=True للحصول على سجلات مفصلة.
eps0.001قيمة إبسيلون صغيرة (بالملي ثانية) تُضاف إلى زمن الاستنتاج لكل صورة قبل تحويله إلى إطارات في الثانية (FPS)، وذلك لتجنب القسمة على صفر. نادراً ما يتم تغييرها.
format''يقوم بالمقارنة المرجعية لتنسيق التصدير المحدد فقط (مثل format=onnx). اتركه فارغاً لاختبار كل تنسيق مدعوم تلقائياً.
الإعدادات الافتراضية لدالة `benchmark()` المستقلة

تستخدم دالة benchmark() المستقلة (from ultralytics.utils.benchmarks import benchmark) افتراضات توقيعها الخاصة بدلاً من قيم الجدول أعلاه، وبالأخص model="yolo26n.pt" و imgsz=160؛ مرر imgsz صراحة ليتطابق مع واجهة سطر الأوامر CLI لـ yolo benchmark.

تنسيقات التصدير#

ستحاول المقارنات المرجعية التشغيل تلقائياً على جميع تنسيقات التصدير الممكنة المدرجة أدناه. بدلاً من ذلك، يمكنك تشغيل المقارنات المرجعية لتنسيق معين باستخدام وسيط format، والذي يقبل أي من التنسيقات المذكورة أدناه.

التنسيقوسيط formatالنموذجالبيانات الوصفيةالوسائط (Arguments)
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz، quantize، dynamic، simplify، opset، nms، batch، data، fraction، device
OpenVINOopenvinoyolo26n_openvino_model/imgsz، quantize، dynamic، nms، batch، data، fraction، device
TensorRTengineyolo26n.engineimgsz، quantize، dynamic، simplify، opset، workspace، nms، batch، data، fraction، device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz، keras، quantize، opset، nms، batch، data، fraction، device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz، batch، device
MNNmnnyolo26n.mnnimgsz، batch، dynamic، quantize، simplify، opset، nms، device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz، batch، name، quantize، simplify، opset، data، fraction، device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz، batch، device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz، batch، name، quantize، simplify، opset، data، fraction، device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz، name، quantize، data، fraction، simplify، conf، iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz، batch، quantize

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

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

  • يوفر وضع المقارنة المرجعية Benchmark في Ultralytics YOLO26 لتقييم أداء نموذجك عبر تنسيقات التصدير المختلفة. يمنح هذا الوضع رؤى حول المقاييس الرئيسية مثل متوسط الدقة mean Average Precision (mAP50-95)، والدقة، ووقت الاستدلال بالميلي ثانية. لتشغيل المقارنات المرجعية، يمكنك استخدام إما Python أو أوامر سطر الأوامر CLI. على سبيل المثال، للمقارنة المرجعية على وحدة معالجة رسومية GPU:

    مثال
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

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

  • ييح لك تصدير نماذج YOLO26 إلى تنسيقات مختلفة مثل ONNX و TensorRT و OpenVINO تحسين الأداء بناءً على بيئة نشرك. على سبيل المثال:

    • ONNX: يوفر تسريعاً لوحدة المعالجة المركزية (CPU) يصل إلى 3 مرات.
    • TensorRT: يوفر تسريعاً لوحدة معالجة الرسومات (GPU) يصل إلى 5 مرات.
    • OpenVINO: مُحسَّن خصيصاً لأجهزة Intel.

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

  • يعد قياس أداء نماذج YOLO26 الخاصة بك ضرورياً لعدة أسباب:

    • اتخاذ قرارات مستنيرة: فهم المقايضات بين السرعة والدقة.
    • تخصيص الموارد: قياس الأداء عبر خيارات الأجهزة المختلفة.
    • التحسين: تحديد تنسيق التصدير الذي يوفر أفضل أداء لحالات استخدام معينة.
    • كفاءة التكلفة: تحسين استخدام الأجهزة بناءً على نتائج قياس الأداء.

    تساعد المقاييس الرئيسية مثل mAP50-95، ودقة Top-1، ووقت الاستدلال في إجراء هذه التقييمات. راجع قسم Key Metrics لمزيد من المعلومات.

  • يدعم YOLO26 مجموعة متنوعة من تنسيقات التصدير، كل منها مصمم خصيصاً لأجهزة وحالات استخدام محددة:

    • ONNX: الأفضل لأداء وحدة المعالجة المركزية (CPU).
    • TensorRT: مثالي لكفاءة وحدة معالجة الرسومات (GPU).
    • OpenVINO: مُحسَّن لأجهزة Intel.
    • CoreML & TensorFlow: مفيد لتطبيقات iOS وتطبيقات التعلم الآلي العامة.

    للحصول على قائمة كاملة بالتنسيقات المدعومة ومزاياها الخاصة، راجع قسم Supported Export Formats.

  • عند تشغيل قياسات الأداء، يمكن تخصيص عدة وسائط لتناسب احتياجات معينة:

    • model: المسار إلى ملف النموذج (على سبيل المثال، "yolo26n.pt").
    • data: مسار ملف YAML الخاص بمجموعة البيانات (مثل "coco8.yaml")؛ يأخذ التصنيف بدلاً من ذلك مجلد مجموعة بيانات أو اسم مجموعة بيانات مدمجاً (مثل imagenet10).
    • imgsz: حجم صورة الإدخال المربعة كرقم صحيح مفرد، مثل 640. يستخدم وضع المقارنة المرجعية نفس حجم الصورة المربعة عبر PyTorch والتنسيقات المصدرة للمقارنة العادلة.
    • quantize: دقة التكميم: 16 لـ FP16، و 8 لـ INT8 (مفيد لأجهزة الحافة edge devices)؛ 32/غير المحدد هو FP32.
    • device: تحديد جهاز الحوسبة (على سبيل المثال، "cpu"، "cuda:0").
    • verbose: التحكم في مستوى تفاصيل التسجيل (logging).

    للحصول على قائمة كاملة بالوسائط، راجع قسم Arguments.

التعليقات