Ultralytics YOLO27:

تصدير Ultralytics YOLO إلى NCNN#

يتطلب نشر نماذج الرؤية الحاسوبية على الأجهزة ذات القدرة الحاسوبية المحدودة، مثل الأنظمة المحمولة أو المضمنة، اختيار التنسيق بعناية. ويضمن استخدام تنسيق مُحسَّن قدرة الأجهزة محدودة الموارد على تنفيذ مهام الرؤية الحاسوبية المتقدمة بكفاءة.

يتيح التصدير إلى تنسيق NCNN تحسين نماذج Ultralytics YOLO26 لتطبيقات الأجهزة خفيفة الوزن. يوضح هذا الدليل كيفية تحويل نماذجك إلى تنسيق NCNN لتحسين الأداء على الأجهزة المحمولة والمضمنة.

لماذا التصدير إلى NCNN؟#

NCNN high-performance neural network inference framework

إطار عمل 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، ما يتيح التكامل السلس في تطبيقات الأجهزة المحمولة لتنفيذ الاستدلال بكفاءة على الجهاز.

  • الأنظمة المضمنة وأجهزة IoT: مثالي للأجهزة محدودة الموارد مثل 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 عند تشغيل الاستدلال:

استدلال 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

تأكد من تثبيت برامج تشغيل Vulkan لوحدة GPU لديك. تتضمن معظم برامج تشغيل وحدات GPU الحديثة دعم Vulkan افتراضيًا. يمكنك التحقق من توفر Vulkan باستخدام أدوات مثل vulkaninfo على Linux أو Vulkan SDK على Windows.

المهام المدعومة#

يدعم تصدير NCNN جميع مهام Ultralytics السبع. ولا يتوفر التجزئة الدلالية وتقدير العمق إلا مع YOLO26، وهي العائلة الوحيدة التي تأتي بهذه الرؤوس.

المهمةYOLOv8YOLO11YOLO26
الكشف
التجزئة
الدلالي
العمق
التصنيف
الوضعية
OBB

التصدير إلى NCNN: تحويل نموذج YOLO26#

يمكنك توسيع توافق النماذج ومرونة النشر من خلال تحويل نماذج YOLO26 إلى تنسيق NCNN.

التثبيت#

لتثبيت الحزم المطلوبة، شغّل:

التثبيت
# Install the required package for YOLO26
pip install ultralytics

للاطلاع على التعليمات التفصيلية وأفضل الممارسات، راجع دليل تثبيت Ultralytics. وإذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة للاطلاع على الحلول.

الاستخدام#

صُممت جميع نماذج Ultralytics YOLO26 لدعم التصدير مباشرةً، مما يسهّل دمجها في سير عمل النشر المفضل لديك. يمكنك عرض القائمة الكاملة لتنسيقات التصدير المدعومة وخيارات الإعداد لاختيار الإعداد الأنسب لتطبيقك.

يدعم تنسيق NCNN أوضاع التصدير والتنبؤ والتحقق. صدّر نموذجك، ثم حمّل النموذج المُصدَّر لتشغيل الاستدلال أو التحقق من دقته.

التصدير
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
التنبؤ
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
التحقق
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

وسائط التصدير#

الوسيطةالنوعالافتراضيالوصف
formatstr'ncnn'التنسيق المستهدف للنموذج المُصدَّر، والذي يحدد التوافق مع بيئات النشر المختلفة.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة أو صفًا (height, width) لأبعاد محددة.
quantizeint أو strNoneدقة التكميم: يقسم 16 (FP16) الأوزان المُصدَّرة إلى النصف؛ أما 32/غير المحدد فيصدّر أوزان FP32، التي تظل بيئة تشغيل CPU في NCNN تحسبها بتنسيق FP16 افتراضيًا عندما يدعم العتاد ذلك. ويحل محل العلامة half المتوقفة.
batchint1يحدد حجم الدفعة للاستدلال في نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر بالتزامن في وضع predict.
devicestrNoneيحدد الجهاز المستخدم للتصدير: 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
      
      # Load a 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'

    للاطلاع على خيارات التصدير التفصيلية، راجع وثائق التصدير.

  • يوفر تصدير نماذج 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.
    • الأنظمة المضمنة وأجهزة IoT: أجهزة مثل Raspberry Pi وNVIDIA Jetson.
    • أجهزة سطح المكتب والخوادم: Linux وWindows وmacOS.

    لتحسين الأداء على Raspberry Pi، فكّر في استخدام تنسيق NCNN كما هو موضح في دليل Raspberry Pi.

  • لنشر نماذج YOLO26 على Android:

    1. الإنشاء لنظام Android: اتبع دليل إنشاء NCNN لنظام Android.
    2. التكامل مع تطبيقك: استخدم NCNN Android SDK لدمج النموذج المُصدَّر في تطبيقك لتنفيذ الاستدلال بكفاءة على الجهاز.

    للاطلاع على التعليمات التفصيلية، راجع نشر نماذج YOLO26 NCNN المُصدَّرة.

    للاطلاع على أدلة وحالات استخدام أكثر تقدمًا، تفضل بزيارة دليل النشر من Ultralytics.

  • يدعم NCNN تقنية Vulkan لتسريع GPU على وحدات GPU من AMD وIntel وغيرها من الوحدات غير التابعة لـ 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 لمزيد من التفاصيل.

التعليقات