رؤية YOLO لعام 2026:

تكامل Huawei Ascend مع Ultralytics YOLO#

يتطلب نشر نماذج رؤية الكمبيوتر على معالجات الذكاء الاصطناعي من Huawei Ascend تجميعها في تنسيق النموذج غير المتصل .om الذي يتم تنفيذه بواسطة Ascend AI Core. يتيح لك تصدير نماذج Ultralytics YOLO إلى Ascend تشغيل استدلال سريع ومنخفض الطاقة على لوحات مطوري Atlas وأجهزة OrangePi AIPro المستخدمة في الروبوتات، والفحص الصناعي، ونشر الكاميرات الذكية.

ما هو Huawei Ascend؟#

Huawei Ascend هي عائلة من معالجات الذكاء الاصطناعي المقترنة بـ CANN (بنية الحوسبة الشبكية للشبكات العصبية)، وهي حزمة الحوسبة غير المتجانسة من Huawei. توفر CANN أداة ATC (مترجم موتر Ascend)، وهي أداة جانب المضيف تحول رسم بياني قياسي لـ ONNX إلى نموذج غير متصل خاص بالعتاد .om يستهدف Ascend AI Core.

نظرًا لأن ATC يعمل بالكامل على المضيف، يمكنك تجميع النماذج على جهاز Linux عادي يعمل بنظام x86-64 أو ARM64 دون توصيل أي عتاد Ascend، ثم نسخ الناتج .om إلى الجهاز المستهدف للاستدلال.

التدريب على وحدات NPU من Ascend#

تدعم Ultralytics التدريب بنظام NPU مفرد ومتعدد باستخدام torch_npu، بما في ذلك التدريب المختلط AMP، والتحقق، وحفظ نقاط التحقق، والاستئناف، وAutoBatch. حدد NPU واحدًا باستخدام device=npu:0 أو عدة وحدات NPU باستخدام device=npu:0,1؛ يستخدم التدريب الموزع HCCL. قم بتثبيت إصدارات CANN وPyTorch المتوافقة وtorch_npu ومصدر بيئة CANN أولاً. راجع قسم تدريب Ascend NPU للحصول على أمثلة التثبيت والاستخدام.

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

يكتب مصدر التصدير لـ Ultralytics أولاً رسماً بيعانياً وسيطاً لـ ONNX، ثم يستدعي ATC لتجميعه لوحدة SoC التي تستهدفها باستخدام الوسيط name. والنتيجة هي دليل نموذج مستقل بذاته يحتوي على الملف الثنائي .om وبيانات Ultralytics التعريفية الخاصة به.

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

  • نواة ذكاء اصطناعي مخصصة: تنفذ النماذج المجمعة على نواة الذكاء الاصطناعي في Ascend بدلاً من وحدة المعالجة المركزية المضيفة، مما يوفر إنتاجية أعلى بكثير لخطوط أنابيب الكاميرا في الوقت الفعلي.
  • التجميع على جانب المضيف: لا يحتاج ATC إلى وحدة معالجة عصبي (NPU) متصلة، لذا يتم التصدير في CI، أو داخل الحاويات، أو على جهاز محمول.
  • الأولوية لـ ONNX: يتغذى تصدير Ultralytics ONNX القياسي مباشرة في سلسلة أدوات CANN بدون أي تنسيق وسيط احتكاري.
  • أشكال ثابتة: يتم تضمين شكل الإدخال في .om في وقت التجميع، مما يزيل عبء تفاوض الشكل في وقت التشغيل.
  • استهداف متعدد الأجهزة: يتجمع نفس الرسم البياني لـ ONNX لأي SoC مدعوم عن طريق تغيير name.

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

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

المهمةYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

الأجهزة المدعومة#

مرر SoC المستهدف باستخدام name؛ يقوم ATC بتضمينه في .om كـ --soc_version، لذلك يجب أن يتطابق مع اللوحة التي تنشر إليها. محلياً، يمكنك التجميع لأي SoC توفر تثبيتات CANN نوى لها. تدعم منصة Ultralytics أهداف Ascend310P1 وAscend310P3 وAscend310B1 وAscend310B4.

nameالأجهزةالتصدير المحليالمنصة
Ascend310P3Atlas 300I Pro, Atlas 300V Pro
Ascend310P1Atlas 300I
Ascend310B4OrangePi AIPro 20T, Atlas 200I A2
Ascend310B1OrangePi AIPro 8T

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

ملاحظة

يتطلب تصدير Ascend مجموعة أدوات CANN، وهي مخصصة لنظام Linux فقط. يجب أن يكون مترجم atc على PATH الخاص بك - قم بمصدر نص برمجي لبيئة CANN قبل التصدير، مثل source /usr/local/Ascend/ascend-toolkit/set_env.sh.

التثبيت#

قم بتثبيت Ultralytics، ثم قم بتثبيت CANN بشكل منفصل من شركة Huawei.

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

تُوزَّع مجموعة أدوات CANN بواسطة Huawei ولا يتم تثبيتها تلقائياً. قم بتنزيلها من صفحة تنزيل مجتمع Ascend، أو استخدم إحدى حاويات حاويات ascendai/cann الرسمية، والتي تجمع ATC وتبعياته.

مطابقة مجموعة الأدوات مع SoC المستهدف

لا يمكن لـ ATC التجميع إلا لعائلات SoC التي يتم تثبيت نوى المشغل الخاصة بها. مجموعة الأدوات التي تحمل نوى ascend310p فقط تفشل مع الخطأ No supported Ops kernel and engine are found for ... Conv2D عند طلب هدف Ascend310B4. قم بتثبيت حزمة Ascend-cann-kernels-<soc> المطابقة للجهاز الذي تنشر إليه.

الاستخدام#

يدعم تنسيق 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")

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

الوسيطالنوعالافتراضيالوصف
formatstr'ascend'التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع معالجات الذكاء الاصطناعي Ascend.
namestr'Ascend310B4'SoC المستهدف المُمرر إلى ATC كـ --soc_version، على سبيل المثال Ascend310P3. أي SoC يحتوي تثبيت CANN الخاص بك على نوى له يعتبر صالحاً؛ راجع الأجهزة المدعومة. يجب أن يتطابق مع جهاز النشر الخاص بك.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج، والمضمن في .om كشكل ثابت.
batchint1حجم الدفعة الثابت المجمّع في النموذج غير المتصل.
quantizeint16دقة التكميم. تصدير Ascend يكون بدقة FP16 حصرياً ويقوم تلقائياً بتمكين 16 إذا لم يتم تحديده. يحل محل علمي half/int8 المهجورين.
opsetint17مجموعة عمليات ONNX للرسم البياني الوسيط. محدد بحد أقصى 17، وهو أعلى إصدار يقبله محلل ONNX في CANN.
simplifyboolTrueيبسط رسم ONNX الوسيط باستخدام onnxslim.
nmsboolFalseيضيف كمعالجة غير الحد الأقصى (NMS) إلى نماذج الكشف والتقسيم والوضعيات وOBB المدعومة.
لماذا لا توفر دقة FP32؟

يقبل Ascend AI Core مدخلات DT_FLOAT16 وDT_INT8 فقط لعمليات التفاف، لذا لا يمكن تنفيذ نموذج غير متصل بدقة FP32 على العتاد. يؤدي طلب quantize=32 إلى إثارة خطأ بدلاً من إنتاج نموذج صامت لن يعمل.

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

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

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

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.

نشر نماذج YOLO Ascend المصدرة#

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

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

يتطلب الاستدلال محرك تشغيل CANN على الجهاز بالإضافة إلى حزمة Python المسمى 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 آخر.

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

  1. درِّب نموذجك باستخدام وضع التدريب من Ultralytics، أو ابدأ من نقطة تحقق مدربة مسبقاً.
  2. صدِّر إلى Ascend على أي مضيف Linux مزود بـ CANN، مع تمرير name الذي يطابق SoC المستهدف.
  3. انسخ دليل النموذج المصدر إلى جهاز Ascend.
  4. انشر باستخدام محرك تشغيل CANN وais_bench للاستدلال على الجهاز.

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

نماذج YOLO التي تعمل على عتاد Ascend تناسب مجموعة واسعة من تطبيقات الرؤية المدمجة والصناعية:

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

ملخص#

في هذا الدليل، تعلمت كيفية تدريب Ultralytics YOLO على وحدات Huawei Ascend NPUs وتصدير النماذج إلى تنسيق Ascend .om باستخدام مترجم CANN ATC. يتم تشغيل التصدير بالكامل على المضيف، وينتج دليلاً مستقلاً للنموذج، ويستهدف أي Ascend SoC مدعوم من خلال وسيط واحد name.

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

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

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

  • قم بتثبيت Ultralytics ومجموعة أدوات CANN، واجعل بيئة CANN كمصدر بحيث يكون atc على PATH الخاص بك، ثم قم بالتصدير باستخدام model.export(format="ascend", name="Ascend310B4") في Python أو yolo export model=yolo26n.pt format=ascend name=Ascend310B4 من واجهة سطر الأوامر (CLI). اضبط name على SoC لجهاز النشر الخاص بك.

  • لا. يعمل مترجم ATC بالكامل على المضيف، لذا يعمل التجميع على جهاز Linux قياسي يعمل بنظام x86-64 أو ARM64 بدون توصيل NPU. كل ما تحتاجه هو عتاد Ascend لتشغيل الاستدلال على .om المصدر.

  • تثبيت CANN الخاص بك لا يحتوي على نوى مشغل لـ SoC الذي طلبته. تجمع كل مجموعة أدوات نوى لعائلات SoC محددة، لذا قم بتثبيت حزمة Ascend-cann-kernels-<soc> التي تتطابق مع هدفك، أو استخدم صورة حاوية مبنية لعائلة الجهاز تلك.

  • تقبل عمليات الالتفاف في Ascend AI Core موترات DT_FLOAT16 وDT_INT8 فقط. يفشل نموذج غير متصل بدقة FP32 في التنفيذ على العتاد، لذا يقوم مصدر التصدير بالتجميع باستخدام --precision_mode=force_fp16 ويرفض طلب quantize=32 الصريح.

  • أي SoC توفر مجموعة أدوات CANN المثبتة لديك نوى لها، يتم تحديده من خلال الوسيط name. راجع الأجهزة المدعومة للأهداف الأربعة المُتحقق منها وتوافرها على منصة Ultralytics.

المساهمون

التعليقات