CoreML Exportation pour les modèles YOLOv8
Le déploiement de modèles de vision par ordinateur sur les appareils Apple tels que les iPhones et les Macs nécessite un format qui garantit des performances transparentes.
Le format d'exportation CoreML te permet d'optimiser tes modèles pour une détection efficace des objets dans les applications et macOS. Ultralytics YOLOv8 modèles pour une détection efficace des objets dans les applications iOS et macOS. Dans ce guide, nous t'expliquons les étapes à suivre pour convertir tes modèles au format CoreML , ce qui facilitera les performances de tes modèles sur les appareils Apple.
CoreML
CoreML est le cadre fondamental d'apprentissage automatique 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 façon transparente dans les 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 cadre de Core ML fonctionne à l'aide de l'informatique sur l'appareil. Cela signifie que l'inférence du modèle peut être effectuée localement sur l'appareil de l'utilisateur.
Caractéristiques principales 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 cadres populaires tels que 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, ce qui élimine le besoin de connectivité réseau.
-
Performance et optimisation: Utilise les moteurs CPU, GPU et 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 divers types de modèles et une API conviviale pour une intégration transparente dans les apps. Prend en charge les tâches spécifiques à un domaine grâce à des frameworks tels que Vision et Natural Language.
-
Fonctionnalités avancées: Comprend des capacités de formation sur l'appareil pour des expériences personnalisées, des prédictions asynchrones pour des expériences interactives de ML, et des outils d'inspection et de validation des modèles.
CoreML Options de déploiement
Avant de regarder le code pour l’exportation YOLOv8 modèles à la CoreML format, comprenons où CoreML des modèles sont généralement utilisés.
CoreML propose 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 . Elle est particulièrement avantageuse pour garantir une faible latence, une meilleure confidentialité (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 façons.
-
Modèles intégrés: Ces modèles sont inclus dans le bundle de l'appli 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 sur un serveur en fonction des besoins. Cette approche convient aux modèles plus importants ou à ceux qui nécessitent des mises à jour régulières. Elle permet de réduire la taille du paquet d'applications.
-
-
Déploiement basé sur le cloud: les modèles CoreML sont hébergés sur des serveurs et l'appli iOS y accède par le biais de requêtes API. Cette option évolutive et flexible permet de mettre facilement à jour les modèles sans révision de l'appli. Elle est idéale pour les modèles complexes ou les apps à 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 les modèles YOLOv8 vers CoreML
L'exportation de YOLOv8 vers CoreML permet d'optimiser les performances d'apprentissage automatique sur appareil au sein de l'écosystème d'Apple, offrant des avantages en termes d'efficacité, de sécurité et d'intégration transparente avec iOS, macOS, watchOS et les plateformes tvOS.
Installation
Pour installer le paquetage requis, exécute :
Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installationYOLOv8 . Pendant l'installation des paquets requis pour YOLOv8, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour trouver des solutions et des conseils.
Utilisation
Avant de te plonger dans les instructions d'utilisation, n'oublie pas de consulter la gamme de modèlesYOLOv8 proposée par Ultralytics. Cela t'aidera à choisir le modèle le plus approprié aux exigences de ton projet.
Utilisation
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO("yolov8n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolov8n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolov8n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
Pour plus de détails sur le processus d'exportation, visite la page de documentationUltralytics sur l'exportation.
Déploiement des modèles exportés YOLOv8 CoreML
Après avoir exporté avec succès tes modèles Ultralytics YOLOv8 vers CoreML, la phase critique suivante consiste à déployer ces modèles de manière efficace. Pour obtenir des conseils détaillés sur le déploiement des modèles CoreML dans divers environnements, consulte les ressources suivantes :
-
CoreML Outils: Ce guide comprend des instructions et des exemples pour convertir les modèles de TensorFlow, PyTorch, et d'autres bibliothèques en Core ML.
-
ML et Vision: Une collection de vidéos complètes qui couvrent divers aspects de l'utilisation et de la mise en œuvre des modèles CoreML .
-
Intégrer un modèle ML de base dans ton application: Un guide complet sur l'intégration d'un modèle CoreML dans une application iOS , détaillant les étapes depuis la préparation du modèle jusqu'à son implémentation dans l'appli pour diverses fonctionnalités.
Résumé
Dans ce guide, nous avons vu comment exporter les modèles Ultralytics YOLOv8 au format CoreML . En suivant les étapes décrites dans ce guide, tu peux garantir une compatibilité et des performances maximales lors de l'exportation des modèles YOLOv8 vers CoreML.
Pour plus de détails sur l'utilisation, consulte la documentation officielle deCoreML .
Par ailleurs, si tu souhaites en savoir plus sur d'autres intégrations de Ultralytics YOLOv8 , visite notre page de guide d'intégration. Tu y trouveras de nombreuses ressources et informations précieuses.
FAQ
Comment exporter les modèles YOLOv8 au format CoreML ?
Pour exporter tes Ultralytics YOLOv8 au format CoreML , tu dois d'abord t'assurer que tu disposes des informations suivantes ultralytics
est installé. Tu peux l'installer en utilisant :
Ensuite, tu peux exporter le modèle à l'aide des commandes suivantes Python ou CLI :
Utilisation
Pour plus de détails, reporte-toi à la section Exportation des modèles YOLOv8 vers CoreML de notre documentation.
Quels sont les avantages de l'utilisation de CoreML pour le déploiement des modèles YOLOv8 ?
CoreML offre de nombreux avantages pour le déploiement des Ultralytics YOLOv8 sur les appareils Apple :
- Traitement sur l'appareil: Permet l'inférence de modèles locaux sur les appareils, en assurant la confidentialité des données et en minimisant le temps de latence.
- Optimisation des performances: Exploite tout le potentiel de l'appareil CPU, GPU, et du moteur neuronal, 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 cadre CoreML .
Pour plus de détails sur l'intégration de ton modèle CoreML dans une application iOS , consulte le guide sur l'intégration d'un modèle ML de base dans ton application.
Quelles sont les options de déploiement des modèles YOLOv8 exportés vers CoreML?
Une fois que tu as exporté ton modèle YOLOv8 au format CoreML , tu as plusieurs options de déploiement :
-
Déploiement sur l'appareil: Intègre directement les modèles CoreML dans ton appli pour améliorer la confidentialité et la fonctionnalité hors ligne. Cela peut se faire comme :
- Modèles intégrés: Inclus dans l'app bundle, accessible immédiatement.
- Modèles téléchargés: Téléchargés d'un serveur au fur et à mesure des besoins, ce qui permet de réduire la taille du paquet d'applications.
-
Déploiement basé sur le cloud: Héberger les modèles CoreML sur des serveurs et y accéder 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 , voir CoreML Options de déploiement.
Comment CoreML garantit-il des performances optimales pour les modèles YOLOv8 ?
CoreML garantit des performances optimales pour les modèles en utilisant diverses techniques d'optimisation. Ultralytics YOLOv8 modèles en utilisant diverses techniques d'optimisation :
- Accélération matérielle: Utilise le site CPU, GPU, et le moteur neuronal de l'appareil pour des calculs efficaces.
- Compression de modèles: Fournit des outils pour compresser les modèles afin de réduire leur encombrement 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 des performances, visite la documentation officielle deCoreML .
Puis-je faire de l'inférence directement avec le modèle exporté CoreML ?
Oui, tu peux lancer l'inférence directement en utilisant le modèle exporté CoreML . Tu trouveras ci-dessous les commandes pour Python et CLI:
Inférence en cours d'exécution
Pour plus d'informations, reporte-toi Ă la section Utilisation du guide d'exportation CoreML .
Créé le 2024-02-07, Mis à jour le 2024-07-05
Auteurs : glenn-jocher (6), RizwanMunawar (1), abirami-vina (1)