Meet YOLO26: next-gen vision AI.

Link to this sectionتصدير ONNX لنماذج YOLO26#

سرعة استدلال أسرع بنسبة ~43%.
  • يمكن لتصدير نموذج Ultralytics YOLO26 إلى ONNX أن يوفر زيادة في سرعة الاستدلال تصل إلى 43%، مما يتيح نشرًا أسرع وأكثر كفاءة.

غالبًا، عند نشر نماذج الرؤية الحاسوبية، ستحتاج إلى تنسيق نموذج يتسم بالمرونة والتوافق مع منصات متعددة.

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



Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀

Link to this sectionONNX و ONNX Runtime#

يُعد ONNX، وهو اختصار لـ Open Neural Network Exchange، مشروعًا مجتمعيًا طورته في البداية كل من Facebook و Microsoft. يعد التطوير المستمر لـ ONNX جهدًا تعاونيًا مدعومًا من قبل منظمات مختلفة مثل IBM و Amazon (من خلال AWS) و Google. يهدف المشروع إلى إنشاء تنسيق ملف مفتوح مصمم لتمثيل نماذج تعلم الآلة بطريقة تسمح باستخدامها عبر أطر عمل ذكاء اصطناعي وأجهزة مختلفة.

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

ONNX model portability across deep learning frameworks

بدلاً من ذلك، يمكن استخدام نماذج ONNX مع ONNX Runtime. يُعد ONNX Runtime مسرعًا متعدد الاستخدامات عبر المنصات لنماذج تعلم الآلة، وهو متوافق مع أطر عمل مثل PyTorch و TensorFlow و TFLite و scikit-learn، إلخ.

يعمل ONNX Runtime على تحسين تنفيذ نماذج ONNX من خلال الاستفادة من إمكانات الأجهزة المحددة. يسمح هذا التحسين للنماذج بالعمل بكفاءة وأداء عالٍ على منصات أجهزة مختلفة، بما في ذلك وحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPUs) والمسرعات المتخصصة.

ONNX Runtime cross-platform inference acceleration

سواء تم استخدامه بشكل مستقل أو جنبًا إلى جنب مع ONNX Runtime، يوفر ONNX حلاً مرنًا لـ نشر النماذج وتوافق تعلم الآلة.

Link to this sectionالميزات الرئيسية لنماذج ONNX#

يمكن أن تُعزى قدرة ONNX على التعامل مع تنسيقات مختلفة إلى الميزات الرئيسية التالية:

  • تمثيل نموذج مشترك: يحدد ONNX مجموعة مشتركة من العوامل (مثل الالتفافات، الطبقات، إلخ) وتنسيق بيانات قياسي. عند تحويل نموذج إلى تنسيق ONNX، تتم ترجمة بنيته وأوزانه إلى هذا التمثيل المشترك. يضمن هذا التوحيد إمكانية فهم النموذج من قبل أي إطار عمل يدعم ONNX.

  • إصدار وتوافق مع الإصدارات السابقة: يحتفظ ONNX بنظام إصدار للعوامل الخاصة به. يضمن هذا أنه حتى مع تطور المعيار، تظل النماذج التي تم إنشاؤها في إصدارات أقدم قابلة للاستخدام. يعد التوافق مع الإصدارات السابقة ميزة حاسمة تمنع النماذج من التقادم بسرعة.

  • تمثيل النموذج القائم على الرسم البياني: يمثل ONNX النماذج كرسومات بيانية حسابية. هذا الهيكل القائم على الرسم البياني هو طريقة عالمية لتمثيل نماذج تعلم الآلة، حيث تمثل العقد العمليات أو الحسابات، وتمثل الحواف الموترات التي تتدفق بينها. هذا التنسيق قابل للتكيف بسهولة مع أطر عمل مختلفة تمثل النماذج أيضًا كرسومات بيانية.

  • الأدوات والنظام البيئي: هناك نظام بيئي غني من الأدوات حول ONNX تساعد في تحويل النموذج وتصوره وتحسينه. تجعل هذه الأدوات من السهل على المطورين العمل مع نماذج ONNX وتحويل النماذج بين أطر عمل مختلفة بسلاسة.

Link to this sectionالاستخدام الشائع لـ ONNX#

قبل أن ننتقل إلى كيفية تصدير نماذج YOLO26 إلى تنسيق ONNX، دعنا نلقي نظرة على الأماكن التي تُستخدم فيها نماذج ONNX عادةً.

Link to this sectionالنشر على وحدات المعالجة المركزية (CPU)#

غالبًا ما يتم نشر نماذج ONNX على وحدات المعالجة المركزية (CPUs) نظرًا لتوافقها مع ONNX Runtime. هذا المحرك مُحسَّن للتنفيذ على وحدة المعالجة المركزية. إنه يحسن سرعة الاستدلال بشكل كبير ويجعل عمليات النشر في الوقت الفعلي على وحدات المعالجة المركزية ممكنة.

Link to this sectionخيارات النشر المدعومة#

بينما تُستخدم نماذج ONNX بشكل شائع على وحدات المعالجة المركزية، يمكن أيضًا نشرها على المنصات التالية:

  • تسريع GPU: يدعم ONNX بالكامل تسريع GPU، وخاصة NVIDIA CUDA. يتيح ذلك تنفيذًا فعالًا على وحدات معالجة الرسومات NVIDIA للمهام التي تتطلب قوة حوسبة عالية.

  • الأجهزة الطرفية والمحمولة: يمتد ONNX إلى الأجهزة الطرفية (Edge) والمحمولة، وهو مثالي لسيناريوهات الاستدلال على الجهاز وفي الوقت الفعلي. إنه خفيف الوزن ومتوافق مع أجهزة الطرفية، ويعمل كأساس لتنسيقات NPU للبائعين مثل Qualcomm QNN لأجهزة Snapdragon و RKNN لوحدات Rockchip NPU.

  • متصفحات الويب: يمكن لـ ONNX العمل مباشرة في متصفحات الويب، مما يدعم تطبيقات الذكاء الاصطناعي التفاعلية والديناميكية القائمة على الويب.

Link to this sectionتصدير نماذج YOLO26 إلى ONNX#

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

Link to this sectionالتثبيت#

لتثبيت الحزمة المطلوبة، قم بتشغيل:

التثبيت
# Install the required package for YOLO26
pip install ultralytics

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

Link to this sectionالاستخدام#

قبل الغوص في تعليمات الاستخدام، تأكد من الاطلاع على مجموعة نماذج YOLO26 التي تقدمها Ultralytics. سيساعدك هذا في اختيار النموذج الأنسب لمتطلبات مشروعك.

يدعم تنسيق ONNX أوضاع التصدير و التنبؤ و التحقق. قم بتصدير نموذجك، ثم قم بتحميل النموذج المصدر لتشغيل الاستدلال أو التحقق من دقته.

التصدير
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
التنبؤ
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
التحقق
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionوسائط التصدير#

عند تصدير نموذج YOLO26 الخاص بك إلى تنسيق ONNX، يمكنك تخصيص العملية باستخدام وسائط مختلفة لتحسينها وفقًا لاحتياجات النشر المحددة الخاصة بك:

الوسيطالنوعالافتراضيالوصف
formatstr'onnx'التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة.
imgszint أو tuple640حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو زوجاً مرتباً (height, width) لأبعاد محددة.
quantizeint أو strNoneدقة التكميم: 16 (FP16) أو 8 (تكميم ثابت INT8 مع ONNX Runtime باستخدام صور معايرة من data، مما ينتج نموذج _int8.onnx32 / غير مضبوط هو FP32. يحل محل علامات half / int8 المهجورة.
datastrNoneملف YAML الخاص بمجموعة البيانات المستخدم لمعايرة INT8. إذا تم حذفه مع quantize=8، تختار Ultralytics مجموعة بيانات المعايرة الافتراضية لمهمة النموذج.
fractionfloat1.0نسبة صور المعايرة المراد استخدامها لتكميم INT8.
dynamicboolFalseيسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة.
simplifyboolTrueيبسط رسم بياني للنموذج باستخدام onnxslim، مما قد يحسن الأداء والتوافق.
opsetintNoneيحدد إصدار ONNX opset للتوافق مع محللات ONNX ومحركات التشغيل المختلفة. إذا لم يتم ضبطه، يتم استخدام أحدث إصدار مدعوم.
nmsboolFalseيضيف كبت غير الحد الأقصى (NMS)، وهو أمر ضروري لمعالجة الاكتشاف بدقة وكفاءة.
batchint1يحدد حجم استدلال دفعة النموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict.
devicestrNoneيحدد الجهاز للتصدير: GPU (device=0)، CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps).

لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.

Link to this sectionنشر نماذج YOLO26 ONNX المصدرة#

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

  • توثيق واجهة برمجة تطبيقات ONNX Runtime Python: يقدم هذا الدليل معلومات أساسية لتحميل وتشغيل نماذج ONNX باستخدام ONNX Runtime.

  • النشر على الأجهزة الطرفية: تحقق من صفحة التوثيق هذه للحصول على أمثلة مختلفة لنشر نماذج ONNX على الأجهزة الطرفية.

  • دروس ONNX على GitHub: مجموعة من الدروس الشاملة التي تغطي جوانب مختلفة لاستخدام وتنفيذ نماذج ONNX في سيناريوهات مختلفة.

  • Triton Inference Server: تعلم كيفية نشر نماذج ONNX الخاصة بك باستخدام خادم Triton Inference Server من NVIDIA لعمليات نشر قابلة للتوسع وعالية الأداء.

Link to this sectionملخص#

في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO26 إلى تنسيق ONNX لزيادة قابليتها للتشغيل البيني وأدائها عبر منصات مختلفة. كما تم تعريفك بـ ONNX Runtime وخيارات نشر ONNX.

يعد تصدير ONNX مجرد واحد من العديد من تنسيقات التصدير التي يدعمها Ultralytics YOLO26، مما يسمح لك بنشر نماذجك في أي بيئة تقريبًا. اعتمادًا على احتياجاتك المحددة، قد ترغب أيضًا في استكشاف خيارات تصدير أخرى مثل TensorRT للحصول على أقصى أداء GPU أو CoreML لأجهزة Apple.

لمزيد من التفاصيل حول الاستخدام، قم بزيارة التوثيق الرسمي لـ ONNX.

أيضاً، إذا كنت ترغب في معرفة المزيد عن عمليات تكامل Ultralytics YOLO26 الأخرى، فقم بزيارة صفحة دليل التكامل. ستجد هناك الكثير من الموارد والرؤى المفيدة.

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف أقوم بتصدير نماذج YOLO26 إلى تنسيق ONNX باستخدام Ultralytics؟#

لتصدير نماذج YOLO26 إلى تنسيق ONNX باستخدام Ultralytics، اتبع الخطوات التالية:

الاستخدام
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

لمزيد من التفاصيل، قم بزيارة توثيق التصدير.

Link to this sectionما هي مزايا استخدام ONNX Runtime لنشر نماذج YOLO26؟#

يوفر استخدام ONNX Runtime لنشر نماذج YOLO26 العديد من المزايا:

  • التوافق عبر المنصات: يدعم ONNX Runtime منصات مختلفة، مثل Windows و macOS و Linux، مما يضمن تشغيل نماذجك بسلاسة عبر بيئات مختلفة.
  • تسريع الأجهزة: يمكن لـ ONNX Runtime الاستفادة من التحسينات الخاصة بالأجهزة لوحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPUs) والمسرعات المخصصة، مما يوفر استدلالًا عالي الأداء.
  • التوافق بين أطر العمل: يمكن تحويل النماذج التي تم تدريبها في أطر عمل شائعة مثل PyTorch أو TensorFlow بسهولة إلى تنسيق ONNX وتشغيلها باستخدام ONNX Runtime.
  • تحسين الأداء: يمكن أن يوفر ONNX Runtime تسريعًا يصل إلى 3 أضعاف لوحدة المعالجة المركزية مقارنة بنماذج PyTorch الأصلية، مما يجعله مثاليًا لسيناريوهات النشر حيث تكون موارد GPU محدودة.

تعلم المزيد من خلال التحقق من توثيق ONNX Runtime.

Link to this sectionما هي خيارات النشر المتاحة لنماذج YOLO26 المصدرة إلى ONNX؟#

يمكن نشر نماذج YOLO26 المصدرة إلى ONNX على منصات مختلفة بما في ذلك:

  • وحدات المعالجة المركزية (CPUs): استخدام ONNX Runtime للاستدلال الأمثل على وحدة المعالجة المركزية.
  • وحدات معالجة الرسومات (GPUs): الاستفادة من NVIDIA CUDA لتسريع GPU عالي الأداء.
  • الأجهزة الطرفية: تشغيل نماذج خفيفة الوزن على الأجهزة الطرفية والمحمولة للاستدلال في الوقت الفعلي وعلى الجهاز.
  • متصفحات الويب: تنفيذ النماذج مباشرة داخل متصفحات الويب للتطبيقات التفاعلية القائمة على الويب.
  • الخدمات السحابية: النشر على منصات سحابية تدعم تنسيق ONNX للاستدلال القابل للتوسع.

لمزيد من المعلومات، استكشف دليلنا حول خيارات نشر النماذج.

Link to this sectionلماذا يجب علي استخدام تنسيق ONNX لنماذج Ultralytics YOLO26؟#

يوفر استخدام تنسيق ONNX لنماذج Ultralytics YOLO26 فوائد عديدة:

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

راجع الدليل الشامل حول تصدير نماذج YOLO26 إلى ONNX.

Link to this sectionكيف يمكنني استكشاف الأخطاء وإصلاحها عند تصدير نماذج YOLO26 إلى ONNX؟#

عند تصدير نماذج YOLO26 إلى ONNX، قد تواجه مشكلات شائعة مثل عدم تطابق التبعيات أو العمليات غير المدعومة. لاستكشاف هذه المشكلات وإصلاحها:

  1. تحقق من أنك قمت بتثبيت الإصدار الصحيح من التبعيات المطلوبة.
  2. تحقق من توثيق ONNX الرسمي للعوامل والميزات المدعومة.
  3. راجع رسائل الخطأ للحصول على أدلة واستشر دليل المشكلات الشائعة في Ultralytics.
  4. جرب استخدام وسائط تصدير مختلفة مثل simplify=True أو ضبط إصدار opset.
  5. بالنسبة لمشكلات حجم الإدخال الديناميكي، اضبط dynamic=True أثناء التصدير.

إذا استمرت المشكلات، فاتصل بدعم Ultralytics للحصول على مزيد من المساعدة.

التعليقات