Link to this sectionتصدير نماذج YOLO26 إلى تنسيق ONNX#
~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 مع ONNX Runtime. ONNX Runtime هو مسرع متعدد الاستخدامات عبر الأنظمة الأساسية لنماذج تعلم الآلة وهو متوافق مع أطر عمل مثل PyTorch و TensorFlow و TFLite و scikit-learn، إلخ.
يقوم ONNX Runtime بتحسين تنفيذ نماذج ONNX من خلال الاستفادة من الإمكانات الخاصة بالأجهزة. يسمح هذا التحسين للنماذج بالعمل بكفاءة وبأداء عالٍ على منصات أجهزة مختلفة، بما في ذلك CPUs و GPUs والمسرعات المتخصصة.
سواء تم استخدامه بشكل مستقل أو بالتزامن مع 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. تم تحسين وقت التشغيل هذا لتنفيذ CPU. إنه يحسن سرعة الاستنتاج بشكل كبير ويجعل عمليات النشر في الوقت الفعلي على CPU ممكنة.
Link to this sectionخيارات النشر المدعومة#
بينما تُستخدم نماذج ONNX بشكل شائع على CPUs، يمكن أيضاً نشرها على المنصات التالية:
-
تسريع GPU: يدعم ONNX تسريع GPU بالكامل، وخاصة NVIDIA CUDA. وهذا يتيح التنفيذ الفعال على NVIDIA GPUs للمهام التي تتطلب طاقة حوسبة عالية.
-
الأجهزة الطرفية والمحمولة: يمتد ONNX إلى الأجهزة الطرفية والمحمولة، وهو مثالي لسيناريوهات الاستنتاج على الجهاز وفي الوقت الفعلي. إنه خفيف الوزن ومتوافق مع أجهزة الحافة، ويعمل كأساس لتنسيقات NPU الخاصة بالبائعين مثل Qualcomm QNN لأجهزة Snapdragon و RKNN لـ Rockchip NPUs.
-
متصفحات الويب: يمكن لـ 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", int8=True, 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، يمكنك تخصيص العملية باستخدام وسائط مختلفة للتحسين وفقاً لاحتياجات النشر الخاصة بك:
| الوسيط (Argument) | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'onnx' | التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو صفاً (height, width) لأبعاد محددة. |
half | bool | False | تمكين التكميم FP16 (نصف الدقة)، مما يقلل من حجم النموذج ويسرع الاستنتاج على الأجهزة المدعومة. |
int8 | bool | False | تمكين التكميم الثابت INT8 باستخدام ONNX Runtime باستخدام صور معايرة من data، مما ينتج نموذج _int8.onnx. |
data | str | None | مجموعة بيانات YAML المستخدمة لمعايرة INT8. إذا تم حذفها مع int8=True، تختار Ultralytics مجموعة بيانات المعايرة الافتراضية لمهمة النموذج. |
fraction | float | 1.0 | جزء من صور المعايرة لاستخدامه في تكميم INT8. |
dynamic | bool | False | يسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصورة المتغيرة. |
simplify | bool | True | يبسط رسم بياني النموذج باستخدام onnxslim، مما قد يحسن الأداء والتوافق. |
opset | int | None | يحدد إصدار ONNX opset للتوافق مع مختلف محللات ONNX وأوقات التشغيل. إذا لم يتم تعيينه، يتم استخدام أحدث إصدار مدعوم. |
nms | bool | False | يضيف كبت غير الحد الأقصى (NMS)، وهو أمر ضروري لمعالجة الكشف بدقة وكفاءة. |
batch | int | 1 | يحدد حجم استنتاج الدفعة للنموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict. |
device | str | None | يحدد الجهاز للتصدير: 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 API: يقدم هذا الدليل معلومات أساسية لتحميل وتشغيل نماذج ONNX باستخدام ONNX Runtime.
-
النشر على الأجهزة الطرفية: تحقق من صفحة الوثائق هذه للحصول على أمثلة مختلفة لنشر نماذج ONNX على الأجهزة الطرفية.
-
دروس ONNX على GitHub: مجموعة من الدروس الشاملة التي تغطي جوانب مختلفة من استخدام وتنفيذ نماذج ONNX في سيناريوهات مختلفة.
-
Triton Inference Server: تعرف على كيفية نشر نماذج ONNX الخاصة بك باستخدام خادم استنتاج Triton من 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 تسريعاً لـ CPU يصل إلى 3 أضعاف مقارنة بنماذج PyTorch الأصلية، مما يجعله مثالياً لسيناريوهات النشر حيث تكون موارد GPU محدودة.
تعرف على المزيد من خلال الاطلاع على وثائق ONNX Runtime.
Link to this sectionما هي خيارات النشر المتاحة لنماذج YOLO26 المصدرة إلى ONNX؟#
يمكن نشر نماذج YOLO26 المصدرة إلى ONNX على منصات مختلفة بما في ذلك:
- CPUs: الاستفادة من ONNX Runtime لاستنتاج CPU محسّن.
- 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، قد تواجه مشكلات شائعة مثل عدم تطابق التبعيات أو العمليات غير المدعومة. لاستكشاف هذه المشكلات وإصلاحها:
- تحقق من تثبيت الإصدار الصحيح من التبعيات المطلوبة.
- تحقق من وثائق ONNX الرسمية لمعرفة العوامل والميزات المدعومة.
- راجع رسائل الخطأ للحصول على أدلة واستشر دليل المشكلات الشائعة في Ultralytics.
- حاول استخدام وسائط تصدير مختلفة مثل
simplify=Trueأو ضبط إصدارopset. - لمشكلات حجم الإدخال الديناميكي، قم بتعيين
dynamic=Trueأثناء التصدير.
إذا استمرت المشكلات، فاتصل بدعم Ultralytics للحصول على مزيد من المساعدة.