Ultralytics YOLO27:

تصدير CoreML لنماذج YOLO26#

تضمّن Apple شرائح مخصصة للذكاء الاصطناعي — وهي Neural Engine — في كل أجهزة iPhone وiPad وMac الحديثة، ويُعد CoreML المسار المدعوم حاليًا من Ultralytics لنشر النماذج عليها. يحوّل تصدير نماذج Ultralytics YOLO26 إلى CoreML نقطة تحقق .pt مدرَّبة إلى .mlpackage أصلي، يشغّل مهام YOLO السبع على الجهاز بزمن استجابة منخفض، من دون اتصال بالشبكة أو مغادرة أي بيانات للجهاز.

شغّل YOLO اليوم على Apple Neural Engine باستخدام التطبيقات الرسمية للأجهزة المحمولة

تشغّل حزمة Ultralytics YOLO SDK الرسمية لنظام iOS وإضافة Flutter صادرات CoreML على Apple Neural Engine مباشرةً، مع الاستدلال بالكاميرا في الوقت الحقيقي والتنبؤ بصورة واحدة والتنزيل التلقائي للنماذج لمهام YOLO26 السبع، بما فيها العمق. لنشر النماذج على NPU في Android، راجع تكامل Qualcomm QNN.

أحجام الإدخال الرسمية للأجهزة المحمولة

صدِّر نماذج التصنيف باستخدام imgsz=224. وصدِّر نماذج الكشف والتجزئة والتجزئة الدلالية والعمق والوضعية وOBB باستخدام imgsz=640. يُعتمد معيار 224/640 هذا في أصول CoreML وLiteRT وQNN الرسمية للأجهزة المحمولة.

تنسيق Core AI الجديد من Apple

قدمت Apple إطار عمل Core AI والتنسيق .aimodel الجديد لجيل iOS 27 وmacOS 27، وتتيح Ultralytics التصدير إليه باستخدام format="coreai". يظل CoreML التنسيق الافتراضي لـ SDKs‏ Ultralytics لنظامي iOS وFlutter، اللذين يحمّلان Core AI كخيار إضافي على أجهزة iOS 27، كما يظل التنسيق المتوافق مع نطاق أوسع من أجهزة Apple.



شاهد: كيفية تصدير Ultralytics YOLO26 إلى CoreML مع تكميم INT8 | النشر على Apple | iOS/MacOS 🍎

ما هو CoreML؟#

Apple CoreML deployment pipeline

CoreML (التي تسميها Apple «Core ML») هي منصة Apple للتعلّم الآلي على الجهاز. وهي تحمّل النماذج بتنسيق برنامج ML الحديث — الحزمة .mlpackage التي يُنتجها مُصدِّر Ultralytics — وتوزّع تشغيلها على CPU وGPU والمحرّك العصبي من Apple (ANE)، وهو NPU مخصص موجود في كل شريحة من شرائح Apple silicon. وبما أن كل شيء يعمل محليًا، يعمل الاستدلال دون اتصال بالإنترنت، ولا يضيف أي زمن استجابة للشبكة، وتبقى بيانات المستخدم على الجهاز.

يتكامل CoreML مباشرةً مع إطار عمل Vision من Apple، الذي يتولى تغيير حجم الصور واتجاهها عند تمريرها إلى النموذج — وهذه هي الطريقة التي يمرر بها SDK‏ Ultralytics لنظام iOS إطارات الكاميرا إلى YOLO دون تكلفة تُذكر للمعالجة المسبقة.

لماذا تصدِّر YOLO26 إلى CoreML؟#

  • سرعة المحرك العصبي: يوزّع CoreML العمليات المدعومة على المحرك العصبي من Apple لإجراء الاستدلال على الجهاز بزمن استجابة منخفض. راجع الجدول أدناه الخاص بالأجهزة الفعلية، واختبر أداء التصدير المحدد على الأجهزة المستهدفة.
  • اختر المخرجات: تترك عمليات التصدير الافتراضية NMS لتطبيقك. استخدم nms=True لتضمين NMS، أو nms=False للرأس الخالي من NMS في YOLO26.
  • الخصوصية والعمل دون اتصال: تبقى جميع العمليات الحسابية على الجهاز — دون اتصالات متكررة بالسحابة، أو مفاتيح API، مع الحفاظ الكامل على خصوصية البيانات.
  • تصدير واحد للنظام البيئي بأكمله: يعمل .mlpackage نفسه على iOS وiPadOS وmacOS وwatchOS وtvOS وvisionOS، ويدعم SDK‏ iOS وإضافة Flutter الرسميين من Ultralytics.

الأداء المقاس#

استدلال شامل لصورة واحدة باستخدام أصول CoreML INT8‏ YOLO26n المعيارية v8.3.0 على iPhone 17 Pro بذاكرة 12 GB ونظام iOS 26.5.2. يضم A19 Pro وحدة CPU ذات 6 أنوية (نواتا أداء و4 أنوية كفاءة)، ووحدة GPU ذات 6 أنوية مع مسرّعات عصبية، ومحركًا عصبيًا ذا 16 نواة. تعرض كل خلية الزمن الإجمالي (المعالجة المسبقة + الاستدلال + المعالجة اللاحقة، باستثناء إضافة التعليقات التوضيحية)، وتحتها توزيع الزمن لكل مرحلة. ينفذ Vision على iOS تغيير حجم الإدخال ضمن طلب الاستدلال، لذا يُسجّل زمن المعالجة المسبقة بقيمة 0، وتُحتسب تكلفتها ضمن الاستدلال.

النموذجالمهمةالحجم
(بكسل)
CPU
Core ML .cpuOnly
(مللي ثانية)
CPU + تفضيل ANE
Core ML .cpuAndNeuralEngine
(مللي ثانية)
YOLO26nDetect6409.2
0.0 / 9.2 / 0.0
3.2
0.0 / 3.2 / 0.0
YOLO26n-segSegment64012.6
0.0 / 12.0 / 0.5
4.8
0.0 / 4.2 / 0.6
YOLO26n-semدلالي6409.7
0.0 / 9.2 / 0.5
4.6
0.0 / 4.2 / 0.5
YOLO26n-depthالعمق64025.0
0.0 / 24.1 / 0.9
5.3
0.0 / 4.5 / 0.9
YOLO26n-clsالتصنيف2242.2
0.0 / 2.2 / 0.0
1.9
0.0 / 1.9 / 0.0
YOLO26n-poseالوضعية64011.9
0.0 / 11.9 / 0.0
3.9
0.0 / 3.9 / 0.0
YOLO26n-obbOBB64010.6
0.0 / 10.6 / 0.0
3.4
0.0 / 3.4 / 0.0
  • تحدد أصول الإصدار الدقيقة v8.3.0 مدخلات بحجم 224×224 للتصنيف و640×640 لجميع المهام الأخرى.
  • قيم السرعة هي زمن استجابة الاندفاع لصورة واحدة — متوسط 15 تشغيلًا بعد 3 عمليات إحماء على bus.jpg، مقاسةً عبر توقيت المراحل في SDK‏ iOS باستخدام أداة الاختبار المعياري في إضافة Flutter في وضع الملف التعريفي (شفرة أصلية محسّنة). تناوب ترتيب CPU/المسرّع بين المهام ضمن سلسلة قياس متتابعة واحدة. تطلب صفوف CPU‏ Core ML‏ .cpuOnly؛ وتطلب صفوف CPU + تفضيل ANE‏ .cpuAndNeuralEngine، بينما يتحكم Core ML في التوزيع النهائي للعمليات. يرتفع الأداء في تشغيل الكاميرا المستمر والآني لأن ذلك يشمل مسار الالتقاط وتغيير الحجم، إلى جانب استقرار الحرارة. سجّل قياس تاريخي بالكاميرا، قبل اعتماد المعيار، 11.3 ms/frame للكشف باستخدام YOLO26n و16.5 ms/frame للعمق باستخدام YOLO26n على الجهاز نفسه — راجع وثيقة أداء SDK‏ iOS للاطلاع على تحليل الأداء في حالة الاستقرار.
  • قارن نتائج CPU/GPU على Android ضمن تكامل LiteRT، ونتائج NPU على Snapdragon ضمن تكامل Qualcomm QNN.

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

يدعم تصدير CoreML جميع مهام Ultralytics السبع. ولا يتوفر تقدير العمق والتجزئة الدلالية إلا في YOLO26، وهي العائلة الوحيدة التي تتضمن هذين الرأسين.

المهمةYOLOv8YOLO11YOLO26
كشف✅✅✅
تجزئة✅✅✅
دلالي❌❌✅
العمق❌❌✅
تصنيف✅✅✅
الوضعية✅✅✅
OBB✅✅✅

تصدير نماذج YOLO26 إلى CoreML#

التثبيت#

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

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

يُثبَّت المحوِّل coremltools تلقائيًا عند إجراء التصدير لأول مرة. يُجرى التصدير على macOS أو Linux بمعمارية x86؛ وللحصول على تعليمات تفصيلية وأفضل الممارسات، راجع دليل التثبيت ودليل المشكلات الشائعة.

الاستخدام#

يدعم تنسيق CoreML أوضاع التصدير والتنبؤ والتحقق. لا يعمل الاستدلال والتحقق باستخدام CoreML إلا على macOS. صدِّر نموذجك، ثم حمّل النموذج المُصدَّر لإجراء الاستدلال أو التحقق من دقته.

التصدير
from ultralytics import YOLO

# ⁨تحميل نموذج YOLO26⁩
model = YOLO("yolo26n.pt")

# ⁨التصدير إلى CoreML مع تكميم أوزان INT8، بما يطابق نماذج التطبيق الرسمية⁩
model.export(format="coreml", quantize=8, imgsz=640)  # ⁨استخدم imgsz=224 للتصنيف⁩
التنبؤ
from ultralytics import YOLO

# ⁨حمّل نموذج CoreML المُصدَّر (macOS)⁩
model = YOLO("yolo26n.mlpackage")

# ⁨تنفيذ الاستدلال⁩
results = model("https://ultralytics.com/images/bus.jpg")
تحقّق
from ultralytics import YOLO

# ⁨حمّل نموذج CoreML المُصدَّر (macOS)⁩
model = YOLO("yolo26n.mlpackage")

# ⁨# التحقق من الدقة على مجموعة بيانات COCO8⁩
metrics = model.val(data="coco8.yaml")

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

المعاملالنوعالافتراضيالوصف
formatstr'coreml'التنسيق المستهدف للنموذج المُصدَّر، ويحدد مدى توافقه مع بيئات النشر المختلفة.
imgszint أو tuple640حجم الصورة المطلوب كمدخل للنموذج. يمكن تحديده كعدد صحيح للصور المربعة أو كصف (height, width) للأبعاد المحددة.
quantizeint أو strNoneدقة التكميم (للأوزان فقط في CoreML): 16 (FP16)، أو 8 (INT8)، أو "w8a16" (أوزان INT8 مع تنشيطات FP16)، أو 32/بدون تحديد (FP32). تستخدم برامج NMS‏ ML دقة FP16 (لمعاينة Xcode، وهو مطلوب للتجزئة والوضعية)؛ مرّر 32 لتجاوز ذلك في الكشف. يحل هذا الخيار محل العلامتين المهجورتين half/int8.
nmsbool، اختياريNoneاختر المخرجات الخام (None، الافتراضي)، أو NMS المضمّن (True)، أو الرأس الخالي من NMS (False). يدعم NMS المضمّن مهام الكشف والتجزئة والوضعية مع dynamic=False.
dynamicboolFalseيتيح استخدام أحجام إدخال ديناميكية. لا يُدعم للتصنيف أو نماذج RT-DETR، ولا يمكن استخدامه مع nms=True.
batchint1يحدد حجم الدفعة للاستدلال في النموذج المُصدَّر أو الحد الأقصى لعدد الصور التي يعالجها النموذج المُصدَّر بالتزامن في وضع predict. تتطلب القيم الأعلى من 1 استخدام dynamic=True.
devicestrNoneيحدد الجهاز المستخدم للتصدير: GPU (device=0)، أو CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps).

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

استهداف المحرك العصبي#

يختار CoreML الأجهزة عبر MLModelConfiguration.computeUnits. يضبط SDK‏ Ultralytics لنظام iOS الإعداد الافتراضي على .cpuAndNeuralEngine في iOS 16+ بدلًا من .all: ففي تطبيق الكاميرا الآني، تكون GPU مشغولة بالفعل بتركيب المعاينة والتراكبات، لذا فإن استبعادها يتجنب التنافس وتذبذب زمن الإطار، بينما يتولى ANE المهام الثقيلة. لا تثبّت .cpuOnly إلا لاختبار التوافق — فالجدول أعلاه يوضح تكلفته.

يتبع تشغيل نموذج CoreML من Python على جهاز Mac مضيف (عبر Ultralytics أو coremltools) القاعدة نفسها: تحمّل Ultralytics النموذج باستخدام ComputeUnit.CPU_AND_NE (macOS 13+، مع الرجوع إلى CPU_ONLY على إصدارات macOS الأقدم)، ما يُبقي الاستدلال على المحرك العصبي (أسرع بنحو ~3× من CPU). ويتجنب ذلك أيضًا قيدًا حاليًا على أجهزة macOS المضيفة، حيث يؤدي الإعداد الافتراضي ComputeUnit.ALL / CPU_AND_GPU — الذي يضيف مسار تجميع GPU/MPSGraph — إلى إيقاف العملية بسبب تأكيد Error: MLIR pass manager failed على coremltools 9.x.

نشر نماذج YOLO26 CoreML المُصدَّرة#

أسرع طريقة هي استخدام SDK‏ Ultralytics YOLO الرسمي لنظام iOS، وهو حزمة Swift نفسها التي تدعم تطبيق Ultralytics لنظام iOS وإضافة Flutter. يتعرف تلقائيًا على أسماء النماذج الرسمية، وينزّل .mlpackage ويخزّنه مؤقتًا، ويعيد نتائج مفككة بالكامل:

import UltralyticsYOLO

// Loads the official INT8 model (downloaded and cached on first use), then runs inference
let yolo = YOLO("yolo26n", task: .detect) { result in
    if case .success(let model) = result {
        let results = model(uiImage)  // boxes, labels, confidences, timing
    }
}

لتطبيقات الكاميرا، أضف YOLOView الخاص بـ SDK لإجراء استدلال آني مع تراكبات أصلية، أو استخدم إضافة Flutter للتطبيقات متعددة المنصات التي تشترك في قاعدة شفرة واحدة مع Android.

من السهل أيضًا دمج .mlpackage خامًا بنفسك باستخدام مجموعة أدوات Apple — حمّله باستخدام MLModel، وغلّفه داخل VNCoreMLRequest، ومرّر الصور عبر VNImageRequestHandler. تتناول هذه الموارد التفاصيل:

أدرج النموذج داخل حزمة التطبيق (لإتاحته فورًا، وهو مثالي للنماذج الصغيرة جدًا والصغيرة) أو نزّله عند التشغيل الأول وخزّنه مؤقتًا (للحصول على ملف تنفيذي أصغر وتحديث النماذج بسهولة). تجمع التطبيقات الرسمية بين الطريقتين: إذ تُضمّن النماذج الافتراضية الصغيرة جدًا لتكون جاهزة للاستخدام فورًا، بينما تُنزّل النماذج الأكبر عند الطلب وتُخزَّن محليًا.

  1. درِّب نموذجك باستخدام وضع التدريب في Ultralytics، أو ابدأ بأوزان YOLO26 الرسمية
  2. صدِّر باستخدام model.export(format="coreml", quantize=8, imgsz=640) على macOS أو Linux بمعمارية x86 (imgsz=224 للتصنيف)
  3. تحقق من الدقة باستخدام model.val() على Mac، وحلّل الأداء باستخدام تقرير أداء Core ML في Xcode على جهازك المستهدف
  4. انشر باستخدام SDK‏ iOS، أو إضافة Flutter، أو تكامل Vision الخاص بك، مع استهداف .cpuAndNeuralEngine

الملخص#

تعلّمت في هذا الدليل كيفية تصدير نماذج Ultralytics YOLO26 إلى تنسيق .mlpackage الخاص بـ CoreML، وتكميمها لتعمل على المحرك العصبي من Apple، ونشرها بزمن استجابة لا يتجاوز بضعة أجزاء من الألف من الثانية — إما عبر SDK‏ iOS وإضافة Flutter الرسميين، أو عبر تكامل Vision الخاص بك. لاستكشاف أهداف نشر أخرى، تصفّح صفحة دليل التكامل، وقارن التنسيقات باستخدام وضع Benchmark.

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

  • شغّل model.export(format="coreml", imgsz=640) في Python أو yolo export model=yolo26n.pt format=coreml imgsz=640 من CLI على macOS أو Linux بمعمارية x86. استخدم imgsz=224 للتصنيف، وأضف quantize=8 لمطابقة نماذج التطبيق الرسمية. ينتج عن التصدير برنامج yolo26n.mlpackage بتنسيق ML Program، جاهز للاستخدام مع Xcode أو SDK‏ iOS أو إضافة Flutter.

  • استخدم nms=True إذا كان تطبيقك يحتاج إلى عمليات كشف تتضمن NMS. يصدر الخيار الافتراضي nms=None مخرجات خامًا أحادية إلى متعددة ليعالجها تطبيقك؛ ويحدد nms=False الرأس الخالي من NMS في YOLO26. يدعم NMS المضمّن مهام الكشف والتجزئة والوضعية ذات الأشكال الثابتة؛ أما المهام الأخرى فتحتفظ بمخرجاتها الأصلية.

  • تُطرح نماذج تطبيق Ultralytics الرسمية بدقة INT8، ما يقلل حجم التنزيل ويحقق السرعات الموضحة في الجدول أعلاه. يُعد quantize=16 (FP16) خيارًا محافظًا لا يكاد يسبب أي خسارة في الدقة. تحقّق من صحة التصدير المحدد باستخدام model.val() على Mac قبل النشر.

  • اضبط MLModelConfiguration.computeUnits = .cpuAndNeuralEngine (وهو الإعداد الافتراضي في SDK‏ iOS على iOS 16+). تجنب .all في تطبيقات الكاميرا — إذ تكون GPU مشغولة بتركيب المعاينة، وجدولة الاستدلال عليها تسبب تذبذب زمن الإطار. تحقّق من توزيع العمليات باستخدام تقرير أداء Core ML في Xcode.

  • نعم، على macOS: يعمل yolo predict model=yolo26n.mlpackage source=image.jpg وyolo val model=yolo26n.mlpackage data=coco8.yaml مثل أي تنسيق آخر. يتطلب تشغيل CoreML أجهزة Apple، لذا لا تتوفر هذه الأوضاع على Linux وWindows.

  • استخدم SDK‏ Ultralytics YOLO الرسمي لنظام iOS (حزمة Swift) أو إضافة Flutter. يحمّل كلاهما النماذج الرسمية بالاسم مع التنزيل والتخزين المؤقت تلقائيًا، ويشغّلانها على المحرك العصبي، ويتضمنان واجهات كاملة للكاميرا الآنية — وقد أُنتج جدول الأداء المقاس أعلاه باستخدام هذه المجموعة نفسها تمامًا.

التعليقات