Skip to main content

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

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

ما هو DeepX؟

DEEPX NPU Inference

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

تنسيق تصدير DeepX

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

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

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

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

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

جميع مهام Ultralytics القياسية مدعومة لتصدير DeepX عبر عائلات نماذج YOLO26 و YOLO11 و YOLOv8.

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

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

ملاحظة

تصدير DeepX مدعوم فقط على أجهزة Linux بمعمارية x86-64. لا يتم دعم ARM64 (aarch64) لخطوة التصدير.

التثبيت

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

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

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

الاستخدام

الاستخدام
from ultralytics import YOLO

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

# Export the model to DeepX format (int8=True is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'

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

الوسيطالنوعالافتراضيالوصف
formatstr'deepx'التنسيق المستهدف للنموذج المُصدَّر، مما يحدد التوافق مع أجهزة DeepX NPU.
imgszint أو tuple640حجم الصورة المطلوب لمدخل النموذج. يتطلب تصدير DeepX مدخلاً مربعاً - مرر عدداً صحيحاً (مثلاً 640) أو صفاً حيث يساوي الارتفاع العرض.
int8boolTrueتمكين تكميم INT8. مطلوب لتصدير DeepX - يتم تعيينه تلقائياً على True إذا لم يتم تحديده.
datastr'coco128.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 فقط على أجهزة Linux بمعمارية x86-64 وأجهزة Debian Trixie بمعمارية 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.0/dxrt-driver-dkms_2.4.0-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.0-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

الاستخدام

الاستخدام
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")

# Process results
for r in results:
    print(f"Detected {len(r.boxes)} objects")
    r.show()

التصور باستخدام 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 Linux. منصات ARM64/aarch64 والمنصات غير التي تعمل بنظام Linux غير مدعومة.

المعايير (Benchmarks)

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

الأداء
النموذجالتنسيقالحالةالحجم (MB)المقاييس/mAP50-95(B)وقت الاستدلال (ملي ثانية/صورة)
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)الدقة (الأولى)الدقة (الخامسة)وقت الاستدلال (ملي ثانية/صورة)
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

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

  1. Predict نموذجك باستخدام Ultralytics وضع التدريب
  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 المترجم تلقائياً إذا لم تكن موجودة بالفعل.

Ultralytics Platform
from ultralytics import YOLO

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

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

تم تصميم DeepX NPUs لتنفيذ عمليات حساب INT8 بأقصى قدر من الكفاءة. يقوم dx_com المترجم بتكميم النموذج أثناء التصدير باستخدام معايرة قائمة على EMA مع صور من مجموعة بيانات حقيقية، مما يمكن NPU من تقديم أقصى أدائه. يتم دائماً فرض INT8 لصادرات DeepX — إذا قمت بتمرير int8=False، فسيتم تجاوزها مع إظهار تحذير.

ما هي المنصات المدعومة لتصدير 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، شريطة أن يستخدم عمليات الطبقات المدعومة. يدعم التصدير مهام الكشف، التجزئة، تقدير الوضع، المربع المحيط الموجه (OBB)، والتصنيف.

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

يستخدم خط أنابيب تصدير DeepX كل صورة في مجموعة بيانات المعايرة (بعد fraction التصفية) باستخدام طريقة معايرة EMA. عادة ما تكون بضع مئات من الصور كافية لدقة تكميم جيدة. قم بتوجيه data إلى مجموعة بيانات أصغر (أو اضبط fraction أقل من 1.0) إذا أصبح وقت التجميع مصدر قلق مع مجموعات البيانات الكبيرة.

كيف أقوم بتثبيت وقت تشغيل DeepX للاستنتاج؟

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

التعليقات