تصدير Ultralytics YOLO إلى صيغة NCNN
يتطلب نشر نماذج الرؤية الحاسوبية على الأجهزة ذات القدرة الحسابية المحدودة، مثل الأنظمة المحمولة أو المدمجة، اختيارًا دقيقًا للصيغة. يضمن استخدام صيغة مُحسنة أن تتمكن حتى الأجهزة ذات الموارد المحدودة من التعامل مع مهام الرؤية الحاسوبية المتقدمة بكفاءة.
يسمح لك التصدير إلى صيغة NCNN بتحسين نماذج Ultralytics YOLO26 الخاصة بك للتطبيقات خفيفة الوزن القائمة على الأجهزة. يغطي هذا الدليل كيفية تحويل نماذجك إلى صيغة NCNN لتحسين الأداء على الأجهزة المحمولة والمدمجة.
لماذا التصدير إلى NCNN؟
إطار عمل NCNN، الذي طورته Tencent، هو إطار عمل عالي الأداء لحوسبة استدلال الشبكات العصبية مُحسّن خصيصًا للمنصات المحمولة، بما في ذلك الهواتف المحمولة، والأجهزة المدمجة، وأجهزة إنترنت الأشياء (IoT). NCNN متوافق مع مجموعة واسعة من المنصات، بما في ذلك Linux وAndroid وiOS وmacOS.
يُعرف NCNN بسرعته الفائقة في المعالجة على وحدات المعالجة المركزية (CPUs) للأجهزة المحمولة، مما يتيح النشر السريع لنماذج التعلم العميق على المنصات المحمولة، مما يجعله خيارًا ممتازًا لبناء تطبيقات مدعومة بالذكاء الاصطناعي.
الميزات الرئيسية لنماذج NCNN
توفر نماذج NCNN العديد من الميزات الرئيسية التي تمكّن التعلم الآلي على الجهاز، مما يساعد المطورين على نشر النماذج على الأجهزة المحمولة والمدمجة وحافة الشبكة (Edge devices):
-
فعالة وعالية الأداء: نماذج NCNN خفيفة الوزن ومُحسنة للأجهزة المحمولة والمدمجة مثل Raspberry Pi ذات الموارد المحدودة، مع الحفاظ على دقة عالية في مهام الرؤية الحاسوبية.
-
التكميم (Quantization): يدعم 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
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")تأكد من تثبيت تعريفات Vulkan لـ GPU الخاص بك. تتضمن معظم تعريفات GPU الحديثة دعم Vulkan افتراضيًا. يمكنك التحقق من توفر Vulkan باستخدام أدوات مثل vulkaninfo على Linux أو Vulkan SDK على Windows.
التصدير إلى NCNN: تحويل نموذج YOLO26 الخاص بك
يمكنك توسيع توافق النموذج ومرونة النشر عن طريق تحويل نماذج YOLO26 إلى صيغة NCNN.
التثبيت
لتثبيت الحزم المطلوبة، قم بتشغيل:
# Install the required package for YOLO26
pip install ultralyticsللحصول على تعليمات مفصلة وأفضل الممارسات، راجع دليل تثبيت Ultralytics. إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة للحصول على حلول.
الاستخدام
تم تصميم جميع نماذج Ultralytics YOLO26 لدعم التصدير بشكل مباشر، مما يسهل دمجها في سير عمل النشر المفضل لديك. يمكنك عرض القائمة الكاملة لتنسيقات التصدير المدعومة وخيارات التكوين لاختيار أفضل إعداد لتطبيقك.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")وسائط التصدير
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'ncnn' | التنسيق المستهدف للنموذج الذي تم تصديره، مما يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخلات النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو صفاً (height, width) لأبعاد محددة. |
half | bool | False | يُمكّن كمّية FP16 (دقة نصفية)، مما يقلل من حجم النموذج وربما يسرع الاستنتاج على الأجهزة المدعومة. |
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؟
لتصدير نموذج Ultralytics YOLO26 الخاص بك إلى صيغة NCNN:
-
Python: استخدم الطريقة
exportمن فئة YOLO.from ultralytics import YOLO # Load the YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model' -
CLI: استخدم الأمر
yolo export.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
للحصول على خيارات التصدير التفصيلية، راجع وثائق التصدير.
ما هي مزايا تصدير نماذج YOLO26 إلى NCNN؟
يوفر تصدير نماذج Ultralytics YOLO26 إلى NCNN العديد من الفوائد:
- الكفاءة: نماذج NCNN مُحسنة للأجهزة المحمولة والمدمجة، مما يضمن أداءً عاليًا حتى مع الموارد الحسابية المحدودة.
- التكميم: يدعم NCNN تقنيات مثل التكميم التي تحسن سرعة النموذج وتقلل من استخدام الذاكرة.
- توافق واسع: يمكنك نشر نماذج NCNN على منصات متعددة، بما في ذلك Android وiOS وLinux وmacOS.
- تسريع GPU عبر Vulkan: استفد من تسريع GPU على AMD وIntel ووحدات GPU الأخرى غير التابعة لـ NVIDIA عبر Vulkan لاستدلال أسرع.
لمزيد من التفاصيل، راجع قسم لماذا التصدير إلى NCNN؟.
لماذا يجب أن أستخدم NCNN لتطبيقات الذكاء الاصطناعي المحمولة الخاصة بي؟
NCNN، الذي طورته Tencent، مُحسّن خصيصًا للمنصات المحمولة. تشمل الأسباب الرئيسية لاستخدام NCNN ما يلي:
- أداء عالٍ: مصمم لمعالجة فعالة وسريعة على وحدات المعالجة المركزية (CPUs) للأجهزة المحمولة.
- عبر المنصات: متوافق مع الأطر الشهيرة مثل TensorFlow وONNX، مما يجعل من السهل تحويل النماذج ونشرها عبر منصات مختلفة.
- دعم المجتمع: يضمن دعم المجتمع النشط تحسينات وتحديثات مستمرة.
لمزيد من المعلومات، راجع قسم الميزات الرئيسية لنماذج NCNN.
ما هي المنصات المدعومة لـ نشر نموذج NCNN؟
NCNN متعدد الاستخدامات ويدعم منصات مختلفة:
- الأجهزة المحمولة: Android وiOS.
- الأنظمة المدمجة وأجهزة إنترنت الأشياء: أجهزة مثل Raspberry Pi وNVIDIA Jetson.
- سطح المكتب والخوادم: Linux وWindows وmacOS.
لتحسين الأداء على Raspberry Pi، فكر في استخدام صيغة NCNN كما هو مفصل في دليل Raspberry Pi.
كيف يمكنني نشر نماذج Ultralytics YOLO26 NCNN على Android؟
لنشر نماذج YOLO26 الخاصة بك على Android:
- البناء لـ Android: اتبع دليل NCNN Build for Android.
- التكامل مع تطبيقك: استخدم NCNN Android SDK لدمج النموذج المُصدر في تطبيقك لاستدلال فعال على الجهاز.
للحصول على تعليمات مفصلة، راجع نشر نماذج YOLO26 NCNN المُصدرة.
لمزيد من الأدلة المتقدمة وحالات الاستخدام، تفضل بزيارة دليل نشر Ultralytics.
كيف يمكنني استخدام تسريع GPU عبر Vulkan مع نماذج NCNN؟
يدعم NCNN تقنية Vulkan لتسريع GPU على AMD وIntel وحدات GPU الأخرى غير التابعة لـ NVIDIA. لاستخدام Vulkan:
from ultralytics import YOLO
# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # Use first Vulkan deviceبالنسبة للأنظمة متعددة وحدات GPU، حدد فهرس الجهاز (على سبيل المثال، vulkan:1 لوحدة GPU الثانية). تأكد من تثبيت تعريفات Vulkan لـ GPU الخاص بك. راجع قسم تسريع GPU عبر Vulkan لمزيد من التفاصيل.