Link to this sectionتصدير Qualcomm QNN لنماذج Ultralytics YOLO#
يتطلب نشر نماذج رؤية حاسوبية على أجهزة Qualcomm Snapdragon تنسيق نموذج مضبوط خصيصاً لوقت تشغيل Qualcomm AI Engine Direct (QNN). يتيح لك تصدير نماذج Ultralytics YOLO إلى تنسيق QNN إجراء استنتاج سريع ومسرّع على الجهاز عبر معالجات Snapdragon CPU و Adreno GPU و Hexagon NPU الموجودة في مليارات الهواتف المحمولة والحواسيب المحمولة وأنظمة السيارات وأجهزة إنترنت الأشياء. يوضح هذا الدليل كيفية تصدير YOLO إلى Qualcomm QNN ونشره لإجراء استنتاج سريع ومنخفض الطاقة على أجهزة Snapdragon.
يعمل Ultralytics Flutter plugin الرسمي على تشغيل عمليات تصدير QNN على وحدة Hexagon NPU مباشرةً - حيث يدعم استنتاج الكاميرا في الوقت الفعلي، وتنبؤ الصورة الواحدة، والتنزيل التلقائي للنماذج لجميع مهام YOLO26 الست. لنشر التطبيق على iOS، راجع Ultralytics YOLO iOS SDK وتكامل CoreML.
Link to this sectionما هو Qualcomm QNN؟#
Qualcomm AI Engine Direct — الذي يُشار إليه عادةً باسم QNN ويتم توزيعه كجزء من Qualcomm AI Runtime (QAIRT) SDK — هو حزمة استنتاج منخفضة المستوى من Qualcomm لمعالجات Snapdragon. وهو يوفر واجهة برمجة تطبيقات (API) موحدة مع مكتبات خاصة بالخلفية تستهدف وحدة المعالجة المركزية (CPU) في Snapdragon، ووحدة معالجة الرسومات (GPU) Adreno، ومعالج Hexagon Tensor (HTP)، وهو وحدة معالجة الشبكة العصبية (NPU) المخصصة داخل أنظمة Snapdragon على شريحة (SoCs) الحديثة. تمنح QNN المطورين وصولاً كامل النطاق إلى مسرعات الذكاء الاصطناعي هذه في Snapdragon، وهي الخلف الحديث لمجموعة تطوير برمجيات Snapdragon Neural Processing Engine (SNPE) الأقدم. وهي تشغل الذكاء الاصطناعي على الجهاز عبر منصات الهواتف المحمولة Snapdragon 8 Gen 2 و8 Gen 3 و8 Elite، وأجهزة كمبيوتر Snapdragon X المحمولة، ومنتجات السيارات وXR.
Link to this sectionلماذا يتم التصدير إلى Qualcomm QNN؟#
تعد Snapdragon منصة الحوسبة المحمولة الأكثر انتشاراً في العالم. يؤدي تصدير Ultralytics YOLO إلى تنسيق Qualcomm QNN إلى فتح أجهزة الذكاء الاصطناعي المخصصة على هذه الأجهزة:
- تسريع Hexagon NPU: يؤدي تشغيل YOLO على Hexagon Tensor Processor إلى توفير إنتاجية أعلى بشكل كبير واستهلاك طاقة أقل مقارنةً بالاستنتاج على وحدة المعالجة المركزية (CPU) - وهو مثالي لـ real-time inference والرؤية الحاسوبية المستمرة على Snapdragon.
- على الجهاز ودون اتصال بالإنترنت: يعمل استنتاج QNN بالكامل على جهاز Snapdragon، لذا لا توجد رحلات ذهاب وإياب إلى السحابة، وتبقى زمن الوصول منخفضاً، ولا تغادر البيانات الجهاز أبداً.
- كفاءة التكميم (Quantization): يقوم تصدير QNN بـ quantizes نماذج YOLO إلى أوزان INT8 مع تنشيطات 16 بت، وهو توازن الدقة/الأداء المفضل لدى Hexagon NPU، مما يقلص حجم النموذج ويزيد من عدد الإطارات في الثانية على الأجهزة التي تعمل بالبطارية.
- تنسيق واحد، أجهزة متعددة: يستهدف تصدير Qualcomm QNN واحد معالجات Snapdragon CPU و Adreno GPU و Hexagon NPU عبر عائلات Snapdragon 8 Gen 2 و 8 Gen 3 و 8 Elite وما بعدها.
- مكدس ذكاء اصطناعي من Qualcomm جاهز للإنتاج: يعد QNN (Qualcomm AI Engine Direct / QAIRT) هو وقت تشغيل الذكاء الاصطناعي الحالي من Qualcomm الذي يتم صيانته بنشاط والبديل الموصى به لـ SNPE.
Link to this sectionتنسيق تصدير QNN#
تقوم Ultralytics بتجميع نماذج YOLO إلى QNN محلياً باستخدام ONNX Runtime QNN Execution Provider (حزمة onnxruntime-qnn القابلة للتثبيت عبر pip، والتي تجمع مكتبات QAIRT). يقوم المصدر بتحويل نموذجك إلى ONNX، ويقوم بتكميمه (quantizes) باستخدام بيانات المعايرة إلى تنشيطات 16 بت وأوزان INT8 (التوازن الموصى به لـ Hexagon NPU)، ثم يقوم بتهيئة جلسة ONNX Runtime مع تمكين التخزين المؤقت لثنائي السياق (context-binary) - وهذا يجمع الرسم البياني المكمم إلى QNN context binary مدمج في <model>_qnn.onnx. لا يلزم وجود حساب Qualcomm أو تحميل سحابي أو تنزيل منفصل لـ SDK.
على عكس Qualcomm AI Hub المستند إلى السحابة، والذي يقوم بتجميع وتوصيف النماذج على أجهزة Snapdragon المستضافة من قبل Qualcomm ويتطلب حساب Qualcomm، يتم تشغيل تصدير Ultralytics QNN بالكامل على جهازك الخاص باستخدام استدعاء export(format="qnn") واحد. تحصل على نفس هدف وقت التشغيل QNN/QAIRT - معالجات Snapdragon CPU و Adreno GPU و Hexagon NPU - دون تسجيل، أو حدود تحميل، أو أوقات انتظار، وهو يندمج مباشرة في سير عمل تصدير YOLO القياسي.
ملف *_qnn.onnx المُصدّر مكتفٍ ذاتياً: فهو يدمج ثنائي سياق QNN وبيانات ONNX الوصفية مثل أسماء الفئات، وحجم الصورة، والمهمة.
Link to this sectionالميزات الرئيسية لنماذج QNN#
- التكميم (Quantization): يتم تكميم النموذج إلى تنشيطات 16 بت وأوزان INT8 باستخدام تدفق ONNX Runtime QNN QDQ ومجموعة بيانات معايرة، وهو توازن الدقة/الأداء الموصى به لـ Hexagon NPU. تعرف على المزيد حول model quantization.
- تجميع محلي بالكامل: يتم إنشاء ثنائي السياق بالكامل على جهازك المضيف - لا حاجة لحساب Qualcomm أو رمز API أو تحميل سحابي.
- تسريع كامل لـ Snapdragon: قم بتشغيل الاستنتاج على Hexagon NPU (HTP) أو Adreno GPU أو CPU من خلال وقت تشغيل موحد واحد.
- نطاق واسع من الأجهزة: استهدف مجموعة واسعة من منصات Snapdragon التي يتم شحنها في الهواتف، وأجهزة الكمبيوتر (Windows على Snapdragon)، والسيارات، ومنتجات XR، والمنتجات المدمجة.
- ثنائي سياق مجمع مسبقاً (Precompiled Context Binary): يقلل شحن ثنائي السياق من تجميع الرسم البياني على الجهاز، مما يقلل من زمن تحميل النموذج على الهدف.
- مخرج مكتفٍ ذاتياً: يحتوي ملف ONNX المُصدّر على ثنائي سياق QNN المجمع مسبقاً والبيانات الوصفية للنشر المباشر.
Link to this sectionالأداء المقاس#
استنتاج شامل (end-to-end) لصورة واحدة لنماذج YOLO26n الرسمية على هاتف Xiaomi 17 الذي يعمل بمعالج Qualcomm Snapdragon 8 Elite Gen 5 (SM8850) - وحدة المعالجة المركزية Qualcomm Oryon، ووحدة معالجة الرسومات Adreno، ووحدة NPU Hexagon (HTP v81). تُظهر كل خلية الوقت الإجمالي (المعالجة المسبقة + الاستنتاج + المعالجة اللاحقة، باستثناء التعليقات التوضيحية) مع تقسيم كل مرحلة تحتها. تعمل وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) عبر INT8 TFLite باستخدام LiteRT؛ بينما تعمل وحدة NPU باستخدام ملفات سياق QNN (أوزان INT8، وتنشيطات 16-بت).
| النموذج | المهمة | الحجم (بكسل) | وحدة المعالجة المركزية (CPU) INT8 TFLite (ملي ثانية) | GPU Adreno INT8 TFLite (ملي ثانية) | NPU Hexagon QNN A16W8 (ملي ثانية) |
|---|---|---|---|---|---|
| YOLO26n | اكتشاف | 640 | 53.3 3.6 / 47.4 / 2.4 | 17.2 3.6 / 9.1 / 4.5 | 11.3 3.5 / 5.6 / 2.2 |
| YOLO26n-seg | تجزئة | 640 | 76.0 3.6 / 64.7 / 7.7 | 23.9 3.6 / 11.8 / 8.6 | 21.3 3.5 / 7.9 / 10.0 |
| YOLO26n-sem | دلالي (Semantic) | 1024 | 66.6 3.6 / 46.3 / 16.8 | 37.7 3.6 / 17.4 / 16.7 | 49.11 8.8 / 20.8 / 19.5 |
| YOLO26n-cls | تصنيف | 224 | 5.2 0.8 / 4.0 / 0.5 | 4.5 1.6 / 2.2 / 0.7 | 2.4 1.1 / 0.6 / 0.7 |
| YOLO26n-pose | وضعية | 640 | 57.7 3.5 / 52.4 / 1.8 | 15.2 3.6 / 9.7 / 1.9 | 10.8 3.5 / 5.6 / 1.8 |
| YOLO26n-obb | OBB | 1024 | 50.3 3.6 / 45.4 / 1.3 | 13.9 3.8 / 8.2 / 1.8 | 21.0 8.8 / 10.9 / 1.3 |
- قيم السرعة هي زمن استجابة دفعات الصور الواحدة - وهي متوسط 15 جولة بعد 3 جولات إحماء على bus.jpg، تم قياسها باستخدام أداة قياس الأداء على الجهاز في Flutter plugin على جهاز في حالة حرارية مستقرة. تكون أوقات إطارات الكاميرا المستمرة في الوقت الفعلي أعلى (بسبب التقاط الإطارات وتأطيرها بالإضافة إلى الاستقرار الحراري)؛ استخدم تفاصيل التطبيق التي تظهر على الشاشة للمعالجة المسبقة/الاستنتاج/المعالجة اللاحقة للحصول على أرقام الحالة المستقرة على جهازك.
- 1 يستخدم Semantic QNN مخرجات ArgMax class-map الموجودة داخل الرسم البياني من هذا الإصدار، والتي استبدلت فك تشفير Logits غير المستقر الذي كان يستغرق 123-1065 مللي ثانية بقيمة مستقرة تبلغ حوالي 49 مللي ثانية؛ تظل وحدة معالجة الرسومات (GPU) أسرع قليلاً للعمليات الدلالية (Semantic) عند 1024 بكسل.
Link to this sectionالمهام المدعومة#
يدعم تصدير QNN مجموعة المهام القياسية المتاحة في كل عائلة نماذج، بما في ذلك التجزئة الدلالية YOLO26.
| المهمة | مدعوم |
|---|---|
| اكتشاف الكائنات | ✅ |
| تقسيم المثيلات | ✅ |
| التقسيم الدلالي | ✅ |
| تقدير الوضع | ✅ |
| اكتشاف المربعات المحيطة الموجهة (OBB Detection) | ✅ |
| التصنيف | ✅ |
Link to this sectionالتصدير إلى QNN: تحويل نموذج YOLO الخاص بك#
قم بتصدير نموذج Ultralytics YOLO إلى تنسيق QNN للنشر على أجهزة Snapdragon. يتم الانتهاء من ثنائي السياق لبنية Hexagon Tensor Processor (HTP) مستهدفة، والتي تختارها باستخدام وسيط name - وهو نفس الوسيط المستخدم لاستهداف شريحة في RKNN export.
Link to this sectionبنيات HTP المدعومة#
مرر البنية المستهدفة عبر name (مثلاً name="73"). القيم الصالحة هي:
name | Hexagon HTP | منصة Snapdragon |
|---|---|---|
68 | v68 | Snapdragon 888 |
69 | v69 | Snapdragon 8 Gen 1 / 8+ Gen 1 |
73 | v73 | Snapdragon 8 Gen 2, X Elite (الافتراضي) |
75 | v75 | Snapdragon 8 Gen 3 |
79 | v79 | Snapdragon 8 Elite |
81 | v81 | Snapdragon 8 Elite Gen 5 |
يستخدم تصدير QNN حزمة onnxruntime-qnn. يتم نشر عجلات (wheels) مبنية مسبقاً لـ Windows (x64 و ARM64) و Linux ARM64 (aarch64)؛ على Linux x86-64 قم ببناء ONNX Runtime من المصدر باستخدام --use_qnn (لا يتم نشر عجلة مبنية مسبقاً، و macOS ليس مضيف QNN مدعوماً). يتم تشغيل إنشاء ثنائي سياق QNN على مضيف x64 - Windows x64 أو Linux x86-64 - ولا يتطلب جهاز Snapdragon لخطوة التصدير.
Link to this sectionالتثبيت#
لتثبيت الحزم المطلوبة، قم بتشغيل:
# Install the required package for YOLO
pip install ultralyticsيتم تثبيت حزمة onnxruntime-qnn (التي توفر موفر تنفيذ ONNX Runtime QNN وتجمع مكتبات QAIRT) تلقائياً عند التصدير الأول. للحصول على تعليمات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت Ultralytics. أثناء تثبيت الحزم المطلوبة لـ YOLO، إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة للحصول على حلول ونصائح.
Link to this sectionالاستخدام#
يدعم تنسيق QNN أوضاع Export و Predict و Validate. يتم تشغيل الاستنتاج والتحقق على أجهزة Qualcomm Snapdragon من خلال ONNX Runtime's QNN Execution Provider (نفس حزمة onnxruntime-qnn المستخدمة للتصدير). قم بتصدير نموذجك، ثم قم بتحميل النموذج المُصدّر على جهاز Snapdragon لتشغيل الاستنتاج أو التحقق من دقته.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export to Qualcomm QNN format (INT8, enforced automatically), targeting an HTP architecture via 'name'
# 'name' can be one of 68, 69, 73, 75, 79, 81 (Snapdragon 888, 8 Gen 1, 8 Gen 2, 8 Gen 3, 8 Elite, 8 Elite Gen 5)
model.export(format="qnn", name="73") # creates 'yolo26n_qnn.onnx'from ultralytics import YOLO
# Load the exported QNN model (on a Snapdragon device with onnxruntime-qnn)
model = YOLO("yolo26n_qnn.onnx")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported QNN model (on a Snapdragon device with onnxruntime-qnn)
model = YOLO("yolo26n_qnn.onnx")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionوسائط التصدير#
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'qnn' | تنسيق الهدف للنموذج المُصدّر، مما يحدد التوافق مع وقت تشغيل Qualcomm QNN. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو صفاً (height, width). |
batch | int | 1 | يحدد حجم دفعة نموذج التصدير، والذي يتم دمجه في ثنائي سياق QNN الذي تم إنشاؤه. |
name | str | '73' | إصدار بنية Hexagon HTP المستهدفة: 68 أو 69 أو 73 أو 75 أو 79 أو 81 (Snapdragon 888, 8 Gen 1, 8 Gen 2, 8 Gen 3, 8 Elite, 8 Elite Gen 5). يتم الانتهاء من ثنائي السياق لهذه البنية. |
int8 | bool | True | تمكين تكميم INT8. مطلوب لتصدير QNN HTP - يتم ضبطه تلقائياً على True إذا لم يتم تحديده. |
data | str | 'coco8.yaml' | ملف تكوين مجموعة البيانات المستخدم لمعايرة INT8. يحدد مصدر صور المعايرة. |
fraction | float | 1.0 | جزء من مجموعة بيانات المعايرة لاستخدامه في تكميم INT8. |
device | str | None | يحدد الجهاز لخطوة تصدير ONNX: GPU (device=0) أو CPU (device=cpu). |
يقوم تصدير QNN بتكميم النموذج إلى تنشيطات 16 بت وأوزان INT8 - وهو توازن الدقة/الأداء الموصى به لـ Hexagon NPU - باستخدام تدفق ONNX Runtime QDQ quantization مع صور المعايرة من data. يتم فرض int8=True تلقائياً.
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.
Link to this sectionهيكل المخرجات#
بعد تصدير ناجح، يتم إنشاء ملف ONNX مكتفٍ ذاتياً:
yolo26n_qnn.onnx # ONNX wrapping the precompiled QNN context binary and metadata
يدمج ملف yolo26n_qnn.onnx ثنائي سياق QNN ويتم تحميله بواسطة ONNX Runtime مع QNN Execution Provider على جهاز Snapdragon. كما أنه يحمل بيانات وصفية للنموذج مثل أسماء الفئات، وحجم الصورة، والمهمة في metadata_props الخاصة بـ ONNX.
Link to this sectionنشر نماذج YOLO QNN المُصدّرة#
تعمل نماذج QNN على أجهزة Qualcomm Snapdragon، مما يجعل model deployment على الجهاز أمراً مباشراً. على جهاز Snapdragon مثبت عليه onnxruntime-qnn، قم بتشغيل النموذج المُصدّر مباشرةً باستخدام Ultralytics API (yolo predict/yolo val، انظر Usage أعلاه) - تقوم Ultralytics بتحميل ثنائي السياق من خلال ONNX Runtime QNN Execution Provider وتختار الواجهة الخلفية HTP (NPU) أو GPU أو CPU.
بالنسبة لخطوط أنابيب مخصصة، يمكنك أيضاً تحميل ONNX ثنائي السياق مباشرةً باستخدام ONNX Runtime. onnxruntime-qnn هو موفر تنفيذ إضافي، لذا قم بتسجيله في وقت التشغيل:
import onnxruntime as ort
import onnxruntime_qnn as qnn_ep
# On the Snapdragon device, register the QNN plugin EP and select its device(s)
ort.register_execution_provider_library("QNNExecutionProvider", qnn_ep.get_library_path())
devices = [d for d in ort.get_ep_devices() if d.ep_name == "QNNExecutionProvider"]
options = ort.SessionOptions()
options.add_provider_for_devices(devices, {"backend_path": qnn_ep.get_qnn_htp_path()})
session = ort.InferenceSession("yolo26n_qnn.onnx", sess_options=options)
outputs = session.run(None, {"images": input_tensor}) # input_tensor: float32 NCHWنظراً لأن ثنائي سياق QNN مجمع مسبقاً، يتم تحميل الجلسة بسرعة دون إعادة تجميع الرسم البياني على الجهاز.
Link to this sectionسير العمل الموصى به#
- درب نموذجك باستخدام وضع التدريب في Ultralytics Train Mode
- تصدير إلى تنسيق QNN باستخدام
model.export(format="qnn")على منصة مدعومة (Windows x64 أو ARM64، أو Linux ARM64) - نشر ملف
*_qnn.onnxالمُصدّر إلى جهاز Snapdragon الخاص بك - تشغيل الاستنتاج مع ONNX Runtime و QNN Execution Provider، مع اختيار الواجهة الخلفية HTP أو GPU أو CPU
Link to this sectionتطبيقات العالم الحقيقي#
نماذج YOLO التي تعمل على أجهزة Qualcomm Snapdragon مناسبة تماماً لمجموعة واسعة من تطبيقات edge AI:
- الهواتف الذكية: object detection في الوقت الفعلي وفهم المشهد في تطبيقات الكاميرا والصور مع تسريع NPU.
- Windows على Snapdragon: رؤية حاسوبية على الجهاز في أجهزة Copilot+ PCs دون تفريغ إلى السحابة.
- السيارات: مراقبة السائق، واكتشاف الركاب، وميزات ADAS على منصات Snapdragon Digital Chassis.
- XR والأجهزة القابلة للارتداء: إدراك منخفض الطاقة وزمن انتقال منخفض لسماعات AR/VR والنظارات الذكية.
- إنترنت الأشياء والروبوتات: استنتاج رؤية فعال على الكاميرات والطائرات بدون طيار والأنظمة المدمجة التي تعمل بنظام Snapdragon.
Link to this sectionملخص#
في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق Qualcomm QNN محلياً باستخدام ONNX Runtime QNN Execution Provider. يقوم خط أنابيب التصدير بتحويل نموذجك إلى ONNX، ثم تجميعه في ثنائي سياق QNN على جهازك المضيف - دون الحاجة إلى حساب Qualcomm أو سحابة - مما ينتج عنه ملف *_qnn.onnx مُحسّن لأجهزة Snapdragon CPU و Adreno GPU و Hexagon NPU عبر وقت تشغيل QNN/QAIRT.
يوفر الجمع بين Ultralytics YOLO ومكدس الذكاء الاصطناعي على الجهاز من Qualcomm حلاً فعالاً لتشغيل أحمال عمل computer vision المتقدمة عبر نظام Snapdragon البيئي الواسع.
لأهداف النشر الأخرى على الجهاز والمحمول، راجع أدلة التصدير ذات الصلة لـ ONNX و CoreML و NCNN و TFLite و ExecuTorch و RKNN و Sony IMX500 و TensorRT. لمقارنة التنسيقات قبل الشحن، استخدم Benchmark mode. للحصول على القائمة الكاملة للتنسيقات والخيارات، قم بزيارة وثائق Export mode و integrations guide page.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف أقوم بتصدير نموذج Ultralytics YOLO الخاص بي إلى تنسيق QNN؟#
يمكنك تصدير نموذجك باستخدام طريقة export() في Python أو عبر CLI باستخدام format="qnn". يقوم التصدير أولاً بإنشاء نموذج ONNX، ثم تجميعه محلياً في ثنائي سياق QNN باستخدام ONNX Runtime QNN Execution Provider. يتم تثبيت حزمة onnxruntime-qnn تلقائياً عند التصدير الأول.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="qnn")Link to this sectionهل أحتاج إلى حساب Qualcomm أو وصول إلى السحابة؟#
لا. يتم تشغيل تصدير QNN بالكامل على جهازك المحلي باستخدام حزمة onnxruntime-qnn، التي تجمع مكتبات QAIRT. لا يلزم وجود حساب Qualcomm أو رمز API أو وصول إلى الشبكة.
Link to this sectionكيف يقارن تصدير Ultralytics QNN بـ Qualcomm AI Hub؟#
Qualcomm AI Hub هو خدمة سحابية من Qualcomm لتجميع وتوصيف وقياس أداء النماذج على أجهزة Snapdragon المستضافة، ويتطلب حساب Qualcomm. يستهدف تصدير Ultralytics QNN نفس وقت تشغيل QNN/QAIRT (Snapdragon CPU و Adreno GPU و Hexagon NPU) ولكنه يقوم بتجميع ثنائي السياق محلياً باستخدام ONNX Runtime QNN Execution Provider - لا حساب، لا تحميل، ولا طابور. إنها أسرع طريقة للانتقال من نموذج .pt إلى بناء جاهز لـ Snapdragon مباشرة داخل سير عمل تصدير YOLO القياسي.
Link to this sectionما هي المنصات التي يمكنني التصدير عليها؟#
توفر onnxruntime-qnn عجلات مبنية مسبقاً لـ Windows (x64 و ARM64) و Linux ARM64 (aarch64)؛ على Linux x86-64 قم ببناء ONNX Runtime من المصدر باستخدام --use_qnn (لا يتم نشر عجلة مبنية مسبقاً، و macOS ليس مضيف QNN مدعوماً). يتم تشغيل إنشاء ثنائي السياق على مضيف x64 - Windows x64 أو Linux x86-64 - ولا يتطلب جهاز Snapdragon فعلياً.
Link to this sectionكيف أقوم بتشغيل YOLO على Qualcomm Snapdragon NPU؟#
قم بالتصدير باستخدام model.export(format="qnn")، وانسخ ملف yolo26n_qnn.onnx الناتج إلى جهاز Snapdragon الخاص بك، وقم بتشغيل yolo predict model=yolo26n_qnn.onnx source=image.jpg (أو yolo val). تقوم Ultralytics بتحميل ثنائي السياق من خلال ONNX Runtime QNN Execution Provider وتقوم بتشغيله على Hexagon NPU - انظر Deploying Exported YOLO QNN Models.
Link to this sectionما هو الفرق بين QNN و SNPE؟#
QNN (Qualcomm AI Engine Direct، جزء من QAIRT SDK) هو مكدس الاستنتاج الحالي من Qualcomm والبديل الموصى به لـ Snapdragon Neural Processing Engine (SNPE) SDK الأقدم. يجب أن تستهدف عمليات النشر الجديدة QNN.
Link to this sectionهل يمكنني تشغيل نموذج QNN باستخدام yolo predict و yolo val؟#
نعم، على جهاز Qualcomm Snapdragon مثبت عليه onnxruntime-qnn - يقوم YOLO("yolo26n_qnn.onnx") بتحميل ثنائي السياق من خلال QNN Execution Provider ويقوم بتشغيل predict/val مثل أي تنسيق آخر. على مضيف x86 بدون أجهزة QNN لا يمكن للنموذج التنفيذ، نظراً لأن ثنائي السياق يستهدف Snapdragon NPU.
Link to this sectionما هو مخرج تصدير QNN؟#
ينشئ التصدير ملف ONNX ثنائي السياق مكتفٍ ذاتياً (مثلاً yolo26n_qnn.onnx) مع أسماء الفئات، وحجم الصورة، والمهمة، وبيانات وصفية أخرى للنموذج مدمجة في metadata_props الخاصة بـ ONNX.