YOLO Vision 2026:

TFLite-Modell-Export für die Bereitstellung (veraltet)#

Veraltet – ersetzt durch LiteRT

Seit Ultralytics 8.4.83 wurde das eigenständige tflite-Exportformat entfernt und durch das einheitliche Google LiteRT-Format ersetzt. LiteRT (Lite Runtime) ist die nächste Generation und der neue Name für TensorFlow Lite und exportiert das selbe .tflite-Modell – und deckt nun Mobil-, Embedded-, Edge- und Browser-Bereitstellungen in einem einzigen Format ab.

format="tflite" funktioniert weiterhin, gibt jedoch eine Veraltungswarnung aus und exportiert stattdessen ein LiteRT-Modell. Verwende format="litert" für zukünftige Exporte; aktuelle Exportanweisungen und Optionen findest du im LiteRT-Exportleitfaden.

TensorFlow Lite edge deployment framework

Das Bereitstellen von Computer-Vision-Modellen auf Edge-Geräten oder eingebetteten Geräten erfordert ein Format, das eine nahtlose Leistung gewährleisten kann.

Das ehemalige TensorFlow Lite- oder TFLite-Exportformat optimierte Ultralytics YOLO26-Modelle für Aufgaben wie Objekterkennung und Bildklassifizierung in Edge-Anwendungen. Dieser Leitfaden bewahrt den Legacy-TFLite-Bereitstellungskontext; verwende LiteRT für neue Exporte.

Warum wurde TFLite für den Export verwendet?#

Das im Mai 2017 von Google als Teil seines TensorFlow-Frameworks eingeführte TensorFlow Lite, kurz TFLite, war ein Open-Source-Deep-Learning-Framework für die geräteinterne Inferenz, auch bekannt als Edge Computing. Es bot Entwicklern Tools zum Ausführen trainierter Modelle auf Mobil-, Embedded- und IoT-Geräten sowie herkömmlichen Computern.

TensorFlow Lite unterstützte eine breite Palette an Plattformen, darunter eingebettetes Linux, Android, iOS und Mikrocontroller (MCUs). TFLite-Exporte ermöglichten es Anwendungen, Modelle lokal und offline auszuführen.

Hauptfunktionen von TFLite-Modellen#

TFLite-Modelle bieten eine breite Palette an Funktionen, die maschinelles Lernen auf Geräten ermöglichen, indem sie Entwicklern helfen, ihre Modelle auf Mobil-, Embedded- und Edge-Geräten auszuführen:

  • On-Device-Optimierung: TFLite optimiert für ML auf dem Gerät, reduziert die Latenz durch lokale Datenverarbeitung, verbessert die Privatsphäre, da keine persönlichen Daten übertragen werden, und minimiert die Modellgröße, um Speicherplatz zu sparen.

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

  • Unterstützung verschiedener Sprachen: TFLite ist mit verschiedenen Programmiersprachen kompatibel, darunter Java, Swift, Objective-C, C++ und Python.

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

Gemessene Leistung (historisch)#

Eingefrorener Migrationsdatensatz vor/nach der Migration

Diese Ergebnisse wurden mit dem Ultralytics Flutter-Plugin 0.6.8 und LiteRT 2.1.5 auf Android 16/API 36 auf einem Xiaomi 17 mit 12 GB LPDDR5X-Speicher aufgezeichnet. Dessen 3 nm Snapdragon 8 Elite Gen 5 (SM8850) verfügt über eine 8-Kern-Qualcomm-Oryon-CPU (2 Prime-Kerne mit bis zu 4,6 GHz und 6 Performance-Kerne mit bis zu 3,62 GHz), eine Adreno-GPU und eine Hexagon-NPU. Diese Tabellen vergleichen die älteren onnx2tf INT8 TFLite-Assets mit während der Migration evaluierten litert-torch-Kandidatenexporten. Die Release-Assets wurden nachträglich mit den standardisierten Exporten überschrieben, weshalb diese Zahlen nicht den aktuellen v0.6.6-Asset-Bytes entsprechen. Siehe die LiteRT-Leistungstabellen für aktuelle Messungen.

Beide Formate liefen im selben Back-to-Back-GPU-Durchlauf bei den angezeigten Eingabegrößen. Jede Zelle stellt die Gesamtzeit (Vorverarbeitung + Inferenz + Nachverarbeitung) dar, mit der Aufteilung nach Phasen darunter; native Protokolle bestätigten, dass beide Formate den vollständigen Graphen an LiteRT OpenCL (LITERT_CL) auf der Adreno-GPU delegierten.

ModellAufgabeGröße
(Pixel)
Legacy
onnx2tf INT8 TFLite
(ms)
Kandidat
w8a32 LiteRT
(ms)
YOLO26nDetect64014,0
1,8 / 8,1 / 4,2
13,5
1,9 / 8,1 / 3,5
YOLO26n-segSegment64030,1
1,9 / 20,3 / 8,0
28,6
1,8 / 20,1 / 6,7
YOLO26n-semSemantisch64026,4
1,9 / 16,4 / 8,1
32,9
1,8 / 23,0 / 8,2
YOLO26n-clsClassify2243,5
0,9 / 2,2 / 0,4
3,2
1,0 / 2,2 / 0,1
YOLO26n-posePose64017,4
2,4 / 9,9 / 5,1
14,0
1,9 / 9,3 / 2,8
YOLO26n-obbOBB64013,9
3,0 / 8,3 / 2,7
13,0
2,9 / 7,9 / 2,3

Derselbe Migrationslauf verglich auch YOLO26n Detect-Quantisierungsformate. Die Inferenz ist die vergleichbare, formatabhängige Metrik:

Android-FormatGPU-Inferenz (ms)GPU-Kompilierung
onnx2tf INT8 (altes TFLite)8.6ja
LiteRT w8a32 (Kandidat)8.4ja
LiteRT INT8 (quantize=8)11.0ja
LiteRT FP328.8ja
LiteRT w8a16 (quantize="w8a16")CPU-Fallbacknein

In diesem Durchlauf fiel w8a16 bei einer Gesamtzeit von ca. 660 ms im Vergleich zu ca. 17 ms bei den GPU-Formaten auf die CPU zurück. Diese Ergebnisse motivierten die Bereitstellung von w8a32, aber die Delegatenkompatibilität und -leistung hängen vom Gerät und der Laufzeitversion ab. Teste das Zielgerät und bestätige die Beschleunigerplatzierung in dessen Laufzeitprotokollen.

Bereitstellungsoptionen in TFLite#

Bevor wir uns das Beispiel für den LiteRT-Ersatzexport ansehen, lass uns verstehen, wie TFLite-Modelle normalerweise verwendet werden.

TFLite bietet verschiedene On-Device-Bereitstellungsoptionen für Modelle des maschinellen Lernens, 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 Architekturdiagramm unten zeigt den Prozess der Bereitstellung eines trainierten Modells auf Android- und iOS-Plattformen mithilfe von TensorFlow Lite.

TensorFlow Lite deployment architecture for mobile

  • Implementierung mit Embedded Linux: Wenn das Ausführen von Inferenzen auf einem Raspberry Pi mithilfe der Ultralytics-Anleitung die Geschwindigkeitsanforderungen für deinen Anwendungsfall nicht erfüllt, kannst du ein exportiertes TFLite-Modell verwenden, um die Inferenzzeiten zu beschleunigen. Darüber hinaus 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 Kern-Runtime passt in nur 16 KB auf einem Arm Cortex M3 und kann viele grundlegende Modelle ausführen. Sie erfordert keine Betriebssystemunterstützung, keine Standard-C- oder C++-Bibliotheken und keine dynamische Speicherzuweisung.

Ersetze den TFLite-Export durch LiteRT#

Konvertiere dein Modell für neue Exporte in LiteRT. Das resultierende Modell behält die Dateiendung .tflite bei.

Installation#

Um die erforderlichen Pakete zu installieren, führe aus:

Installation
# Install the required package for YOLO26
pip install ultralytics

Detaillierte Anweisungen und bewährte Methoden zum Installationsprozess findest du in unserer Ultralytics-Installationsanleitung. Wenn während der Installation der erforderlichen Pakete für YOLO26 Schwierigkeiten auftreten, findest du in unserem Leitfaden zu häufigen Problemen Lösungen und Tipps.

Verwendung#

Alle Ultralytics YOLO26 models sind so konzipiert, dass sie den Export von Haus aus unterstützen, sodass du sie mühelos in deinen bevorzugten Bereitstellungsworkflow integrieren kannst. Du kannst the full list of supported export formats and configuration options einsehen, um das beste Setup für deine Anwendung auszuwählen.

Das ersetzende LiteRT-Format unterstützt die Modi Export, Predict und Validate. Exportiere dein Modell und lade dann das exportierte .tflite-Modell, um eine Inferenz auszuführen oder dessen Genauigkeit zu validieren.

Exportieren
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to LiteRT format
model.export(format="litert", imgsz=640)  # use imgsz=224 for classification
Vorhersagen
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Export-Argumente#

ArgumentTypStandardBeschreibung
formatstr'litert'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen definiert.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Kann eine Ganzzahl für quadratische Bilder oder ein Tupel (height, width) für bestimmte Abmessungen sein.
quantizeint oder strNoneQuantisierungspräzision: 8 (statisch INT8, int8-Gewichte + int8-Aktivierungen; benötigt Kalibrierung data/fraction), 'w8a16' (statisch, int8-Gewichte + int16-Aktivierungen; benötigt Kalibrierung data/fraction), 'w8a32' (dynamisch INT8, int8-Gewichte + FP32-Aktivierungen; keine Kalibrierung erforderlich) oder 32/nicht gesetzt (FP32). FP16 wird nicht separat exportiert – ein FP32-Modell läuft auf GPU-Delegaten automatisch in FP16. Ersetzt die veralteten half/int8-Flags.
batchint1Legt die Batch-Inferenzgröße des exportierten Modells fest oder die maximale Anzahl an Bildern, die das exportierte Modell im Modus predict gleichzeitig verarbeitet.
datastrNonePfad zum Dataset-YAML, wichtig für die Quantisierung; die Klassifizierung erfordert stattdessen ein Dataset-Verzeichnis oder einen integrierten Dataset-Namen. Wenn dies bei quantize=8 oder 'w8a16' weggelassen wird, wählt Ultralytics das Standard-Kalibrierungs-Dataset für die Modellaufgabe aus.
fractionfloat, int oder list1.0Kalibrierungs-Teilmenge als Verhältnis, Bildanzahl oder [train, val]-Verhältnisse/-Anzahlen; eine Liste schränkt train oder val ein, während test vollständig bleibt.
devicestrNoneGibt das Gerät für den Export an: CPU (device=cpu), MPS für Apple Silicon (device=mps).

Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Exportieren.

Bereitstellung exportierter YOLO26 TFLite-Modelle#

Nachdem du dein Ultralytics YOLO26-Modell in das LiteRT-Format exportiert hast, kannst du das resultierende .tflite-Modell bereitstellen. Der primäre und empfohlene erste Schritt zum Ausführen eines TFLite-Modells ist die Verwendung der YOLO("model.tflite")-Methode, wie im vorherigen Nutzungscodeausschnitt beschrieben. Für ausführliche Anweisungen zur Bereitstellung deiner TFLite-Modelle in verschiedenen anderen Umgebungen wirf jedoch einen Blick auf die folgenden Ressourcen:

  • Android: Ein Schnellstart-Leitfaden zur Integration von TensorFlow Lite in Android-Anwendungen, der leicht verständliche Schritte zum Einrichten und Ausführen von Modellen für maschinelles Lernen bietet.

  • iOS: Sieh dir diesen detaillierten Leitfaden für Entwickler zur Integration und Bereitstellung von TensorFlow Lite-Modellen in iOS-Anwendungen an, der Schritt-für-Schritt-Anleitungen und Ressourcen bietet.

  • 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 Projekten für maschinelles Lernen auf Mobil- und Edge-Geräten zu implementieren.

Zusammenfassung#

Dieser Leitfaden bewahrt den Legacy-TFLite-Bereitstellungsworkflow. Verwende für neue Exporte LiteRT, um .tflite-Modelle für Edge-Computing-Umgebungen zu erstellen.

Weitere Details zur Verwendung findest du in der offiziellen TFLite-Dokumentation.

Wenn du außerdem neugierig auf andere Ultralytics YOLO26-Integrationen bist, schau dir unsere Seite zum Integrationsleitfaden an. Dort findest du viele hilfreiche Informationen und Einblicke.

FAQ#

  • Verwende für einen neuen Export das LiteRT-Format. Installiere zuerst das erforderliche Paket mit:

    pip install ultralytics

    Verwende dann das folgende Code-Snippet, um dein Modell zu exportieren:

    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to LiteRT format
    model.export(format="litert", imgsz=640)  # use imgsz=224 for classification

    Für CLI-Benutzer kannst du dies erreichen mit:

    yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification

    Weitere Details findest du im Ultralytics Export-Leitfaden.

  • TensorFlow Lite (TFLite) ist ein Open-Source-Deep-Learning-Framework für die geräteinterne Inferenz, das sich ideal für die Bereitstellung von YOLO26-Modellen auf Mobil-, Embedded- und IoT-Geräten eignet. Zu den Hauptvorteilen gehören:

    • On-Device-Optimierung: Minimiere Latenz und verbessere die Privatsphäre durch lokale Datenverarbeitung.
    • Plattformkompatibilität: Unterstützt Android, iOS, Embedded Linux und MCU.
    • Leistung: Nutzt Hardwarebeschleunigung, um Modellgeschwindigkeit und -effizienz zu optimieren.

    Weitere Informationen findest du im TFLite-Leitfaden.

  • Ja, du kannst YOLO26 TFLite-Modelle auf dem Raspberry Pi ausführen, um die Inferenzgeschwindigkeiten zu verbessern. Exportiere zuerst dein Modell in das LiteRT-Format, wie oben erläutert. Verwende dann ein Werkzeug wie den TensorFlow Lite Interpreter, um das Modell auf deinem Raspberry Pi auszuführen.

    Für weitere Optimierungen kannst du die Verwendung von Coral Edge TPU in Betracht ziehen. Detaillierte Schritte findest du in unserem Raspberry Pi-Bereitstellungsleitfaden und dem Edge TPU-Integrationsleitfaden.

  • Ja, TFLite unterstützt die Bereitstellung auf Mikrocontrollern mit begrenzten Ressourcen. Die Kern-Runtime von TFLite benötigt nur 16 KB Speicher auf einem Arm Cortex M3 und kann grundlegende YOLO26-Modelle ausführen. Dies macht es für den Einsatz auf Geräten mit minimaler Rechenleistung und minimalem Speicher geeignet.

    Besuche als ersten Schritt den Leitfaden zu TFLite Micro für Mikrocontroller.

  • TensorFlow Lite bietet eine umfassende Plattformkompatibilität, die es dir ermöglicht, YOLO26-Modelle auf einer Vielzahl von Geräten bereitzustellen, darunter:

    • Android und iOS: Native Unterstützung durch TFLite Android- und iOS-Bibliotheken.
    • Embedded Linux: Ideal für Einplatinencomputer wie den Raspberry Pi.
    • Mikrocontroller: Geeignet für MCUs mit eingeschränkten Ressourcen.

    Weitere Informationen zu Bereitstellungsoptionen findest du in unserem detaillierten Bereitstellungsleitfaden.

  • Wenn bei der Exportierung von YOLO26-Modellen nach LiteRT Fehler auftreten, gehören zu den üblichen Lösungen:

    • Paketkompatibilität prüfen: Stelle sicher, dass du kompatible Versionen von Ultralytics, litert-torch und ai-edge-litert verwendest. Siehe unseren Installationsleitfaden.
    • Modellunterstützung: Überprüfe, ob das spezifische YOLO26-Modell den LiteRT-Export unterstützt, indem du die Ultralytics-Exportdokumentationsseite konsultierst.
    • Quantisierungsprobleme: Stelle bei Verwendung der INT8-Quantisierung sicher, dass dein Dataset-Pfad im Parameter data korrekt angegeben ist.

    Weitere Tipps zur Fehlerbehebung findest du in unserem Leitfaden zu häufigen Problemen.

Kommentare