تصدير Ultralytics YOLO إلى NCNN#
يتطلب نشر نماذج الرؤية الحاسوبية على الأجهزة محدودة القدرة الحاسوبية، مثل الأجهزة المحمولة أو الأنظمة المضمنة، اختيار التنسيق بعناية. ويضمن استخدام تنسيق مُحسّن أن تتمكن الأجهزة محدودة الموارد من تنفيذ مهام الرؤية الحاسوبية المتقدمة بكفاءة.
يتيح التصدير إلى تنسيق NCNN تحسين نماذج Ultralytics YOLO26 لتطبيقات الأجهزة خفيفة الوزن. يشرح هذا الدليل كيفية تحويل نماذجك إلى تنسيق NCNN لتحسين الأداء على الأجهزة المحمولة والمضمنة.
لماذا التصدير إلى NCNN؟#
إطار عمل NCNN، الذي طورته Tencent، هو إطار حوسبة عالي الأداء للاستدلال باستخدام الشبكات العصبية، ومُحسّن خصيصًا للمنصات المحمولة، بما في ذلك الهواتف المحمولة والأجهزة المضمنة وأجهزة IoT. ويتوافق NCNN مع مجموعة واسعة من المنصات، بما فيها Linux وAndroid وiOS وmacOS.
يشتهر NCNN بسرعة معالجته على وحدات CPU المحمولة، ويتيح نشر نماذج التعلّم العميق على المنصات المحمولة بسرعة، مما يجعله خيارًا ممتازًا لإنشاء تطبيقات مدعومة بالذكاء الاصطناعي.
الميزات الرئيسية لنماذج NCNN#
توفر نماذج NCNN عدة ميزات أساسية تتيح تعلّم الآلة على الجهاز، وتساعد المطورين على نشر النماذج على الأجهزة المحمولة والمضمنة وأجهزة الحافة:
-
الكفاءة والأداء العالي: نماذج NCNN خفيفة الوزن ومُحسّنة للأجهزة المحمولة والمضمنة، مثل Raspberry Pi محدود الموارد، مع الحفاظ على دقة عالية في مهام الرؤية الحاسوبية.
-
التكميم: يدعم NCNN التكميم، وهي تقنية تقلل دقة أوزان النموذج وعمليات التنشيط لتحسين الأداء وتقليل استهلاك الذاكرة.
-
التوافق: تتوافق نماذج NCNN مع أطر التعلم العميق الشائعة، بما فيها TensorFlow وCaffe وONNX، مما يتيح للمطورين الاستفادة من النماذج وسير العمل الحالية.
-
سهولة الاستخدام: يوفر NCNN أدوات سهلة الاستخدام لتحويل النماذج بين التنسيقات، بما يضمن قابلية التشغيل البيني بسلاسة عبر بيئات التطوير المختلفة.
-
تسريع GPU عبر Vulkan: يدعم NCNN تقنية Vulkan للاستدلال المسرّع بواسطة GPU عبر عدة جهات مصنّعة، بما فيها AMD وIntel وغيرها من وحدات GPU غير التابعة لـ NVIDIA، مما يتيح النشر عالي الأداء على نطاق أوسع من الأجهزة.
خيارات النشر باستخدام NCNN#
تتوافق نماذج NCNN مع مجموعة متنوعة من منصات النشر:
-
النشر على الأجهزة المحمولة: مُحسّن لنظامي Android وiOS، مما يتيح التكامل السلس في تطبيقات الأجهزة المحمولة لإجراء الاستدلال بكفاءة على الجهاز.
-
الأنظمة المضمّنة وأجهزة إنترنت الأشياء: مثالي للأجهزة محدودة الموارد مثل Raspberry Pi وNVIDIA Jetson. إذا لم يكن الاستدلال القياسي على Raspberry Pi باستخدام دليل Ultralytics كافيًا، فيمكن لـ NCNN تقديم تحسينات كبيرة في الأداء.
-
النشر على أجهزة سطح المكتب والخوادم: يدعم النشر على Linux وWindows وmacOS لسير عمل التطوير والتدريب والتقييم.
تسريع GPU عبر Vulkan#
يدعم NCNN تسريع GPU من خلال Vulkan، مما يتيح استدلالًا عالي الأداء على نطاق واسع من وحدات GPU، بما فيها بطاقات الرسومات من AMD وIntel وغيرها من الجهات غير التابعة لـ NVIDIA. وهذا مفيد على نحو خاص في الحالات التالية:
- دعم وحدات GPU من جهات مصنّعة متعددة: على خلاف CUDA، الذي يقتصر على وحدات GPU من NVIDIA، تعمل Vulkan مع وحدات GPU من جهات مصنّعة متعددة.
- الأنظمة متعددة وحدات GPU: حدّد جهاز Vulkan بعينه في الأنظمة التي تضم عدة وحدات GPU باستخدام
device="vulkan:0"وdevice="vulkan:1"وما إلى ذلك. - النشر على الأجهزة الطرفية وأجهزة سطح المكتب: استفِد من تسريع GPU على الأجهزة التي لا يتوفر فيها CUDA.
لاستخدام تسريع Vulkan، حدّد جهاز Vulkan عند تشغيل الاستدلال:
from ultralytics import YOLO
# تحميل نموذج NCNN المُصدَّر
ncnn_model = YOLO("./yolo26n_ncnn_model")
# شغّل الاستدلال مع تسريع GPU عبر Vulkan (جهاز Vulkan الأول)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# استخدم جهاز Vulkan الثاني في الأنظمة متعددة وحدات GPU
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")تأكد من تثبيت برامج تشغيل Vulkan لوحدة GPU لديك. تتضمن معظم برامج تشغيل وحدات GPU الحديثة دعم Vulkan افتراضيًا. يمكنك التحقق من توفر Vulkan باستخدام أدوات مثل vulkaninfo على Linux أو Vulkan SDK على Windows.
المهام المدعومة#
يدعم التصدير إلى NCNN مهام Ultralytics السبع كلها. لا يتوفر التقسيم الدلالي وتقدير العمق إلا مع YOLO26، وهو العائلة الوحيدة التي تتضمن هذين الرأسين.
التصدير إلى NCNN: تحويل نموذج YOLO26#
يمكنك توسيع توافق النماذج ومرونة النشر بتحويل نماذج YOLO26 إلى تنسيق NCNN.
التثبيت#
لتثبيت الحزم المطلوبة، شغّل:
# Install the required package for YOLO26
pip install ultralyticsللحصول على تعليمات مفصلة وأفضل الممارسات، راجع دليل تثبيت Ultralytics. وإذا واجهت أي صعوبات، فارجع إلى دليل المشكلات الشائعة للاطلاع على الحلول.
الاستخدام#
صُممت جميع نماذج Ultralytics YOLO26 لدعم التصدير مباشرةً، مما يسهل دمجها في سير عمل النشر الذي تفضله. يمكنك عرض القائمة الكاملة لتنسيقات التصدير المدعومة وخيارات الإعداد لاختيار الإعداد الأنسب لتطبيقك.
يدعم تنسيق NCNN أوضاع التصدير والتنبؤ والتحقق. صدّر النموذج، ثم حمّل النموذج المُصدّر لإجراء الاستدلال أو التحقق من دقته.
from ultralytics import YOLO
# تحميل نموذج YOLO26
model = YOLO("yolo26n.pt")
# تصدير النموذج بتنسيق NCNN
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'from ultralytics import YOLO
# تحميل نموذج NCNN المُصدَّر
model = YOLO("./yolo26n_ncnn_model")
# تنفيذ الاستدلال
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# تحميل نموذج NCNN المُصدَّر
model = YOLO("./yolo26n_ncnn_model")
# # التحقق من الدقة على مجموعة بيانات COCO8
metrics = model.val(data="coco8.yaml")وسيطات التصدير#
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'ncnn' | التنسيق المستهدف للنموذج المُصدَّر، ويحدد مدى توافقه مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب كمدخل للنموذج. يمكن تحديده كعدد صحيح للصور المربعة أو كصف (height, width) للأبعاد المحددة. |
quantize | int أو str | None | دقة التكميم: يقلّص 16 (FP16) أوزان النموذج المُصدّرة إلى النصف؛ أما 32/غير المحدد فيصدّر أوزان FP32، التي يظل وقت تشغيل CPU في NCNN يحسبها باستخدام FP16 افتراضيًا عندما تدعم الأجهزة ذلك. يستبدل هذا الخيار العلامة المهملة half. |
batch | int | 1 | يحدد حجم الدفعة للاستدلال بنموذج التصدير، أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدّر بالتزامن في وضع predict. |
device | str | None | يحدد الجهاز المستخدم للتصدير: GPU (device=0)، أو CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps). |
لمزيد من التفاصيل حول عملية التصدير، تفضّل بزيارة صفحة وثائق Ultralytics حول التصدير.
نشر نماذج YOLO26 المُصدّرة بتنسيق NCNN#
بعد تصدير نماذج Ultralytics YOLO26 إلى تنسيق NCNN، يمكنك نشرها باستخدام الطريقة YOLO("yolo26n_ncnn_model/") كما هو موضح في مثال الاستخدام أعلاه. للاطلاع على تعليمات النشر الخاصة بكل منصة، راجع الموارد التالية:
-
Android: أنشئ نماذج NCNN وادمجها لإجراء كشف الأجسام في تطبيقات Android.
-
macOS: انشر نماذج NCNN على أنظمة macOS.
-
Linux: انشر نماذج NCNN على أجهزة Linux، بما فيها Raspberry Pi والأنظمة المضمّنة المشابهة.
-
Windows x64: انشر نماذج NCNN على Windows x64 باستخدام Visual Studio.
الملخص#
تناول هذا الدليل تصدير نماذج Ultralytics YOLO26 إلى تنسيق NCNN لتحسين الكفاءة والسرعة على الأجهزة محدودة الموارد.
للاطلاع على مزيد من التفاصيل، راجع وثائق NCNN الرسمية. ولمعرفة خيارات التصدير الأخرى، تفضل بزيارة صفحة دليل التكامل.
الأسئلة الشائعة#
لتصدير نموذج Ultralytics YOLO26 إلى تنسيق NCNN:
-
Python: استخدم الطريقة
exportمن فئة YOLO.from ultralytics import YOLO # تحميل نموذج YOLO26 model = YOLO("yolo26n.pt") # التصدير إلى تنسيق NCNN model.export(format="ncnn") # creates 'yolo26n_ncnn_model' -
CLI: استخدم الأمر
yolo export.yolo export model=yolo26n.pt format=ncnn # creates 'yolo26n_ncnn_model'
للاطلاع على خيارات التصدير التفصيلية، راجع وثائق التصدير.
-
يوفر تصدير نماذج Ultralytics YOLO26 إلى NCNN عدة مزايا:
- الكفاءة: تُحسّن نماذج NCNN للأجهزة المحمولة والمضمّنة، مما يضمن أداءً عاليًا حتى مع محدودية موارد الحوسبة.
- التكميم: يدعم NCNN تقنيات مثل التكميم التي تحسّن سرعة النموذج وتقلل استهلاك الذاكرة.
- توافق واسع: يمكنك نشر نماذج NCNN على منصات متعددة، بما فيها Android وiOS وLinux وmacOS.
- تسريع GPU عبر Vulkan: استفِد من تسريع GPU على وحدات GPU من AMD وIntel وغيرها من الجهات غير التابعة لـ NVIDIA، عبر Vulkan، لإجراء الاستدلال بسرعة أكبر.
لمزيد من التفاصيل، راجع قسم لماذا التصدير إلى NCNN؟.
طوّرت Tencent تقنية NCNN، وهي مُحسّنة خصيصًا لمنصات الأجهزة المحمولة. وتشمل الأسباب الرئيسية لاستخدام NCNN ما يلي:
- أداء عالٍ: مصمم لمعالجة فعالة وسريعة على وحدات CPU للأجهزة المحمولة.
- متعدد المنصات: متوافق مع أطر العمل الشائعة مثل TensorFlow وONNX، مما يسهّل تحويل النماذج ونشرها عبر منصات مختلفة.
- دعم المجتمع: يضمن دعم المجتمع النشط استمرار التحسينات والتحديثات.
لمزيد من المعلومات، راجع قسم الميزات الرئيسية لنماذج NCNN.
يتسم NCNN بتعدد الاستخدامات ويدعم منصات متنوعة:
- الأجهزة المحمولة: Android وiOS.
- الأنظمة المضمّنة وأجهزة إنترنت الأشياء: أجهزة مثل Raspberry Pi وNVIDIA Jetson.
- أجهزة سطح المكتب والخوادم: Linux وWindows وmacOS.
لتحسين الأداء على Raspberry Pi، فكّر في استخدام تنسيق NCNN كما هو موضح بالتفصيل في دليل Raspberry Pi.
لنشر نماذج YOLO26 على Android:
- إنشاء إصدار Android: اتبع دليل إنشاء NCNN لنظام Android.
- التكامل مع تطبيقك: استخدم NCNN Android SDK لدمج النموذج المُصدّر في تطبيقك، لإجراء الاستدلال بكفاءة على الجهاز.
للاطلاع على التعليمات المفصلة، راجع نشر نماذج YOLO26 المُصدّرة بتنسيق NCNN.
للاطلاع على أدلة أكثر تقدمًا وحالات الاستخدام، تفضل بزيارة دليل النشر من Ultralytics.
يدعم NCNN تقنية Vulkan لتسريع GPU على وحدات GPU من AMD وIntel وغيرها من الجهات غير التابعة لـ NVIDIA. لاستخدام Vulkan:
from ultralytics import YOLO # حمّل نموذج NCNN وشغّله باستخدام GPU عبر Vulkan model = YOLO("yolo26n_ncnn_model") results = model("image.jpg", device="vulkan:0") # استخدم جهاز Vulkan الأولفي الأنظمة متعددة وحدات GPU، حدّد فهرس الجهاز (مثل
vulkan:1لوحدة GPU الثانية). تأكد من تثبيت برامج تشغيل Vulkan لوحدة GPU لديك. راجع قسم تسريع GPU عبر Vulkan لمزيد من التفاصيل.