Zum Inhalt springen

CoreML-Export für YOLO11-Modelle

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



Ansehen: Wie man Ultralytics YOLO11 für 2x schnelle Inferenz auf Apple-Geräten nach CoreML exportiert 🚀

Das CoreML-Exportformat ermöglicht es Ihnen, Ihre Ultralytics YOLO11-Modelle für eine effiziente Objekterkennung in iOS- und macOS-Anwendungen zu optimieren. In diesem Leitfaden führen wir Sie durch die Schritte zur Konvertierung Ihrer Modelle in das CoreML-Format, um die Leistung Ihrer Modelle auf Apple-Geräten zu verbessern.

CoreML

CoreML Überblick

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

Anwendungen können Core ML nutzen, ohne eine Netzwerkverbindung oder API-Aufrufe zu benötigen, da das Core ML-Framework mit On-Device-Computing arbeitet. Dies bedeutet, dass die Modellinferenz 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.

Von CoreML unterstützte Modelle

  • On-Device Machine Learning: Gewährleistet Datenschutz und schnelle Verarbeitung, indem Modelle direkt auf dem Gerät des Benutzers ausgeführt werden, wodurch die Notwendigkeit einer Netzwerkverbindung entfällt.

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

  • 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: Beinhaltet On-Device-Trainingsfunktionen für personalisierte Erlebnisse, asynchrone Vorhersagen für interaktive ML-Erlebnisse sowie Tools zur Modellinspektion und -validierung.

CoreML-Bereitstellungsoptionen

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

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

  • On-Device Deployment (Geräteinterne Bereitstellung): Diese Methode integriert CoreML-Modelle direkt in Ihre iOS-App. Sie ist besonders vorteilhaft, um geringe Latenz, verbesserten Datenschutz (da die Daten auf dem Gerät verbleiben) und Offline-Funktionalität zu gewährleisten. Dieser Ansatz kann jedoch durch die Hardwarefähigkeiten des Geräts eingeschränkt sein, insbesondere bei größeren und komplexeren Modellen. Die On-Device Deployment kann auf folgende zwei Arten erfolgen.

    • Embedded Models (Eingebettete Modelle): Diese Modelle sind im App-Bundle enthalten und sofort zugänglich. Sie eignen sich ideal für kleine Modelle, die keine häufigen Aktualisierungen erfordern.

    • Downloaded Models (Heruntergeladene Modelle): Diese Modelle werden bei Bedarf von einem Server abgerufen. Dieser Ansatz eignet sich für größere Modelle oder solche, die regelmäßige Aktualisierungen benötigen. Er trägt dazu bei, die Größe des App-Bundles zu verringern.

  • Cloud-Based Deployment (Cloudbasierte Bereitstellung): CoreML-Modelle werden auf Servern gehostet und von der iOS-App über API-Anfragen abgerufen. 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äßige Aktualisierungen erfordern. Sie erfordert jedoch eine Internetverbindung und kann Latenz- und Sicherheitsprobleme verursachen.

YOLO11-Modelle nach CoreML exportieren

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

Installation

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

Installation

# Install the required package for YOLO11
pip install ultralytics

Detaillierte Anweisungen und Best Practices zum Installationsprozess finden Sie in unserem YOLO11 Installationshandbuch. Wenn Sie bei der Installation der erforderlichen Pakete für YOLO11 auf Schwierigkeiten stoßen, konsultieren Sie unseren Leitfaden zu häufigen Problemen für Lösungen und Tipps.

Nutzung

Bevor Sie sich mit den Anwendungsanweisungen befassen, sollten Sie sich das Angebot an YOLO11-Modellen von Ultralytics ansehen. Dies wird Ihnen helfen, das am besten geeignete Modell für Ihre Projektanforderungen auszuwählen.

Nutzung

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolo11n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO("yolo11n.mlpackage")

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to CoreML format
yolo export model=yolo11n.pt format=coreml # creates 'yolo11n.mlpackage''

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

Export-Argumente

Argument Typ Standard Beschreibung
format str 'coreml' Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Deployment-Umgebungen definiert.
imgsz int oder tuple 640 Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder oder ein Tupel (height, width) für bestimmte Abmessungen sein.
half bool False Aktiviert die FP16-Quantisierung (halbe Präzision), wodurch die Modellgröße reduziert und potenziell die Inferenz auf unterstützter Hardware beschleunigt wird.
int8 bool False Aktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz mit minimalem Genauigkeitsverlust beschleunigt wird, hauptsächlich für Edge-Geräte.
nms bool False Fügt Non-Maximum Suppression (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist.
batch int 1 Gibt die Batch-Inferenzgröße des Exportmodells oder die maximale Anzahl von Bildern an, die das exportierte Modell gleichzeitig verarbeitet predict Modus.
device str None Gibt das Gerät für den Export an: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps), oder Auto-Modus mit angegebener Auslastungsfraktion (

Tipp

Bitte stellen Sie sicher, dass Sie einen macOS- oder x86-Linux-Rechner verwenden, wenn Sie nach CoreML exportieren.

Weitere Informationen zum Exportprozess finden Sie auf der Ultralytics-Dokumentationsseite zum Exportieren.

Exportierte YOLO11 CoreML-Modelle bereitstellen

Nachdem Sie Ihre Ultralytics YOLO11-Modelle erfolgreich nach CoreML exportiert haben, ist die nächste kritische Phase die effektive Bereitstellung dieser Modelle. Detaillierte Anleitungen zur Bereitstellung von CoreML-Modellen in verschiedenen Umgebungen finden Sie in diesen Ressourcen:

  • CoreML Tools: Dieser Leitfaden enthält Anweisungen und Beispiele zum Konvertieren von Modellen aus TensorFlow, PyTorch und anderen Bibliotheken in Core ML.

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

  • Integrieren eines Core ML-Modells in Ihre 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 der App für verschiedene Funktionalitäten detailliert beschreibt.

Zusammenfassung

In diesem Leitfaden haben wir behandelt, wie man Ultralytics YOLO11-Modelle in das CoreML-Format exportiert. Wenn Sie die in diesem Leitfaden beschriebenen Schritte befolgen, können Sie maximale Kompatibilität und Leistung beim Exportieren von YOLO11-Modellen nach CoreML gewährleisten.

Weitere Informationen zur Verwendung finden Sie in der offiziellen CoreML-Dokumentation.

Wenn Sie mehr über andere Ultralytics YOLO11-Integrationen erfahren möchten, besuchen Sie unsere Seite mit dem Integrationsleitfaden. Dort finden Sie viele wertvolle Ressourcen und Einblicke.

FAQ

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

So exportieren Sie Ihre Ultralytics YOLO11 -Modelle in das CoreML-Format. Zuerst müssen Sie sicherstellen, dass Sie das ultralytics Paket installiert haben. Sie können es installieren mit:

Installation

pip install ultralytics

Als Nächstes können Sie das Modell mit den folgenden python- oder CLI-Befehlen exportieren:

Nutzung

from ultralytics import YOLO

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

Weitere Informationen finden Sie im Abschnitt Exportieren von YOLO11-Modellen nach CoreML in unserer Dokumentation.

Welche Vorteile bietet die Verwendung von CoreML für die Bereitstellung von YOLO11-Modellen?

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

  • On-device Processing (Geräteinterne Verarbeitung): Ermöglicht die lokale Modellinferenz auf Geräten und gewährleistet so den Datenschutz und minimiert die Latenz.
  • Performance Optimization (Leistungsoptimierung): Nutzt das volle Potenzial der CPU, GPU und Neural Engine des Geräts und optimiert sowohl Geschwindigkeit als auch Effizienz.
  • Ease of Integration (Einfache Integration): Bietet eine nahtlose Integrationserfahrung mit den Apple-Ökosystemen, einschließlich iOS, macOS, watchOS und tvOS.
  • Versatility (Vielseitigkeit): Unterstützt eine breite Palette von Machine-Learning-Aufgaben wie Bildanalyse, Audioverarbeitung und Verarbeitung natürlicher Sprache mithilfe des CoreML-Frameworks.

Weitere Informationen zur Integration Ihres CoreML-Modells in eine iOS-App finden Sie im Leitfaden zur Integration eines Core ML-Modells in Ihre App.

Welche Bereitstellungsoptionen gibt es für YOLO11-Modelle, die nach CoreML exportiert wurden?

Sobald Sie Ihr YOLO11-Modell in das CoreML-Format exportiert haben, haben Sie mehrere Bereitstellungsoptionen:

  1. On-Device Deployment: Integrieren Sie CoreML-Modelle direkt in Ihre App, um den Datenschutz zu verbessern und Offline-Funktionalität zu gewährleisten. Dies kann erfolgen als:

    • Embedded Models: Im App-Bundle enthalten und sofort zugänglich.
    • Downloaded Models: Bei Bedarf von einem Server abgerufen, wodurch die Größe des App-Bundles kleiner bleibt.
  2. Cloud-Based Deployment: Hosten Sie CoreML-Modelle auf Servern und greifen Sie über API-Anfragen darauf zu. Dieser Ansatz unterstützt einfachere Aktualisierungen und kann komplexere Modelle verarbeiten.

Detaillierte Anleitungen zur Bereitstellung von CoreML-Modellen finden Sie unter CoreML Deployment Options.

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

CoreML gewährleistet eine optimierte Leistung für Ultralytics YOLO11-Modelle durch die Nutzung verschiedener Optimierungstechniken:

  • Hardware Acceleration: Nutzt die CPU, GPU und Neural Engine des Geräts für eine effiziente Berechnung.
  • Model Compression: Bietet Tools zum Komprimieren von Modellen, um ihren Speicherbedarf zu reduzieren, ohne die Genauigkeit zu beeinträchtigen.
  • Adaptive Inference: Passt die Inferenz basierend auf den Fähigkeiten des Geräts an, um ein Gleichgewicht zwischen Geschwindigkeit und Leistung zu gewährleisten.

Weitere Informationen zur Leistungsoptimierung finden Sie in der offiziellen CoreML-Dokumentation.

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

Ja, Sie können die Inferenz direkt mit dem exportierten CoreML-Modell ausführen. Nachfolgend finden Sie die Befehle für Python und CLI:

Inferenz ausführen

from ultralytics import YOLO

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

Weitere Informationen finden Sie im Abschnitt zur Verwendung des CoreML-Exportleitfadens.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 24 Tagen

Kommentare