CoreML Swift : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

CoreML pour Swift : guide complet avec exemples

1. Qu'est-ce que CoreML et pourquoi l'utiliser ?

CoreML est un framework de machine learning développé par Apple pour intégrer des modèles d'apprentissage automatique directement dans les applications iOS, macOS, watchOS et tvOS. Contrairement aux solutions cloud, CoreML exécute tous les calculs sur l'appareil de l'utilisateur, garantissant un traitement instantané des données sans latence réseau et une confidentialité totale des données utilisateur.

Pourquoi utiliser CoreML ? Premièrement, il permet aux développeurs d'implémenter des fonctionnalités d'IA avancées (reconnaissance d'images, traitement du langage naturel, analyse audio) sans avoir à maîtriser les subtilités des réseaux de neurones. Deuxièmement, le traitement sur l'appareil permet à l'application de fonctionner hors ligne, ce qui est crucial pour de nombreux cas d'usage. Troisièmement, Apple a optimisé CoreML pour fonctionner avec le Neural Engine, le GPU et le CPU, offrant des performances maximales sur tous les appareils Apple.

CoreML prend en charge les modèles créés avec des frameworks populaires (TensorFlow, PyTorch, scikit-learn), qui peuvent être convertis au format .mlmodel à l'aide de l'outil coremltools. Le framework s'intègre également étroitement avec Vision (pour l'analyse d'images), Natural Language (pour le traitement de texte) et SoundAnalysis (pour l'audio).

2. Installation

CoreML est un framework Apple intégré et ne nécessite pas d'installation via un gestionnaire de paquets. Pour l'utiliser, il suffit de l'importer dans votre projet. Cependant, pour convertir des modèles depuis d'autres formats, vous aurez besoin du paquet Python coremltools.

Installation de coremltools (Python) :

pip install coremltools

Intégration de CoreML dans un projet Xcode :

import CoreML

Pour travailler avec des images et des vidéos, importez également Vision :

import Vision

3. Démarrage rapide — exemple minimal fonctionnel

Créons une application simple qui classifie une image à l'aide du modèle pré-entraîné MobileNetV2. Téléchargez d'abord le modèle MobileNetV2.mlmodel depuis le dépôt Apple ou convertissez-le avec coremltools.

Exemple minimal de classification d'image :

import CoreML
import Vision
import UIKit

// 1. Chargement du modèle
guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else {
    fatalError("Impossible de charger le modèle")
}

// 2. Création de la requête
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results as? [VNClassificationObservation],
          let topResult = results.first else {
        print("Impossible de classifier l'image")
        return
    }
    print("Reconnu : \(topResult.identifier) avec une probabilité de \(topResult.confidence)")
}

// 3. Chargement de l'image
guard let image = UIImage(named: "chat.jpg"),
      let ciImage = CIImage(image: image) else {
    fatalError("Impossible de charger l'image")
}

// 4. Exécution de la requête
let handler = VNImageRequestHandler(ciImage: ciImage)
try? handler.perform([request])

4. Méthodes / fonctions / classes principales

4.1. MLModel

Signature : class MLModel

Rôle : Classe principale représentant un modèle de machine learning chargé. Permet d'effectuer des prédictions et d'obtenir des informations sur le modèle.

Exemple :

// Chargement du modèle depuis un fichier
guard let modelURL = Bundle.main.url(forResource: "MonModele", withExtension: "mlmodelc"),
      let model = try? MLModel(contentsOf: modelURL) else {
    fatalError("Impossible de charger le modèle")
}

// Obtention des métadonnées du modèle
let description = model.modelDescription

Recommendations