Export CoreML pour les modèles YOLO26
Le déploiement de modèles de computer vision sur des appareils Apple tels que les iPhones et les Macs nécessite un format garantissant une performance fluide.
Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀
Le format d'exportation CoreML te permet d'optimiser tes modèles Ultralytics YOLO26 pour une object detection efficace dans les applications iOS et macOS. Dans ce guide, nous te guiderons à travers les étapes pour convertir tes modèles au format CoreML, facilitant ainsi leur exécution sur les appareils Apple.
CoreML
CoreML est le framework d'apprentissage automatique fondamental d'Apple qui s'appuie sur Accelerate, BNNS et Metal Performance Shaders. Il fournit un format de modèle d'apprentissage automatique qui s'intègre parfaitement aux applications iOS et prend en charge des tâches telles que l'analyse d'images, le natural language processing, la conversion audio-texte et l'analyse sonore.
Les applications peuvent tirer parti de Core ML sans avoir besoin d'une connexion réseau ou d'appels API, car le framework Core ML fonctionne grâce au calcul sur l'appareil. Cela signifie que l'inférence du modèle peut être effectuée localement sur l'appareil de l'utilisateur.
Fonctionnalités clés des modèles CoreML
Le framework CoreML d'Apple offre des fonctionnalités robustes pour l'apprentissage automatique sur l'appareil. Voici les fonctionnalités clés qui font de CoreML un outil puissant pour les développeurs :
- Prise en charge complète des modèles : Convertit et exécute des modèles provenant de frameworks populaires comme TensorFlow, PyTorch, scikit-learn, XGBoost et LibSVM.
-
Machine Learning sur l'appareil : Garantit la confidentialité des données et un traitement rapide en exécutant les modèles directement sur l'appareil de l'utilisateur, éliminant ainsi le besoin de connectivité réseau.
-
Performance et optimisation : Utilise le CPU, le GPU et le Neural Engine de l'appareil pour une performance optimale avec une consommation d'énergie et de mémoire minimale. Propose des outils pour la compression et l'optimisation des modèles tout en préservant la accuracy.
-
Facilité d'intégration : Fournit un format unifié pour divers types de modèles et une API conviviale pour une intégration transparente dans les applications. Prend en charge des tâches spécifiques au domaine via des frameworks comme Vision et Natural Language.
-
Fonctionnalités avancées : Inclut des capacités d'entraînement sur l'appareil pour des expériences personnalisées, des prédictions asynchrones pour des expériences ML interactives, ainsi que des outils d'inspection et de validation de modèles.
Options de déploiement CoreML
Avant d'examiner le code pour exporter les modèles YOLO26 vers le format CoreML, comprenons où les modèles CoreML sont généralement utilisés.
CoreML offre diverses options de déploiement pour les modèles d'apprentissage automatique, notamment :
-
Déploiement sur l'appareil : Cette méthode intègre directement les modèles CoreML dans ton application iOS. C'est particulièrement avantageux pour garantir une faible latence, une confidentialité renforcée (puisque les données restent sur l'appareil) et une fonctionnalité hors ligne. Cette approche peut cependant être limitée par les capacités matérielles de l'appareil, surtout pour des modèles plus grands et complexes, et peut être exécutée des deux manières suivantes :
-
Modèles embarqués : Ces modèles sont inclus dans le bundle de l'application et sont immédiatement accessibles. Ils sont idéaux pour les petits modèles qui ne nécessitent pas de mises à jour fréquentes.
-
Modèles téléchargés : Ces modèles sont récupérés depuis un serveur selon les besoins. Cette approche convient aux modèles plus volumineux ou à ceux nécessitant des mises à jour régulières. Elle permet de garder la taille du bundle de l'application plus petite.
-
-
Déploiement basé sur le cloud : Les modèles CoreML sont hébergés sur des serveurs et accédés par l'application iOS via des requêtes API. Cette option évolutive et flexible permet des mises à jour faciles des modèles sans révision de l'application. Elle est idéale pour les modèles complexes ou les applications à grande échelle nécessitant des mises à jour régulières. Cependant, elle nécessite une connexion internet et peut poser des problèmes de latence et de sécurité.
Exporter des modèles YOLO26 vers CoreML
Exporter YOLO26 vers CoreML permet une performance d'apprentissage automatique optimisée sur l'appareil au sein de l'écosystème Apple, offrant des avantages en termes d'efficacité, de sécurité et d'intégration transparente avec les plateformes iOS, macOS, watchOS et tvOS.
Installation
Pour installer le package requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsPour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installation YOLO26. Si tu rencontres des difficultés lors de l'installation des packages nécessaires pour YOLO26, consulte notre guide des problèmes courants pour des solutions et des astuces.
Utilisation
Avant de plonger dans les instructions d'utilisation, assure-toi de consulter la gamme de modèles YOLO26 proposés par Ultralytics. Cela t'aidera à choisir le modèle le plus approprié pour les besoins de ton projet.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo26n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo26n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")Arguments d'exportation
| Argument | Type | Défaut | Description |
|---|---|---|---|
format | str | 'coreml' | Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement. |
imgsz | int ou tuple | 640 | Taille 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. |
dynamic | bool | False | Permet des tailles d'entrée dynamiques, améliorant la flexibilité dans la gestion de dimensions d'image variables. |
half | bool | False | Active la quantification FP16 (demi-précision), réduisant la taille du modèle et accélérant potentiellement l'inférence sur le matériel pris en charge. |
int8 | bool | False | Active la quantification INT8, compressant davantage le modèle et accélérant l'inférence avec une perte de accuracy minimale, principalement pour les appareils en périphérie. |
nms | bool | False | Ajoute la suppression non maximale (NMS), essentielle pour un post-traitement de détection précis et efficace. |
batch | int | 1 | Spécifie la taille d'inférence par lot du modèle exporté ou le nombre maximal d'images que le modèle traitera simultanément en mode predict. |
device | str | None | Spécifie l'appareil pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour Apple silicon (device=mps). |
Assure-toi d'utiliser une machine macOS ou Linux x86 lors de l'exportation vers CoreML.
Pour plus de détails sur le processus d'exportation, visite la page de documentation Ultralytics sur l'exportation.
Déploiement des modèles YOLO26 exportés vers CoreML
Après avoir exporté avec succès tes modèles Ultralytics YOLO26 vers CoreML, la phase critique suivante est le déploiement efficace de ces modèles. Pour obtenir des conseils détaillés sur le déploiement de modèles CoreML dans divers environnements, consulte ces ressources :
-
CoreML Tools : Ce guide inclut des instructions et des exemples pour convertir des modèles provenant de TensorFlow, PyTorch et d'autres bibliothèques vers Core ML.
-
ML and Vision : Une collection de vidéos complètes qui couvrent divers aspects de l'utilisation et de l'implémentation des modèles CoreML.
-
Integrating a Core ML Model into Your App : Un guide complet sur l'intégration d'un modèle CoreML dans une application iOS, détaillant les étapes de la préparation du modèle à son implémentation dans l'application pour diverses fonctionnalités.
Résumé
Dans ce guide, nous avons passé en revue comment exporter les modèles Ultralytics YOLO26 vers le format CoreML. En suivant les étapes décrites dans ce guide, tu peux garantir une compatibilité et une performance maximales lors de l'exportation des modèles YOLO26 vers CoreML.
Pour plus de détails sur l'utilisation, visite la documentation officielle de CoreML.
De plus, si tu souhaites en savoir plus sur d'autres intégrations Ultralytics YOLO26, visite notre page des guides d'intégration. Tu y trouveras de nombreuses ressources et idées précieuses.
FAQ
Comment exporter les modèles YOLO26 vers le format CoreML ?
Pour exporter tes modèles Ultralytics YOLO26 vers le format CoreML, tu dois d'abord t'assurer que le package ultralytics est installé. Tu peux l'installer en utilisant :
pip install ultralyticsEnsuite, tu peux exporter le modèle en utilisant les commandes Python ou CLI suivantes :
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="coreml")Pour plus de détails, réfère-toi à la section Exporter des modèles YOLO26 vers CoreML de notre documentation.
Quels sont les avantages d'utiliser CoreML pour déployer les modèles YOLO26 ?
CoreML offre de nombreux avantages pour le déploiement des modèles Ultralytics YOLO26 sur les appareils Apple :
- Traitement sur l'appareil : Permet l'inférence locale du modèle sur les appareils, garantissant la data privacy et minimisant la latence.
- Optimisation de la performance : Tire parti du plein potentiel du CPU, du GPU et du Neural Engine de l'appareil, optimisant à la fois la vitesse et l'efficacité.
- Facilité d'intégration : Offre une expérience d'intégration fluide avec les écosystèmes d'Apple, incluant iOS, macOS, watchOS et tvOS.
- Polyvalence : Prend en charge un large éventail de tâches d'apprentissage automatique telles que l'analyse d'images, le traitement audio et le traitement du langage naturel en utilisant le framework CoreML.
Pour plus de détails sur l'intégration de ton modèle CoreML dans une application iOS, consulte le guide sur Integrating a Core ML Model into Your App.
Quelles sont les options de déploiement pour les modèles YOLO26 exportés vers CoreML ?
Une fois que tu as exporté ton modèle YOLO26 au format CoreML, tu as plusieurs options de déploiement :
-
Déploiement sur l'appareil : Intègre directement les modèles CoreML dans ton application pour une confidentialité renforcée et une fonctionnalité hors ligne. Cela peut être fait comme :
- Modèles embarqués : Inclus dans le bundle de l'application, accessible immédiatement.
- Modèles téléchargés : Récupérés depuis un serveur selon les besoins, gardant la taille du bundle de l'application plus petite.
-
Déploiement basé sur le cloud : Héberge les modèles CoreML sur des serveurs et accède-y via des requêtes API. Cette approche prend en charge des mises à jour plus faciles et peut gérer des modèles plus complexes.
Pour des conseils détaillés sur le déploiement des modèles CoreML, réfère-toi à Options de déploiement CoreML.
Comment CoreML garantit-il une performance optimisée pour les modèles YOLO26 ?
CoreML garantit une performance optimisée pour les modèles Ultralytics YOLO26 en utilisant diverses techniques d'optimisation :
- Accélération matérielle : Utilise le CPU, le GPU et le Neural Engine de l'appareil pour un calcul efficace.
- Compression de modèle : Fournit des outils pour compresser les modèles afin de réduire leur empreinte sans compromettre la précision.
- Inférence adaptative : Ajuste l'inférence en fonction des capacités de l'appareil pour maintenir un équilibre entre vitesse et performance.
Pour plus d'informations sur l'optimisation de la performance, visite la documentation officielle de CoreML.
Puis-je exécuter l'inférence directement avec le modèle CoreML exporté ?
Oui, tu peux exécuter l'inférence directement en utilisant le modèle CoreML exporté. Voici les commandes pour Python et CLI :
from ultralytics import YOLO
coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")Pour des informations supplémentaires, réfère-toi à la section Usage du guide d'exportation CoreML.