YOLO Vision 2026 :

Exportation CoreML pour les modèles YOLO26#

Apple intègre du silicium IA dédié — le Neural Engine — dans chaque iPhone, iPad et Mac moderne, et CoreML est la voie prise en charge par Ultralytics pour y déployer des modèles aujourd'hui. Exporter des modèles Ultralytics YOLO26 vers CoreML transforme un point de contrôle .pt entraîné en un .mlpackage natif qui exécute les sept tâches YOLO sur l'appareil à faible latence, sans connexion réseau et sans qu'aucune donnée ne quitte l'appareil.

Exécute YOLO sur l'Apple Neural Engine dès aujourd'hui avec les applications mobiles officielles

Le SDK iOS Ultralytics YOLO officiel et le plugin Flutter exécutent les exportations CoreML sur l'Apple Neural Engine dès leur sortie — inférence caméra en temps réel, prédiction sur image unique et téléchargement automatique de modèle pour les sept tâches YOLO26, y compris Depth. Pour le déploiement sur NPU Android, consulte l'intégration Qualcomm QNN.

Tailles d'entrée mobiles officielles

Exporte les modèles de classification sur imgsz=224. Exporte les modèles de détection, segmentation, sémantique, profondeur, pose et OBB sur imgsz=640. Cette norme 224/640 est partagée par les composants mobiles officiels CoreML, LiteRT et QNN.

Le nouveau format d'intelligence artificielle d'Apple

Apple a introduit le nouveau framework Core AI et format .aimodel pour la génération iOS 27 et macOS 27, et Ultralytics l'exporte avec format="coreai". CoreML reste le format recommandé pour les SDK iOS et Flutter d'Ultralytics ainsi que pour une plus grande compatibilité avec les appareils Apple.



Watch: How to Export Ultralytics YOLO26 to CoreML with INT8 Quantization | Apple Deployment | iOS/MacOS 🍎

Qu'est-ce que CoreML ?#

Apple CoreML deployment pipeline

CoreML (stylisé « Core ML » par Apple) est le framework d'apprentissage automatique sur appareil d'Apple. Il charge les modèles au format moderne ML Program — le bundle .mlpackage produit par l'exportateur Ultralytics — et les planifie sur le CPU, le GPU et l'Apple Neural Engine (ANE) de l'appareil, le NPU dédié de chaque puce Apple silicon. Tout s'exécutant localement, l'inférence fonctionne hors ligne, n'ajoute aucune latence réseau et maintient les données utilisateur sur l'appareil.

CoreML s'intègre directement au framework Vision d'Apple, qui gère la mise à l'échelle et l'orientation des images à l'entrée du modèle — c'est ainsi que le SDK iOS Ultralytics transmet les images de la caméra à YOLO avec un coût de prétraitement pratiquement nul.

Pourquoi exporter YOLO26 vers CoreML ?#

  • Vitesse du Neural Engine : CoreML planifie les opérations prises en charge sur le Neural Engine d'Apple pour une inférence sur appareil à faible latence. Consulte le tableau des appareils physiques ci-dessous et évalue ton exportation exacte sur ton matériel cible.
  • Sans NMS par conception : YOLO26 est de bout en bout, le graphe exporté ne nécessite donc aucun pipeline NMS et le décodage prend moins d'une milliseconde. Les modèles de détection plus anciens comme YOLO11 peuvent intégrer un pipeline NMS CoreML avec nms=True.
  • Privé et hors ligne : Tout le calcul reste sur l'appareil — pas d'allers-retours cloud, pas de clés API, confidentialité des données totale.
  • Une seule exportation, tout l'écosystème : Le même .mlpackage fonctionne sur iOS, iPadOS, macOS, watchOS, tvOS et visionOS, et alimente les iOS SDK et Flutter plugin officiels d'Ultralytics.

Performances mesurées#

Inférence de bout en bout sur image unique pour les assets standardisés v8.3.0 YOLO26n INT8 CoreML sur un iPhone 17 Pro avec 12 Go de mémoire et iOS 26.5.2. Son A19 Pro dispose d'un CPU à 6 cœurs (2 cœurs de performance et 4 cœurs d'efficacité), d'un GPU à 6 cœurs avec accélérateurs neuronaux et d'un Neural Engine à 16 cœurs. Chaque cellule indique le temps total (prétraitement + inférence + post-traitement, hors annotation) avec la répartition par étape en dessous. Sur iOS, Vision effectue la mise à l'échelle des entrées dans la requête d'inférence, le prétraitement est donc rapporté à 0 et son coût est inclus dans l'inférence.

ModèleTâchetaille
(pixels)
CPU
Core ML .cpuOnly
(ms)
CPU + ANE préféré
Core ML .cpuAndNeuralEngine
(ms)
YOLO26nDétection6409,2
0,0 / 9,2 / 0,0
3,2
0,0 / 3,2 / 0,0
YOLO26n-segSegmentation64012,6
0,0 / 12,0 / 0,5
4,8
0,0 / 4,2 / 0,6
YOLO26n-semSémantique6409,7
0,0 / 9,2 / 0,5
4,6
0,0 / 4,2 / 0,5
YOLO26n-depthDepth64025,0
0,0 / 24,1 / 0,9
5,3
0,0 / 4,5 / 0,9
YOLO26n-clsClassification2242.2
0.0 / 2.2 / 0.0
1,9
0,0 / 1,9 / 0,0
YOLO26n-posePose64011,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
  • Les assets de version exacts v8.3.0 déclarent des entrées 224×224 pour la classification et 640×640 pour toutes les autres tâches.
  • Les valeurs de vitesse sont des latences en rafale sur image unique — la moyenne de 15 exécutions après 3 exécutions d'échauffement sur bus.jpg, mesurées via le minutage par étape du SDK iOS via le banc d'essai du plugin Flutter en mode profil (code natif optimisé). L'ordre CPU/accélérateur a alterné entre les tâches en un balayage séquentiel. Les lignes CPU demandent Core ML .cpuOnly ; les lignes CPU + ANE préféré demandent .cpuAndNeuralEngine, le placement final des opérations étant contrôlé par Core ML. Le fonctionnement de la caméra en temps réel en continu est plus élevé car il inclut le pipeline de capture et de mise à l'échelle ainsi que la stabilisation thermique. Un balayage de caméra pré-standard historique a mesuré 11,3 ms/image pour la détection YOLO26n et 16,5 ms/image pour YOLO26n Depth sur le même appareil — consulte la doc de performance du SDK iOS pour le profilage en régime permanent.
  • Compare les résultats CPU/GPU Android dans l'intégration LiteRT et les résultats NPU Snapdragon dans l'intégration Qualcomm QNN.

Tâches prises en charge#

L'exportation CoreML prend en charge les sept tâches d'Ultralytics. La segmentation sémantique et l'estimation de profondeur sont disponibles uniquement avec YOLO26, la seule famille qui intègre ces têtes.

TâcheYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Exporter des modèles YOLO26 vers CoreML#

Installation#

Pour installer le package requis, exécute :

Installation
# Install the required package for YOLO26
pip install ultralytics

Le convertisseur coremltools est installé automatiquement lors de la première exportation. L'exportation s'exécute sur macOS ou x86 Linux ; pour des instructions détaillées et les meilleures pratiques, consulte notre guide d'installation et le guide des problèmes courants.

Utilisation#

Le format CoreML prend en charge les modes Export, Predict et Validate. L'inférence et la validation avec CoreML s'exécutent uniquement sur macOS. Exporte ton modèle, puis charge le modèle exporté pour exécuter l'inférence ou valider sa précision.

Exporter (Export)
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
Prédire (Predict)
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Valider
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")

Arguments d'exportation#

ArgumentTypeDéfautDescription
formatstr'coreml'Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement.
imgszint ou tuple640Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour des images carrées ou un tuple (height, width) pour des dimensions spécifiques.
quantizeint ou strNonePrécision de quantification (poids seuls pour CoreML) : 16 (FP16), 8 (INT8), "w8a16" (poids INT8 avec activations FP16), ou 32/non défini (FP32). Les programmes NMS ML utilisent FP16 (pour l'aperçu Xcode et requis par segment et pose) ; passe 32 pour outrepasser sur detect. Remplace les indicateurs dépréciés half/int8.
nmsboolFalseIntègre le NMS dans le modèle exporté. Pris en charge pour detect, segment et pose (ignoré avec un avertissement pour les autres tâches) ; non nécessaire pour YOLO26 sans NMS, à utiliser pour les modèles plus anciens comme YOLO11.
dynamicboolFalseAutorise des tailles d'entrée dynamiques, améliorant la flexibilité dans la gestion de dimensions d'image variables.
batchint1Spécifie la taille d'inférence par lots du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict.
devicestrNoneSpécifie le périphérique pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour Apple Silicon (device=mps).

Pour plus de détails sur le processus d'exportation, visite la page de documentation d'Ultralytics sur l'exportation.

Cibler le Neural Engine#

CoreML choisit le matériel via MLModelConfiguration.computeUnits. Le SDK iOS d'Ultralytics utilise par défaut .cpuAndNeuralEngine sur iOS 16+ plutôt que .all : dans une application de caméra en temps réel, le GPU est déjà occupé à composer l'aperçu et les superpositions, donc l'exclure évite les conflits et la gigue du temps de trame pendant que l'ANE fait le gros du travail. Épingle .cpuOnly uniquement pour les tests de compatibilité — le tableau ci-dessus montre ce que cela coûte.

Exécuter un modèle CoreML depuis Python sur un hôte Mac (via Ultralytics ou coremltools) suit la même règle : Ultralytics se charge avec ComputeUnit.CPU_AND_NE (macOS 13+, avec repli sur CPU_ONLY sur les anciens macOS), maintenant l'inférence sur le Neural Engine (~3x plus rapide que le CPU). Cela évite également une limitation actuelle de l'hôte macOS où les valeurs par défaut ComputeUnit.ALL / CPU_AND_GPU — qui ajoutent le chemin de compilation GPU/MPSGraph — interrompent le processus avec une assertion Error: MLIR pass manager failed sur coremltools 9.x.

Déployer des modèles CoreML YOLO26 exportés#

Le chemin le plus rapide est le SDK iOS Ultralytics YOLO officiel, le même package Swift qui alimente l'application iOS d'Ultralytics et le plugin Flutter. Il résout automatiquement les noms de modèles officiels, télécharge et met en cache le .mlpackage, et renvoie des résultats entièrement décodés :

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
    }
}

Pour les applications de caméra, intègre le YOLOView du SDK pour une inférence en temps réel avec des superpositions natives, ou utilise le plugin Flutter pour les applications multiplateformes qui partagent une seule base de code avec Android.

Intégrer toi-même un .mlpackage brut est également simple avec la pile d'Apple — charge-le avec MLModel, enveloppe-le dans un VNCoreMLRequest et alimente les images via VNImageRequestHandler. Ces ressources couvrent les détails :

Livre le modèle soit intégré dans le paquet de l'application (disponibilité instantanée, idéal pour les modèles nano/small), soit téléchargé au premier lancement et mis en cache (binaire plus léger, mises à jour de modèle faciles). Les applications officielles combinent les deux approches : les modèles nano par défaut sont fournis pour une utilisation immédiate, tandis que les variantes plus grandes se téléchargent à la demande et sont mises en cache localement.

Flux de travail recommandé#

  1. Entraîne ton modèle avec le mode Train d'Ultralytics, ou commence à partir des poids officiels YOLO26
  2. Exporte avec model.export(format="coreml", quantize=8, imgsz=640) sur macOS ou x86 Linux (imgsz=224 pour la classification)
  3. Vérifie la précision avec model.val() sur un Mac, et profile avec un rapport de performance Xcode Core ML sur ton appareil cible
  4. Déploie avec le SDK iOS, le plugin Flutter ou ta propre intégration Vision, en ciblant .cpuAndNeuralEngine

Résumé#

Dans ce guide, tu as appris à exporter des modèles Ultralytics YOLO26 vers le format .mlpackage de CoreML, à les quantifier pour l'Apple Neural Engine et à les déployer à des latences de l'ordre de la milliseconde — que ce soit via le SDK iOS officiel et le plugin Flutter ou ta propre intégration Vision. Pour d'autres cibles de déploiement, parcours la page du guide d'intégration et compare les formats avec le mode Benchmark.

FAQ#

  • Exécute model.export(format="coreml", imgsz=640) en Python ou yolo export model=yolo26n.pt format=coreml imgsz=640 depuis la CLI sur macOS ou x86 Linux. Utilise imgsz=224 pour la classification et ajoute quantize=8 pour correspondre aux modèles d'application officiels. L'exportation produit un programme ML yolo26n.mlpackage prêt pour Xcode, le SDK iOS ou le plugin Flutter.

  • Non. YOLO26 fonctionne de bout en bout sans NMS, de sorte que le graphe exporté émet déjà des détections finales et des coûts de décodage bien inférieurs à une milliseconde. L'option nms=True existe pour les modèles plus anciens tels que YOLO11, où elle intègre le NMS pour que ton application n'ait pas à implémenter la suppression. Elle est prise en charge pour les modèles detect, segment et pose ; nms=True est ignoré avec un avertissement pour les autres tâches.

  • Les modèles officiels de l'application Ultralytics sont fournis en INT8, ce qui minimise la taille du téléchargement et s'exécute aux vitesses du tableau ci-dessus. quantize=16 (FP16) est une alternative conservatrice pratiquement sans perte de précision. Valide ton exportation exacte avec model.val() sur un Mac avant la mise en production.

  • Définit MLModelConfiguration.computeUnits = .cpuAndNeuralEngine (le choix par défaut du SDK iOS sur iOS 16+). Évite .all dans les applications de caméra — le GPU est occupé à composer l'aperçu, et planifier l'inférence à cet endroit provoque des variations du temps de trame. Confirme le placement avec un rapport de performance Xcode Core ML.

  • Oui, sur macOS : yolo predict model=yolo26n.mlpackage source=image.jpg et yolo val model=yolo26n.mlpackage data=coco8.yaml fonctionnent comme n'importe quel autre format. L'exécution CoreML nécessite du matériel Apple, ces modes ne sont donc pas disponibles sur Linux et Windows.

  • Utilise le SDK iOS Ultralytics YOLO officiel (Package Swift) ou le plugin Flutter. Les deux chargent les modèles officiels par nom avec téléchargement et mise en cache automatiques, les exécutent sur le Neural Engine et incluent des interfaces utilisateur de caméra en temps réel complètes — le tableau des performances mesurées ci-dessus a été produit avec exactement cette pile.

Commentaires