Zum Inhalt springen

CoreML Export für YOLOv8 Modelle

Der Einsatz von Computer-Vision-Modellen auf Apple-Geräten wie iPhones und Macs erfordert ein Format, das eine reibungslose Leistung gewährleistet.

Das CoreML Exportformat ermöglicht es dir, deine Ultralytics YOLOv8 Modelle für eine effiziente Objekterkennung in iOS und macOS-Anwendungen optimieren. In dieser Anleitung zeigen wir dir, wie du deine Modelle in das CoreML Format konvertierst, damit sie auf Apple-Geräten besser funktionieren.

CoreML

CoreML Übersicht

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, Verarbeitung natürlicher Sprache, Audio-zu-Text-Konvertierung und Klanganalyse unterstützt.

Anwendungen können die Vorteile von Core ML nutzen, ohne dass eine Netzwerkverbindung oder API-Aufrufe erforderlich sind, da das Core ML-Framework mit On-Device-Computing arbeitet. Das bedeutet, dass die Modellinferenz lokal auf dem Gerät des Nutzers durchgeführt werden kann.

Die wichtigsten Merkmale der CoreML Modelle

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 Unterstützte Modelle

  • Maschinelles Lernen auf dem Gerät: Gewährleistet den Datenschutz und eine schnelle Verarbeitung, indem die Modelle direkt auf dem Gerät des Nutzers ausgeführt werden, ohne dass eine 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 bei gleichbleibender Genauigkeit.

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

  • Erweiterte Funktionen: Enthält Trainingsfunktionen auf dem Gerät für personalisierte Erlebnisse, asynchrone Vorhersagen für interaktive ML-Erlebnisse und Tools zur Modellprüfung und -validierung.

CoreML Einsatzoptionen

Bevor wir uns den Code für den Export ansehen YOLOv8 Modelle bis hin zu den CoreML Format zu verstehen, wo CoreML Meist werden Modelle verwendet.

CoreML bietet verschiedene Einsatzmöglichkeiten für maschinelle Lernmodelle, darunter:

  • On-Device Deployment: Bei dieser Methode werden die CoreML Modelle direkt in deine iOS App integriert. Sie ist besonders vorteilhaft, da sie eine geringe Latenzzeit, mehr Datenschutz (da die Daten auf dem Gerät bleiben) und Offline-Funktionalität gewährleistet. Dieser Ansatz kann jedoch durch die Hardwarekapazitäten des Geräts eingeschränkt sein, insbesondere bei größeren und komplexeren Modellen. Die Bereitstellung auf dem Gerät kann auf die folgenden zwei Arten erfolgen.

    • Eingebettete Modelle: Diese Modelle sind im App-Bundle enthalten und sofort zugänglich. Sie sind ideal für kleine Modelle, die nicht häufig aktualisiert werden müssen.

    • Heruntergeladene Modelle: Diese Modelle werden bei Bedarf von einem Server heruntergeladen. Dieser Ansatz eignet sich für größere Modelle oder solche, die regelmäßig aktualisiert werden müssen. Sie hilft, die Größe des App-Pakets klein zu halten.

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

Exportieren von YOLOv8 Modellen nach CoreML

Der Export von YOLOv8 nach CoreML ermöglicht eine optimierte, geräteinterne maschinelle Lernleistung innerhalb des Apple-Ökosystems und bietet Vorteile in Bezug auf Effizienz, Sicherheit und nahtlose Integration mit den Plattformen iOS, macOS, watchOS und tvOS.

Installation

Um das benötigte Paket zu installieren, führe es aus:

Installation

# Install the required package for YOLOv8
pip install ultralytics

Ausführliche Anweisungen und bewährte Verfahren für den Installationsprozess findest du in unserem YOLOv8 Installationsleitfaden. Wenn du bei der Installation der erforderlichen Pakete für YOLOv8 auf Schwierigkeiten stößt, findest du in unserem Leitfaden für häufige Probleme Lösungen und Tipps.

Verwendung

Bevor du dich in die Gebrauchsanweisung vertiefst, solltest du dir die verschiedenen Modelle vonYOLOv8 ansehen, die von Ultralytics angeboten werden. Das wird dir helfen, das am besten geeignete Modell für deine Projektanforderungen auszuwählen.

Verwendung

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")
# Export a YOLOv8n PyTorch model to CoreML format
yolo export model=yolov8n.pt format=coreml  # creates 'yolov8n.mlpackage''

# Run inference with the exported model
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

Weitere Informationen über den Exportprozess findest du auf der Dokumentationsseite zum Export unterUltralytics .

Einsatz von exportierten YOLOv8 CoreML Modellen

Nachdem du deine Ultralytics YOLOv8 Modelle erfolgreich nach CoreML exportiert hast, ist die nächste kritische Phase der effektive Einsatz dieser Modelle. Ausführliche Anleitungen für den Einsatz von CoreML Modellen in verschiedenen Umgebungen findest du in diesen Ressourcen:

  • CoreML Werkzeuge: Dieser Leitfaden enthält Anleitungen und Beispiele für die Konvertierung von Modellen aus TensorFlow, PyTorch und anderen Bibliotheken nach Core ML.

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

  • Integriere ein ML-Kernmodell in deine App: Ein umfassender Leitfaden zur Integration eines CoreML Modells in eine iOS Anwendung, der die einzelnen Schritte von der Vorbereitung des Modells bis zur Implementierung in die App für verschiedene Funktionalitäten beschreibt.

Zusammenfassung

In dieser Anleitung haben wir beschrieben, wie du Ultralytics YOLOv8 Modelle in das CoreML Format exportierst. Wenn du die in diesem Leitfaden beschriebenen Schritte befolgst, kannst du beim Export von YOLOv8 Modellen nach CoreML maximale Kompatibilität und Leistung gewährleisten.

Weitere Einzelheiten zur Verwendung findest du in der offiziellen DokumentationCoreML .

Wenn du mehr über andere Ultralytics YOLOv8 Integrationen erfahren möchtest, besuche unseren Integrationsleitfaden. Dort findest du viele wertvolle Ressourcen und Einblicke.

FAQ

Wie exportiere ich YOLOv8 Modelle in das Format CoreML ?

Zum Exportieren deiner Ultralytics YOLOv8 Modelle in das Format CoreML zu übertragen, musst du zunächst sicherstellen, dass du die ultralytics Paket installiert. Du kannst es mit installieren:

Installation

pip install ultralytics

Anschließend kannst du das Modell mit den folgenden Befehlen exportieren: Python oder CLI :

Verwendung

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="coreml")
yolo export model=yolov8n.pt format=coreml

Weitere Informationen findest du im Abschnitt Exportieren von YOLOv8 Modellen auf CoreML in unserer Dokumentation.

Welche Vorteile hat die Nutzung von CoreML für den Einsatz von YOLOv8 Modellen?

CoreML bietet zahlreiche Vorteile für den Einsatz von Ultralytics YOLOv8 Modellen auf Apple-Geräten:

  • Verarbeitung auf dem Gerät: Ermöglicht lokale Modellinferenz auf den Geräten, wodurch der Datenschutz gewährleistet und die Latenzzeit minimiert wird.
  • Optimierung der Leistung: Nutzt das volle Potenzial der CPU, GPU und der Neural Engine des Geräts und optimiert sowohl die Geschwindigkeit als auch die Effizienz.
  • Leichte Integration: Bietet eine nahtlose Integration in die Ökosysteme von Apple, einschließlich iOS, macOS, watchOS und tvOS.
  • Vielseitigkeit: Unterstützt eine breite Palette von maschinellen Lernaufgaben wie Bildanalyse, Audioverarbeitung und Verarbeitung natürlicher Sprache mit dem CoreML Framework.

Weitere Details zur Integration deines CoreML Modells in eine iOS App findest du im Leitfaden zur Integration eines ML Kernmodells in deine App.

Welche Verteilungsoptionen gibt es für YOLOv8 Modelle, die nach CoreML exportiert werden?

Sobald du dein YOLOv8 Modell in das Format CoreML exportiert hast, stehen dir mehrere Einsatzmöglichkeiten zur Verfügung:

  1. On-Device Einsatz: Integriere die CoreML Modelle direkt in deine App, um den Datenschutz und die Offline-Funktionalität zu verbessern. Dies kann wie folgt geschehen:

    • Eingebettete Modelle: Im App-Paket enthalten, sofort verfügbar.
    • Heruntergeladene Modelle: Werden nach Bedarf von einem Server geholt, um die Größe des App-Pakets zu verringern.
  2. Cloud-basierter Einsatz: Hostet CoreML Modelle auf Servern und greift über API-Anfragen auf sie zu. Dieser Ansatz ermöglicht einfachere Aktualisierungen und kann komplexere Modelle verarbeiten.

Eine ausführliche Anleitung zum Einsatz der CoreML Modelle findest du unter CoreML Einsatzoptionen.

Wie stellt CoreML sicher, dass die Leistung der YOLOv8 Modelle optimiert wird?

CoreML gewährleistet eine optimierte Leistung für Ultralytics YOLOv8 Modelle durch den Einsatz verschiedener Optimierungstechniken:

  • Hardware-Beschleunigung: Nutzt die CPU, GPU und die Neural Engine des Geräts für effiziente Berechnungen.
  • Modellkomprimierung: Bietet Werkzeuge zur Komprimierung von Modellen, um ihren Platzbedarf zu verringern, ohne die Genauigkeit zu beeinträchtigen.
  • Adaptive Inferenz: Passt die Schlussfolgerungen an die Fähigkeiten des Geräts an, um ein Gleichgewicht zwischen Geschwindigkeit und Leistung zu wahren.

Weitere Informationen zur Leistungsoptimierung findest du in der offiziellen DokumentationCoreML .

Kann ich mit dem exportierten CoreML Modell direkt Inferenzen durchführen?

Ja, du kannst die Inferenz direkt mit dem exportierten CoreML Modell durchführen. Im Folgenden findest du die Befehle für Python und CLI:

Laufende Inferenz

from ultralytics import YOLO

coreml_model = YOLO("yolov8n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

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



Erstellt am 2024-02-07, Aktualisiert am 2024-07-05
Autoren: glenn-jocher (6), RizwanMunawar (1), abirami-vina (1)

Kommentare