Link to this sectionتصدير DEEPX لنماذج Ultralytics YOLO#
يتطلب نشر نماذج رؤية الحاسوب على أجهزة NPU المتخصصة تنسيق نموذج متوافق ومُحسّن. يُمكّنك تصدير نماذج Ultralytics YOLO إلى تنسيق DEEPX من إجراء استدلال فعال ومُكمّم بـ INT8 على مسرعات DEEPX NPU. يرشدك هذا الدليل خلال تحويل نماذج YOLO الخاصة بك إلى تنسيق DEEPX ونشرها على الأجهزة التي تعمل بتقنية DEEPX.
Link to this sectionما هو DEEPX؟#
DEEPX هي شركة أشباه موصلات متخصصة في وحدات المعالجة العصبية (NPUs) المصممة للاستنتاج الفعال للطاقة في التعلم العميق عند الحافة (edge). تم تصميم وحدات NPUs الخاصة بـ DEEPX لتطبيقات الذكاء الاصطناعي المدمجة والصناعية المتطلبة، مما يوفر إنتاجية عالية مع الحد الأدنى من استهلاك الطاقة. أجهزتهم مناسبة تماماً لسيناريوهات النشر التي يكون فيها الاتصال السحابي غير موثوق به أو غير مرغوب فيه، مثل الروبوتات، والكاميرات الذكية، وأنظمة الأتمتة الصناعية.
Link to this sectionتنسيق تصدير DEEPX#
ينتج تصدير DEEPX ملفاً ثنائياً للنموذج بتنسيق .dxnn مُجمّع ومُحسّن للتنفيذ على أجهزة DEEPX NPU. تستخدم سلسلة تجميع البيانات مجموعة أدوات dx_com لإجراء تحويل INT8 والتحسين الخاص بالأجهزة، مما يولد دليل نموذج مستقل وجاهز للنشر.
Link to this sectionالميزات الرئيسية لنماذج DEEPX#
توفر نماذج DEEPX العديد من المزايا للنشر عند الحافة:
- تحويل INT8: يتم تحويل النماذج إلى دقة INT8 أثناء التصدير، مما يقلل من حجم النموذج بشكل كبير ويزيد من إنتاجية NPU. تعرف على المزيد حول تحويل النموذج.
- تحسين NPU: يتم تجميع تنسيق
.dxnnخصيصاً لأجهزة DEEPX NPU، مما يستفيد من وحدات تسريع مخصصة لاستدلال سريع وفعال. - استهلاك منخفض للطاقة: من خلال تفريغ عملية الاستدلال إلى NPU، تستهلك نماذج DEEPX طاقة أقل بكثير مقارنة بالاستدلال على CPU أو GPU.
- الدقة القائمة على المعايرة: يستخدم التصدير معايرة تعتمد على EMA مع صور مجموعة بيانات حقيقية لتقليل فقدان الدقة أثناء التحويل.
- مخرجات مستقلة: يقوم دليل النموذج المُصدّر بتجميع الملف الثنائي المُجمّع، وتكوين المعايرة، والبيانات الوصفية لنشر مباشر.
Link to this sectionالمهام المدعومة#
يتم دعم جميع مهام Ultralytics القياسية لتصدير DEEPX عبر عائلات نماذج YOLO26، وYOLO11، وYOLOv8.
| المهمة | مدعوم |
|---|---|
| اكتشاف الكائنات | ✅ |
| تقسيم المثيلات | ✅ |
| التقسيم الدلالي | ✅ |
| تقدير الوضع | ✅ |
| اكتشاف المربعات المحيطة الموجهة (OBB Detection) | ✅ |
| التصنيف | ✅ |
Link to this sectionالتصدير إلى DEEPX: تحويل نموذج YOLO الخاص بك#
قم بتصدير نموذج Ultralytics YOLO إلى تنسيق DEEPX وقم بتشغيل الاستدلال باستخدام النموذج المُصدّر.
يتم دعم تصدير DEEPX فقط على أجهزة Linux بمعمارية x86-64. لا يتم دعم ARM64 (aarch64) في خطوة التصدير. ومع ذلك، فإن نماذج dxnn المُصدّرة متوافقة تماماً وقابلة للتنفيذ على منصات ARM64.
Link to this sectionالتثبيت#
لتثبيت الحزم المطلوبة، قم بتشغيل:
# Install the required package for YOLO
pip install ultralyticsسيتم تثبيت حزمة المترجم dx_com تلقائياً من مستودع DEEPX SDK عند التصدير الأول. للحصول على تعليمات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت Ultralytics. أثناء تثبيت الحزم المطلوبة لـ YOLO، إذا واجهت أي صعوبات، فراجع دليل المشكلات الشائعة للحصول على حلول ونصائح.
Link to this sectionالاستخدام#
يدعم تنسيق DEEPX أوضاع التصدير، والتنبؤ، والتحقق. يعمل الاستدلال والتحقق على أجهزة DEEPX NPU. قم بتصدير نموذجك، ثم قم بتحميل النموذج المُصدّر لتشغيل الاستدلال أو التحقق من دقته.
from ultralytics import YOLO
# Load a 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/'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")Link to this sectionوسائط التصدير#
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'deepx' | التنسيق المستهدف للنموذج المُصدّر، والذي يحدد التوافق مع أجهزة DEEPX NPU. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. يتطلب تصدير DEEPX مدخلاً مربعاً - مرر عدداً صحيحاً (مثل 640) أو صفاً يكون فيه الارتفاع مساوياً للعرض. |
int8 | bool | True | تمكين تحويل INT8. مطلوب لتصدير DEEPX - يتم تعيينه تلقائياً إلى True إذا لم يتم تحديده. |
data | str | 'coco8.yaml' | ملف تكوين مجموعة البيانات المستخدم لمعايرة INT8. يحدد مصدر صور المعايرة. |
device | str | None | يحدد الجهاز للتصدير: GPU (device=0) أو CPU (device=cpu). |
optimize | bool | False | يُمكّن تحسين المترجم بمستوى أعلى مما يقلل من زمن انتقال الاستدلال ويزيد من وقت التجميع. |
قم دائماً بتشغيل تصدير DEEPX على مضيف x86-64 Linux. لا يدعم المترجم dx_com معمارية ARM64.
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.
Link to this sectionهيكل المخرجات#
بعد تصدير ناجح، يتم إنشاء دليل نموذج بالتخطيط التالي:
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.
Link to this sectionنشر نماذج YOLO DEEPX المُصدّرة#
بمجرد نجاحك في تصدير نموذج Ultralytics YOLO إلى تنسيق DEEPX، فإن الخطوة التالية هي نشر هذه النماذج على أجهزة DEEPX NPU.
Link to this sectionتثبيت بيئة التشغيل#
يتطلب الاستدلال تعريف أجهزة 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(...).
Link to this sectionالتصور باستخدام 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.dxnndxtron متاح لمنصات x86-64 و aarch64.
Link to this sectionالمقارنات المعيارية#
قام فريق Ultralytics بقياس أداء نماذج YOLO26، مقارنين السرعة والدقة بين PyTorch وDEEPX.
| النموذج | التنسيق | الحالة | الحجم (MB) | metrics/mAP50-95(B) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| النموذج | التنسيق | الحالة | الحجم (MB) | acc (top1) | acc (top5) | وقت الاستدلال (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.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"Link to this sectionسير العمل الموصى به#
- درب نموذجك باستخدام وضع التدريب في Ultralytics Train Mode
- صدر إلى تنسيق DEEPX باستخدام
model.export(format="deepx") - تحقق من الدقة باستخدام
yolo valللتأكد من الحد الأدنى لفقدان التكميم - تنبأ باستخدام
yolo predictللتحقق النوعي - انشر دليل
_deepx_model/المصدّر على أجهزة DEEPX NPU باستخدام وقت التشغيلdx_engine
Link to this sectionتطبيقات العالم الحقيقي#
نماذج YOLO المنشورة على أجهزة DEEPX NPU مناسبة تماماً لمجموعة واسعة من تطبيقات الذكاء الاصطناعي عند الحافة:
- المراقبة الذكية: كشف الأشياء في الوقت الفعلي لأنظمة الأمن والمراقبة مع استهلاك منخفض للطاقة وبدون اعتماد على السحابة.
- الأتمتة الصناعية: مراقبة الجودة على الجهاز، وكشف العيوب، ومراقبة العمليات في بيئات المصانع.
- الروبوتات: الملاحة المعتمدة على الرؤية، وتجنب العوائق، والتعرف على الأشياء في الروبوتات والطائرات بدون طيار المستقلة.
- الزراعة الذكية: مراقبة صحة المحاصيل، وكشف الآفات، وتقدير الإنتاجية باستخدام رؤية الحاسوب في الزراعة.
- تحليلات التجزئة: تحليل تدفق العملاء، ومراقبة الرفوف، وتتبع المخزون مع استدلال الحافة في الوقت الفعلي.
Link to this sectionملخص#
في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق DEEPX ونشرها على أجهزة DEEPX NPU. تستخدم خط أنابيب التصدير تكميم INT8 ومترجم dx_com لإنتاج ملف ثنائي .dxnn مُحسّن للأجهزة، بينما يتعامل وقت التشغيل dx_engine مع الاستدلال على الجهاز.
يوفر الجمع بين Ultralytics YOLO وتقنية NPU من DEEPX حلاً فعالاً لتشغيل أعباء عمل رؤية الحاسوب المتقدمة على الأجهزة المدمجة وأجهزة الحافة — مما يوفر معدل نقل عالٍ مع استهلاك منخفض للطاقة للتطبيقات في الوقت الفعلي.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة الموقع الرسمي لـ DEEPX.
أيضاً، إذا كنت ترغب في معرفة المزيد حول تكاملات Ultralytics YOLO الأخرى، تفضل بزيارة صفحة دليل التكامل. ستجد الكثير من الموارد والرؤى المفيدة هناك.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يمكنني تصدير نموذج Ultralytics YOLO الخاص بي إلى تنسيق DEEPX؟#
يمكنك تصدير نموذجك باستخدام طريقة export() في Python أو عبر CLI. يعمل التصدير تلقائياً على تمكين تكميم INT8 واستخدام مجموعة بيانات معايرة لتقليل فقدان الدقة. يتم تثبيت حزمة المترجم dx_com تلقائياً إذا لم تكن موجودة بالفعل.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this sectionلماذا يتطلب تصدير DEEPX تكميم INT8؟#
تم تصميم وحدات DEEPX NPU لتنفيذ عمليات حساب INT8 بأقصى كفاءة. يقوم مترجم dx_com بتكميم النموذج أثناء التصدير باستخدام معايرة قائمة على EMA مع صور من مجموعة بيانات حقيقية، مما يتيح لـ NPU تقديم أدائها الكامل. يتم فرض INT8 دائماً لتصديرات DEEPX - إذا مررت int8=False، فسيتم تجاهله مع إظهار تحذير.
Link to this sectionما هي المنصات المدعومة لتصدير DEEPX؟#
يتطلب تصدير (تجميع) نموذج DEEPX مضيف x86-64 Linux. خطوة التصدير غير مدعومة على أجهزة ARM64 (aarch64) وWindows. يمكن تشغيل الاستدلال باستخدام نموذج .dxnn المصدّر على أي منصة Linux (x86-64 وARM64) مدعومة من قبل وقت التشغيل dx_engine.
Link to this sectionما هو مخرج تصدير DEEPX؟#
ينشئ التصدير دليلاً (على سبيل المثال، yolo26n_deepx_model/) يحتوي على:
yolo26n.dxnn— الملف الثنائي المجمع لـ NPUconfig.json— إعدادات المعايرة والمعالجة الأوليةmetadata.yaml— بيانات وصفية للنموذج بما في ذلك أسماء الفئات وحجم الصورة
Link to this sectionهل يمكنني نشر نماذج مدربة مخصصاً على أجهزة DEEPX؟#
نعم. يمكن نشر أي نموذج تم تدريبه باستخدام وضع التدريب في Ultralytics وتصديره بـ format="deepx" على أجهزة DEEPX NPU، بشرط استخدامه لعمليات طبقة مدعومة. يدعم التصدير مهام الكشف، والتقسيم، وتقدير الوضعية، وصندوق التحديد الموجه (OBB)، والتصنيف.
Link to this sectionكم عدد صور المعايرة التي يجب أن أستخدمها لتصدير DEEPX؟#
تستخدم خط أنابيب تصدير DEEPX كل صورة في مجموعة بيانات المعايرة بطريقة معايرة EMA. بضع مئات من الصور عادة ما تكون كافية لدقة تكميم جيدة. أشر بـ data إلى مجموعة بيانات أصغر إذا أصبح وقت التجميع مصدر قلق مع مجموعات البيانات الكبيرة.
Link to this sectionكيف أقوم بتثبيت وقت تشغيل DEEPX للاستدلال؟#
وقت تشغيل DEEPX غير مدمج مع ultralytics ويجب تثبيته بشكل منفصل قبل تشغيل الاستدلال. على أجهزة x86-64 Linux وأجهزة ARM64 Linux (مثل Raspberry Pi 5)، قم بتثبيت تعريف NPU (dxrt-driver-dkms) ووقت التشغيل (libdxrt) من إصدارات GitHub الخاصة بـ DEEPX-AI، ثم قم بتثبيت حزمة Python المدمجة dx_engine. راجع قسم تثبيت وقت التشغيل أعلاه للحصول على أوامر خطوة بخطوة.