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