Zum Inhalt springen

Ein Leitfaden zum YOLO11-Modellexport 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 Objekterkennung und Bildklassifizierung in Edge-Geräte-basierten Anwendungen zu optimieren. In diesem Leitfaden führen wir Sie durch die Schritte zum Konvertieren Ihrer Modelle in das TFLite-Format, um die Leistung Ihrer Modelle auf verschiedenen Edge-Geräten zu verbessern.

Warum sollten Sie nach TFLite exportieren?

TensorFlow Lite oder kurz TFLite, das im Mai 2017 von Google als Teil seines TensorFlow-Frameworks eingeführt wurde, ist 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 Werkzeuge, 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 MCU. Durch den Export Ihres Modells nach TFLite werden Ihre Anwendungen schneller, zuverlässiger und können offline ausgeführt werden.

Hauptmerkmale von TFLite-Modellen

TFLite-Modelle bieten eine breite Palette von Hauptfunktionen, die On-Device Machine Learning ermöglichen, indem sie Entwicklern helfen, ihre Modelle auf mobilen Geräten, Embedded-Systemen und Edge-Geräten auszuführen:

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

  • Unterstützung mehrerer Plattformen: TFLite bietet eine umfassende Plattformkompatibilität und unterstützt Android, iOS, Embedded 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 On-Device-Bereitstellungsoptionen 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 erkennen und zu identifizieren. TFLite bietet auch native iOS-Bibliotheken, die in Swift und Objective-C geschrieben sind. Das folgende Architekturdiagramm zeigt den Prozess der Bereitstellung eines trainierten Modells auf Android- und iOS-Plattformen mit TensorFlow Lite.

Architektur

  • Implementierung mit Embedded Linux: Wenn das Ausführen von Inferenz auf einem Raspberry Pi unter Verwendung des Ultralytics-Leitfadens die Geschwindigkeitsanforderungen für Ihren Anwendungsfall nicht erfüllt, können Sie ein exportiertes TFLite-Modell verwenden, um die Inferenzzeiten zu beschleunigen. Zusätzlich ist es möglich, die Leistung durch die Verwendung eines Coral Edge TPU-Geräts weiter zu verbessern.

  • Bereitstellung mit Mikrocontrollern: TFLite-Modelle können auch auf Mikrocontrollern und anderen Geräten mit nur wenigen Kilobyte Speicher bereitgestellt werden. Die Core-Runtime passt mit nur 16 KB auf einen Arm Cortex M3 und kann viele Basismodelle ausführen. Es sind weder Betriebssystemunterstützung noch Standard-C- oder C++-Bibliotheken oder dynamische Speicherzuweisung erforderlich.

Export nach TFLite: Konvertieren Ihres YOLO11-Modells

Sie können die Ausführungseffizienz des Modells 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

Argument Typ Standard Beschreibung
format str 'tflite' 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.
data str 'coco8.yaml' Pfad zu der Datensatz Konfigurationsdatei (Standard: coco8.yaml), die für die Quantisierung unerlässlich sind.
fraction float 1.0 Gibt 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.
device str None Gibt 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.

Bereitstellung exportierter YOLO11 TFLite-Modelle

Nachdem Sie Ihre Ultralytics YOLO11-Modelle erfolgreich in das TFLite-Format exportiert haben, können Sie sie jetzt bereitstellen. 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 TF Lite-Modelle in verschiedenen anderen Umgebungen werfen Sie einen Blick auf 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 und sie effektiver und besser für Edge-Computing-Umgebungen geeignet machen.

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

Wenn Sie mehr über andere Ultralytics YOLO11-Integrationen erfahren möchten, sollten Sie sich auch unsere Seite mit dem Integrationsleitfaden ansehen. Dort finden Sie viele 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 On-Device-Inferenz entwickelt wurde und sich ideal für die Bereitstellung von YOLO11-Modellen auf mobilen, eingebetteten und IoT-Geräten eignet. 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, lesen Sie den TFLite-Leitfaden.

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

Ja, Sie können YOLO11 TFLite-Modelle auf Raspberry Pi ausführen, um die Inferenzgeschwindigkeit zu verbessern. Exportieren Sie zuerst Ihr Modell in das TFLite-Format, wie oben erläutert. Verwenden Sie dann ein Tool wie 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 die Bereitstellung auf Mikrocontrollern mit begrenzten Ressourcen. Die Core-Runtime von TFLite benötigt nur 16 KB Speicher auf einem Arm Cortex M3 und kann grundlegende YOLO11-Modelle ausführen. Dies macht es für die Bereitstellung auf Geräten mit minimaler Rechenleistung und minimalem Speicher geeignet.

Besuchen Sie den TFLite Micro for Microcontrollers-Leitfaden, um loszulegen.

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 YOLO11-Modellexport nach TFLite?

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

  • 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 Ultralytics Exportdokumentationsseite ü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.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 4 Monaten

Kommentare