CoreML-Export für YOLO26-Modelle

Die Bereitstellung von computer vision-Modellen auf Apple-Geräten wie iPhones und Macs erfordert ein Format, das eine nahtlose Leistung gewährleistet.



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

Das CoreML-Exportformat ermöglicht es dir, deine Ultralytics YOLO26-Modelle für eine effiziente object detection in iOS- und macOS-Anwendungen zu optimieren. In dieser Anleitung führen wir dich durch die Schritte zur Konvertierung deiner Modelle in das CoreML-Format, damit deine Modelle auf Apple-Geräten noch besser laufen.

CoreML

Apple CoreML deployment pipeline

CoreML ist Apples grundlegendes Framework für maschinelles Lernen, das auf Accelerate, BNNS und Metal Performance Shaders aufbaut. Es bietet ein Modellformat für maschinelles Lernen, das sich nahtlos in iOS-Anwendungen integrieren lässt und Aufgaben wie Bildanalyse, natural language processing, Audio-zu-Text-Konvertierung und Klanganalyse unterstützt.

Anwendungen können Core ML nutzen, ohne dass eine Netzwerkverbindung oder API-Aufrufe erforderlich sind, da das Core ML-Framework direkt auf dem Gerät rechnet. Das bedeutet, dass die Modell-Inferenz lokal auf dem Gerät des Benutzers durchgeführt werden kann.

Hauptmerkmale von CoreML-Modellen

Apples CoreML-Framework bietet robuste Funktionen für maschinelles Lernen auf dem Gerät. Hier sind die wichtigsten Funktionen, die CoreML zu einem leistungsstarken Werkzeug für Entwickler machen:

  • Umfassende Modellunterstützung: Konvertiert und führt Modelle aus gängigen Frameworks wie TensorFlow, PyTorch, scikit-learn, XGBoost und LibSVM aus.

CoreML supported deep learning frameworks

  • Machine Learning auf dem Gerät: Gewährleistet den Datenschutz und eine schnelle Verarbeitung durch die Ausführung der Modelle direkt auf dem Gerät des Benutzers, wodurch keine Netzwerkverbindung erforderlich ist.

  • Leistung und Optimierung: Nutzt die CPU, GPU und Neural Engine des Geräts für optimale Leistung bei minimalem Strom- und Speicherverbrauch. Bietet Werkzeuge zur Modellkomprimierung und -optimierung unter Beibehaltung der accuracy.

  • Einfache Integration: Bietet ein einheitliches Format für verschiedene Modelltypen und eine benutzerfreundliche API für die nahtlose Integration in Apps. Unterstützt domänenspezifische Aufgaben durch Frameworks wie Vision und Natural Language.

  • Erweiterte Funktionen: Enthält Funktionen für das Training auf dem Gerät für personalisierte Erlebnisse, asynchrone Vorhersagen für interaktive ML-Erlebnisse sowie Werkzeuge zur Modellinspektion und -validierung.

CoreML-Bereitstellungsoptionen

Bevor wir uns den Code für den Export von YOLO26-Modellen in das CoreML-Format ansehen, wollen wir verstehen, wo CoreML-Modelle normalerweise eingesetzt werden.

CoreML bietet verschiedene Bereitstellungsoptionen für Modelle des maschinellen Lernens, darunter:

  • Bereitstellung auf dem Gerät: Diese Methode integriert CoreML-Modelle direkt in deine iOS-App. Sie ist besonders vorteilhaft, um eine niedrige Latenz, verbesserte Privatsphäre (da die Daten auf dem Gerät verbleiben) und Offline-Funktionalität zu gewährleisten. Dieser Ansatz kann jedoch durch die Hardwarekapazitäten des Geräts eingeschränkt sein, insbesondere bei größeren und komplexeren Modellen, und kann auf die folgenden zwei Arten ausgeführt werden:

    • Eingebettete Modelle: Diese Modelle sind im App-Bundle enthalten und sofort zugänglich. Sie sind ideal für kleine Modelle, die keine häufigen Updates benötigen.

    • Heruntergeladene Modelle: Diese Modelle werden bei Bedarf von einem Server abgerufen. Dieser Ansatz eignet sich für größere Modelle oder solche, die regelmäßig aktualisiert werden müssen. Er trägt dazu bei, die Größe des App-Bundles kleiner zu halten.

  • Cloud-basierte Bereitstellung: CoreML-Modelle werden auf Servern gehostet und von der iOS-App über API-Anfragen aufgerufen. Diese skalierbare und flexible Option ermöglicht einfache Modell-Updates ohne App-Revisionen. Sie ist ideal für komplexe Modelle oder groß angelegte Apps, die regelmäßige Updates erfordern. Allerdings erfordert sie eine Internetverbindung und kann Latenz- und Sicherheitsprobleme mit sich bringen.

Exportieren von YOLO26-Modellen nach CoreML

Der Export von YOLO26 nach CoreML ermöglicht eine optimierte Leistung für maschinelles Lernen direkt auf dem Gerät innerhalb des Apple-Ökosystems und bietet Vorteile in Bezug auf Effizienz, Sicherheit und nahtlose Integration in iOS-, macOS-, watchOS- und tvOS-Plattformen.

Installation

Um das erforderliche Paket zu installieren, führe Folgendes aus:

Installation
# Install the required package for YOLO26
pip install ultralytics

Für detaillierte Anweisungen und Best Practices rund um den Installationsprozess, schau dir unsere YOLO26-Installationsanleitung an. Wenn du bei der Installation der erforderlichen Pakete für YOLO26 auf Schwierigkeiten stößt, konsultiere unsere Anleitung für häufige Probleme für Lösungen und Tipps.

Verwendung

Bevor du in die Nutzungsanweisungen eintauchst, schaue dir unbedingt die Auswahl an YOLO26-Modellen von Ultralytics an. Dies hilft dir dabei, das am besten geeignete Modell für deine Projektanforderungen auszuwählen.

Verwendung
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")

Export-Argumente

ArgumentTypStandardBeschreibung
formatstr'coreml'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen definiert.
imgszint oder tuple640Gewünschte Bildgröße für den Modelleingang. Kann eine Ganzzahl für quadratische Bilder oder ein Tupel (height, width) für spezifische Dimensionen sein.
dynamicboolFalseErmöglicht dynamische Eingabegrößen, was die Flexibilität bei der Handhabung unterschiedlicher Bildabmessungen erhöht.
halfboolFalseAktiviert die FP16-Quantisierung (Halbpräzision), was die Modellgröße reduziert und die Inferenz auf unterstützter Hardware potenziell beschleunigt.
int8boolFalseAktiviert die INT8-Quantisierung, die das Modell weiter komprimiert und die Inferenz mit minimalem Verlust an accuracy beschleunigt, hauptsächlich für Edge-Geräte.
nmsboolFalseFügt Non-Maximum Suppression (NMS) hinzu, was für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist.
batchint1Legt die Batch-Inferenzgröße für den Export fest oder die maximale Anzahl an Bildern, die das exportierte Modell gleichzeitig im predict Modus verarbeitet.
devicestrNoneLegt das Gerät für den Export fest: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps).
Tipp

Bitte stelle sicher, dass du einen macOS- oder x86-Linux-Rechner verwendest, wenn du nach CoreML exportierst.

Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Export.

Bereitstellung exportierter YOLO26 CoreML-Modelle

Nachdem du deine Ultralytics YOLO26-Modelle erfolgreich nach CoreML exportiert hast, ist die nächste kritische Phase die effektive Bereitstellung dieser Modelle. Für eine detaillierte Anleitung zur Bereitstellung von CoreML-Modellen in verschiedenen Umgebungen, schau dir diese Ressourcen an:

  • CoreML Tools: Diese Anleitung enthält Anweisungen und Beispiele zur Konvertierung von Modellen aus TensorFlow, PyTorch und anderen Bibliotheken nach Core ML.

  • ML and Vision: Eine Sammlung umfassender Videos, die verschiedene Aspekte der Verwendung und Implementierung von CoreML-Modellen behandeln.

  • Integrating a Core ML Model into Your App: Ein umfassender Leitfaden zur Integration eines CoreML-Modells in eine iOS-Anwendung, der die Schritte von der Vorbereitung des Modells bis zur Implementierung in die App für verschiedene Funktionalitäten detailliert beschreibt.

Zusammenfassung

In dieser Anleitung haben wir erläutert, wie man Ultralytics YOLO26-Modelle in das CoreML-Format exportiert. Wenn du den Schritten in dieser Anleitung folgst, kannst du maximale Kompatibilität und Leistung beim Exportieren von YOLO26-Modellen nach CoreML sicherstellen.

Weitere Einzelheiten zur Verwendung findest du in der offiziellen CoreML-Dokumentation.

Wenn du außerdem mehr über andere Ultralytics YOLO26-Integrationen erfahren möchtest, besuche unsere Seite mit Integrationsanleitungen. Dort findest du viele wertvolle Ressourcen und Einblicke.

FAQ

Wie exportiere ich YOLO26-Modelle in das CoreML-Format?

Um deine Ultralytics YOLO26-Modelle in das CoreML-Format zu exportieren, musst du zunächst sicherstellen, dass das ultralytics-Paket installiert ist. Du kannst es installieren mit:

Installation
pip install ultralytics

Als nächstes kannst du das Modell mit den folgenden Python- oder CLI-Befehlen exportieren:

Verwendung
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreml")

Weitere Details findest du im Abschnitt Exportieren von YOLO26-Modellen nach CoreML unserer Dokumentation.

Was sind die Vorteile der Verwendung von CoreML für die Bereitstellung von YOLO26-Modellen?

CoreML bietet zahlreiche Vorteile für die Bereitstellung von Ultralytics YOLO26-Modellen auf Apple-Geräten:

  • Verarbeitung auf dem Gerät: Ermöglicht eine lokale Modell-Inferenz auf Geräten, wodurch data privacy gewährleistet und die Latenz minimiert wird.
  • Leistungsoptimierung: Nutzt das volle Potenzial der CPU, GPU und Neural Engine des Geräts und optimiert sowohl Geschwindigkeit als auch Effizienz.
  • Einfache Integration: Bietet ein nahtloses Integrationserlebnis mit den Ökosystemen von Apple, einschließlich iOS, macOS, watchOS und tvOS.
  • Vielseitigkeit: Unterstützt eine breite Palette von Aufgaben des maschinellen Lernens wie Bildanalyse, Audioverarbeitung und natürliche Sprachverarbeitung unter Verwendung des CoreML-Frameworks.

Weitere Einzelheiten zur Integration deines CoreML-Modells in eine iOS-App findest du im Leitfaden Integrating a Core ML Model into Your App.

Was sind die Bereitstellungsoptionen für YOLO26-Modelle, die nach CoreML exportiert wurden?

Sobald du dein YOLO26-Modell in das CoreML-Format exportiert hast, hast du mehrere Bereitstellungsoptionen:

  1. Bereitstellung auf dem Gerät: Integriere CoreML-Modelle direkt in deine App für verbesserte Privatsphäre und Offline-Funktionalität. Dies kann erfolgen als:

    • Eingebettete Modelle: Im App-Bundle enthalten, sofort zugänglich.
    • Heruntergeladene Modelle: Bei Bedarf von einem Server abgerufen, wodurch die Größe des App-Bundles kleiner bleibt.
  2. Cloud-basierte Bereitstellung: Hoste CoreML-Modelle auf Servern und greife über API-Anfragen darauf zu. Dieser Ansatz unterstützt einfachere Updates und kann komplexere Modelle verarbeiten.

Detaillierte Anleitungen zur Bereitstellung von CoreML-Modellen findest du unter CoreML-Bereitstellungsoptionen.

Wie stellt CoreML eine optimierte Leistung für YOLO26-Modelle sicher?

CoreML stellt eine optimierte Leistung für Ultralytics YOLO26-Modelle durch den Einsatz verschiedener Optimierungstechniken sicher:

  • Hardwarebeschleunigung: Nutzt die CPU, GPU und Neural Engine des Geräts für eine effiziente Berechnung.
  • Modellkomprimierung: Bietet Werkzeuge zur Komprimierung von Modellen, um deren Speicherbedarf zu reduzieren, ohne die Genauigkeit zu beeinträchtigen.
  • Adaptive Inferenz: Passt die Inferenz basierend auf den Fähigkeiten des Geräts an, um ein Gleichgewicht zwischen Geschwindigkeit und Leistung zu wahren.

Weitere Informationen zur Leistungsoptimierung findest du in der offiziellen CoreML-Dokumentation.

Kann ich die Inferenz direkt mit dem exportierten CoreML-Modell ausführen?

Ja, du kannst die Inferenz direkt mit dem exportierten CoreML-Modell ausführen. Unten findest du die Befehle für Python und CLI:

Inference ausführen
from ultralytics import YOLO

coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")

Weitere Informationen findest du im Abschnitt Verwendung der CoreML-Exportanleitung.

Kommentare