تصدير DEEPX لنماذج Ultralytics YOLO#
يتطلب نشر نماذج رؤية الكمبيوتر على أجهزة NPU المتخصصة تنسيق نموذج متوافق ومحسّن. يتيح تصدير نماذج Ultralytics YOLO إلى تنسيق DEEPX إجراء استدلال فعال ومكمم بـ INT8 على مسرعات DEEPX NPU. يرشدك هذا الدليل خلال عملية تحويل نماذج YOLO الخاصة بك إلى تنسيق DEEPX ونشرها على الأجهزة المدعومة من DEEPX.
ما هو DEEPX؟#
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 مع صور مجموعة بيانات حقيقية لتقليل فقدان الدقة أثناء التحويل.
- مخرجات مستقلة: يقوم دليل النموذج المُصدّر بتجميع الملف الثنائي المُجمّع، وتكوين المعايرة، والبيانات الوصفية لنشر مباشر.
المهام المدعومة#
يدعم تصدير DEEPX جميع مهام Ultralytics السبع. تجزئة الدلالات وتقدير العمق متاحان فقط مع YOLO26، العائلة الوحيدة التي توفر تلك الرؤوس.
التصدير إلى 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 أوضاع Export وPredict وValidate. يتم تشغيل الاستدلال والتحقق على أجهزة 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")وسائط التصدير#
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'deepx' | التنسيق المستهدف للنموذج المُصدّر، والذي يحدد التوافق مع أجهزة DEEPX NPU. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. يتطلب تصدير DEEPX إدخالاً مربعاً - قم بتمرير عدد صحيح (على سبيل المثال، 640) أو صفاً ثنائياً حيث يساوي الارتفاع العرض. |
quantize | int أو str | 8/auto | دقة التكميم. مطلوب 8 (INT8) لتصدير DEEPX ويتم تمكينه تلقائيًا إذا لم يتم تحديده. يحل محل علامات half/int8 المهملة. |
simplify | bool | True | يبسط رسم ONNX الوسيط باستخدام onnxslim. |
opset | int | None | يحدد إصدار ONNX opset للرسم البياني الوسيط ONNX. في حال عدم تحديده، يتم استخدام أحدث إصدار مدعوم. |
data | str | None | ملف Dataset YAML المستخدم لمعايرة INT8؛ يأخذ التصنيف بدلاً من ذلك دليل مجموعة بيانات أو اسم مجموعة بيانات مدمجة. إذا تم حذفه مع quantize=8, تحدد Ultralytics مجموعة بيانات المعايرة الافتراضية لمهمة النموذج. |
device | str | None | يحدد الجهاز للتصدير: وحدة معالجة الرسوميات GPU (device=0) أو وحدة المعالجة المركزية CPU (device=cpu). |
optimize | bool | False | يُمكّن تحسين المترجم بمستوى أعلى مما يقلل من زمن انتقال الاستدلال ويزيد من وقت التجميع. |
قم دائمًا بتشغيل تصدير 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، وحزمة Python لـ dx_engine.
تدعم بيئة تشغيل 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.dxnndxtron متاح لكل من منصتي x86-64 وaarch64.
المقارنات المعيارية#
قام فريق 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"سير العمل الموصى به#
- درّب نموذجك باستخدام وضع التدريب من Ultralytics
- صدّر إلى تنسيق DEEPX باستخدام
model.export(format="deepx") - تحقق من الدقة باستخدام
yolo valللتأكد من الحد الأدنى من فقدان التكميم - تنبأ باستخدام
yolo predictللتحقق النوعي - انشر دليل
_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 الأخرى، تفضل بزيارة صفحة دليل التكامل. ستجد الكثير من الموارد والرؤى المفيدة هناك.
الأسئلة الشائعة#
يمكنك تصدير نموذجك باستخدام طريقة
export()في Python أو عبر واجهة سطر الأوامر (CLI). يقوم التصدير تلقائيًا بتمكين تكميم INT8 ويستخدم مجموعة بيانات معايرة تقليل فقدان الدقة. يتم تثبيت حزمة مترجمdx_comتلقائيًا إذا لم تكن موجودة بالفعل.مثالfrom ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="deepx")تم تصميم وحدات DEEPX NPU لتنفيذ عمليات حسابية INT8 بأعلى كفاءة. يقوم مترجم
dx_comبتكميم النموذج أثناء التصدير باستخدام المعايرة القائمة على EMA مع صور مجموعة البيانات الحقيقية، مما يتيح لـ NPU تقديم أدائها الكامل. يتم فرض INT8 دائمًا لتصديرات DEEPX - إذا طلبت دقة مختلفة، سيتم تجاوزها مع تحذير.يتطلب تصدير نموذج DEEPX (التجميع) مضيف x86-64 Linux. خطوة التصدير غير مدعومة على أجهزة ARM64 (aarch64) وWindows. يمكن تشغيل الاستدلال باستخدام نموذج
.dxnnالمُصدَّر على أي منصة Linux (x86-64 وARM64) مدعومة بواسطة وقت تشغيلdx_engine.ينشئ التصدير دليلاً (على سبيل المثال،
yolo26n_deepx_model/) يحتوي على:yolo26n.dxnn- نموذج NPU الثنائي المجمعconfig.json- إعدادات المعايرة والمعالجة المسبقةmetadata.yaml- بيانات النموذج الوصفية بما في ذلك أسماء الفئات وحجم الصورة
نعم. يمكن نشر أي نموذج تم تدريبه باستخدام وضع التدريب في Ultralytics وتصديره باستخدام
format="deepx"على أجهزة DEEPX NPU، شريطة أن يستخدم عمليات طبقات مدعومة. يدعم التصدير جميع مهام Ultralytics السبعة: الاكتشاف، وتجزئة المثیلات، والتجزئة الدلالية، وتقدير العمق، والتصنيف، وتقدير الوضع، ومربع الإحاطة الموجه (OBB).يستخدم مسار تصدير DEEPX كل صورة في مجموعة بيانات المعايرة مع طريقة معايرة EMA. بضع مئات من الصور عادة ما تكون كافية لدقة تكميم جيدة. قم بتوجيه
dataإلى مجموعة بيانات أصغر إذا أصبح وقت التجميع مثار قلق على مجموعات البيانات الكبيرة.لا يتم تجميع وقت تشغيل DEEPX مع
ultralyticsويجب تثبيته بشكل منفصل قبل تشغيل الاستدلال. على أجهزة x86-64 Linux وأجهزة ARM64 Linux (مثل Raspberry Pi 5)، قم بتثبيت برنامج تشغيل NPU (dxrt-driver-dkms) ووقت التشغيل (libdxrt) من إصدارات DEEPX-AI على GitHub، ثم قم بتثبيت حزمة Python المجمعةdx_engine. راجع قسم تثبيت وقت التشغيل أعلاه للحصول على أوامر خطوة بخطوة.