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

تصدير النموذج مع Ultralytics YOLO

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

مقدمة

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



شاهد: كيفية تصدير تدريب مخصص Ultralytics YOLOv8 نموذج وتشغيل الاستدلال المباشر على كاميرا الويب.

لماذا تختار YOLOv8في وضع التصدير؟

  • براعه: تصدير إلى تنسيقات متعددة بما في ذلك ONNX, TensorRT, CoreML، وأكثر من ذلك.
  • اداء: احصل على تسريع يصل إلى 5x لوحدة معالجة الرسومات باستخدام TensorRT وتسريع وحدة المعالجة المركزية 3x مع ONNX أو OpenVINO.
  • التوافق: اجعل نموذجك قابلا للنشر عالميا عبر العديد من بيئات الأجهزة والبرامج.
  • سهولة الاستخدام: بسيط CLI و Python API لتصدير النموذج بسرعة ومباشرة.

الميزات الرئيسية لوضع التصدير

فيما يلي بعض الوظائف البارزة:

  • تصدير بنقرة واحدة: أوامر بسيطة للتصدير إلى تنسيقات مختلفة.
  • تصدير الدفعة: تصدير نماذج قادرة على الاستدلال الدفعي.
  • الاستدلال الأمثل: تم تحسين النماذج المصدرة لأوقات الاستدلال الأسرع.
  • مقاطع فيديو تعليمية: أدلة وبرامج تعليمية متعمقة لتجربة تصدير سلسة.

بقشيش

  • التصدير إلى ONNX أو OpenVINO لتسريع وحدة المعالجة المركزية حتى 3 أضعاف وحدة المعالجة المركزية.
  • التصدير إلى TensorRT لتسريع وحدة معالجة الرسومات حتى 5 أضعاف.

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

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

مثل

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

الحجج

يوضح هذا الجدول تفاصيل التكوينات والخيارات المتاحة للتصدير YOLO نماذج لأشكال مختلفة. تعد هذه الإعدادات ضرورية لتحسين أداء النموذج المصدر وحجمه وتوافقه عبر الأنظمة الأساسية والبيئات المختلفة. يضمن التكوين المناسب أن النموذج جاهز للنشر في التطبيق المقصود بكفاءة مثالية.

جدال نوع افتراضي وصف
format str 'torchscript' التنسيق الهدف للنموذج المصدر، مثل 'onnx', 'torchscript', 'tensorflow'، أو غيرها، تحديد التوافق مع بيئات النشر المختلفة.
imgsz int أو tuple 640 حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددا صحيحا للصور المربعة أو مجموعة (height, width) لأبعاد محددة.
keras bool False تمكين التصدير إلى تنسيق Keras ل TensorFlow SavedModel، مما يوفر التوافق مع TensorFlow الخدمة وواجهات برمجة التطبيقات.
optimize bool False يطبق التحسين للأجهزة المحمولة عند التصدير إلى TorchScript، مما قد يقلل من حجم النموذج ويحسن الأداء.
half bool False تمكين التكميم FP16 (نصف الدقة) ، مما يقلل من حجم النموذج ويحتمل أن يسرع الاستدلال على الأجهزة المدعومة.
int8 bool False ينشط تكميم INT8 ، مما يزيد من ضغط النموذج ويسرع الاستدلال بأقل قدر من فقدان الدقة ، بشكل أساسي لأجهزة الحافة.
dynamic bool False يسمح بأحجام الإدخال الديناميكية ل ONNX و TensorRT الصادرات ، وتعزيز المرونة في التعامل مع أبعاد الصورة المختلفة.
simplify bool False Simplifies the model graph for ONNX exports with onnxslim, potentially improving performance and compatibility.
opset int None يحدد ONNX إصدار Opset للتوافق مع مختلف ONNX المحللون وأوقات التشغيل. إذا لم يتم تعيينه، يستخدم أحدث إصدار مدعوم.
workspace float 4.0 يضبط الحد الأقصى لحجم مساحة العمل بالجيغابايت من أجل تحسينات TensorRT ، وتحقيق التوازن بين استخدام الذاكرة والأداء.
nms bool False يضيف منع غير أقصى (NMS) إلى CoreML التصدير ، ضروري للكشف الدقيق والفعال بعد المعالجة.
batch int 1 Specifies export model batch inference size or the max number of images the exported model will process concurrently in predict الوضع.

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

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

متوفر YOLOv8 تنسيقات التصدير موجودة في الجدول أدناه. يمكنك التصدير إلى أي تنسيق باستخدام format الحجة ، أي format='onnx' أو format='engine'. يمكنك التنبؤ أو التحقق من صحة النماذج المصدرة مباشرة، أي yolo predict model=yolov8n.onnx. يتم عرض أمثلة الاستخدام للطراز الخاص بك بعد اكتمال التصدير.

تنسيق 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


Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (15), Burhan-Q (4), Kayzwer (2)

التعليقات