CoreML für Swift: Das vollständige Tutorial mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

CoreML für Swift: Das vollständige Tutorial mit Beispielen

1. Was ist CoreML und warum braucht man es?

CoreML ist ein Machine-Learning-Framework von Apple, das es Entwicklern ermöglicht, ML-Modelle direkt in Apps für iOS, macOS, watchOS und tvOS zu integrieren. Im Gegensatz zu Cloud-Lösungen führt CoreML alle Berechnungen lokal auf dem Gerät des Benutzers durch. Das bedeutet: blitzschnelle Datenverarbeitung ohne Netzwerkverzögerungen und maximaler Datenschutz.

Warum CoreML? Erstens können Entwickler komplexe KI-Funktionen wie Bilderkennung, Textanalyse oder Audioverarbeitung nutzen, ohne tief in neuronale Netze einsteigen zu müssen. Zweitens funktioniert die App auch offline – ein entscheidender Vorteil für viele Anwendungsfälle. Drittens ist CoreML von Apple für Neural Engine, GPU und CPU optimiert und liefert so auf allen Apple-Geräten Höchstleistung.

CoreML unterstützt Modelle aus gängigen Frameworks wie TensorFlow, PyTorch und scikit-learn. Diese lassen sich mit dem Tool coremltools in das Format .mlmodel konvertieren. Das Framework arbeitet nahtlos mit Vision (Bildanalyse), Natural Language (Textverarbeitung) und SoundAnalysis (Audioanalyse) zusammen.

2. Installation

CoreML ist ein integriertes Apple-Framework und benötigt keine Installation über Paketmanager. Sie importieren es einfach in Ihr Projekt. Für die Konvertierung von Modellen aus anderen Formaten benötigen Sie jedoch das Python-Paket coremltools.

Installation von coremltools (Python):

pip install coremltools

CoreML in einem Xcode-Projekt einbinden:

import CoreML

Für die Arbeit mit Bildern und Videos importieren Sie zusätzlich Vision:

import Vision

3. Schnellstart – Ein minimales Arbeitsbeispiel

Wir erstellen eine einfache App, die ein Bild mit dem vortrainierten Modell MobileNetV2 klassifiziert. Laden Sie das Modell MobileNetV2.mlmodel aus dem Apple-Repository herunter oder konvertieren Sie es mit coremltools.

Minimalbeispiel zur Bildklassifizierung:

import CoreML
import Vision
import UIKit

// 1. Modell laden
guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else {
    fatalError("Modell konnte nicht geladen werden")
}

// 2. Anfrage erstellen
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results as? [VNClassificationObservation],
          let topResult = results.first else {
        print("Bild konnte nicht klassifiziert werden")
        return
    }
    print("Erkannt: \(topResult.identifier) mit Wahrscheinlichkeit \(topResult.confidence)")
}

// 3. Bild laden
guard let image = UIImage(named: "cat.jpg"),
      let ciImage = CIImage(image: image) else {
    fatalError("Bild konnte nicht geladen werden")
}

// 4. Anfrage ausführen
let handler = VNImageRequestHandler(ciImage: ciImage)
try? handler.perform([request])

4. Wichtige Methoden, Funktionen und Klassen

4.1. MLModel

Signatur: class MLModel

Funktion: Die Hauptklasse, die ein geladenes ML-Modell repräsentiert. Ermöglicht Vorhersagen und den Zugriff auf Modellinformationen.

Beispiel:

// Modell aus Datei laden
guard let modelURL = Bundle.main.url(forResource: "MyModel", withExtension: "mlmodelc"),
      let model = try? MLModel(contentsOf: modelURL) else {
    fatalError("Modell konnte nicht geladen werden")
}

// Metadaten des Modells abrufen
let description = model.mod                    

Empfehlungen