Exportation CoreML pour les modèles YOLO11
Le déploiement de modèles de vision par ordinateur sur des appareils Apple tels que les iPhones et les Macs nécessite un format qui garantit des performances homogènes.
Regarder : Comment exporter Ultralytics YOLO11 vers CoreML pour une inférence 2x plus rapide sur les appareils Apple 🚀
Le format d'exportation CoreML vous permet d'optimiser vos modèles Ultralytics YOLO11 pour une détection d'objets efficace dans les applications iOS et macOS. Dans ce guide, nous vous guiderons à travers les étapes de conversion de vos modèles au format CoreML, ce qui facilitera l'exécution de vos modèles 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 de manière transparente aux applications iOS et prend en charge des tâches telles que l'analyse d'images, le traitement du langage naturel, 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.
Principales caractéristiques des modèles CoreML
Le framework CoreML d'Apple offre des fonctionnalités robustes pour l'apprentissage automatique sur l'appareil. Voici les principales caractéristiques 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 à partir de frameworks populaires comme TensorFlow, PyTorch, scikit-learn, XGBoost et LibSVM.
-
Apprentissage automatique sur l'appareil: Assure 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.
-
Performances et optimisation : Utilise le CPU, le GPU et le Neural Engine de l'appareil pour des performances optimales avec une consommation d'énergie et une utilisation de la mémoire minimales. Offre des outils pour la compression et l'optimisation des modèles tout en maintenant la précision.
-
Facilité d'intégration : Fournit un format unifié pour différents types de modèles et une API conviviale pour une intégration transparente dans les applications. Prend en charge les tâches spécifiques à un domaine via des frameworks tels que Vision et Natural Language.
-
Fonctionnalités avancées : Comprend 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 et des outils d’inspection et de validation des modèles.
Options de déploiement CoreML
Avant d'examiner le code d'exportation des modèles YOLO11 au 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 votre application iOS. Elle est particulièrement avantageuse pour assurer une faible latence, une confidentialité améliorée (puisque les données restent sur l'appareil) et une fonctionnalité hors ligne. Cette approche peut toutefois être limitée par les capacités matérielles de l'appareil, en particulier pour les modèles plus grands et plus complexes. Le déploiement sur l'appareil peut être exécuté de 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 extraits d'un serveur selon les besoins. Cette approche convient aux modèles plus volumineux ou à ceux qui nécessitent des mises à jour régulières. Il permet de réduire la taille du paquet d'application.
-
-
Déploiement basé sur le cloud : les modèles CoreML sont hébergés sur des serveurs et accessibles par l’application iOS via des requêtes API. Cette option évolutive et flexible permet de mettre à jour facilement les 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 YOLO11 vers CoreML
L'exportation de YOLO11 vers CoreML permet d'optimiser les performances d'apprentissage automatique sur les appareils 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 paquet requis, exécutez :
Installation
# Install the required package for YOLO11
pip install ultralytics
Pour des instructions détaillées et les meilleures pratiques relatives au processus d'installation, consultez notre guide d'installation YOLO11. Si vous rencontrez des difficultés lors de l'installation des packages requis pour YOLO11, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.
Utilisation
Avant de plonger dans les instructions d'utilisation, assurez-vous de consulter la gamme de modèles YOLO11 proposés par Ultralytics. Cela vous aidera à choisir le modèle le plus approprié pour les exigences de votre projet.
Utilisation
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo11n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo11n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to CoreML format
yolo export model=yolo11n.pt format=coreml # creates 'yolo11n.mlpackage''
# Run inference with the exported model
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'
Arguments d'exportation
Argument | Type | Par 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 les images carrées ou un tuple (height, width) pour des dimensions spécifiques. |
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 précision minimale, principalement pour les appareils périphériques. |
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 du lot d'inférence du modèle d'exportation ou le nombre maximal d'images que le modèle exporté traitera simultanément en predict mode. |
device |
str |
None |
Spécifie le dispositif pour l'exportation : GPU (device=0 ), CPU (device=cpu ), MPS pour Apple Silicon (device=mps ). |
Astuce
Veuillez vous assurer d’utiliser une machine macOS ou x86 Linux lors de l’exportation vers CoreML.
Pour plus de détails sur le processus d'exportation, consultez la page de la documentation Ultralytics sur l'exportation.
Déploiement de modèles YOLO11 CoreML exportés
Après avoir exporté avec succès vos modèles Ultralytics YOLO11 vers CoreML, la prochaine phase critique 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, consultez ces ressources :
-
Outils CoreML : Ce guide comprend des instructions et des exemples pour convertir des modèles de TensorFlow, PyTorch et d'autres bibliothèques vers Core ML.
-
ML et vision : Une collection de vidéos complètes qui couvrent divers aspects de l'utilisation et de l'implémentation des modèles CoreML.
-
Intégration d'un modèle Core ML dans votre application : 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 expliqué comment exporter les modèles Ultralytics YOLO11 au format CoreML. En suivant les étapes décrites dans ce guide, vous pouvez garantir une compatibilité et des performances maximales lors de l'exportation des modèles YOLO11 vers CoreML.
Pour plus de détails sur l'utilisation, consultez la documentation officielle de CoreML.
De plus, si vous souhaitez en savoir plus sur les autres intégrations Ultralytics YOLO11, consultez notre page de guide d'intégration. Vous y trouverez de nombreuses ressources et informations précieuses.
FAQ
Comment exporter des modèles YOLO11 au format CoreML ?
Pour exporter votre Ultralytics YOLO11 modèles au format CoreML, vous devrez d'abord vous assurer que vous avez le ultralytics
package installé. Vous pouvez l'installer en utilisant :
Installation
pip install ultralytics
Ensuite, vous pouvez exporter le modèle en utilisant les commandes python ou CLI suivantes :
Utilisation
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="coreml")
yolo export model=yolo11n.pt format=coreml
Pour plus de détails, consultez la section Exportation de modèles YOLO11 vers CoreML de notre documentation.
Quels sont les avantages de l'utilisation de CoreML pour le déploiement de modèles YOLO11 ?
CoreML offre de nombreux avantages pour le déploiement des modèles Ultralytics YOLO11 sur les appareils Apple :
- Traitement sur l'appareil: Permet l'inférence de modèles locaux sur les appareils, assurant la confidentialité des données et minimisant la latence.
- Optimisation des performances : Exploite tout le potentiel du CPU, du GPU et du Neural Engine de l'appareil, en optimisant à la fois la vitesse et l'efficacité.
- Facilité d'intégration : Offre une expérience d'intégration transparente avec les écosystèmes d'Apple, notamment 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 à l'aide du framework CoreML.
Pour plus de détails sur l'intégration de votre modèle CoreML dans une application iOS, consultez le guide sur l'intégration d'un modèle Core ML dans votre application.
Quelles sont les options de déploiement pour les modèles YOLO11 exportés vers CoreML ?
Une fois que vous avez exporté votre modèle YOLO11 au format CoreML, vous disposez de plusieurs options de déploiement :
-
Déploiement sur l'appareil: Intégrez directement les modèles CoreML dans votre application pour une confidentialité améliorée et une fonctionnalité hors ligne. Cela peut être fait comme suit :
- Modèles embarqués : Inclus dans le bundle de l'application, accessibles immédiatement.
- Modèles téléchargés : Récupérés d'un serveur selon les besoins, ce qui réduit la taille du paquet d'application.
-
Déploiement basé sur le cloud : hébergez les modèles CoreML sur des serveurs et accédez-y via des requêtes API. Cette approche facilite les mises à jour et peut gérer des modèles plus complexes.
Pour des instructions détaillées sur le déploiement de modèles CoreML, consultez les Options de déploiement CoreML.
Comment CoreML assure-t-il une performance optimisée pour les modèles YOLO11 ?
CoreML assure des performances optimisées pour les modèles Ultralytics YOLO11 en utilisant diverses techniques d'optimisation :
- Accélération matérielle : Utilise le CPU, le GPU et le moteur neuronal 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 la vitesse et les performances.
Pour plus d'informations sur l'optimisation des performances, consultez la documentation officielle de CoreML.
Puis-je exécuter l'inférence directement avec le modèle CoreML exporté ?
Oui, vous pouvez exécuter l'inférence directement en utilisant le modèle CoreML exporté. Vous trouverez ci-dessous les commandes pour python et CLI :
Exécution de l'inférence
from ultralytics import YOLO
coreml_model = YOLO("yolo11n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'
Pour plus d'informations, consultez la section Utilisation du guide d'exportation CoreML.