Link to this sectionتصدير نماذج Ultralytics YOLO إلى Huawei Ascend#
يتطلب نشر نماذج الرؤية الحاسوبية على معالجات الذكاء الاصطناعي Huawei Ascend تجميعها في تنسيق النموذج غير المتصل .om الذي يتم تنفيذه بواسطة نواة الذكاء الاصطناعي في Ascend. يتيح لك تصدير نماذج Ultralytics YOLO إلى Ascend تشغيل استدلال سريع ومنخفض الطاقة على لوحات مطوري Atlas وأجهزة OrangePi AIPro المستخدمة في الروبوتات، والفحص الصناعي، ون نشر الكاميرات الذكية.
Link to this sectionما هو Huawei Ascend؟#
Huawei Ascend هي عائلة من معالجات الذكاء الاصطناعي المقترنة بـ CANN (معمارية الحوسبة للشبكات العصبية)، وهي حزمة الحوسبة غير المتجانسة من Huawei. يأتي CANN مزودًا بـ ATC (مترجم موتر Ascend)، وهي أداة جانب المضيف تحول رسم بياني قياسي لـ ONNX إلى نموذج .om غير متصل خاص بالعتاد يستهدف نواة الذكاء الاصطناعي في Ascend.
نظرًا لأن ATC يعمل بالكامل على المضيف، يمكنك تجميع النماذج على جهاز Linux عادي بنظام x86-64 أو ARM64 دون أي عتاد Ascend متصل، ثم نسخ ملف .om الناتج إلى الجهاز المستهدف للاستدلال.
Link to this sectionتنسيق تصدير Ascend#
يقوم مصدر Ultralytics أولاً كتابة رسم بياني وسيط لـ ONNX، ثم استدعاء ATC لتجميعه من أجل نظام SoC الذي تستهدفه باستخدام وسيط name. والنتيجة هي دليل نموذج مستقل بذاته يحتوي على الملف الثنائي .om وبيانات Ultralytics التعريفية الخاصة به.
Link to this sectionالميزات الرئيسية لنماذج Ascend#
- نواة ذكاء اصطناعي مخصصة: تنفذ النماذج المجمعة على نواة الذكاء الاصطناعي في Ascend بدلاً من وحدة المعالجة المركزية المضيفة، مما يوفر إنتاجية أعلى بكثير لخطوط أنابيب الكاميرا في الوقت الفعلي.
- التجميع على جانب المضيف: لا يحتاج ATC إلى وحدة معالجة عصبي (NPU) متصلة، لذا يتم التصدير في CI، أو داخل الحاويات، أو على جهاز محمول.
- بدء بـ ONNX: يتغذى تصدير ONNX القياسي لـ Ultralytics مباشرة في سلسلة أدوات CANN دون أي تنسيق وسيط احتكاري.
- أشكال ثابتة: يتم دمج شكل الإدخال مسبقًا في
.omوقت التجميع، مما يلغي عبء التفاوض على الشكل وقت التشغيل. - استهداف الأجهزة المتعددة: يتم تجميع نفس الرسم البياني لـ ONNX لأي SoC مدعوم عن طريق تغيير
name.
Link to this sectionالمهام المدعومة#
يدعم تصدير Ascend مهام Ultralytics السبعة جميعها. تغطي الكشف، وتقسيم مثيلات الصور، والوضعيات، والمضلعات الموجهة (OBB)، والتصنيف عائلات YOLO26 وYOLO11 وYOLOv8؛ بينما يقتصر التقسيم الدلالي وتقدير العمق على YOLO26 فقط.
| المهمة | مدعوم |
|---|---|
| اكتشاف الكائنات | ✅ |
| تجزئة المثيلات | ✅ |
| التجزئة الدلالية | ✅ |
| تقدير الوضع | ✅ |
| OBB Detection | ✅ |
| التصنيف | ✅ |
| تقدير العمق | ✅ |
Link to this sectionالأجهزة المدعومة#
مرر SoC المستهدف باستخدام name؛ حيث يقوم ATC بدمجه في .om باعتباره --soc_version، لذا يجب أن يتطابق مع اللوحة التي تقوم بال نشر عليها. محليًا، يمكنك التجميع لأي SoC توفر تثبيتات CANN نواة التشغيل له. على منصة Ultralytics، يتم سرد أهداف 310B كقادمة قريباً أثناء إضافة نوات التشغيل الخاصة بها إلى صورة البناء.
name | الأجهزة | التصدير المحلي | المنصة |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | قريباً |
Ascend310B1 | OrangePi AIPro 8T | ✅ | قريباً |
Link to this sectionالتصدير إلى Ascend: تحويل نموذج YOLO الخاص بك#
يتطلب تصدير Ascend مجموعة أدوات CANN، والتي تعمل حصريًا على نظام Linux. يجب أن يكون مترجم atc موجودًا في متغير PATH الخاص بك — قم بتفعيل سكريبت بيئة CANN قبل التصدير، على سبيل المثال: source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionالتثبيت#
قم بتثبيت Ultralytics، ثم قم بتثبيت CANN بشكل منفصل من شركة Huawei.
# Install the required package for YOLO
pip install ultralyticsتتوفر مجموعة أدوات CANN من شركة Huawei ولا يتم تثبيتها تلقائيًا. قم بتنزيلها من صفحة تنزيل مجتمع Ascend، أو استخدم إحدى صور حاويات ascendai/cann الرسمية، والتي تجمع بين ATC وتبعياته.
يمكن لـ ATC التجميع فقط لعائلات SoC التي يتم تثبيت نوات التشغيل الخاصة بها. ستفشل مجموعة الأدوات التي تحمل نوات ascend310p فقط مع رسالة No supported Ops kernel and engine are found for ... Conv2D عند طلب استهداف Ascend310B4. قم بتثبيت حزمة Ascend-cann-kernels-<soc> المطابقة للجهاز الذي تنشر عليه.
Link to this sectionالاستخدام#
يدعم تنسيق Ascend أوضاع التصدير والتنبؤ والتحقق. يتم تشغيل الاستدلال والتحقق على عتاد Ascend. قم بتصدير نموذجك، ثم قم بتحميل النموذج المصدر لتشغيل الاستدلال أو التحقق من دقته.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to Ascend format for an Atlas 200I / OrangePi AIPro board
model.export(format="ascend", name="Ascend310B4")
# Load the exported Ascend model and run inference on the device
ascend_model = YOLO("yolo26n_ascend_model")
results = ascend_model("https://ultralytics.com/images/bus.jpg")Link to this sectionوسائط التصدير#
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'ascend' | التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع معالجات الذكاء الاصطناعي Ascend. |
name | str | 'Ascend310B4' | نظام SoC المستهدف المُمرر إلى ATC كـ --soc_version، على سبيل المثال Ascend310P3. أي SoC يحتوي تثبيت CANN الخاص بك على نوات تشغيل له يعتبر صالحًا؛ راجع الأجهزة المدعومة. يجب أن يتطابق مع جهاز النشر الخاص بك. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج، والمدمج في ملف .om كشكل ثابت. |
batch | int | 1 | حجم الدفعة الثابت المجمّع في النموذج غير المتصل. |
quantize | int | 16 | دقة التكميم. تصدير Ascend يدعم FP16 حصريًا ويقوم تلقائيًا بتفعيل 16 إذا لم يتم تحديده. يحل محل علمي half/int8 المهملين. |
opset | int | 17 | مجموعة عمليات ONNX للرسم البياني الوسيط. محدد بحد أقصى 17، وهو أعلى إصدار يقبله محلل ONNX في CANN. |
simplify | bool | True | يعمل على تبسيط الرسم البياني الوسيط لـ ONNX باستخدام onnxslim. |
nms | bool | False | يضيف كمعالجة غير الحد الأقصى (NMS) إلى نماذج الكشف والتقسيم والوضعيات وOBB المدعومة. |
تقبل نواة الذكاء الاصطناعي في Ascend مدخلات DT_FLOAT16 وDT_INT8 فقط للعمليات الالتفافية، لذلك لا يمكن تنفيذ نموذج غير متصل بدقة FP32 على هذا العتاد. يؤدي طلب quantize=32 إلى ظهور خطأ بدلاً من إنتاج نموذج بصمت لن يعمل.
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.
Link to this sectionهيكل المخرجات#
بعد تصدير ناجح، يتم إنشاء دليل نموذج بالتخطيط التالي:
yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml # Model metadata (classes, image size, task, etc.)ملف .om هو النموذج غير المتصل المجمع الذي يقوم وقت تشغيل CANN بتحميله على الجهاز. يحمل اسمه نظام SoC المستهدف ليكون العنصر ذاتي الوصف؛ احتفظ بملف .om واحد لكل دليل، حيث يلتقط محمل النماذج النموذج الوحيد الذي يجده هناك. يحتوي ملف metadata.yaml على أسماء الفئات، وحجم الصورة، ومعلومات أخرى تستخدمها خطوط أنابيب استدلال Ultralytics.
Link to this sectionنشر نماذج YOLO Ascend المصدرة#
بمجرد تصدير نموذج Ultralytics YOLO الخاص بك بنجاح إلى تنسيق Ascend، تكون الخطوة التالية هي نشره على عتاد Ascend.
Link to this sectionتثبيت بيئة التشغيل#
يتطلب الاستدلال وجود وقت تشغيل CANN على الجهاز بالإضافة إلى حزمة بايثون ais_bench، التي تغلف ارتباطات pyACL لـ CANN. قم ببنائها وتثبيتها من مستودع أدوات Ascend الخاص بـ Huawei:
# On the Ascend device, with CANN installed and sourced
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# Build and install the ais_bench inference wheel
git clone https://gitee.com/ascend/tools.git
cd tools/ais-bench_workload/tool/ais_bench
pip3 wheel ./backend -v
pip3 install ./aclruntime-*.whl
pip3 wheel ./ -v
pip3 install ./ais_bench-*.whlقم بتنسوخ دليل yolo26n_ascend_model المصدر إلى الجهاز، ثم قم بتشغيل الاستدلال تمامًا كما تفعل مع أي تنسيق آخر لـ Ultralytics.
Link to this sectionسير العمل الموصى به#
- درّب نموذجك باستخدام وضع التدريب في Ultralytics، أو ابدأ بنقطة تفتيش مدربة مسبقًا.
- صدّر إلى Ascend على أي مضيف Linux مثبت عليه CANN، مع تمرير الوسيط
nameالذي يتطابق مع نظام SoC المستهدف. - انسخ دليل النموذج المصدر إلى جهاز Ascend.
- انشر باستخدام وقت تشغيل CANN وحزمة
ais_benchللاستدلال على الجهاز مباشرة.
Link to this sectionتطبيقات العالم الحقيقي#
نماذج YOLO التي تعمل على عتاد Ascend تناسب مجموعة واسعة من تطبيقات الرؤية المدمجة والصناعية:
- الأتمتة الصناعية: فحص الجودة عالي السرعة وكشف العيوب على خطوط الإنتاج.
- المراقبة الذكية: كشف الكائنات بكاميرات متعددة في الوقت الفعلي على بوابات الحوسبة الطرفية دون الحاجة إلى خادم مركزي.
- الروبوتات: الإدراك المدمج على متن الروبوتات المتحركة المستقلة والأذرع التعاونية.
- المدن الذكية: مراقبة حركة المرور وتحليلات المشاة على وحدات الطرق منخفضة الطاقة.
Link to this sectionملخص#
في هذا الدليل، تعلمت كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق Huawei Ascend .om باستخدام مترجم CANN ATC. يتم التصدير بالكامل على المضيف، وينتج دليل نموذج مستقل بذاته، ويستهدف أي SoC مدعوم من Ascend من خلال وسيط name واحد — مما يمنحك مسارًا مباشرًا من نقطة تفتيش .pt مدربة إلى استدلال FP16 مسرع على معالجات الذكاء الاصطناعي Ascend.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة توثيق CANN الرسمي.
أيضًا، إذا كنت ترغب في معرفة المزيد حول تكاملات Ultralytics YOLO الأخرى، تفضل بزيارة صفحة دليل التكامل الخاصة بنا للعثور على الكثير من الموارد المفيدة.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يمكنني تصدير نموذج Ultralytics YOLO الخاص بي إلى تنسيق Ascend؟#
قم بتثبيت Ultralytics ومجموعة أدوات CANN، وقم بتفعيل بيئة CANN ليكون atc في مسار PATH الخاص بك، ثم قم بالتصدير باستخدام model.export(format="ascend", name="Ascend310B4") في Python أو yolo export model=yolo26n.pt format=ascend name=Ascend310B4 من واجهة الأوامر CLI. قم بتعيين name إلى SoC الخاص بجهاز النشر الخاص بك.
Link to this sectionهل أحتاج إلى عتاد Ascend لتصدير نموذج؟#
لا. يعمل مترجم ATC بالكامل على المضيف، لذا يعمل التجميع على جهاز Linux قياسي بنظام x86-64 أو ARM64 دون توصيل وحدة NPU. تحتاج فقط إلى عتاد Ascend لتشغيل الاستدلال على ملف .om المصدر.
Link to this sectionلماذا يفشل التصدير برسالة "No supported Ops kernel and engine are found"؟#
لا يحتوي تثبيت CANN الخاص بك على نوات تشغيل لـ SoC الذي طلبته. تجمع كل مجموعة أدوات نوات لعائلات SoC محددة، لذا قم بتثبيت حزمة Ascend-cann-kernels-<soc> المطابقة لهدفك، أو استخدم صورة حاوية مصممة لعائلة هذا الجهاز.
Link to this sectionلماذا يدعم تصدير Ascend دقة FP16 فقط؟#
تقبل العمليات الالتفافية لنواة الذكاء الاصطناعي في Ascend موترات DT_FLOAT16 وDT_INT8 فقط. سيفشل نموذج غير متصل بدقة FP32 في التنفيذ على العتاد، لذا يقوم المصدر بالتجميع باستخدام --precision_mode=force_fp16 ويرفض طلب quantize=32 الصريح.
Link to this sectionما هي أجهزة Ascend المدعومة؟#
أي SoC يوفر تثبيت CANN الخاص بك نوات تشغيل له، يتم تحديده من خلال وسيط name. راجع الأجهزة المدعومة لمعرفة الأهداف الأربعة المعتمدة ومدى توفرها على منصة Ultralytics.