Zum Inhalt springen

Ein Leitfaden zum Export von YOLO11-Modellen nach TFLite für die Bereitstellung

TFLite Logo

Die Bereitstellung von Computer Vision-Modellen auf Edge- oder Embedded-Geräten erfordert ein Format, das eine nahtlose Leistung gewährleistet.

Das TensorFlow Lite- oder TFLite-Exportformat ermöglicht es Ihnen, Ihre Ultralytics YOLO11-Modelle für Aufgaben wie object detection und image classification in Edge-Device-basierten Anwendungen zu optimieren. In diesem Leitfaden werden wir die Schritte zur Konvertierung Ihrer Modelle in das TFLite-Format durchgehen, um die Leistung Ihrer Modelle auf verschiedenen Edge-Geräten zu verbessern.

Warum sollten Sie nach TFLite exportieren?

Im Mai 2017 von Google als Teil ihres TensorFlow-Frameworks eingeführt, ist TensorFlow Lite, kurz TFLite, ein Open-Source-Deep-Learning-Framework, das für die On-Device-Inferenz, auch bekannt als Edge Computing, entwickelt wurde. Es bietet Entwicklern die notwendigen Tools, um ihre trainierten Modelle auf mobilen, eingebetteten und IoT-Geräten sowie auf herkömmlichen Computern auszuführen.

TensorFlow Lite ist mit einer Vielzahl von Plattformen kompatibel, darunter Embedded Linux, Android, iOS und Mikrocontroller (MCUs). Der Export Ihres Modells nach TFLite macht Ihre Anwendungen schneller, zuverlässiger und offline-fähig.

Hauptmerkmale von TFLite-Modellen

TFLite-Modelle bieten eine breite Palette wichtiger Funktionen, die maschinelles Lernen auf dem Gerät ermöglichen, indem sie Entwicklern helfen, ihre Modelle auf mobilen Geräten, eingebetteten Systemen und Edge-Geräten auszuführen:

  • On-Device-Optimierung: TFLite optimiert für On-Device-ML, reduziert die Latenz durch lokale Datenverarbeitung, verbessert die Privatsphäre durch Nichtübertragung persönlicher Daten und minimiert die Modellgröße, um Speicherplatz zu sparen.

  • Unterstützung mehrerer Plattformen: TFLite bietet umfassende Plattformkompatibilität und unterstützt Android, iOS, eingebettetes Linux und Mikrocontroller.

  • Vielfältige Sprachunterstützung: TFLite ist mit verschiedenen Programmiersprachen kompatibel, darunter Java, Swift, Objective-C, C++ und Python.

  • Hohe Leistung: Erzielt überlegene Leistung durch Hardwarebeschleunigung und Modelloptimierung.

Bereitstellungsoptionen in TFLite

Bevor wir uns den Code für den Export von YOLO11-Modellen in das TFLite-Format ansehen, wollen wir verstehen, wie TFLite-Modelle normalerweise verwendet werden.

TFLite bietet verschiedene Bereitstellungsoptionen auf dem Gerät für Machine-Learning-Modelle, darunter:

  • Bereitstellung mit Android und iOS: Sowohl Android- als auch iOS-Anwendungen mit TFLite können Edge-basierte Kamera-Feeds und Sensoren analysieren, um Objekte zu detect und zu identifizieren. TFLite bietet auch native iOS-Bibliotheken, die in Swift und Objective-C geschrieben sind. Das untenstehende Architekturdiagramm zeigt den Prozess der Bereitstellung eines trainierten Modells auf Android- und iOS-Plattformen mithilfe von TensorFlow Lite.

Architektur

  • Implementierung mit Embedded Linux: Wenn die Ausführung von Inferenz auf einem Raspberry Pi mithilfe des Ultralytics Guide die Geschwindigkeitsanforderungen für Ihren Anwendungsfall nicht erfüllt, können Sie ein exportiertes TFLite-Modell verwenden, um die Inferenzzeiten zu beschleunigen. Darüber hinaus kann die Leistung durch den Einsatz eines Coral Edge TPU-Geräts weiter verbessert werden.

  • Bereitstellung mit Mikrocontrollern: TFLite-Modelle können auch auf Mikrocontrollern und anderen Geräten mit nur wenigen Kilobyte Speicher bereitgestellt werden. Die Kernlaufzeit passt in nur 16 KB auf einem Arm Cortex M3 und kann viele grundlegende Modelle ausführen. Es erfordert keine Betriebssystemunterstützung, keine Standard-C- oder C++-Bibliotheken oder dynamische Speicherzuweisung.

Export nach TFLite: Konvertierung Ihres YOLO11-Modells

Sie können die Effizienz der Modell-Ausführung auf dem Gerät verbessern und die Leistung optimieren, indem Sie Ihre Modelle in das TFLite-Format konvertieren.

Installation

Um die erforderlichen Pakete 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 Ultralytics Installationshandbuch. Wenn Sie bei der Installation der erforderlichen Pakete für YOLO11 auf Schwierigkeiten stoßen, konsultieren Sie unser Handbuch zu häufigen Problemen für Lösungen und Tipps.

Nutzung

Alle Ultralytics YOLO11 Modelle sind so konzipiert, dass sie den Export standardmäßig unterstützen, wodurch die Integration in Ihren bevorzugten Deployment-Workflow vereinfacht wird. Sie können die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen anzeigen, um das beste Setup für Ihre Anwendung auszuwählen.

Nutzung

from ultralytics import YOLO

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

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo11n_float32.tflite'

# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

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

Export-Argumente

ArgumentTypStandardBeschreibung
formatstr'tflite'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Deployment-Umgebungen definiert.
imgszint oder tuple640Gewü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.
halfboolFalseAktiviert die FP16-Quantisierung (halbe Präzision), wodurch die Modellgröße reduziert und potenziell die Inferenz auf unterstützter Hardware beschleunigt wird.
int8boolFalseAktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz mit minimalem Genauigkeitsverlust beschleunigt wird, hauptsächlich für Edge-Geräte.
nmsboolFalseFügt Non-Maximum Suppression (NMS) hinzu, unerlässlich für eine genaue und effiziente Detektions-Nachbearbeitung.
batchint1Gibt die Batch-Inferenzgröße des Exportmodells oder die maximale Anzahl von Bildern an, die das exportierte Modell gleichzeitig verarbeitet predict Modus.
datastr'coco8.yaml'Pfad zu der Datensatz Konfigurationsdatei (Standard: coco8.yaml), die für die Quantisierung unerlässlich sind.
fractionfloat1.0Gibt den Bruchteil des Datensatzes an, der für die INT8-Quantisierungskalibrierung verwendet werden soll. Ermöglicht die Kalibrierung auf einer Teilmenge des vollständigen Datensatzes, was für Experimente oder bei begrenzten Ressourcen nützlich ist. Wenn nicht mit aktiviertem INT8 angegeben, wird der vollständige Datensatz verwendet.
devicestrNoneGibt das Gerät für den Export an: CPU (device=cpu), MPS für Apple Silicon (device=mps), oder Auto-Modus mit angegebener Auslastungsfraktion (

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

Exportierte YOLO11 TFLite-Modelle bereitstellen

Nachdem Sie Ihre Ultralytics YOLO11-Modelle erfolgreich in das TFLite-Format exportiert haben, können Sie diese nun deployen. Der primäre und empfohlene erste Schritt zum Ausführen eines TFLite-Modells ist die Verwendung des YOLO("model.tflite") Methode, wie im vorherigen Code-Snippet zur Verwendung beschrieben. Für detaillierte Anweisungen zur Bereitstellung Ihrer TFLite-Modelle in verschiedenen anderen Umgebungen beachten Sie jedoch die folgenden Ressourcen:

  • Android: Eine Kurzanleitung zur Integration von TensorFlow Lite in Android-Anwendungen mit leicht verständlichen Schritten zum Einrichten und Ausführen von Machine-Learning-Modellen.

  • iOS: In diesem ausführlichen Leitfaden für Entwickler erfahren Sie, wie Sie TensorFlow Lite-Modelle in iOS-Anwendungen integrieren und bereitstellen. Er bietet schrittweise Anleitungen und Ressourcen.

  • End-to-End-Beispiele: Diese Seite bietet einen Überblick über verschiedene TensorFlow Lite-Beispiele und zeigt praktische Anwendungen und Tutorials, die Entwicklern helfen sollen, TensorFlow Lite in ihren Machine-Learning-Projekten auf mobilen und Edge-Geräten zu implementieren.

Zusammenfassung

In diesem Leitfaden haben wir uns darauf konzentriert, wie man in das TFLite-Format exportiert. Durch die Konvertierung Ihrer Ultralytics YOLO11-Modelle in das TFLite-Modellformat können Sie die Effizienz und Geschwindigkeit von YOLO11-Modellen verbessern, wodurch sie effektiver und für Edge-Computing-Umgebungen geeigneter werden.

Für weitere Details zur Nutzung besuchen Sie die offizielle TFLite-Dokumentation.

Wenn Sie sich auch für andere Ultralytics YOLO11-Integrationen interessieren, besuchen Sie unsere Seite mit Integrationsanleitungen. Dort finden Sie zahlreiche hilfreiche Informationen und Einblicke.

FAQ

Wie exportiere ich ein YOLO11-Modell in das TFLite-Format?

Um ein YOLO11-Modell in das TFLite-Format zu exportieren, können Sie die Ultralytics-Bibliothek verwenden. Installieren Sie zuerst das erforderliche Paket mit:

pip install ultralytics

Verwenden Sie dann den folgenden Code-Schnipsel, um Ihr Modell zu exportieren:

from ultralytics import YOLO

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

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo11n_float32.tflite'

Für CLI-Benutzer können Sie dies mit folgendem Befehl erreichen:

yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

Weitere Informationen finden Sie im Ultralytics-Exportleitfaden.

Welche Vorteile bietet die Verwendung von TensorFlow Lite für die YOLO11-Modellbereitstellung?

TensorFlow Lite (TFLite) ist ein Open-Source Deep-Learning-Framework, das für die Inferenz auf dem Gerät konzipiert wurde, was es ideal für die Bereitstellung von YOLO11-Modellen auf mobilen Geräten, eingebetteten Systemen und IoT-Geräten macht. Zu den wichtigsten Vorteilen gehören:

  • On-Device-Optimierung: Minimieren Sie die Latenz und verbessern Sie den Datenschutz, indem Sie Daten lokal verarbeiten.
  • Plattformkompatibilität: Unterstützt Android, iOS, Embedded Linux und MCU.
  • Leistung: Nutzt Hardwarebeschleunigung, um die Modellgeschwindigkeit und -effizienz zu optimieren.

Um mehr zu erfahren, sehen Sie sich den TFLite-Leitfaden an.

Ist es möglich, YOLO11 TFLite-Modelle auf einem Raspberry Pi auszuführen?

Ja, Sie können YOLO11 TFLite-Modelle auf Raspberry Pi ausführen, um die Inferenzgeschwindigkeiten zu verbessern. Exportieren Sie Ihr Modell zunächst wie oben beschrieben in das TFLite-Format. Verwenden Sie dann ein Tool wie den TensorFlow Lite Interpreter, um das Modell auf Ihrem Raspberry Pi auszuführen.

Für weitere Optimierungen können Sie die Verwendung von Coral Edge TPU in Betracht ziehen. Detaillierte Schritte finden Sie in unserem Raspberry Pi-Bereitstellungsleitfaden und im Edge TPU-Integrationsleitfaden.

Kann ich TFLite-Modelle auf Mikrocontrollern für YOLO11-Vorhersagen verwenden?

Ja, TFLite unterstützt den Einsatz auf Mikrocontrollern mit begrenzten Ressourcen. Die Kernlaufzeit von TFLite benötigt nur 16 KB Speicher auf einem Arm Cortex M3 und kann grundlegende YOLO11 ausführen. Damit eignet es sich für den Einsatz auf Geräten mit minimaler Rechenleistung und geringem Speicher.

Um zu beginnen, besuchen Sie den TFLite Micro für Microcontroller Leitfaden.

Welche Plattformen sind mit TFLite-exportierten YOLO11-Modellen kompatibel?

TensorFlow Lite bietet umfangreiche Plattformkompatibilität, sodass Sie YOLO11-Modelle auf einer Vielzahl von Geräten bereitstellen können, darunter:

  • Android und iOS: Native Unterstützung durch TFLite Android- und iOS-Bibliotheken.
  • Embedded Linux: Ideal für Einplatinencomputer wie Raspberry Pi.
  • Microcontroller: Geeignet für MCUs mit begrenzten Ressourcen.

Weitere Informationen zu den Bereitstellungsoptionen finden Sie in unserem ausführlichen Bereitstellungsleitfaden.

Wie behebe ich häufige Probleme beim Export eines YOLO11-Modells nach TFLite?

Wenn beim Exportieren von YOLO11-Modellen nach TFLite Fehler auftreten, gehören zu den gängigen Lösungen:

  • Paketkompatibilität prüfen: Stellen Sie sicher, dass Sie kompatible Versionen von Ultralytics und TensorFlow verwenden. Beachten Sie unseren Installationsleitfaden.
  • Modellunterstützung: Überprüfen Sie, ob das spezifische YOLO11-Modell den TFLite-Export unterstützt, indem Sie die Exportdokumentationsseite von Ultralytics überprüfen.
  • Quantisierungsprobleme: Stellen Sie bei der Verwendung der INT8-Quantisierung sicher, dass Ihr Dataset-Pfad korrekt angegeben ist in der data Parameter.

Weitere Tipps zur Fehlerbehebung finden Sie in unserem Leitfaden zu häufigen Problemen.



📅 Vor 1 Jahr erstellt ✏️ Vor 3 Tagen aktualisiert
glenn-jocherlakshanthadpderrengerambitious-octopusUltralyticsAssistantMatthewNoyceRizwanMunawarabirami-vina

Kommentare