انتقل إلى المحتوى

نموذج المقارنة المعيارية مع Ultralytics YOLO

Ultralytics YOLO النظام البيئي والتكاملات

مقدمة

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



شاهد: Ultralytics وسائط البرنامج التعليمي: المعيار

لماذا تعتبر المقارنة المعيارية أمرا بالغ الأهمية؟

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

المقاييس الرئيسية في الوضع القياسي

  • mAP50-95: للكشف عن الكائن وتقسيمه وتقدير الوضع.
  • accuracy_top5: لتصنيف الصور.
  • وقت الاستدلال: الوقت المستغرق لكل صورة بالمللي ثانية.

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

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

بقشيش

  • التصدير إلى ONNX أو OpenVINO لتسريع يصل إلى 3 أضعاف CPU .
  • التصدير إلى TensorRT لتسريع يصل إلى 5 أضعاف GPU .

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

ركض YOLOv8n معايير لجميع تنسيقات التصدير المدعومة بما في ذلك ONNX, TensorRT الخ. راجع قسم الوسيطات أدناه للحصول على قائمة كاملة بوسيطات التصدير.

مثل

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

الحجج

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

مفتاح القيمة الافتراضية وصف
model None يحدد المسار إلى ملف النموذج. يقبل كليهما .pt و .yaml التنسيقات ، على سبيل المثال ، "yolov8n.pt" للنماذج أو ملفات التكوين المدربة مسبقا.
data None المسار إلى ملف YAML الذي يحدد مجموعة البيانات لقياس الأداء، وعادة ما يتضمن المسارات والإعدادات لبيانات التحقق من الصحة. مثل: "coco8.yaml".
imgsz 640 حجم صورة الإدخال للنموذج. يمكن أن يكون عددا صحيحا واحدا للصور المربعة أو مجموعة (width, height) لغير مربع ، على سبيل المثال ، (640, 480).
half False تمكين الاستدلال FP16 (نصف الدقة) ، مما يقلل من استخدام الذاكرة وربما يزيد السرعة على الأجهزة المتوافقة. استخدام half=True لتمكين.
int8 False ينشط تكميم INT8 لمزيد من الأداء المحسن على الأجهزة المدعومة ، وهو مفيد بشكل خاص لأجهزة الحافة. جبر int8=True للاستخدام.
device None يحدد جهاز (أجهزة) الحساب لقياس الأداء، مثل "cpu", "cuda:0"، أو قائمة بالأجهزة مثل "cuda:0,1" لإعدادات متعددةGPU .
verbose False يتحكم في مستوى التفاصيل في تسجيل الإخراج. قيمة منطقية جبر verbose=True للسجلات التفصيلية أو تعويم لأخطاء العتبة.

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

ستحاول المعايير التشغيل تلقائيا على جميع تنسيقات التصدير الممكنة أدناه.

تنسيق format جدال نموذج البيانات الوصفية الحجج
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF لايت tflite yolov8n.tflite imgsz, half, int8, batch
TF حافة TPU edgetpu yolov8n_edgetpu.tflite imgsz
TF.شبيبه tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

شاهد التفاصيل export التفاصيل في تصدير صفحة.

الأسئلة المتداولة

كيف أقيس أداء طرازي YOLOv8 باستخدام Ultralytics ؟

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

مثل

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

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

ما هي فوائد تصدير نماذج YOLOv8 إلى تنسيقات مختلفة؟

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

  • ONNX: يوفر سرعة تصل إلى 3 أضعاف CPU .
  • TensorRT: يوفر سرعة تصل إلى 5 أضعاف GPU .
  • OpenVINO: محسّنة خصيصًا للأجهزة Intel . تعمل هذه التنسيقات على تحسين سرعة ودقة النماذج الخاصة بك، مما يجعلها أكثر كفاءة لمختلف التطبيقات الواقعية. قم بزيارة صفحة التصدير للحصول على التفاصيل الكاملة.

لماذا تعتبر المقارنة المعيارية حاسمة في تقييم نماذج YOLOv8 ؟

تعتبر المقارنة المعيارية لنماذج YOLOv8 ضرورية لعدة أسباب:

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

ما هي تنسيقات التصدير التي يدعمها YOLOv8 ، وما هي مزاياها؟

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

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

ما الحجج التي يمكنني استخدامها لضبط معايير YOLOv8 الخاصة بي؟

عند تشغيل المعايير، يمكن تخصيص العديد من الوسيطات لتناسب احتياجات معينة:

  • النموذج: المسار إلى ملف النموذج (على سبيل المثال، "yolov8n.pt").
  • البيانات: المسار إلى ملف YAML الذي يحدد مجموعة البيانات (على سبيل المثال، "coco8.yaml").
  • imgsz: حجم الصورة المدخلة، إما كعدد صحيح واحد أو كمجموعة أعداد صحيحة.
  • النصف: تمكين استدلال FP16 للحصول على أداء أفضل.
  • int8: تنشيط التكميم INT8 لأجهزة الحافة.
  • الجهاز: حدد جهاز الحساب (على سبيل المثال، "cpu"، "cuda:0").
  • مطول: التحكم في مستوى تفاصيل التسجيل. للحصول على قائمة كاملة بالوسائط، راجع قسم الوسيطات.


تم الإنشاء 2023-11-12، تم التحديث 2024-07-04
المؤلفون: جلين-جوتشر (18)، برهان-ق (3)، رضوان منور (1)، الضاحك-ق (1)، مايانوميروسكي (1)

التعليقات