رؤية YOLO 2026:

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

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

قم بتشغيل YOLO على المحرك العصبي من Apple اليوم باستخدام تطبيقات الهاتف المحمول الرسمية

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

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

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

تنسيق الذكاء الاصطناعي الأساسي المستقبلي من Apple

قدمت Apple إطار عمل Core AI الجديد وتنسيق .aimodel لجيل iOS 27 و macOS 27، ولكن Ultralytics لا تقوم بتصديره حالياً. يظل CoreML هو التنسيق المدعوم لإصدارات Ultralytics الحالية والتوافق الأوسع مع أجهزة Apple.



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

ما هو CoreML؟#

Apple CoreML deployment pipeline

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

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

لماذا نقوم بتصدير YOLO26 إلى CoreML؟#

  • سرعة المحرك العصبي (Neural Engine): يقوم CoreML جدولة العمليات المدعومة على محرك Apple العصبي (Neural Engine) للاستدلال على الجهاز منخفض زمن الانتقال. راجع جدول الأجهزة الفعلية أدناه، وقم بإجراء قياس الأداء لتصديرك الدقيق على الأجهزة المستهدفة.
  • بدون NMS بالتصميم: YOLO26 هو نموذج شامل (end-to-end)، لذا لا يحتاج الرسم البياني المُصدّر إلى خط أنابيب NMS، وعملية فك التشفير تستغرق أقل من ميلي ثانية. يمكن لنماذج الكشف الأقدم مثل YOLO11 تضمين خط أنابيب CoreML NMS باستخدام nms=True.
  • خصوصية وغير متصل بالإنترنت: تبقى جميع العمليات الحسابية على الجهاز — لا توجد رحلات ذهاب وإياب إلى السحابة، ولا مفاتيح API، وخصوصية بيانات كاملة.
  • تصدير واحد، النظام البيئي بأكمله: تعمل حزمة .mlpackage نفسها على أنظمة iOS وiPadOS وmacOS وwatchOS وtvOS وvisionOS، وتدعم حزمة iOS SDK الرسمية من Ultralytics وإضافة Flutter.

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

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

النموذجالمهمةالحجم
(بكسل)
وحدة المعالجة المركزية (CPU)
Core ML .cpuOnly
(ميلي ثانية)
وحدة المعالجة المركزية + المحرك العصبي (ANE) مفضل
Core ML .cpuAndNeuralEngine
(ميلي ثانية)
YOLO26nاكتشاف6409.2
0.0 / 9.2 / 0.0
3.2
0.0 / 3.2 / 0.0
YOLO26n-segتجزئة64012.6
0.0 / 12.0 / 0.5
4.8
0.0 / 4.2 / 0.6
YOLO26n-semدلالي (Semantic)6409.7
0.0 / 9.2 / 0.5
4.6
0.0 / 4.2 / 0.5
YOLO26n-depthالعمق (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، يتم قياسه من خلال توقيت كل مرحلة في iOS SDK عبر أداة قياس الأداء الخاصة بـ Flutter plugin في وضع ملف التعريف (رمز أصلي مُحسَّن). تبادلت ترتيب وحدة المعالجة المركزية/المسرع بين المهام في جولة متسلسلة واحدة. تطلب صفوف وحدة المعالجة المركزية Core ML .cpuOnly؛ وتطلب صفوف وحدة المعالجة المركزية + المحرك العصبي (ANE) المفضلة .cpuAndNeuralEngine، مع التحكم في وضع العمليات النهائي بواسطة Core ML. تشغيل الكاميرا المستمر في الوقت الفعلي يعمل بمعدل أعلى لأنه يتضمن خط أنابيب الالتقاط والتحجيم بالإضافة إلى الاستقرار الحراري. قيست جولة كاميرا سابقة غير قياسية 11.3 مللي ثانية/إطار لاكتشاف YOLO26n و 16.5 مللي ثانية/إطار لـ YOLO26n Depth على نفس الجهاز - راجع وثيقة أداء iOS SDK لتحديد ملف تعريف الحالة المستقرة.
  • قارن نتائج وحدة المعالجة المركزية/وحدة المعالجة الرسومية لنظام Android في تكامل LiteRT ونتائج وحدة المعالجة العصبية (NPU) لـ Snapdragon في تكامل Qualcomm QNN.

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

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

المهمةYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
الوضعية
OBB

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

التثبيت#

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

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

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

الاستخدام#

يدعم تنسيق CoreML أوضاع التصدير، والتنبؤ، والتحقق. يتم تشغيل الاستنتاج والتحقق باستخدام CoreML على نظام macOS فقط. قم بتصدير نموذجك، ثم قم بتحميل النموذج المُصدر لتشغيل الاستنتاج أو التحقق من دقتها.

التصدير
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export to CoreML with INT8 weight quantization, matching the official app models
model.export(format="coreml", quantize=8, imgsz=640)  # use imgsz=224 for classification
التنبؤ
from ultralytics import YOLO

# Load the exported CoreML model (macOS)
model = YOLO("yolo26n.mlpackage")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
التحقق
from ultralytics import YOLO

# Load the exported CoreML model (macOS)
model = YOLO("yolo26n.mlpackage")

# Validate accuracy on the COCO8 dataset
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 التي أصبحت مهملة.
nmsboolFalseيقوم بتضمين خط أنابيب CoreML NMS. مخصص لنماذج الكشف فقط (يتم تجاهله مع تحذير للمهام الأخرى)؛ ليس ضرورياً لنموذج YOLO26 الخالي من NMS، استخدمه للنماذج الأقدم مثل YOLO11.
dynamicboolFalseيسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة.
batchint1يحدد حجم استدلال دفعة النموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict.
devicestrNoneيحدد الجهاز للتصدير: GPU (device=0)، CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps).

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

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

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

يتبع تشغيل نموذج CoreML من Python على Mac host (عبر 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 المُصدرة#

الطريقة الأسرع هي استخدام Ultralytics YOLO iOS SDK الرسمية، وهي نفس حزمة 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 الخاصة بالحزمة للاستنتاج في الوقت الفعلي مع تراكبات أصلية، أو استخدم إضافة Flutter للتطبيقات عبر الأنظمة الأساسية التي تشترك في قاعدة كود واحدة مع Android.

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

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

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

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

ملخص#

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

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

كيف أقوم بتصدير نماذج YOLO26 إلى تنسيق CoreML؟#

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

هل أحتاج إلى nms=True عند تصدير YOLO26؟#

لا. YOLO26 خالٍ من NMS بشكل شامل، لذا فإن الرسم البياني المُصدّر يصدر بالفعل اكتشافات نهائية وتكاليف فك التشفير أقل بكثير من ميلي ثانية. يوجد الخيار nms=True لنماذج الكشف الأقدم مثل YOLO11، حيث يقوم بتضمين خط أنابيب CoreML NMS حتى لا يضطر تطبيقك إلى تنفيذ عملية الإخماد. تدعم خطوط أنابيب CoreML NMS اكتشاف الكائنات فقط، لذا يتم تجاهل nms=True مع تحذير للمهام الأخرى مثل التجزئة وتحديد الوضعية (pose).

أي دقة يجب أن أستخدمها — FP16 أم INT8؟#

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

كيف أتأكد من تشغيل الاستنتاج على المحرك العصبي؟#

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

هل يمكنني تشغيل والتحقق من نماذج CoreML باستخدام Ultralytics CLI؟#

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

ما هي أسرع طريقة لتشغيل YOLO26 في تطبيق iOS أو Flutter؟#

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

التعليقات