تصدير ONNX لنماذج YOLO26
في كثير من الأحيان، عند نشر نماذج الرؤية الحاسوبية، ستحتاج إلى تنسيق نموذج يتسم بالمرونة والتوافق مع منصات متعددة.
يؤدي تصدير نماذج Ultralytics YOLO26 إلى تنسيق ONNX إلى تبسيط عملية النشر ويضمن الأداء الأمثل عبر بيئات مختلفة. سيوضح لك هذا الدليل كيفية تحويل نماذج YOLO26 الخاصة بك بسهولة إلى ONNX وتعزيز قابليتها للتوسع وفعاليتها في التطبيقات الواقعية.
ONNX ووقت تشغيل ONNX
ONNX، والتي تعني تبادل الشبكة العصبية المفتوحة (Neural Network)، هي مشروع مجتمعي تم تطويره في البداية بواسطة Facebook و Microsoft. التطوير المستمر لـ ONNX هو جهد تعاوني تدعمه العديد من المنظمات مثل IBM و Amazon (من خلال AWS) و Google. يهدف المشروع إلى إنشاء تنسيق ملف مفتوح مصمم لتمثيل نماذج التعلم الآلي بطريقة تسمح باستخدامها عبر أطر عمل الذكاء الاصطناعي والأجهزة المختلفة.
يمكن استخدام نماذج ONNX للانتقال بين الأطر المختلفة بسلاسة. على سبيل المثال، يمكن تصدير نموذج التعلم العميق الذي تم تدريبه في PyTorch إلى تنسيق ONNX ثم استيراده بسهولة إلى TensorFlow.

بدلاً من ذلك، يمكن استخدام نماذج ONNX مع ONNX Runtime. ONNX Runtime هو مسرع متعدد الاستخدامات عبر الأنظمة الأساسية لنماذج تعلم الآلة المتوافق مع أطر عمل مثل PyTorch و TensorFlow و TFLite و scikit-learn وما إلى ذلك.
يعمل وقت تشغيل ONNX على تحسين تنفيذ نماذج ONNX من خلال الاستفادة من الإمكانات الخاصة بالأجهزة. يتيح هذا التحسين تشغيل النماذج بكفاءة وبأداء عالٍ على العديد من منصات الأجهزة، بما في ذلك وحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPUs) والمسرّعات المتخصصة.

سواء تم استخدامه بشكل مستقل أو بالتزامن مع ONNX Runtime، يوفر ONNX حلاً مرنًا لـ نشر نموذج تعلم الآلة والتوافق.
الميزات الرئيسية لنماذج ONNX
يمكن أن تُعزى قدرة ONNX على التعامل مع التنسيقات المختلفة إلى الميزات الرئيسية التالية:
تمثيل النموذج الشائع: تحدد ONNX مجموعة شائعة من المعاملات (مثل الالتواءات والطبقات وما إلى ذلك) وتنسيق بيانات قياسي. عند تحويل نموذج إلى تنسيق ONNX، تتم ترجمة بنيته وأوزانه إلى هذا التمثيل الشائع. يضمن هذا التوحيد إمكانية فهم النموذج من خلال أي إطار عمل يدعم ONNX.
إصدارات والتوافق مع الإصدارات السابقة: تحتفظ ONNX بنظام إصدار للمشغلين الخاصين بها. وهذا يضمن أنه حتى مع تطور المعيار، تظل النماذج التي تم إنشاؤها في الإصدارات القديمة قابلة للاستخدام. التوافق مع الإصدارات السابقة هو ميزة حاسمة تمنع النماذج من أن تصبح قديمة بسرعة.
تمثيل النموذج المستند إلى الرسم البياني: يمثل ONNX النماذج كرسوم بيانية حسابية. هذا الهيكل المستند إلى الرسم البياني هو طريقة عالمية لتمثيل نماذج تعلم الآلة، حيث تمثل العقد عمليات حسابية، وتمثل الحواف الموترات المتدفقة بينها. هذا التنسيق قابل للتكيف بسهولة مع الأطر المختلفة التي تمثل أيضًا النماذج كرسوم بيانية.
الأدوات والنظام البيئي: يوجد نظام بيئي غني بالأدوات حول ONNX التي تساعد في تحويل النماذج وتصورها وتحسينها. تسهل هذه الأدوات على المطورين العمل مع نماذج ONNX وتحويل النماذج بين الأطر المختلفة بسلاسة.
الاستخدام الشائع لـ ONNX
قبل أن نتعمق في كيفية تصدير نماذج YOLO26 إلى تنسيق ONNX، دعنا نلقي نظرة على الأماكن التي تُستخدم فيها نماذج ONNX عادةً.
نشر وحدة المعالجة المركزية (CPU)
غالبًا ما يتم نشر نماذج ONNX على وحدات المعالجة المركزية (CPUs) نظرًا لتوافقها مع وقت تشغيل ONNX. تم تحسين وقت التشغيل هذا لتنفيذ وحدة المعالجة المركزية (CPU). إنه يحسن بشكل كبير من سرعة الاستدلال ويجعل عمليات نشر وحدة المعالجة المركزية (CPU) في الوقت الفعلي ممكنة.
خيارات النشر المدعومة
في حين أن نماذج ONNX تستخدم بشكل شائع على وحدات المعالجة المركزية CPUs، إلا أنه يمكن نشرها أيضًا على الأنظمة الأساسية التالية:
تسريع 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")
# Export a YOLO26n PyTorch model to ONNX format
yolo export model=yolo26n.pt format=onnx # creates 'yolo26n.onnx'
# Run inference with the exported model
yolo predict model=yolo26n.onnx source='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 الخاصة بك، ألقِ نظرة على الموارد التالية:
توثيق واجهة برمجة تطبيقات python لوقت التشغيل ONNX: يوفر هذا الدليل معلومات أساسية لتحميل وتشغيل نماذج ONNX باستخدام ONNX Runtime.
النشر على الأجهزة الطرفية: تحقق من صفحة المستندات هذه للحصول على أمثلة مختلفة لنشر نماذج ONNX على الحافة.
دروس ONNX التعليمية على GitHub: مجموعة من الدروس التعليمية الشاملة التي تغطي جوانب مختلفة لاستخدام وتنفيذ نماذج ONNX في سيناريوهات مختلفة.
خادم استنتاج Triton: تعرف على كيفية نشر نماذج ONNX الخاصة بك باستخدام خادم استنتاج NVIDIA Triton لعمليات نشر عالية الأداء وقابلة للتطوير.
ملخص
في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO26 إلى تنسيق ONNX لزيادة قابليتها للتشغيل البيني وأدائها عبر منصات مختلفة. كما تم تعريفك بـ ONNX Runtime وخيارات نشر ONNX.
تصدير ONNX هو مجرد أحد تنسيقات التصدير العديدة التي تدعمها 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")
# Export a YOLO26n PyTorch model to ONNX format
yolo export model=yolo26n.pt format=onnx # creates 'yolo26n.onnx'
# Run inference with the exported model
yolo predict model=yolo26n.onnx source='https://ultralytics.com/images/bus.jpg'
لمزيد من التفاصيل، قم بزيارة وثائق التصدير.
ما هي مزايا استخدام ONNX Runtime لنشر نماذج YOLO26؟
يوفر استخدام ONNX Runtime لنشر نماذج YOLO26 العديد من المزايا:
- التوافق عبر الأنظمة الأساسية: يدعم ONNX Runtime أنظمة أساسية متنوعة، مثل Windows و macOS و Linux، مما يضمن تشغيل النماذج الخاصة بك بسلاسة عبر بيئات مختلفة.
- تسريع الأجهزة: يمكن لـ ONNX Runtime الاستفادة من التحسينات الخاصة بالأجهزة لوحدات المعالجة المركزية ووحدات معالجة الرسوميات والمسرّعات المخصصة، مما يوفر استدلالًا عالي الأداء.
- التوافق التشغيلي للإطارات: يمكن بسهولة تحويل النماذج التي تم تدريبها في أطر عمل شائعة مثل PyTorch أو TensorFlow إلى تنسيق ONNX وتشغيلها باستخدام ONNX Runtime.
- تحسين الأداء: يمكن أن يوفر ONNX Runtime تسريعًا لوحدة المعالجة المركزية يصل إلى 3x مقارنة بنماذج PyTorch الأصلية، مما يجعله مثاليًا لسيناريوهات النشر حيث تكون موارد GPU محدودة.
تعرف على المزيد من خلال الاطلاع على وثائق ONNX Runtime.
ما هي خيارات النشر المتاحة لنماذج YOLO26 المصدرة إلى ONNX؟
يمكن نشر نماذج YOLO26 المصدرة إلى ONNX على منصات مختلفة، بما في ذلك:
- وحدات المعالجة المركزية CPUs: استخدام ONNX Runtime للاستدلال الأمثل لوحدة المعالجة المركزية.
- وحدات معالجة الرسوميات (GPUs): الاستفادة من NVIDIA CUDA لتسريع وحدة معالجة الرسوميات عالية الأداء.
- الأجهزة الطرفية: تشغيل نماذج خفيفة الوزن على الأجهزة الطرفية والمحمولة للاستدلال في الوقت الفعلي وعلى الجهاز.
- متصفحات الويب: تنفيذ النماذج مباشرة داخل متصفحات الويب لتطبيقات الويب التفاعلية.
- الخدمات السحابية: النشر على المنصات السحابية التي تدعم تنسيق 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 للحصول على مزيد من المساعدة.