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

Intel OpenVINO التصدير

OpenVINO نظام بيئي

في هذا الدليل، نغطي تصدير نماذج YOLOv8 إلى OpenVINO والذي يمكن أن يوفر ما يصل إلى 3 أضعاف CPU 3 أضعاف، بالإضافة إلى تسريع استدلال YOLO على Intel GPU وأجهزة NPU.

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



شاهد: كيفية تصدير وتحسين Ultralytics YOLOv8 نموذج للاستدلال مع OpenVINO.

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

تصدير أ YOLOv8n نموذج ل OpenVINO تنسيق وتشغيل الاستدلال مع النموذج المصدر.

مثل

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

الحجج

مفتاح قيمة وصف
format 'openvino' تنسيق للتصدير إليه
imgsz 640 حجم الصورة كعدد قياسي أو قائمة (H ، W) ، أي (640 ، 480)
half False تكميم FP16

فوائد OpenVINO

  1. الأداء: OpenVINO يوفر استنتاجاً عالي الأداء من خلال الاستفادة من قوة وحدات المعالجة المركزية Intel ووحدات معالجة الرسومات المدمجة والمنفصلة ووحدات معالجة الرسومات FPGA.
  2. دعم التنفيذ غير المتجانس: OpenVINO يوفر واجهة برمجة تطبيقات للكتابة مرة واحدة والنشر على أي أجهزة Intel مدعومة (CPU ، GPU ، FPGA، VPU، إلخ).
  3. محسن النموذج: OpenVINO يوفر محسن النموذج الذي يقوم باستيراد النماذج وتحويلها وتحسينها من أطر عمل التعلم العميق الشائعة مثل PyTorch, TensorFlow, TensorFlow لايت ، كيراس ، ONNX, PaddlePaddle، وكافي.
  4. سهولة الاستخدام: تأتي مجموعة الأدوات مع أكثر من 80 دفتر ملاحظات تعليمي (بما في ذلك YOLOv8 التحسين) تدريس جوانب مختلفة من مجموعة الأدوات.

OpenVINO هيكل التصدير

عند تصدير نموذج إلى OpenVINO ، ينتج عنه دليل يحتوي على ما يلي:

  1. ملف XML: يصف طوبولوجيا الشبكة.
  2. BIN ملف: يحتوي على weights and biases البيانات الثنائية.
  3. ملف التعيين: يحمل تعيين موترات إخراج النموذج الأصلي إلى OpenVINO tensor اسماء.

يمكنك استخدام هذه الملفات لتشغيل الاستدلال باستخدام OpenVINO محرك الاستدلال.

استخدام OpenVINO التصدير في النشر

بمجرد حصولك على ملفات OpenVINO ، يمكنك استخدام OpenVINO Runtime لتشغيل النموذج. يوفر وقت التشغيل واجهة برمجة تطبيقات موحدة للاستدلال عبر جميع الأجهزة المدعومة Intel . كما يوفر إمكانيات متقدمة مثل موازنة التحميل عبر Intel الأجهزة والتنفيذ غير المتزامن. لمزيد من المعلومات حول تشغيل الاستدلال، راجع دليل الاستدلال باستخدام OpenVINO وقت التشغيل.

تذكر أنك ستحتاج إلى ملفات XML و BIN بالإضافة إلى أي إعدادات خاصة بالتطبيق مثل حجم الإدخال وعامل المقياس للتطبيع وما إلى ذلك ، لإعداد النموذج واستخدامه بشكل صحيح مع وقت التشغيل.

في تطبيق النشر، عادة ما تقوم بالخطوات التالية:

  1. تهيئه OpenVINO عن طريق إنشاء core = Core().
  2. قم بتحميل النموذج باستخدام الزر core.read_model() أسلوب.
  3. قم بتجميع النموذج باستخدام core.compile_model() دالة.
  4. قم بإعداد الإدخال (صورة ، نص ، صوت ، إلخ).
  5. تشغيل الاستدلال باستخدام compiled_model(input_data).

لمزيد من الخطوات التفصيلية ومقتطفات الشفرة، ارجع إلى OpenVINO الوثائق أو البرنامج التعليمي API.

OpenVINO YOLOv8 المعايير

YOLOv8 تم تشغيل المعايير أدناه من قبل فريق Ultralytics على 4 نماذج مختلفة لقياس السرعة والدقة: PyTorch و TorchScript و ONNX و OpenVINO. تم تشغيل المعايير على وحدات معالجة الرسومات Intel Flex و Arc، وعلى وحدات المعالجة المركزية Intel Xeon بدقة FP32 (مع half=False حجة).

ملاحظه

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

جميع المعايير تعمل مع openvino Python إصدار الحزمة 2023.0.1.

Intel فليكس GPU

تعد سلسلة Intel® Data Center GPU Flex حلاً متعدد الاستخدامات وقويًا مصممًا للسحابة المرئية الذكية. يدعم هذا GPU مجموعة واسعة من أعباء العمل بما في ذلك تدفق الوسائط، والألعاب السحابية، والاستدلال المرئي بالذكاء الاصطناعي، وأعباء عمل البنية التحتية لسطح المكتب الافتراضي. وهي تتميز بهيكلها المفتوح ودعمها المدمج لتشفير AV1، مما يوفر حزمة برمجيات قائمة على المعايير لتطبيقات عالية الأداء ومتعددة البنى. تم تحسين سلسلة Flex Series GPU من أجل الكثافة والجودة، مما يوفر موثوقية وتوافر وقابلية توسع عالية.

يتم تشغيل المعايير أدناه على Intel® Data Center GPU Flex 170 بدقة FP32.

معايير فليكس GPU القياسية
نموذج تنسيق حالة الحجم (ميغابايت) mAP50-95 (ب) وقت الاستدلال (مللي ثانية / im)
YOLOv8n PyTorch 6.2 0.3709 21.79
YOLOv8n TorchScript 12.4 0.3704 23.24
YOLOv8n ONNX 12.2 0.3704 37.22
YOLOv8n OpenVINO 12.3 0.3703 3.29
YOLOv8s PyTorch 21.5 0.4471 31.89
YOLOv8s TorchScript 42.9 0.4472 32.71
YOLOv8s ONNX 42.8 0.4472 43.42
YOLOv8s OpenVINO 42.9 0.4470 3.92
YOLOv8m PyTorch 49.7 0.5013 50.75
YOLOv8m TorchScript 99.2 0.4999 47.90
YOLOv8m ONNX 99.0 0.4999 63.16
YOLOv8m OpenVINO 49.8 0.4997 7.11
YOLOv8l PyTorch 83.7 0.5293 77.45
YOLOv8l TorchScript 167.2 0.5268 85.71
YOLOv8l ONNX 166.8 0.5268 88.94
YOLOv8l OpenVINO 167.0 0.5264 9.37
YOLOv8x PyTorch 130.5 0.5404 100.09
YOLOv8x TorchScript 260.7 0.5371 114.64
YOLOv8x ONNX 260.4 0.5371 110.32
YOLOv8x OpenVINO 260.6 0.5367 15.02

يمثل هذا الجدول النتائج المعيارية لخمسة نماذج مختلفة (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) عبر أربعة تنسيقات مختلفة (PyTorch, TorchScript, ONNX, OpenVINO) ، مما يعطينا الحالة والحجم ومقياس mAP50-95 (B) ووقت الاستدلال لكل مجموعة.

Intel القوس GPU

وتمثل Intel® Arc™ غزوة Intel® Arc™ Intel في سوق الحواسيب المخصصة GPU . صُممت سلسلة Arc™، المصممة لمنافسة الشركات الرائدة GPU المصنعة مثل AMD و Nvidia ، لتلبية احتياجات كل من أسواق أجهزة الكمبيوتر المحمولة والمكتبية. وتتضمن السلسلة إصدارات محمولة للأجهزة المدمجة مثل الحواسيب المحمولة، وإصدارات أكبر وأكثر قوة لأجهزة الكمبيوتر المكتبية.

تنقسم سلسلة Arc™ إلى ثلاث فئات: Arc ™ 3 و Arc ™ 5 و Arc ™ 7، ويشير كل رقم إلى مستوى الأداء. تتضمن كل فئة عدة موديلات، ويشير الحرف "M" في اسم الموديل GPU إلى متغير متنقل ومتكامل.

وقد أشادت المراجعات المبكرة بسلسلة Arc™، خاصةً A770M GPU المدمجة في الجهاز، لأدائها المذهل في الرسومات. ويختلف مدى توفر سلسلة ™Arc™ حسب المنطقة، ومن المتوقع أن يتم إصدار طرازات إضافية قريباً. تقدم وحدات معالجة الرسومات Intel® Arc™ Arc™ حلولاً عالية الأداء لمجموعة من احتياجات الحوسبة، بدءاً من الألعاب وصولاً إلى إنشاء المحتوى.

يتم تشغيل المعايير أدناه على Intel® Arc 770 GPU بدقة FP32.

معايير القوس GPU القياسية
نموذج تنسيق حالة الحجم (ميغابايت) المقاييس / mAP50-95 (ب) وقت الاستدلال (مللي ثانية / im)
YOLOv8n PyTorch 6.2 0.3709 88.79
YOLOv8n TorchScript 12.4 0.3704 102.66
YOLOv8n ONNX 12.2 0.3704 57.98
YOLOv8n OpenVINO 12.3 0.3703 8.52
YOLOv8s PyTorch 21.5 0.4471 189.83
YOLOv8s TorchScript 42.9 0.4472 227.58
YOLOv8s ONNX 42.7 0.4472 142.03
YOLOv8s OpenVINO 42.9 0.4469 9.19
YOLOv8m PyTorch 49.7 0.5013 411.64
YOLOv8m TorchScript 99.2 0.4999 517.12
YOLOv8m ONNX 98.9 0.4999 298.68
YOLOv8m OpenVINO 99.1 0.4996 12.55
YOLOv8l PyTorch 83.7 0.5293 725.73
YOLOv8l TorchScript 167.1 0.5268 892.83
YOLOv8l ONNX 166.8 0.5268 576.11
YOLOv8l OpenVINO 167.0 0.5262 17.62
YOLOv8x PyTorch 130.5 0.5404 988.92
YOLOv8x TorchScript 260.7 0.5371 1186.42
YOLOv8x ONNX 260.4 0.5371 768.90
YOLOv8x OpenVINO 260.6 0.5367 19

Intel زيون CPU

إن معالج Intel® Xeon® CPU هو معالج عالي الأداء من فئة الخوادم مصمم لأعباء العمل المعقدة والمتطلبة. من الحوسبة السحابية المتطورة والمحاكاة الافتراضية إلى تطبيقات الذكاء الاصطناعي والتعلم الآلي، توفر وحدات المعالجة المركزية Xeon® CPU الطاقة والموثوقية والمرونة المطلوبة لمراكز البيانات الحالية.

والجدير بالذكر أن وحدات المعالجة المركزية Xeon® توفر كثافة حوسبة عالية وقابلية للتوسع ، مما يجعلها مثالية لكل من الشركات الصغيرة والمؤسسات الكبيرة. من خلال اختيار وحدات المعالجة المركزية Intel® Xeon® ، يمكن للمؤسسات التعامل بثقة مع مهام الحوسبة الأكثر تطلبا وتعزيز الابتكار مع الحفاظ على الفعالية من حيث التكلفة والكفاءة التشغيلية.

يتم تشغيل المعايير أدناه على الجيل الرابع من Intel® Xeon® Scalable CPU بدقة FP32.

معايير Xeon CPU
نموذج تنسيق حالة الحجم (ميغابايت) المقاييس / mAP50-95 (ب) وقت الاستدلال (مللي ثانية / im)
YOLOv8n PyTorch 6.2 0.3709 24.36
YOLOv8n TorchScript 12.4 0.3704 23.93
YOLOv8n ONNX 12.2 0.3704 39.86
YOLOv8n OpenVINO 12.3 0.3704 11.34
YOLOv8s PyTorch 21.5 0.4471 33.77
YOLOv8s TorchScript 42.9 0.4472 34.84
YOLOv8s ONNX 42.8 0.4472 43.23
YOLOv8s OpenVINO 42.9 0.4471 13.86
YOLOv8m PyTorch 49.7 0.5013 53.91
YOLOv8m TorchScript 99.2 0.4999 53.51
YOLOv8m ONNX 99.0 0.4999 64.16
YOLOv8m OpenVINO 99.1 0.4996 28.79
YOLOv8l PyTorch 83.7 0.5293 75.78
YOLOv8l TorchScript 167.2 0.5268 79.13
YOLOv8l ONNX 166.8 0.5268 88.45
YOLOv8l OpenVINO 167.0 0.5263 56.23
YOLOv8x PyTorch 130.5 0.5404 96.60
YOLOv8x TorchScript 260.7 0.5371 114.28
YOLOv8x ONNX 260.4 0.5371 111.02
YOLOv8x OpenVINO 260.6 0.5371 83.28

Intel الأساسيات CPU

سلسلة Intel® Core® Core® هي مجموعة من المعالجات عالية الأداء من Intel. وتتضمن المجموعة Core i3 (مستوى المبتدئين)، و Core i5 (متوسط المدى)، و Core i7 (عالي الأداء)، و Core i9 (أداء فائق). تلبي كل سلسلة احتياجات وميزانيات الحوسبة المختلفة، بدءًا من المهام اليومية إلى أعباء العمل الاحترافية الصعبة. مع كل جيل جديد، يتم إجراء تحسينات على الأداء وكفاءة الطاقة والميزات.

تعمل المعايير أدناه على الجيل الثالث عشر من Intel® Core® Core i7-13700H CPU بدقة FP32.

المعايير الأساسية CPU الأساسية
نموذج تنسيق حالة الحجم (ميغابايت) المقاييس / mAP50-95 (ب) وقت الاستدلال (مللي ثانية / im)
YOLOv8n PyTorch 6.2 0.4478 104.61
YOLOv8n TorchScript 12.4 0.4525 112.39
YOLOv8n ONNX 12.2 0.4525 28.02
YOLOv8n OpenVINO 12.3 0.4504 23.53
YOLOv8s PyTorch 21.5 0.5885 194.83
YOLOv8s TorchScript 43.0 0.5962 202.01
YOLOv8s ONNX 42.8 0.5962 65.74
YOLOv8s OpenVINO 42.9 0.5966 38.66
YOLOv8m PyTorch 49.7 0.6101 355.23
YOLOv8m TorchScript 99.2 0.6120 424.78
YOLOv8m ONNX 99.0 0.6120 173.39
YOLOv8m OpenVINO 99.1 0.6091 69.80
YOLOv8l PyTorch 83.7 0.6591 593.00
YOLOv8l TorchScript 167.2 0.6580 697.54
YOLOv8l ONNX 166.8 0.6580 342.15
YOLOv8l OpenVINO 167.0 0.0708 117.69
YOLOv8x PyTorch 130.5 0.6651 804.65
YOLOv8x TorchScript 260.8 0.6650 921.46
YOLOv8x ONNX 260.4 0.6650 526.66
YOLOv8x OpenVINO 260.6 0.6619 158.73

إعادة إنتاج نتائجنا

لإعادة إنتاج Ultralytics تقوم المعايير أعلاه على جميع تنسيقات التصدير بتشغيل هذا الرمز:

مثل

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

لاحظ أن نتائج القياس قد تختلف بناء على التكوين الدقيق للأجهزة والبرامج للنظام ، بالإضافة إلى عبء العمل الحالي للنظام في وقت تشغيل المعايير. للحصول على النتائج الأكثر موثوقية ، استخدم مجموعة بيانات تحتوي على عدد كبير من الصور ، أي data='coco128.yaml' (128 val images), ordata='coco.yaml'' (5000 صورة فال).

استنتاج

تظهر نتائج المقارنة المعيارية بوضوح فوائد تصدير YOLOv8 نموذج ل OpenVINO تنسيق. عبر نماذج ومنصات الأجهزة المختلفة ، OpenVINO يتفوق التنسيق باستمرار على التنسيقات الأخرى من حيث سرعة الاستدلال مع الحفاظ على دقة مماثلة.

بالنسبة لسلسلة Intel® Data Center GPU Flex Series، كان تنسيق OpenVINO قادرًا على توفير سرعات استدلال أسرع بعشر مرات تقريبًا من التنسيق الأصلي PyTorch . على Xeon CPU ، كان تنسيق OpenVINO أسرع بمرتين من تنسيق PyTorch . ظلت دقة النماذج متطابقة تقريبًا عبر التنسيقات المختلفة.

وتؤكد المعايير على فعالية OpenVINO كأداة لنشر نماذج التعلم العميق. عن طريق تحويل النماذج إلى OpenVINO ، يمكن للمطورين تحقيق تحسينات كبيرة في الأداء ، مما يسهل نشر هذه النماذج في تطبيقات العالم الحقيقي.

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

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

كيف يمكنني تصدير النماذج YOLOv8 إلى تنسيق OpenVINO ؟

يمكن أن يؤدي تصدير النماذج YOLOv8 إلى تنسيق OpenVINO إلى تحسين سرعة CPU بشكل كبير وتمكين تسريع GPU و NPU على أجهزة Intel . للتصدير، يمكنك استخدام إما Python أو CLI كما هو موضح أدناه:

مثل

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

لمزيد من المعلومات، راجع وثائق تنسيقات التصدير.

ما هي فوائد استخدام OpenVINO مع نماذج YOLOv8 ؟

يوفر استخدام مجموعة أدوات OpenVINO الخاصة بـ Intel' مع نماذج YOLOv8 العديد من الفوائد:

  1. الأداء: تحقيق تسريع يصل إلى 3 أضعاف في الاستدلال CPU والاستفادة من وحدات معالجة الرسومات Intel ووحدات المعالجة العصبية للتسريع.
  2. مُحسِّن النماذج: تحويل النماذج وتحسينها وتنفيذها من أطر العمل الشائعة مثل PyTorch و TensorFlow و ONNX.
  3. سهولة الاستخدام: يتوفر أكثر من 80 دفتر ملاحظات تعليمي لمساعدة المستخدمين على بدء الاستخدام، بما في ذلك دفاتر الملاحظات التعليمية YOLOv8.
  4. تنفيذ غير متجانس: نشر النماذج على أجهزة مختلفة Intel باستخدام واجهة برمجة تطبيقات موحدة.

للحصول على مقارنات مفصّلة للأداء، تفضل بزيارة قسم المعايير لدينا.

كيف يمكنني تشغيل الاستدلال باستخدام نموذج YOLOv8 تم تصديره إلى OpenVINO ؟

بعد تصدير نموذج YOLOv8 إلى صيغة OpenVINO ، يمكنك تشغيل الاستدلال باستخدام Python أو CLI:

مثل

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

ارجع إلى وثائق الوضع التوقعي لمزيد من التفاصيل.

لماذا يجب أن أختار Ultralytics YOLOv8 على الموديلات الأخرى لتصدير OpenVINO ؟

Ultralytics YOLOv8 مُحسَّن للكشف عن الأجسام في الوقت الحقيقي بدقة وسرعة عاليتين. وعلى وجه التحديد، عند دمجه مع OpenVINO ، يوفر YOLOv8 :

  • تسريع يصل إلى 3 أضعاف السرعة على وحدات المعالجة المركزية Intel
  • نشر سلس على وحدات معالجة الرسوميات ووحدات المعالجة العصبية Intel
  • دقة متسقة وقابلة للمقارنة عبر تنسيقات التصدير المختلفة

للحصول على تحليل متعمق للأداء، راجع معاييرنا التفصيلية YOLOv8 على أجهزة مختلفة.

هل يمكنني قياس النماذج YOLOv8 على تنسيقات مختلفة مثل PyTorch و ONNX و OpenVINO ؟

نعم، يمكنك قياس أداء نماذج YOLOv8 بتنسيقات مختلفة بما في ذلك PyTorch و TorchScript و ONNX و OpenVINO. استخدم مقتطف التعليمات البرمجية التالية لتشغيل معايير القياس على مجموعة البيانات التي اخترتها:

مثل

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

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



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

التعليقات