رؤية YOLO 2026:

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

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

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

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

NCNN high-performance neural network inference framework

يُعد إطار عمل NCNN، الذي طورته شركة Tencent، إطار عمل عالي الأداء لاستنتاج neural network مُحسَّن خصيصاً لمنصة الأجهزة المحمولة، بما في ذلك الهواتف المحمولة والأجهزة المضمنة وأجهزة إنترنت الأشياء (IoT). يتوافق NCNN مع مجموعة واسعة من المنصات، بما في ذلك Linux وAndroid وiOS وmacOS.

يُعرف NCNN بسرعته الفائقة في المعالجة على وحدات المعالجة المركزية (CPUs) للأجهزة المحمولة، ويتيح نشر نماذج deep learning بسرعة على المنصات المحمولة، مما يجعله خياراً ممتازاً بناء تطبيقات مدعومة بالذكاء الاصطناعي.

الميزات الرئيسية لنماذج NCNN#

توفر نماذج NCNN العديد من الميزات الرئيسية التي تتيح machine learning على الأجهزة، مما يساعد المطورين على نشر النماذج على الأجهزة المحمولة والمضمنة والطرفية (edge devices):

  • فعال وعالي الأداء: نماذج NCNN خفيفة الوزن ومُحسَّنة للأجهزة المحمولة والمضمنة مثل Raspberry Pi ذات الموارد المحدودة، مع الحفاظ على accuracy عالية في مهام الرؤية الحاسوبية.

  • التقييس (Quantization): يدعم NCNN عملية التقييس، وهي تقنية تقلل من precision لوزن النماذج والتنشيطات لتحسين الأداء وتقليل استهلاك الذاكرة.

  • التوافق: تتوافق نماذج 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 Guide غير كافٍ، فيمكن لـ NCNN توفير تحسينات كبيرة في الأداء.

  • النشر على سطح المكتب والخادم: يدعم النشر عبر Linux و Windows و macOS لسير عمل التطوير والتدريب والتقييم.

تسريع GPU عبر Vulkan#

يدعم NCNN تسريع GPU من خلال Vulkan، مما يتيح استدلالًا عالي الأداء على مجموعة واسعة من وحدات GPU بما في ذلك AMD و Intel وبطاقات الرسوميات الأخرى التي ليست من نوع NVIDIA. هذا مفيد بشكل خاص لـ:

  • دعم GPU عبر بائعين متعددين: على عكس CUDA، الذي يقتصر على وحدات GPU من NVIDIA، يعمل Vulkan عبر بائعي GPU متعددين.
  • أنظمة متعددة وحدات معالجة الرسومات (Multi-GPU): حدد جهاز Vulkan معيناً في الأنظمة التي تحتوي على وحدات معالجة رسومات متعددة باستخدام 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) الخاصة بك. تتضمن معظم برامج تشغيل وحدات معالجة الرسومات الحديثة دعم Vulkan بشكل افتراضي. يمكنك التحقق من توفر Vulkan باستخدام أدوات مثل vulkaninfo على نظام Linux أو مجموعة تطوير البرمجيات Vulkan SDK على نظام Windows.

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

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

المهمةYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

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

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

التثبيت#

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

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

للحصول على إرشادات تفصيلية وأفضل الممارسات، راجع Ultralytics Installation guide. إذا واجهت أي صعوبات، فاستشر Common Issues guide الخاصة بنا للحصول على الحلول.

الاستخدام#

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

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

التصدير
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حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون رقماً صحيحاً للصور المربعة أو صفاً (tuple) (height, width) لأبعاد محددة.
quantizeint أو strNoneدقة التقييس (Quantization precision): 16 (FP16) تقلل من حجم النموذج ويمكن أن تسرع الاستنتاج؛ 32/بدون تحديد هي FP32. تحل محل علامة 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 لـ object detection في تطبيقات Android.

  • macOS: نشر نماذج NCNN على أنظمة macOS.

  • Linux: نشر نماذج NCNN على أجهزة Linux بما في ذلك Raspberry Pi والأنظمة المضمنة المماثلة.

  • Windows x64: نشر نماذج NCNN على Windows x64 باستخدام Visual Studio.

ملخص#

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

للحصول على تفاصيل إضافية، راجع official NCNN documentation. للحصول على خيارات تصدير أخرى، تفضل بزيارة integration guide page.

الأسئلة الشائعة#

  • لتصدير نموذج 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'

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

  • يوفر تصدير نماذج Ultralytics YOLO26 إلى NCNN العديد من المزايا:

    • الكفاءة: نماذج NCNN مُحسَّنة للأجهزة المحمولة والمدمجة، مما يضمن أداءً عاليًا حتى مع الموارد الحسابية المحدودة.
    • التكميم (Quantization): يدعم NCNN تقنيات مثل التكميم التي تحسن سرعة النموذج وتقلل من استخدام الذاكرة.
    • توافق واسع: يمكنك نشر نماذج NCNN على منصات متعددة، بما في ذلك Android و iOS و Linux و macOS.
    • تسريع GPU عبر Vulkan: استفد من تسريع GPU على AMD و Intel وغيرها من وحدات GPU التي ليست من نوع NVIDIA عبر Vulkan لاستدلال أسرع.

    لمزيد من التفاصيل، راجع قسم Why Export to NCNN?.

  • تم تحسين NCNN، الذي طورته Tencent، خصيصًا للمنصات المحمولة. الأسباب الرئيسية لاستخدام NCNN تشمل:

    • أداء عالٍ: مصمم لمعالجة فعالة وسريعة على وحدات المعالجة المركزية (CPU) للهواتف المحمولة.
    • متعدد المنصات: يتوافق مع الأطر الشائعة مثل TensorFlow وONNX، مما يسهل تحويل النماذج ونشرها عبر منصات مختلفة.
    • دعم المجتمع: يضمن دعم المجتمع النشط تحسينات وتحديثات مستمرة.

    لمزيد من المعلومات، راجع قسم Key Features of NCNN Models.

  • يعتبر NCNN متعدد الاستخدامات ويدعم منصات متنوعة:

    • الأجهزة المحمولة: Android، iOS.
    • الأنظمة المدمجة وأجهزة إنترنت الأشياء: أجهزة مثل Raspberry Pi و NVIDIA Jetson.
    • سطح المكتب والخوادم: Linux و Windows و macOS.

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

  • لنشر نماذج YOLO26 الخاصة بك على Android:

    1. البناء لنظام Android: اتبع دليل NCNN Build for Android.
    2. التكامل مع تطبيقك: استخدم NCNN Android SDK لدمج النموذج المصدر في تطبيقك من أجل استدلال فعال على الجهاز.

    للحصول على إرشادات مفصلة، راجع Deploying Exported YOLO26 NCNN Models.

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

  • يدعم 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

    بالنسبة للأنظمة ذات وحدات معالجة الرسومات المتعددة، قم بتحديد فهرس الجهاز (على سبيل المثال، vulkan:1 لوحدة معالجة الرسومات الثانية). تأكد من تثبيت برامج تشغيل Vulkan لوحدة معالجة الرسومات الخاصة بك. راجع قسم Vulkan GPU Acceleration لمزيد من التفاصيل.

التعليقات