أمان جاهز للمؤسسات: متوافق مع ISO 27001 و SOC 2 Type I.

تصدير DEEPX لنماذج Ultralytics YOLO#

يتطلب نشر نماذج رؤية الحاسوب على أجهزة NPU المتخصصة تنسيق نموذج متوافق ومُحسّن. يُمكّنك تصدير نماذج Ultralytics YOLO إلى تنسيق DEEPX من إجراء استدلال فعال ومُكمّم بـ INT8 على مسرعات DEEPX NPU. يرشدك هذا الدليل خلال تحويل نماذج YOLO الخاصة بك إلى تنسيق DEEPX ونشرها على الأجهزة التي تعمل بتقنية DEEPX.

ما هو DEEPX؟#

DEEPX NPU Inference

DEEPX هي شركة أشباه موصلات متخصصة في وحدات المعالجة العصبية (NPUs) المصممة للاستنتاج الفعال للطاقة في التعلم العميق عند الحافة (edge). تم تصميم وحدات NPUs الخاصة بـ DEEPX لتطبيقات الذكاء الاصطناعي المدمجة والصناعية المتطلبة، مما يوفر إنتاجية عالية مع الحد الأدنى من استهلاك الطاقة. أجهزتهم مناسبة تماماً لسيناريوهات النشر التي يكون فيها الاتصال السحابي غير موثوق به أو غير مرغوب فيه، مثل الروبوتات، والكاميرات الذكية، وأنظمة الأتمتة الصناعية.

تنسيق تصدير DEEPX#

ينتج تصدير DEEPX ملفاً ثنائياً للنموذج بتنسيق .dxnn مُجمّع ومُحسّن للتنفيذ على أجهزة DEEPX NPU. تستخدم سلسلة تجميع البيانات مجموعة أدوات dx_com لإجراء تحويل INT8 والتحسين الخاص بالأجهزة، مما يولد دليل نموذج مستقل وجاهز للنشر.

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

توفر نماذج DEEPX العديد من المزايا للنشر عند الحافة:

  • تحويل INT8: يتم تحويل النماذج إلى دقة INT8 أثناء التصدير، مما يقلل من حجم النموذج بشكل كبير ويزيد من إنتاجية NPU. تعرف على المزيد حول تحويل النموذج.
  • تحسين NPU: يتم تجميع تنسيق .dxnn خصيصاً لأجهزة DEEPX NPU، مما يستفيد من وحدات تسريع مخصصة لاستدلال سريع وفعال.
  • استهلاك منخفض للطاقة: من خلال تفريغ عملية الاستدلال إلى NPU، تستهلك نماذج DEEPX طاقة أقل بكثير مقارنة بالاستدلال على CPU أو GPU.
  • الدقة القائمة على المعايرة: يستخدم التصدير معايرة تعتمد على EMA مع صور مجموعة بيانات حقيقية لتقليل فقدان الدقة أثناء التحويل.
  • مخرجات مستقلة: يقوم دليل النموذج المُصدّر بتجميع الملف الثنائي المُجمّع، وتكوين المعايرة، والبيانات الوصفية لنشر مباشر.

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

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

المهمةYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
الوضعية
OBB

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

قم بتصدير نموذج Ultralytics YOLO إلى تنسيق DEEPX وقم بتشغيل الاستدلال باستخدام النموذج المُصدّر.

ملاحظة

يتم دعم تصدير DEEPX فقط على أجهزة Linux بمعمارية x86-64. لا يتم دعم ARM64 (aarch64) في خطوة التصدير. ومع ذلك، فإن نماذج dxnn المُصدّرة متوافقة تماماً وقابلة للتنفيذ على منصات ARM64.

التثبيت#

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

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

سيتم تثبيت حزمة المترجم dx_com تلقائياً من مستودع DEEPX SDK عند التصدير الأول. للحصول على تعليمات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت Ultralytics. أثناء تثبيت الحزم المطلوبة لـ YOLO، إذا واجهت أي صعوبات، فراجع دليل المشكلات الشائعة للحصول على حلول ونصائح.

الاستخدام#

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

التصدير
from ultralytics import YOLO

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

# Export the model to DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
التنبؤ
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

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

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

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

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

الوسيطالنوعالافتراضيالوصف
formatstr'deepx'التنسيق المستهدف للنموذج المُصدّر، والذي يحدد التوافق مع أجهزة DEEPX NPU.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج. يتطلب تصدير DEEPX مدخلاً مربعاً - مرر عدداً صحيحاً (مثل 640) أو صفاً يكون فيه الارتفاع مساوياً للعرض.
quantizeint أو str8/autoدقة التكميم (Quantization). يلزم استخدام 8 (INT8) لتصدير DEEPX ويتم تفعيله تلقائيًا إذا لم يتم تحديده. يستبدل هذا علامات half/int8 القديمة.
simplifyboolTrueيعمل على تبسيط الرسم البياني الوسيط لـ ONNX باستخدام onnxslim.
opsetintNoneيحدد إصدار ONNX opset للرسم البياني الوسيط ONNX. في حال عدم تحديده، يتم استخدام أحدث إصدار مدعوم.
datastr'coco8.yaml'ملف تكوين مجموعة البيانات المستخدم لمعايرة INT8. يحدد مصدر صور المعايرة.
devicestrNoneيحدد الجهاز للتصدير: GPU (device=0) أو CPU (device=cpu).
optimizeboolFalseيُمكّن تحسين المترجم بمستوى أعلى مما يقلل من زمن انتقال الاستدلال ويزيد من وقت التجميع.
نصيحة

قم دائماً بتشغيل تصدير DEEPX على مضيف x86-64 Linux. لا يدعم المترجم dx_com معمارية ARM64.

لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.

هيكل المخرجات#

بعد تصدير ناجح، يتم إنشاء دليل نموذج بالتخطيط التالي:

yolo26n_deepx_model/
├── yolo26n.dxnn     # Compiled DEEPX model binary (NPU executable)
├── config.json      # Calibration and preprocessing configuration
└── metadata.yaml    # Model metadata (classes, image size, task, etc.)

ملف .dxnn هو ملف النموذج الثنائي المُجمّع الذي يتم تحميله مباشرة بواسطة بيئة التشغيل dx_engine على NPU. يحتوي ملف metadata.yaml على أسماء الفئات، وحجم الصورة، ومعلومات أخرى تستخدمها خطة استدلال Ultralytics.

نشر نماذج YOLO DEEPX المُصدّرة#

بمجرد نجاحك في تصدير نموذج Ultralytics YOLO إلى تنسيق DEEPX، فإن الخطوة التالية هي نشر هذه النماذج على أجهزة DEEPX NPU.

تثبيت بيئة التشغيل#

يتطلب الاستدلال تعريف أجهزة DEEPX NPU، وبيئة التشغيل libdxrt، وحزمة dx_engine لـ Python.

ملاحظة

تدعم بيئة تشغيل DEEPX كلاً من x86-64 Linux وARM64 (مثل Raspberry Pi 5).

# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb

# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh

# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whl

تحقق من تثبيت بيئة التشغيل بشكل صحيح باستخدام dxrt-cli --version. يجب أن ترى مخرجات مشابهة لـ:

DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6

بمجرد تثبيت بيئة التشغيل، قم بتشغيل الاستدلال والتحقق على جهاز DEEPX الخاص بك تماماً كما هو موضح في قسم الاستخدام أعلاه - حيث يتم تحميل _deepx_model المُصدّر مباشرة باستخدام YOLO(...).

التصور باستخدام dxtron#

dxtron هو مصور الرسوم البيانية الخاص بـ DEEPX لفحص النموذج المُجمّع بتنسيق .dxnn.

قم بتثبيت dxtron على x86-64 Linux عن طريق تنزيل حزمة .deb من DEEPX SDK وتثبيتها عبر dpkg:

wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.deb

ثم افتح النموذج المُصدّر الخاص بك:

dxtron yolo26n_deepx_model/yolo26n.dxnn
ملاحظة

dxtron متاح لمنصات x86-64 و aarch64.

المقارنات المعيارية#

قام فريق Ultralytics بقياس أداء نماذج YOLO26، مقارنين السرعة والدقة بين PyTorch وDEEPX.

الأداء
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
النموذجالتنسيقالحالةالحجم (MB)metrics/mAP50-95(B)وقت الاستدلال (ms/im)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
النموذجالتنسيقالحالةالحجم (MB)acc (top1)acc (top5)وقت الاستدلال (ms/im)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
ملاحظة

تم التحقق من صحة القياسات أعلاه باستخدام coco128 للكشف، وcoco128-seg للتقسيم، وcoco8-pose لتقدير الوضعية، وimagenet100 للتصنيف، وdota128 لنماذج OBB. لا يتضمن وقت الاستدلال المعالجة الأولية أو اللاحقة.

نصائح لتحسين الأداء

للحصول على أفضل معدل استدلال من DX-M1 NPU المتصل بـ Raspberry Pi 5، افتح ملف تكوين الإقلاع وقم بتفعيل دعم PCIe Gen 3.

sudo nano /boot/firmware/config.txt

أضف الأسطر التالية في نهاية الملف:

dtparam=pciex1
dtparam=pciex1_gen=3

احفظ واخرج (Ctrl+X، ثم Y، ثم Enter)، ثم أعد التشغيل:

sudo reboot

تحقق من جيل PCIe. السرعة المتوقعة هي 8GT/s لـ PCIe Gen3.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"

سير العمل الموصى به#

  1. درب نموذجك باستخدام وضع التدريب في Ultralytics Train Mode
  2. صدر إلى تنسيق DEEPX باستخدام model.export(format="deepx")
  3. تحقق من الدقة باستخدام yolo val للتأكد من الحد الأدنى لفقدان التكميم
  4. تنبأ باستخدام yolo predict للتحقق النوعي
  5. انشر دليل _deepx_model/ المصدّر على أجهزة DEEPX NPU باستخدام وقت التشغيل dx_engine

تطبيقات العالم الحقيقي#

نماذج YOLO المنشورة على أجهزة DEEPX NPU مناسبة تماماً لمجموعة واسعة من تطبيقات الذكاء الاصطناعي عند الحافة:

  • المراقبة الذكية: كشف الأشياء في الوقت الفعلي لأنظمة الأمن والمراقبة مع استهلاك منخفض للطاقة وبدون اعتماد على السحابة.
  • الأتمتة الصناعية: مراقبة الجودة على الجهاز، وكشف العيوب، ومراقبة العمليات في بيئات المصانع.
  • الروبوتات: الملاحة المعتمدة على الرؤية، وتجنب العوائق، والتعرف على الأشياء في الروبوتات والطائرات بدون طيار المستقلة.
  • الزراعة الذكية: مراقبة صحة المحاصيل، واكتشاف الآفات، وتقدير الإنتاجية باستخدام الرؤية الحاسوبية في الزراعة.
  • تحليلات التجزئة: تحليل تدفق العملاء، ومراقبة الرفوف، وتتبع المخزون مع استدلال الحافة في الوقت الفعلي.

ملخص#

في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق DEEPX ونشرها على أجهزة DEEPX NPU. تستخدم خط أنابيب التصدير تكميم INT8 ومترجم dx_com لإنتاج ملف ثنائي .dxnn مُحسّن للأجهزة، بينما يتعامل وقت التشغيل dx_engine مع الاستدلال على الجهاز.

يوفر الجمع بين Ultralytics YOLO وتقنية NPU من DEEPX حلاً فعالاً لتشغيل أعباء عمل رؤية الحاسوب المتقدمة على الأجهزة المدمجة وأجهزة الحافة — مما يوفر معدل نقل عالٍ مع استهلاك منخفض للطاقة للتطبيقات في الوقت الفعلي.

لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة الموقع الرسمي لـ DEEPX.

أيضاً، إذا كنت ترغب في معرفة المزيد حول تكاملات Ultralytics YOLO الأخرى، تفضل بزيارة صفحة دليل التكامل. ستجد الكثير من الموارد والرؤى المفيدة هناك.

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

كيف يمكنني تصدير نموذج Ultralytics YOLO الخاص بي إلى تنسيق DEEPX؟#

يمكنك تصدير نموذجك باستخدام طريقة export() في Python أو عبر CLI. يعمل التصدير تلقائياً على تمكين تكميم INT8 واستخدام مجموعة بيانات معايرة لتقليل فقدان الدقة. يتم تثبيت حزمة المترجم dx_com تلقائياً إذا لم تكن موجودة بالفعل.

مثال
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="deepx")

لماذا يتطلب تصدير DEEPX تكميم INT8؟#

تم تصميم وحدات NPU الخاصة بـ DEEPX لتنفيذ عمليات حسابية بصيغة INT8 بأقصى كفاءة. يقوم المترجم dx_com بتكميم النموذج أثناء التصدير باستخدام معايرة قائمة على EMA مع صور مجموعة بيانات حقيقية، مما يمكّن وحدة NPU من تقديم أدائها الكامل. يتم فرض INT8 دائمًا لتصديرات DEEPX - إذا طلبت دقة مختلفة، فسيتم تجاوزها مع عرض تحذير.

ما هي المنصات المدعومة لتصدير DEEPX؟#

يتطلب تصدير (تجميع) نموذج DEEPX مضيف x86-64 Linux. خطوة التصدير غير مدعومة على أجهزة ARM64 (aarch64) وWindows. يمكن تشغيل الاستدلال باستخدام نموذج .dxnn المصدّر على أي منصة Linux (x86-64 وARM64) مدعومة من قبل وقت التشغيل dx_engine.

ما هو مخرج تصدير DEEPX؟#

ينشئ التصدير دليلاً (على سبيل المثال، yolo26n_deepx_model/) يحتوي على:

  • yolo26n.dxnn — الملف الثنائي المجمع لـ NPU
  • config.json — إعدادات المعايرة والمعالجة الأولية
  • metadata.yaml — بيانات وصفية للنموذج بما في ذلك أسماء الفئات وحجم الصورة

هل يمكنني نشر نماذج مدربة مخصصاً على أجهزة DEEPX؟#

نعم. يمكن نشر أي نموذج تم تدريبه باستخدام Ultralytics Train Mode وتصديره باستخدام format="deepx" على أجهزة DEEPX NPU، شريطة أن يستخدم عمليات طبقة مدعومة. يدعم التصدير جميع مهام Ultralytics السبعة: الكشف، التجزئة المثيلية، التجزئة الدلالية، تقدير العمق، التصنيف، تقدير الوضعية، ومربع التحديد الموجه (OBB).

كم عدد صور المعايرة التي يجب أن أستخدمها لتصدير DEEPX؟#

تستخدم خط أنابيب تصدير DEEPX كل صورة في مجموعة بيانات المعايرة بطريقة معايرة EMA. بضع مئات من الصور عادة ما تكون كافية لدقة تكميم جيدة. أشر بـ data إلى مجموعة بيانات أصغر إذا أصبح وقت التجميع مصدر قلق مع مجموعات البيانات الكبيرة.

كيف أقوم بتثبيت وقت تشغيل DEEPX للاستدلال؟#

وقت تشغيل DEEPX غير مدمج مع ultralytics ويجب تثبيته بشكل منفصل قبل تشغيل الاستدلال. على أجهزة x86-64 Linux وأجهزة ARM64 Linux (مثل Raspberry Pi 5)، قم بتثبيت تعريف NPU (dxrt-driver-dkms) ووقت التشغيل (libdxrt) من إصدارات GitHub الخاصة بـ DEEPX-AI، ثم قم بتثبيت حزمة Python المدمجة dx_engine. راجع قسم تثبيت وقت التشغيل أعلاه للحصول على أوامر خطوة بخطوة.

التعليقات