تصدير ONNX لنماذج YOLO26
~43% استدلال أسرع.
- يمكن أن يؤدي تصدير نموذج Ultralytics YOLO26 إلى ONNX إلى زيادة في سرعة الاستدلال تصل إلى 43%، مما يتيح نشرًا أسرع وأكثر كفاءة.
غالباً، عند نشر نماذج computer vision، ستحتاج إلى تنسيق نموذج يتسم بالمرونة والتوافق مع منصات متعددة.
يعمل تصدير نماذج Ultralytics YOLO26 إلى تنسيق ONNX على تبسيط عملية النشر وضمان الأداء الأمثل عبر بيئات مختلفة. سيوضح لك هذا الدليل كيفية تحويل نماذج YOLO26 بسهولة إلى ONNX وتعزيز قابليتها للتوسع وفعاليتها في تطبيقات العالم الحقيقي.
Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀
ONNX و ONNX Runtime
ONNX، وهو اختصار لـ Open Neural Network Exchange، هو مشروع مجتمعي طورته في البداية شركتي فيسبوك ومايكروسوفت. التطوير المستمر لـ ONNX هو جهد تعاوني مدعوم من قبل منظمات مختلفة مثل IBM، وAmazon (من خلال AWS)، وGoogle. يهدف المشروع إلى إنشاء تنسيق ملف مفتوح مصمم لتمثيل نماذج machine learning بطريقة تسمح باستخدامها عبر أطر عمل الذكاء الاصطناعي وأجهزة مختلفة.
يمكن استخدام نماذج ONNX للانتقال بين أطر العمل المختلفة بسلاسة. على سبيل المثال، يمكن تصدير نموذج deep learning تم تدريبه في PyTorch إلى تنسيق ONNX ثم استيراده بسهولة إلى TensorFlow.
بدلاً من ذلك، يمكن استخدام نماذج ONNX مع ONNX Runtime. ONNX Runtime هو مسرع متنوع متعدد المنصات لنماذج تعلم الآلة ومتوافق مع أطر عمل مثل PyTorch، وTensorFlow، وTFLite، وscikit-learn، إلخ.
يعمل ONNX Runtime على تحسين تنفيذ نماذج ONNX من خلال الاستفادة من الإمكانات الخاصة بالأجهزة. يسمح هذا التحسين للنماذج بالعمل بكفاءة وأداء عالٍ على منصات أجهزة مختلفة، بما في ذلك وحدات المعالجة المركزية (CPUs)، ووحدات معالجة الرسومات (GPUs)، والمسرعات المتخصصة.
سواء تم استخدامه بشكل مستقل أو بالتزامن مع ONNX Runtime، يوفر ONNX حلاً مرناً لـ model deployment الخاص بتعلم الآلة والتوافق.
الميزات الرئيسية لنماذج ONNX
يمكن أن تُعزى قدرة ONNX على التعامل مع تنسيقات مختلفة إلى الميزات الرئيسية التالية:
-
تمثيل النماذج المشترك: يحدد ONNX مجموعة مشتركة من العوامل (مثل الالتفافات، الطبقات، إلخ) وتنسيق بيانات قياسي. عندما يتم تحويل النموذج إلى تنسيق ONNX، تتم ترجمة بنيته وأوزانه إلى هذا التمثيل المشترك. يضمن هذا التوحيد أن النموذج يمكن فهمه من قبل أي إطار عمل يدعم ONNX.
-
الإصدار والتوافق مع الإصدارات السابقة: يحافظ ONNX على نظام إصدار لعوامله. وهذا يضمن أنه حتى مع تطور المعيار، تظل النماذج التي تم إنشاؤها في الإصدارات الأقدم قابلة للاستخدام. يعد التوافق مع الإصدارات السابقة ميزة حاسمة تمنع النماذج من أن تصبح قديمة بسرعة.
-
تمثيل النموذج القائم على الرسم البياني: يمثل ONNX النماذج كرسوم بيانية حسابية. هذا الهيكل القائم على الرسم البياني هو وسيلة عالمية لتمثيل نماذج تعلم الآلة، حيث تمثل العقد العمليات أو الحسابات، وتمثل الحواف الموترات التي تتدفق بينها. هذا التنسيق قابل للتكيف بسهولة مع أطر العمل المختلفة التي تمثل النماذج أيضاً كرسوم بيانية.
-
الأدوات والنظام البيئي: هناك نظام بيئي غني من الأدوات حول ONNX يساعد في تحويل النماذج وتصورها وتحسينها. تجعل هذه الأدوات من السهل على المطورين العمل مع نماذج ONNX وتحويل النماذج بين أطر عمل مختلفة بسلاسة.
الاستخدام الشائع لـ ONNX
قبل أن ننتقل إلى كيفية تصدير نماذج YOLO26 إلى تنسيق ONNX، دعونا نلقي نظرة على الأماكن التي تُستخدم فيها نماذج ONNX عادةً.
النشر على وحدة المعالجة المركزية (CPU)
غالباً ما يتم نشر نماذج ONNX على وحدات المعالجة المركزية (CPUs) نظراً لتوافقها مع ONNX Runtime. تم تحسين وقت التشغيل هذا لتنفيذ وحدة المعالجة المركزية. إنه يحسن سرعة الاستدلال بشكل كبير ويجعل عمليات النشر على وحدة المعالجة المركزية في الوقت الفعلي ممكنة.
خيارات النشر المدعومة
على الرغم من أن نماذج ONNX تُستخدم عادةً على وحدات المعالجة المركزية، إلا أنه يمكن نشرها أيضاً على المنصات التالية:
-
تسريع وحدة معالجة الرسومات (GPU): يدعم ONNX بالكامل تسريع GPU، وتحديداً NVIDIA CUDA. وهذا يتيح التنفيذ الفعال على وحدات معالجة الرسومات NVIDIA للمهام التي تتطلب قوة حسابية عالية.
-
أجهزة الحافة والمحمول: يمتد ONNX إلى أجهزة الحافة والأجهزة المحمولة، وهو مثالي لسيناريوهات الاستدلال على الجهاز وفي الوقت الفعلي. إنه خفيف الوزن ومتوافق مع أجهزة الحافة.
-
متصفحات الويب: يمكن لـ ONNX العمل مباشرة في متصفحات الويب، مما يدعم تطبيقات الذكاء الاصطناعي التفاعلية والديناميكية القائمة على الويب.
تصدير نماذج YOLO26 إلى ONNX
يمكنك توسيع توافق النموذج ومرونة النشر عن طريق تحويل نماذج YOLO26 إلى تنسيق ONNX. يوفر Ultralytics YOLO26 عملية تصدير مباشرة يمكن أن تعزز أداء نموذجك بشكل كبير عبر منصات مختلفة.
التثبيت
لتثبيت الحزمة المطلوبة، قم بتشغيل:
# Install the required package for YOLO26
pip install ultralyticsللحصول على تعليمات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت YOLO26. أثناء تثبيت الحزم المطلوبة لـ YOLO26، إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة للحصول على الحلول والنصائح.
الاستخدام
قبل الغوص في تعليمات الاستخدام، تأكد من الاطلاع على مجموعة نماذج YOLO26 التي تقدمها Ultralytics. سيساعدك هذا في اختيار النموذج الأنسب لمتطلبات مشروعك.
from ultralytics import YOLO
# Load the 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")وسائط التصدير
عند تصدير نموذج YOLO26 الخاص بك إلى تنسيق ONNX، يمكنك تخصيص العملية باستخدام وسائط متنوعة للتحسين لتلبية احتياجات النشر الخاصة بك:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'onnx' | التنسيق المستهدف للنموذج الذي تم تصديره، مما يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخلات النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو صفاً (height, width) لأبعاد محددة. |
half | bool | False | يُمكّن كمّية FP16 (دقة نصفية)، مما يقلل من حجم النموذج وربما يسرع الاستنتاج على الأجهزة المدعومة. |
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 حول التصدير.
نشر نماذج YOLO26 ONNX المصدرة
بمجرد تصدير نماذج Ultralytics YOLO26 الخاصة بك بنجاح إلى تنسيق ONNX، فإن الخطوة التالية هي نشر هذه النماذج في بيئات مختلفة. للحصول على تعليمات مفصلة حول نشر نماذج ONNX الخاصة بك، ألق نظرة على الموارد التالية:
-
توثيق واجهة برمجة تطبيقات ONNX Runtime Python: يقدم هذا الدليل معلومات أساسية لتحميل وتشغيل نماذج ONNX باستخدام ONNX Runtime.
-
النشر على أجهزة الحافة: تحقق من صفحة التوثيق هذه للحصول على أمثلة مختلفة لنشر نماذج ONNX على الحافة.
-
دروس ONNX على GitHub: مجموعة من الدروس الشاملة التي تغطي جوانب مختلفة لاستخدام وتنفيذ نماذج ONNX في سيناريوهات مختلفة.
-
خادم استدلال Triton: تعلم كيفية نشر نماذج ONNX الخاصة بك باستخدام خادم Triton Inference Server من NVIDIA لعمليات نشر عالية الأداء وقابلة للتوسع.
ملخص
في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO26 إلى تنسيق ONNX لزيادة قابليتها للتشغيل البيني والأداء عبر منصات مختلفة. كما تم تعريفك بـ ONNX Runtime وخيارات نشر ONNX.
تصدير ONNX هو مجرد واحد من العديد من export formats التي تدعمها Ultralytics YOLO26، مما يسمح لك بنشر نماذجك في أي بيئة تقريباً. اعتماداً على احتياجاتك المحددة، قد ترغب أيضاً في استكشاف خيارات تصدير أخرى مثل TensorRT للحصول على أقصى أداء لـ GPU أو CoreML لأجهزة Apple.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة الوثائق الرسمية لـ ONNX.
أيضاً، إذا كنت ترغب في معرفة المزيد حول تكاملات Ultralytics YOLO26 الأخرى، فتفضل بزيارة صفحة دليل التكامل. ستجد الكثير من الموارد والرؤى المفيدة هناك.
الأسئلة الشائعة
كيف يمكنني تصدير نماذج YOLO26 إلى تنسيق ONNX باستخدام Ultralytics؟
لتصدير نماذج YOLO26 الخاصة بك إلى تنسيق ONNX باستخدام Ultralytics، اتبع الخطوات التالية:
from ultralytics import YOLO
# Load the 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")لمزيد من التفاصيل، تفضل بزيارة توثيق التصدير.
ما هي مزايا استخدام 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.
ما هي خيارات النشر المتاحة لنماذج YOLO26 المصدرة إلى ONNX؟
يمكن نشر نماذج YOLO26 المصدرة إلى ONNX على منصات مختلفة بما في ذلك:
- وحدات المعالجة المركزية (CPUs): الاستفادة من ONNX Runtime لاستدلال محسّن على وحدة المعالجة المركزية.
- وحدات معالجة الرسومات (GPUs): الاستفادة من NVIDIA CUDA لتسريع GPU عالي الأداء.
- أجهزة الحافة: تشغيل نماذج خفيفة الوزن على أجهزة الحافة والأجهزة المحمولة لاستدلال في الوقت الفعلي على الجهاز.
- متصفحات الويب: تنفيذ النماذج مباشرة داخل متصفحات الويب للتطبيقات التفاعلية القائمة على الويب.
- خدمات السحابة: النشر على منصات السحابة التي تدعم تنسيق ONNX للاستدلال القابل للتوسع.
لمزيد من المعلومات، استكشف دليلنا حول خيارات نشر النموذج.
لماذا يجب أن أستخدم تنسيق ONNX لنماذج Ultralytics YOLO26؟
يوفر استخدام تنسيق ONNX لنماذج Ultralytics YOLO26 فوائد عديدة:
- قابلية التشغيل البيني: يسمح ONNX بنقل النماذج بين أطر عمل تعلم الآلة المختلفة بسلاسة.
- تحسين الأداء: يمكن لـ ONNX Runtime تعزيز أداء النموذج من خلال الاستفادة من التحسينات الخاصة بالأجهزة.
- المرونة: يدعم ONNX بيئات نشر مختلفة، مما يتيح لك استخدام نفس النموذج على منصات مختلفة دون تعديل.
- التوحيد: يوفر ONNX تنسيقاً موحداً مدعوماً على نطاق واسع عبر الصناعة، مما يضمن التوافق طويل الأمد.
راجع الدليل الشامل حول تصدير نماذج YOLO26 إلى ONNX.
كيف يمكنني استكشاف الأخطاء وإصلاحها عند تصدير نماذج YOLO26 إلى ONNX؟
عند تصدير نماذج YOLO26 إلى ONNX، قد تواجه مشكلات شائعة مثل عدم تطابق التبعيات أو العمليات غير المدعومة. لاستكشاف هذه المشكلات وإصلاحها:
- تحقق من تثبيت الإصدار الصحيح من التبعيات المطلوبة.
- تحقق من توثيق ONNX الرسمي لمعرفة العوامل والميزات المدعومة.
- راجع رسائل الخطأ للحصول على أدلة واستشر دليل المشكلات الشائعة لـ Ultralytics.
- جرب استخدام وسائط تصدير مختلفة مثل
simplify=Trueأو ضبط إصدارopset. - لمشكلات حجم الإدخال الديناميكي، اضبط
dynamic=Trueأثناء التصدير.
إذا استمرت المشكلات، اتصل بدعم Ultralytics للحصول على مزيد من المساعدة.