Ultralytics YOLO27: Trag dich auf die Warteliste ein.
Get Started

YOLO-Modelle für die Bereitstellung auf Edge-Geräten und im Web nach LiteRT exportieren#

LiteRT edge deployment framework

LiteRT (Kurzform für Lite Runtime) ist die leistungsstarke Laufzeitumgebung von Google für KI direkt auf Geräten. Sie ist die nächste Generation und der neue Name von TensorFlow Lite (TFLite) und verwendet dasselbe Modellformat .tflite. Mit LiteRT lässt sich ein einzelnes exportiertes Ultralytics YOLO-Modell auf Mobilgeräten, eingebetteten Systemen, Edge-Geräten und im Browser bereitstellen. Damit deckt es alles ab, wofür zuvor die getrennten Exportformate tflite und tfjs erforderlich waren.



Ansehen: So exportierst du Ultralytics YOLO26 nach Google LiteRT | Stelle Vision-KI auf Android und iOS bereit | Mobile KI 📱🚀

Das LiteRT-Exportformat optimiert deine Modelle für Aufgaben wie Objekterkennung, Segmentierung, Posenschätzung und Klassifizierung, damit sie auf einer Vielzahl von Geräten schnell und offline ausgeführt werden können.

Führe YOLO noch heute mit dem offiziellen Flutter-Plugin und LiteRT auf Android aus

Das offizielle Ultralytics YOLO Flutter-Plugin führt LiteRT-Exporte .tflite sofort einsatzbereit auf Android aus. Dazu gehören Kamera-Inferenz in Echtzeit, Vorhersagen für einzelne Bilder, GPU-Beschleunigung und der automatische Modelldownload für alle sieben YOLO26-Aufgaben einschließlich Tiefe. Für Apple-Geräte verwendest du den CoreML-Export; Informationen zu Qualcomm Snapdragon NPUs findest du in der Qualcomm-QNN-Integration.

Offizielle Eingabegrößen für Mobilgeräte

Exportiere Klassifizierungsmodelle mit imgsz=224. Exportiere Erkennungs-, Segmentierungs-, semantische, Tiefen-, Posenschätzungs- und OBB-Modelle mit imgsz=640. Dieser Standard für 224/640 wird von den offiziellen mobilen LiteRT-, CoreML- und QNN-Modellen verwendet.

Führe YOLO noch heute mit LiteRT.js und dem offiziellen npm-Paket @ultralytics/yolo im Web aus

Das offizielle Ultralytics-YOLO-NPM-Paket führt LiteRT-Exporte .tflite mit LiteRT.js direkt im Browser aus – ohne Server oder Python. Es bietet Echtzeit-Inferenz mit der Webcam, Vorhersagen für einzelne Bilder und WebGPU-Beschleunigung (mit automatischem CPU-/WASM-Fallback) für sechs YOLO26-Aufgaben (Erkennung, Segmentierung, semantische Segmentierung, Klassifizierung, Posenschätzung, OBB). Mit WebGPU ist es oft ~2× schneller als ONNX Runtime Web.

npm i @ultralytics/yolo @litertjs/core

Warum solltest du nach LiteRT exportieren?#

LiteRT ist ein Open-Source-Framework für Inferenz direkt auf Geräten, auch bekannt als Edge Computing. Es stellt Entwicklern Werkzeuge bereit, um trainierte Modelle auf Mobilgeräten, eingebetteten Systemen und IoT-Geräten sowie herkömmlichen Computern auszuführen – und mit LiteRT.js auch direkt in Webbrowsern und Node.js.

Ein Modellformat für alle Zielplattformen:

  • Mobilgeräte und eingebettete Systeme: Android, iOS, eingebettetes Linux und Mikrocontroller (MCUs).
  • Edge-Beschleuniger: Kompatibel mit Coral Edge TPU für zusätzliche Beschleunigung.
  • Browser und Node.js: LiteRT.js führt dasselbe Modell .tflite im Web mit WebGPU-/WASM-Beschleunigung aus – ein separater TensorFlow.js-Export ist nicht erforderlich.

Wichtige Funktionen von LiteRT-Modellen#

  • Optimierung auf dem Gerät: Verringert die Latenz durch lokale Datenverarbeitung, verbessert den Datenschutz, da keine personenbezogenen Daten übertragen werden, und reduziert die Modellgröße, um Speicherplatz zu sparen.
  • Unterstützung mehrerer Plattformen: Läuft auf Android, iOS, eingebettetem Linux, Mikrocontrollern und modernen Webbrowsern.
  • Hardwarebeschleunigung: Nutzt XNNPACK auf der CPU sowie GPU-Beschleunigung über OpenCL, Metal und WebGPU. Der GPU-Delegate läuft standardmäßig mit FP16 für zusätzliche Geschwindigkeit.
  • Quantisierung: Unterstützt FP32, statisches INT8 (quantize=8, int8-Gewichte + int8-Aktivierungen), statisches INT16 mit Aktivierungen (quantize="w8a16", int8-Gewichte + int16-Aktivierungen für höhere Genauigkeit) und dynamisches INT8 (quantize="w8a32", int8-Gewichte + FP32-Aktivierungen, keine Kalibrierungsdaten erforderlich), um Modelle zu komprimieren und die Inferenz mit minimalem Verlust an Genauigkeit zu beschleunigen.
  • Unterstützung verschiedener Programmiersprachen: Kompatibel mit Java/Kotlin, Swift, Objective-C, C++, Python und JavaScript.

Gemessene Leistung#

Hardware: Xiaomi 17 mit 12 GB LPDDR5X-Speicher und Android 17 / API 37. Der 3-nm-Snapdragon 8 Elite Gen 5 (SM8850) verfügt über eine 8-Core-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.

ModellAufgabeGröße
(Pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ms)
YOLO26nDetect64036.9
1.9 / 32.6 / 2.3
10.6
1.8 / 6.2 / 2.6
10.1
3.5 / 4.0 / 2.5
YOLO26n-segSegment64050.5
1.9 / 42.9 / 5.8
18.0
1.9 / 9.5 / 6.6
19.2
3.6 / 5.9 / 9.7
YOLO26n-semSemantisch64045.7
1.9 / 35.7 / 8.2
30.6
1.9 / 20.5 / 8.3
25.8
3.6 / 11.0 / 11.3
YOLO26n-depthTiefe64066.8
2.2 / 55.0 / 9.7
21.9
2.1 / 10.1 / 9.8
24.8
4.3 / 6.0 / 14.5
YOLO26n-clsKlassifizieren2243.6
0.3 / 3.3 / 0.0
2.0
0.4 / 1.4 / 0.2
1.5
0.6 / 0.7 / 0.3
YOLO26n-posePose64039.9
2.0 / 36.5 / 1.4
10.0
1.8 / 6.7 / 1.4
11.5
3.5 / 4.2 / 3.8
YOLO26n-obbOBB64036.3
2.0 / 33.2 / 1.2
10.1
2.6 / 5.9 / 1.6
8.2
3.5 / 3.7 / 0.9
  • Die Geschwindigkeitswerte sind Latenzen bei einem einzelnen Bild in einem Burst – der Mittelwert aus 15 Durchläufen nach 3 Aufwärmdurchläufen auf bus.jpg, gemessen mit dem Ultralytics-Flutter-Plugin 0.7.1 und den offiziellen v0.7.0-Assets (Exporte aus Ultralytics 8.4.188). Die Reihenfolge von CPU und GPU wechselte zwischen den Aufgaben innerhalb eines sequenziellen Durchlaufs. Native Protokolle bestätigten, dass jede CPU-Zeile LiteRT CPU/XNNPACK verwendete und jede GPU-Zeile den vollständigen Berechnungsgraphen an LiteRT OpenCL (LITERT_CL) übergab.
  • Der LiteRT-Export zeichnet das PyTorch-Modell direkt nach und erzeugt ein NCHW-.tflite mit einem Float-Eingabewert — der GPU-Delegate kompiliert den gesamten Graphen (hier laufen alle sieben Aufgaben auf der Adreno-GPU), und w8a32 benötigt keine Kalibrierungsdaten. Nutzer sollten Tensorformen und Signaturnamen auslesen, statt das ältere onnx2tf-NHWC-Layout oder Identity-Ausgabenamen vorauszusetzen; RGB-Daten sollten direkt als planares CHW verpackt oder vor der Inferenz transponiert werden. Semantische Exporte geben NCHW-Logits zurück und erfordern ein klassenweises Argmax auf dem Host. Die offiziellen Android-Assets sind im Release v0.7.0 der yolo-flutter-app verfügbar; den ausführlichen Benchmarkbericht findest du in der Flutter-Performance-Dokumentation.
  • Die Spalte NPU zeigt den nativen NPU-Pfad von LiteRT: einen FP32-Export (yolo export format=litert, ohne quantize), der auf dem Gerät von den Laufzeitumgebungen litert-npu-runtime-qualcomm und -mediatek 2.3.0 kompiliert wurde. Gemessen wurde mit einem Prototyp-Build des Flutter-Plugins mit NPU-Unterstützung (noch nicht veröffentlicht). Beim ersten Laden ist diese Kompilierung enthalten (etwa 0.3 s für n, bis zu 6 s für x). Die w8a32-Assets lassen sich auf diesen NPUs nicht vollständig kompilieren. LiteRT meldet eine NPU-Kompilierung, auch wenn es den Berechnungsgraphen unbemerkt auf der GPU ausführt. Deshalb wurde jede NPU-Zeile mit der GPU-Zeit abgeglichen; Zeilen mit Rückfall auf die GPU sind mit — gekennzeichnet.
  • Die entsprechenden Werte für die Snapdragon-Hexagon-NPU mit den offiziellen QNN-Assets findest du unter Qualcomm-QNN-Integration.
  • Vergleiche die Ergebnisse für die Apple-CPU und den Beschleuniger in der CoreML-Integration.

Die folgenden Gerätedurchläufe verwenden dieselben offiziellen v0.7.0-Assets.

Google Pixel 10#

Hardware: Google Pixel 10 mit 12 GB Speicher und Android 17 / API 37. Der 3-nm-Google Tensor G5 verfügt über eine 8-Core-CPU (1 Prime-Kern mit bis zu 3,78 GHz, 5 Performance-Kerne mit bis zu 3,05 GHz und 2 Effizienzkerne mit bis zu 2,25 GHz), eine PowerVR-D-Series-GPU und eine Google TPU. Die Kerntaktraten und der Name des GPU-Treibers wurden auf dem Benchmarkgerät ausgelesen, da Google diese Angaben nicht in den verlinkten technischen Daten veröffentlicht.

ModellAufgabeGröße
(Pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetect64036.6
1.5 / 33.5 / 1.6
36.5
3.5 / 28.4 / 4.6
YOLO26n-segSegment64053.1
1.5 / 45.8 / 5.7
51.5
1.6 / 40.1 / 9.9
YOLO26n-semSemantisch64057.2
1.5 / 47.7 / 8.0
75.9
1.8 / 63.4 / 10.8
YOLO26n-depthTiefe64075.0
1.6 / 65.1 / 8.3
50.1
1.7 / 33.5 / 14.9
YOLO26n-clsKlassifizieren2246.1
0.3 / 5.5 / 0.3
12.1
0.9 / 11.0 / 0.1
YOLO26n-posePose64035.2
1.5 / 31.9 / 1.8
38.2
3.5 / 29.3 / 5.4
YOLO26n-obbOBB64032.7
1.5 / 29.3 / 1.9
38.8
3.8 / 29.6 / 5.4

Benchmark: Mittelwert aus 15 predict()-Aufrufen nach 3 Aufwärmdurchläufen auf bus.jpg, unter Verwendung von ultralytics_yolo 0.7.1 und den offiziellen v0.7.0-Assets. Die Reihenfolge von CPU und GPU wechselt zwischen den Aufgaben innerhalb eines sequenziellen Durchlaufs. Native Protokolle bestätigten, dass jede CPU-Zeile LiteRT CPU/XNNPACK verwendete und jede GPU-Zeile den vollständigen Berechnungsgraphen an LiteRT OpenCL (LITERT_CL) übergab. Für die Tensor-NPU gibt es keine LiteRT-Zeile: Googles EdgeTPU-Dienst weist Apps zurück, die nicht auf der Zulassungsliste stehen, und LiteRT führt das Modell dann auf der GPU aus.

Samsung Galaxy S26#

Hardware: Samsung Galaxy S26 (SM-S942B) mit 12 GB Speicher und Android 17 / API 37. Der 2-nm-Exynos 2600 verfügt über eine 10-Core-Armv9.3-CPU (1 C1-Ultra-Kern mit bis zu 3,8 GHz, 3 C1-Pro-Performance-Kerne mit bis zu 3,26 GHz und 6 C1-Pro-Effizienzkerne mit bis zu 2,76 GHz), eine Xclipse-960-GPU und eine Samsung-NPU.

ModellAufgabeGröße
(Pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT w8a32 AOT
(ms)
YOLO26nDetect64030.2
1.3 / 27.3 / 1.6
15.9
1.4 / 11.5 / 2.9
12.2
1.3 / 8.6 / 2.2
YOLO26n-segSegment64045.6
1.3 / 39.1 / 5.2
30.5
1.3 / 23.6 / 5.6
17.0
1.4 / 9.7 / 5.8
YOLO26n-semSemantisch64038.1
1.3 / 28.6 / 8.2
26.1
1.3 / 16.8 / 7.9
28.3
1.7 / 15.1 / 11.5
YOLO26n-depthTiefe64063.5
1.4 / 53.6 / 8.4
37.3
1.4 / 24.6 / 11.3
28.4
2.1 / 12.9 / 13.4
YOLO26n-clsKlassifizieren2243.8
0.2 / 3.4 / 0.2
2.8
0.2 / 2.6 / 0.0
6.1
0.5 / 5.2 / 0.4
YOLO26n-posePose64031.1
1.3 / 28.4 / 1.4
18.4
1.6 / 13.0 / 3.8
13.5
1.8 / 9.5 / 2.2
YOLO26n-obbOBB64027.9
1.3 / 25.7 / 0.9
15.3
1.9 / 11.4 / 2.1
11.4
1.7 / 8.3 / 1.4

Benchmark: Mittelwert aus 15 predict()-Aufrufen nach 3 Aufwärmdurchläufen auf bus.jpg, unter Verwendung von ultralytics_yolo 0.7.1 und den offiziellen v0.7.0-Assets. Die Reihenfolge von CPU und GPU wechselt zwischen den Aufgaben innerhalb eines sequenziellen Durchlaufs. Native Protokolle bestätigten, dass jede CPU-Zeile LiteRT CPU/XNNPACK verwendete und jede GPU-Zeile den vollständigen Berechnungsgraphen an LiteRT OpenCL (LITERT_CL) übergab. Die NPU-Spalte verwendet die w8a32-Assets, die vorab für den Exynos 2600 (E9965) mit Samsungs Compiler-Plugin für LiteRT kompiliert wurden. Samsung bietet in LiteRT 2.3 keinen Compiler auf dem Gerät, und Google veröffentlicht noch keine Laufzeitumgebung für Samsung-NPUs. Daher wurden diese Zeilen mit einer Dispatch-Bibliothek gemessen, die aus den LiteRT-2.3-Quellen erstellt wurde.

Xiaomi 17T Pro#

Hardware: Xiaomi 17T Pro (2602EPTC0G) mit 12 GB LPDDR5X-Speicher und Android 16 / API 36. Der 3-nm- MediaTek Dimensity 9500 (MT6993) verfügt über eine Armv9.3-CPU mit 8 Kernen (1 C1-Ultra-Kern mit bis zu 4,21 GHz, 3 C1-Premium-Kerne mit bis zu 3,5 GHz und 4 C1-Pro-Kerne mit bis zu 2,7 GHz), eine Mali-G1-Ultra-MC12-GPU und eine MediaTek-NPU 990.

ModellAufgabeGröße
(Pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ms)
YOLO26nDetect64031.4
1.5 / 28.0 / 1.9
25.6
1.4 / 22.2 / 2.0
11.0
1.3 / 7.8 / 1.8
YOLO26n-segSegment64077.8
2.6 / 65.3 / 9.9
47.4
2.6 / 33.6 / 11.3
36.5
2.6 / 23.4 / 10.4
YOLO26n-semSemantisch64081.3
2.6 / 62.2 / 16.5
79.3
2.6 / 59.5 / 17.1
87.6
2.6 / 68.3 / 16.7
YOLO26n-depthTiefe640111.3
3.4 / 91.1 / 16.8
55.3
2.8 / 36.3 / 16.1
—
YOLO26n-clsKlassifizieren2246.3
0.5 / 5.4 / 0.4
8.1
0.5 / 7.5 / 0.1
3.2
0.5 / 2.2 / 0.5
YOLO26n-posePose64053.9
2.6 / 49.5 / 1.8
32.8
2.7 / 26.7 / 3.4
16.2
2.9 / 11.1 / 2.3
YOLO26n-obbOBB64049.5
2.7 / 44.4 / 2.4
29.4
2.8 / 22.7 / 3.9
—

Benchmark: Mittelwert aus 15 predict()-Aufrufen nach 3 Aufwärmläufen auf bus.jpg, mit ultralytics_yolo 0.7.1 und den offiziellen v0.7.0-Assets. Die Reihenfolge von CPU und GPU wechselt zwischen den Aufgaben innerhalb eines einzelnen sequenziellen Durchlaufs. Native Protokolle bestätigten, dass jede CPU-Zeile LiteRT CPU/XNNPACK und jede GPU-Zeile den vollständigen Graphen an LiteRT OpenCL (LITERT_CL) übergab. Für Depth und OBB gibt es keine NPU-Ergebnisse: Der MediaTek-NPU-Compiler weist ihre Exponential- und trigonometrischen Operationen zurück, und LiteRT führt diese Graphen auf der GPU aus.

Unterstützte Aufgaben#

Der LiteRT-Export unterstützt alle sieben Ultralytics-Aufgaben. Semantische Segmentierung und Tiefenschätzung sind nur mit YOLO26 verfügbar, der einzigen Modellfamilie, die diese Köpfe enthält.

AufgabeYOLOv8YOLO11YOLO26
Erkennung✅✅✅
Segmentierung✅✅✅
Semantik❌❌✅
Tiefe❌❌✅
Klassifizierung✅✅✅
Pose✅✅✅
OBB✅✅✅

Export nach LiteRT: Dein YOLO-Modell konvertieren#

Du kannst die Effizienz der Ausführung auf dem Gerät verbessern und mehr Bereitstellungsoptionen nutzen, indem du deine Modelle ins LiteRT-Format konvertierst.

Installation#

Führe zum Installieren des erforderlichen Pakets Folgendes aus:

Installation
# Install the required package for YOLO
pip install ultralytics

Ausführliche Anleitungen und bewährte Vorgehensweisen findest du in unserem Ultralytics-Installationsleitfaden. Falls Probleme auftreten, sieh dir unseren Leitfaden zu häufigen Problemen an.

Plattformunterstützung

Der LiteRT-Export wird derzeit unter Linux x86_64 und macOS unterstützt. Das exportierte .tflite-Modell selbst läuft auf allen von LiteRT unterstützten Plattformen (Mobilgeräte, eingebettete Systeme, Edge-Geräte und Browser).

Verwendung#

Alle Ultralytics-YOLO-Modelle unterstützen den Export standardmäßig. Das LiteRT-Format unterstützt die Modi Export, Vorhersage und Validierung. Du kannst also ein Modell exportieren und anschließend laden, um lokal Inferenzen auszuführen oder die Genauigkeit zu validieren.

Exportieren
from ultralytics import YOLO

# Ein YOLO26-Modell laden
model = YOLO("yolo26n.pt")

# Modell ins LiteRT-Format exportieren
model.export(format="litert", imgsz=640)  # Erstellt „yolo26n.tflite“; für die Klassifizierung imgsz=224 verwenden
Quantisierter Export
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Dynamisches INT8: int8-Gewichte, FP32-Aktivierungen – keine Kalibrierungsdaten erforderlich
model.export(format="litert", quantize="w8a32", imgsz=640)  # Erstellt „yolo26n_w8a32.tflite“

# Statisches INT8: int8-Gewichte + int8-Aktivierungen – benötigt Kalibrierungsdaten
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # Erstellt „yolo26n_int8.tflite“

# Statisches w8a16: int8-Gewichte + int16-Aktivierungen (höhere Genauigkeit) – benötigt Kalibrierungsdaten
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # Erstellt „yolo26n_w8a16.tflite“
Vorhersagen
from ultralytics import YOLO

# Exportiertes LiteRT-Modell laden
model = YOLO("yolo26n.tflite")

# Inferenz ausführen
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
from ultralytics import YOLO

# Exportiertes LiteRT-Modell laden
model = YOLO("yolo26n.tflite")

# Die Genauigkeit anhand des COCO8-Datensatzes validieren
metrics = model.val(data="coco8.yaml")

Exportargumente#

ArgumentTypStandardBeschreibung
formatstr'litert'Zielformat des exportierten Modells, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen festlegt.
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 strNoneQuantisierungsgenauigkeit: 8 (statisches INT8, int8-Gewichte + int8-Aktivierungen; benötigt Kalibrierungsdaten data/fraction), 'w8a16' (statisch, int8-Gewichte + int16-Aktivierungen; benötigt Kalibrierungsdaten data/fraction), 'w8a32' (dynamisches INT8, int8-Gewichte + FP32-Aktivierungen; keine Kalibrierung erforderlich) oder 32/nicht festgelegt (FP32). FP16 wird nicht separat exportiert (siehe Hinweis unten). Ersetzt die veralteten Optionen half/int8.
batchint1Gibt die Batchgröße für die Inferenz des Exportmodells oder die Höchstzahl der Bilder an, die das exportierte Modell gleichzeitig im predict-Modus verarbeiten kann.
datastrNoneDataset-YAML-Datei für die INT8-Kalibrierung; bei der Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder ein integrierter Dataset-Name angegeben. Wenn quantize=8 oder 'w8a16' nicht angegeben ist, wählt Ultralytics das standardmäßige Kalibrierungs-Dataset für die jeweilige Modellaufgabe aus.
fractionfloat, int oder list1.0Kalibrierungsteilstichprobe als Verhältnis, Bildanzahl oder [train, val, test]-Verhältnisse/-Anzahlen. Bei Listen mit zwei Elementen bleibt test vollständig erhalten, während 0 es überspringt.
devicestrNoneGibt das Gerät für den Export an. Der LiteRT-Export läuft auf der CPU (device=cpu).
FP16-Genauigkeit

Im Gegensatz zum älteren tflite-Export benötigt LiteRT keinen separaten FP16-Export. Ein FP32-.tflite-Modell wird zur Laufzeit mit halber Genauigkeit ausgeführt, wenn ein GPU-Delegate (WebGPU, OpenCL, Metal) verwendet wird – dies ist die offizielle LiteRT-Methode für FP16-Inferenzen.

Weitere Informationen zum Exportvorgang findest du auf der Ultralytics-Dokumentationsseite zum Export.

Inference auf Intel-CPU und NPU#

Exportierte .tflite-Modelle laufen auf Intel-Hardware über das Plugin LiteRT Intel OpenVINO. Gib device=intel:cpu oder device=intel:npu an; Ultralytics installiert ai-edge-litert>=2.3.0 und ai-edge-litert-sdk-intel bei der ersten Verwendung. Für die NPU wird ein Intel Core Ultra-Prozessor benötigt, auf dem der Intel-NPU-Treiber installiert ist.

Vorhersagen
from ultralytics import YOLO

model = YOLO("yolo26n.tflite")
results = model("https://ultralytics.com/images/bus.jpg", device="intel:npu")  # oder "intel:cpu"

Hardware: Intel Core Ultra X7 358H (Panther Lake) und Intel AI Boost NPU 5010, Fedora Linux, NPU-Treiber 1.38.0, ai-edge-litert 2.3.0.

ModellAufgabeGröße
(Pixel)
CPU
w8a32 LiteRT
(ms)
CPU
w8a32 Intel
(ms)
NPU
w8a32 Intel
(ms)
YOLO26nDetect64017.5
0.8 / 16.1 / 0.6
22.6
1.2 / 20.6 / 0.8
4.8
1.0 / 3.3 / 0.4
YOLO26n-segSegment64024.2
0.9 / 22.1 / 1.3
32.6
1.0 / 30.1 / 1.5
6.2
0.8 / 4.2 / 1.2
YOLO26n-semSemantisch64025.2
1.0 / 14.2 / 10.0
33.1
1.1 / 21.9 / 10.2
16.5
1.0 / 5.5 / 10.0
YOLO26n-depthTiefe64031.7
0.9 / 30.2 / 0.5
76.6
0.9 / 75.2 / 0.5
9.1
1.0 / 7.5 / 0.5
YOLO26n-clsKlassifizieren2244.6
2.8 / 1.7 / 0.0
7.3
3.3 / 3.9 / 0.0
4.1
3.2 / 0.9 / 0.0
YOLO26n-posePose64020.3
0.8 / 19.0 / 0.5
28.6
1.1 / 26.8 / 0.8
6.3
0.8 / 4.9 / 0.5
YOLO26n-obbOBB64017.2
0.8 / 16.1 / 0.3
22.1
1.2 / 20.5 / 0.4
4.6
0.9 / 3.4 / 0.3

Benchmark: Mittelwert aus 15 Aufrufen von predict() nach 3 Aufwärmläufen auf bus.jpg, mit ultralytics 8.4.174 und ai-edge-litert 2.3.0 sowie Exporten von w8a32. Jede Zelle zeigt die Gesamtzeit und darunter die Aufteilung in Vorverarbeitung, Inferenz und Nachverarbeitung.

Exportierte YOLO-LiteRT-Modelle bereitstellen#

Nachdem du dein Ultralytics-YOLO-Modell nach LiteRT exportiert hast, kannst du es auf verschiedenen Plattformen bereitstellen. Am schnellsten überprüfst du es lokal mit der oben gezeigten Methode YOLO("yolo26n.tflite"). Weitere Ressourcen zur Bereitstellung in anderen Umgebungen findest du hier:

Mobilgeräte & eingebettete Systeme#

  • Android: Eine Schnellstartanleitung zur Integration von LiteRT in Android-Anwendungen.
  • iOS: Eine Anleitung zur Integration und Bereitstellung von LiteRT-Modellen in iOS-Anwendungen.
  • Eingebettetes Linux & Raspberry Pi: Führe LiteRT-Modelle auf Einplatinencomputern aus, bei Bedarf beschleunigt durch einen Coral Edge TPU.
  • Mikrocontroller: Stelle Modelle auf MCUs mit nur wenigen Kilobyte Speicher bereit – die Laufzeitumgebung benötigt etwa 16 KB auf einem Arm Cortex-M3.

Browser & Node.js (LiteRT.js)#

  • LiteRT.js im Überblick: Führe dasselbe .tflite-Modell direkt im Browser mit WebGPU/WASM-Beschleunigung aus. So entfällt die serverseitige Berechnung und die Daten bleiben auf dem Gerät des Benutzers.
  • Beispiele von Anfang bis Ende: Praktische Beispiele und Tutorials zur Implementierung von LiteRT auf Mobilgeräten, Edge-Geräten und im Web.

Zusammenfassung#

In dieser Anleitung haben wir behandelt, wie du Ultralytics YOLO-Modelle in das LiteRT-Format exportierst. Indem LiteRT die Bereitstellung auf Mobilgeräten und Edge-Geräten (früher TFLite) sowie im Browser (früher TF.js) in einem einzigen .tflite-Modell zusammenführt, macht es deine YOLO-Modelle schneller, kleiner und auf praktisch jedem Gerät einsetzbar.

Weitere Informationen findest du in der offiziellen LiteRT-Dokumentation.

Wenn du dich auch für andere Ultralytics-YOLO-Integrationen interessierst, findest du viele hilfreiche Ressourcen auf unserer Seite mit Integrationsanleitungen.

Häufig gestellte Fragen#

  • Verwende die Ultralytics-Bibliothek, um ein YOLO-Modell nach LiteRT (.tflite) zu exportieren. Installiere zuerst das Paket:

    pip install ultralytics

    Exportiere anschließend dein Modell:

    from ultralytics import YOLO
    
    # Ein YOLO26-Modell laden
    model = YOLO("yolo26n.pt")
    
    # Modell ins LiteRT-Format exportieren
    model.export(format="litert", imgsz=640)  # für die Klassifizierung imgsz=224 verwenden

    Für CLI-Nutzer:

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

    Weitere Informationen findest du in der Ultralytics-Exportanleitung.

  • LiteRT ist der neue Name für TensorFlow Lite – dasselbe .tflite-Modellformat, dieselbe Laufzeitumgebung, von Google umbenannt. Bei Ultralytics deckt ein einziges litert-Exportformat jetzt beide Anwendungsfälle ab, für die zuvor zwei separate Formate erforderlich waren:

    • Das frühere Format tflite → Bereitstellung auf Mobilgeräten, eingebetteten Systemen und Edge-Geräten.
    • Das frühere Format tfjs → Bereitstellung im Browser und mit Node.js, jetzt über LiteRT.js, das dieselbe .tflite-Datei ausführt.

    Wenn du bereits eine .tflite-Datei hast, kannst du sie direkt mit YOLO("model.tflite") laden. Sie wird dann über das LiteRT-Backend ausgeführt.

  • Ja. Exportiere dein Modell ins LiteRT-Format und führe es anschließend auf einem Raspberry Pi aus, um die Inferenz zu beschleunigen. Für weitere Optimierungen kannst du einen Coral Edge TPU verwenden. Eine ausführliche Anleitung findest du in unserem Leitfaden zur Bereitstellung auf Raspberry Pi.

  • Ja. LiteRT.js führt dasselbe exportierte .tflite-Modell direkt in einem Webbrowser oder einer Node.js-Anwendung mit WebGPU/WASM-Beschleunigung aus. Damit wird der bisherige TensorFlow.js-Workflow ersetzt – es ist kein separater Browser-Export erforderlich. Stelle einfach dein LiteRT-Modell mit der LiteRT.js-Laufzeitumgebung bereit.

  • Ja – zur Laufzeit. Ein FP32-LiteRT-Modell wird automatisch mit FP16 ausgeführt, wenn es auf einem GPU-Delegate (WebGPU, OpenCL oder Metal) läuft. Das ist der offizielle LiteRT-Ansatz. Du benötigst also keinen speziellen FP16-Export. Für eine stärkere Komprimierung kannst du INT8-Quantisierung mit quantize=8 verwenden.

  • Wenn beim Export von YOLO-Modellen nach LiteRT Fehler auftreten, helfen häufig folgende Lösungen:

    • Plattform überprüfen: Der LiteRT-Export wird unter Linux x86_64 und macOS unterstützt. Prüfe, ob deine Umgebung diese Voraussetzungen erfüllt.
    • Paketkompatibilität überprüfen: Stelle sicher, dass du eine kompatible Version von Ultralytics verwendest. Weitere Informationen findest du in unserer Installationsanleitung.
    • Probleme mit der Quantisierung: Wenn du INT8-Quantisierung verwendest, stelle sicher, dass der Pfad zu deinem Datensatz im Parameter data korrekt angegeben ist.

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

Kommentare