Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Get Started

Esporta modelli YOLO in LiteRT per la distribuzione su dispositivi edge e sul web#

LiteRT edge deployment framework

LiteRT (abbreviazione di Lite Runtime) è il runtime ad alte prestazioni di Google per l'IA on-device. È la nuova generazione e il nuovo nome di TensorFlow Lite (TFLite) e utilizza lo stesso formato di modello .tflite. Con LiteRT, un singolo modello Ultralytics YOLO esportato può essere distribuito su dispositivi mobili, sistemi embedded, dispositivi edge e browser: copre tutto ciò che i precedenti formati di esportazione tflite e tfjs gestivano separatamente, riunendolo ora in un'unica soluzione.



Guarda: Come esportare Ultralytics YOLO26 in Google LiteRT | Distribuisci l'IA per la visione su Android e iOS | IA mobile 📱🚀

Il formato di esportazione LiteRT ottimizza i tuoi modelli per attività come il rilevamento degli oggetti, la segmentazione, la stima della posa e la classificazione, così possono funzionare rapidamente e offline su un'ampia gamma di dispositivi.

Esegui YOLO su Android con LiteRT oggi stesso tramite il plugin Flutter ufficiale

Il plugin ufficiale Ultralytics YOLO per Flutter esegue subito su Android le esportazioni LiteRT .tflite, offrendo inferenza in tempo reale dalla fotocamera, predizioni su singole immagini, accelerazione GPU e download automatico dei modelli per tutte e sette le attività di YOLO26, inclusa la profondità. Per i dispositivi Apple, usa l'esportazione CoreML; per le NPU Qualcomm Snapdragon, consulta l'integrazione Qualcomm QNN.

Dimensioni di input ufficiali per dispositivi mobili

Esporta i modelli di classificazione in imgsz=224. Esporta i modelli di rilevamento, segmentazione, semantica, profondità, posa e OBB in imgsz=640. Questo standard 224/640 è condiviso dagli asset mobili ufficiali LiteRT, CoreML e QNN.

Esegui YOLO sul web con LiteRT.js oggi stesso tramite il pacchetto npm ufficiale @ultralytics/yolo

Il pacchetto NPM ufficiale Ultralytics YOLO esegue direttamente nel browser le esportazioni LiteRT .tflite tramite LiteRT.js, senza server né Python. Offre inferenza in tempo reale tramite webcam, predizioni su singole immagini e accelerazione WebGPU (con fallback automatico a CPU/WASM) per sei attività di YOLO26 (rilevamento, segmentazione, semantica, classificazione, posa, OBB). Con WebGPU è spesso ~2× più veloce di ONNX Runtime Web.

npm i @ultralytics/yolo @litertjs/core

Perché esportare in LiteRT?#

LiteRT è un framework open source progettato per l'inferenza on-device, nota anche come edge computing. Offre agli sviluppatori gli strumenti per eseguire modelli addestrati su dispositivi mobili, sistemi embedded e IoT, computer tradizionali e, tramite LiteRT.js, direttamente nei browser web e in Node.js.

Un formato di modello, ogni destinazione:

  • Dispositivi mobili e sistemi embedded: Android, iOS, Linux embedded e microcontrollori (MCU).
  • Acceleratori edge: compatibile con Coral Edge TPU per un'ulteriore accelerazione.
  • Browser e Node.js: LiteRT.js esegue sul web lo stesso modello .tflite con accelerazione WebGPU/WASM, eliminando la necessità di un'esportazione TensorFlow.js separata.

Funzionalità principali dei modelli LiteRT#

  • Ottimizzazione sul dispositivo: riduce la latenza elaborando i dati localmente, migliora la privacy evitando di trasmettere dati personali e riduce al minimo le dimensioni del modello per risparmiare spazio.
  • Supporto di più piattaforme: funziona su Android, iOS, Linux embedded, microcontrollori e browser web moderni.
  • Accelerazione hardware: sfrutta XNNPACK sulla CPU e l'accelerazione GPU tramite OpenCL, Metal e WebGPU. Per impostazione predefinita, il delegate GPU esegue i calcoli in FP16 per offrire prestazioni ancora migliori.
  • Quantizzazione: supporta FP32, INT8 statica (quantize=8, pesi int8 + attivazioni int8), INT16 statica per le attivazioni (quantize="w8a16", pesi int8 + attivazioni int16 per una maggiore precisione) e INT8 dinamica (quantize="w8a32", pesi int8 + attivazioni FP32, senza necessità di dati di calibrazione) per comprimere i modelli e velocizzare l'inferenza con una perdita minima di precisione.
  • Supporto per diversi linguaggi: compatibile con Java/Kotlin, Swift, Objective-C, C++, Python e JavaScript.

Prestazioni misurate#

Hardware: Xiaomi 17 con 12 GB di memoria LPDDR5X e Android 17 / API 37. Il suo Snapdragon 8 Elite Gen 5 a 3 nm (SM8850) integra una CPU Qualcomm Oryon a 8 core (2 core Prime fino a 4.6 GHz e 6 core Performance fino a 3.62 GHz), una GPU Adreno e una NPU Hexagon.

ModelloAttivitàdimensione
(pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ms)
YOLO26nRilevamento64036.9
1.9 / 32.6 / 2.3
10.6
1.8 / 6.2 / 2.6
10.1
3.5 / 4.0 / 2.5
YOLO26n-segSegmentazione64050.5
1.9 / 42.9 / 5.8
18.0
1.9 / 9.5 / 6.6
19.2
3.6 / 5.9 / 9.7
YOLO26n-semSemantica64045.7
1.9 / 35.7 / 8.2
30.6
1.9 / 20.5 / 8.3
25.8
3.6 / 11.0 / 11.3
YOLO26n-depthProfondità64066.8
2.2 / 55.0 / 9.7
21.9
2.1 / 10.1 / 9.8
24.8
4.3 / 6.0 / 14.5
YOLO26n-clsClassificazione2243.6
0.3 / 3.3 / 0.0
2.0
0.4 / 1.4 / 0.2
1.5
0.6 / 0.7 / 0.3
YOLO26n-posePosa64039.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
  • I valori di velocità sono latenze a raffica su singola immagine: la media di 15 esecuzioni dopo 3 esecuzioni di riscaldamento su bus.jpg, misurata con il plugin Flutter di Ultralytics 0.7.1 e gli asset ufficiali v0.7.0 (esportazioni di Ultralytics 8.4.188). L'ordine CPU/GPU è stato alternato tra le attività in un'unica sequenza di test. I log nativi hanno confermato che ogni riga CPU usava LiteRT CPU/XNNPACK e ogni riga GPU delegava il grafo completo a LiteRT OpenCL (LITERT_CL).
  • L'esportazione LiteRT traccia direttamente il modello PyTorch, generando un .tflite NCHW con input float: il delegate GPU compila l'intero grafo (qui tutte e sette le attività vengono eseguite sulla GPU Adreno) e w8a32 non richiede dati di calibrazione. Chi utilizza il modello dovrebbe leggere le forme dei tensori e i nomi delle signature anziché dare per scontato il layout NHWC legacy di onnx2tf o i nomi di output Identity; i dati RGB vanno organizzati direttamente in CHW planare o trasposti prima dell'inferenza. Le esportazioni semantiche restituiscono logits NCHW e richiedono un argmax delle classi sul lato host. Gli asset Android ufficiali sono disponibili nella release v0.7.0 di yolo-flutter-app; il documento sulle prestazioni di Flutter contiene i dettagli completi del benchmark.
  • La colonna NPU indica il percorso NPU di LiteRT: un'esportazione FP32 (yolo export format=litert, senza quantize) compilata sul dispositivo dai runtime litert-npu-runtime-qualcomm e -mediatek 2.3.0, misurata con una build prototipo del plugin Flutter per NPU (non ancora rilasciata). Il primo caricamento include la compilazione (circa 0.3 s per n, fino a 6 s per x). Gli asset w8a32 non vengono compilati completamente su queste NPU. LiteRT segnala una compilazione NPU anche quando esegue silenziosamente il grafo sulla GPU, quindi ogni riga NPU è stata confrontata con il tempo GPU; le righe che sono passate alla GPU sono indicate con —.
  • I valori corrispondenti per la NPU Hexagon Snapdragon con gli asset QNN ufficiali sono disponibili nell'integrazione Qualcomm QNN.
  • Confronta i risultati di CPU/acceleratore Apple nell'integrazione CoreML.

I seguenti test comparativi sui dispositivi utilizzano gli stessi asset ufficiali v0.7.0.

Google Pixel 10#

Hardware: Google Pixel 10 con 12 GB di memoria e Android 17 / API 37. Il suo Google Tensor G5 a 3 nm integra una CPU a 8 core (1 core Prime fino a 3.78 GHz, 5 core Performance fino a 3.05 GHz e 2 core Efficiency fino a 2.25 GHz), una GPU PowerVR D-Series e una TPU Google. Le frequenze dei core e il nome del driver GPU sono stati rilevati dal dispositivo usato per i test comparativi, perché Google non li pubblica nelle specifiche collegate.

ModelloAttivitàdimensione
(pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nRilevamento64036.6
1.5 / 33.5 / 1.6
36.5
3.5 / 28.4 / 4.6
YOLO26n-segSegmentazione64053.1
1.5 / 45.8 / 5.7
51.5
1.6 / 40.1 / 9.9
YOLO26n-semSemantica64057.2
1.5 / 47.7 / 8.0
75.9
1.8 / 63.4 / 10.8
YOLO26n-depthProfondità64075.0
1.6 / 65.1 / 8.3
50.1
1.7 / 33.5 / 14.9
YOLO26n-clsClassificazione2246.1
0.3 / 5.5 / 0.3
12.1
0.9 / 11.0 / 0.1
YOLO26n-posePosa64035.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

Test comparativo: media di 15 chiamate predict() dopo 3 esecuzioni di riscaldamento su bus.jpg, usando ultralytics_yolo 0.7.1 e gli asset ufficiali v0.7.0. L'ordine CPU/GPU si alterna tra le attività in un'unica sequenza di test. I log nativi hanno confermato che ogni riga CPU usava LiteRT CPU/XNNPACK e ogni riga GPU delegava il grafo completo a LiteRT OpenCL (LITERT_CL). La TPU Tensor non ha una riga LiteRT: il servizio EdgeTPU di Google rifiuta le app che non sono nella relativa lista di autorizzazione e LiteRT esegue quindi il modello sulla GPU.

Samsung Galaxy S26#

Hardware: Samsung Galaxy S26 (SM-S942B) con 12 GB di memoria e Android 17 / API 37. Il suo Exynos 2600 a 2 nm integra una CPU Armv9.3 a 10 core (1 core C1-Ultra fino a 3.8 GHz, 3 core C1-Pro ad alte prestazioni fino a 3.26 GHz e 6 core C1-Pro a basso consumo fino a 2.76 GHz), una GPU Xclipse 960 e una NPU Samsung.

ModelloAttivitàdimensione
(pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT w8a32 AOT
(ms)
YOLO26nRilevamento64030.2
1.3 / 27.3 / 1.6
15.9
1.4 / 11.5 / 2.9
12.2
1.3 / 8.6 / 2.2
YOLO26n-segSegmentazione64045.6
1.3 / 39.1 / 5.2
30.5
1.3 / 23.6 / 5.6
17.0
1.4 / 9.7 / 5.8
YOLO26n-semSemantica64038.1
1.3 / 28.6 / 8.2
26.1
1.3 / 16.8 / 7.9
28.3
1.7 / 15.1 / 11.5
YOLO26n-depthProfondità64063.5
1.4 / 53.6 / 8.4
37.3
1.4 / 24.6 / 11.3
28.4
2.1 / 12.9 / 13.4
YOLO26n-clsClassificazione2243.8
0.2 / 3.4 / 0.2
2.8
0.2 / 2.6 / 0.0
6.1
0.5 / 5.2 / 0.4
YOLO26n-posePosa64031.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

Test comparativo: media di 15 chiamate predict() dopo 3 esecuzioni di riscaldamento su bus.jpg, usando ultralytics_yolo 0.7.1 e gli asset ufficiali v0.7.0. L'ordine CPU/GPU si alterna tra le attività in un'unica sequenza di test. I log nativi hanno confermato che ogni riga CPU usava LiteRT CPU/XNNPACK e ogni riga GPU delegava il grafo completo a LiteRT OpenCL (LITERT_CL). La colonna NPU usa gli asset w8a32 compilati in anticipo per Exynos 2600 (E9965) con il plugin del compilatore Samsung di LiteRT. Samsung non dispone di un compilatore sul dispositivo in LiteRT 2.3 e Google non pubblica ancora un runtime per NPU Samsung, quindi per queste righe è stata usata una libreria di dispatch creata dai sorgenti di LiteRT 2.3.

Xiaomi 17T Pro#

Hardware: Xiaomi 17T Pro (2602EPTC0G) con 12 GB di memoria LPDDR5X e Android 16 / API 36. Il suo MediaTek Dimensity 9500 a 3 nm (MT6993) integra una CPU Armv9.3 a 8 core (1 core C1-Ultra fino a 4.21 GHz, 3 core C1-Premium fino a 3.5 GHz e 4 core C1-Pro fino a 2.7 GHz), una GPU Mali-G1 Ultra MC12 e una NPU MediaTek 990.

ModelloAttivitàdimensione
(pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ms)
YOLO26nRilevamento64031.4
1.5 / 28.0 / 1.9
25.6
1.4 / 22.2 / 2.0
11.0
1.3 / 7.8 / 1.8
YOLO26n-segSegmentazione64077.8
2.6 / 65.3 / 9.9
47.4
2.6 / 33.6 / 11.3
36.5
2.6 / 23.4 / 10.4
YOLO26n-semSemantica64081.3
2.6 / 62.2 / 16.5
79.3
2.6 / 59.5 / 17.1
87.6
2.6 / 68.3 / 16.7
YOLO26n-depthProfondità640111.3
3.4 / 91.1 / 16.8
55.3
2.8 / 36.3 / 16.1
—
YOLO26n-clsClassificazione2246.3
0.5 / 5.4 / 0.4
8.1
0.5 / 7.5 / 0.1
3.2
0.5 / 2.2 / 0.5
YOLO26n-posePosa64053.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: media di 15 chiamate a predict() dopo 3 fasi di riscaldamento su bus.jpg, usando ultralytics_yolo 0.7.1 e gli asset ufficiali v0.7.0. L'ordine CPU/GPU si alterna tra le attività durante un'unica esecuzione sequenziale. I log nativi hanno confermato che ogni riga CPU usava LiteRT CPU/XNNPACK e che ogni riga GPU delegava l'intero grafo a LiteRT OpenCL (LITERT_CL). Profondità e OBB non hanno risultati NPU: il compilatore NPU di MediaTek rifiuta le operazioni esponenziali e trigonometriche e LiteRT esegue questi grafi sulla GPU.

Attività supportate#

L'esportazione LiteRT supporta tutte e sette le attività Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste head.

AttivitàYOLOv8YOLO11YOLO26
Rilevamento✅✅✅
Segmentazione✅✅✅
Semantica❌❌✅
Profondità❌❌✅
Classificazione✅✅✅
Stima della posa✅✅✅
OBB✅✅✅

Esportazione in LiteRT: convertire il tuo modello YOLO#

Puoi migliorare l'efficienza dell'esecuzione sul dispositivo e ampliare le opzioni di deployment convertendo i tuoi modelli nel formato LiteRT.

Installazione#

Per installare il pacchetto richiesto, esegui:

Installazione
# Install the required package for YOLO
pip install ultralytics

Per istruzioni dettagliate e best practice, consulta la nostra guida all'installazione di Ultralytics. Se riscontri difficoltà, consulta la nostra guida ai problemi comuni.

Supporto della piattaforma

L'esportazione LiteRT è attualmente supportata su Linux x86_64 e macOS. Il modello .tflite esportato può essere eseguito su tutte le piattaforme supportate da LiteRT (dispositivi mobili, embedded, edge e browser).

Utilizzo#

Tutti i modelli Ultralytics YOLO supportano l'esportazione senza configurazioni aggiuntive. Il formato LiteRT supporta le modalità Export, Predict e Validate: puoi esportare un modello e poi caricarlo per eseguire inferenze o convalidarne localmente la precisione.

Esporta
from ultralytics import YOLO

# Carica un modello YOLO26
model = YOLO("yolo26n.pt")

# Esporta il modello nel formato LiteRT
model.export(format="litert", imgsz=640)  # crea 'yolo26n.tflite'; usa imgsz=224 per la classificazione
Esportazione quantizzata
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# INT8 dinamica: pesi int8, attivazioni FP32: non sono necessari dati di calibrazione
model.export(format="litert", quantize="w8a32", imgsz=640)  # crea 'yolo26n_w8a32.tflite'

# INT8 statica: pesi int8 + attivazioni int8: richiede dati di calibrazione
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # crea 'yolo26n_int8.tflite'

# w8a16 statica: pesi int8 + attivazioni int16 (maggiore precisione): richiede dati di calibrazione
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # crea 'yolo26n_w8a16.tflite'
Predici
from ultralytics import YOLO

# Carica il modello LiteRT esportato
model = YOLO("yolo26n.tflite")

# Esegui l'inferenza
results = model("https://ultralytics.com/images/bus.jpg")
Convalida
from ultralytics import YOLO

# Carica il modello LiteRT esportato
model = YOLO("yolo26n.tflite")

# # Convalida l'accuratezza sul dataset COCO8
metrics = model.val(data="coco8.yaml")

Argomenti di esportazione#

ArgomentoTipoPredefinitoDescrizione
formatstr'litert'Formato di destinazione del modello esportato, che definisce la compatibilità con i vari ambienti di distribuzione.
imgszint o tuple640Dimensione dell'immagine desiderata per l'input del modello. Può essere un intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche.
quantizeint o strNonePrecisione della quantizzazione: 8 (INT8 statica, pesi int8 + attivazioni int8; richiede la calibrazione data/fraction), 'w8a16' (statica, pesi int8 + attivazioni int16; richiede la calibrazione data/fraction), 'w8a32' (INT8 dinamica, pesi int8 + attivazioni FP32; non richiede calibrazione) oppure 32/non impostato (FP32). FP16 non viene esportato separatamente (vedi nota sotto). Sostituisce i flag deprecati half/int8.
batchint1Specifica la dimensione batch per l'inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict.
datastrNoneFile YAML del dataset usato per la calibrazione INT8; per la classificazione si usa invece una directory del dataset o il nome di un dataset integrato. Se omesso con quantize=8 o 'w8a16', Ultralytics seleziona il dataset di calibrazione predefinito per l'attività del modello.
fractionfloat, int o list1.0Sottoinsieme di calibrazione espresso come rapporto, numero di immagini o rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo esclude.
devicestrNoneSpecifica il dispositivo per l'esportazione. L'esportazione LiteRT viene eseguita sulla CPU (device=cpu).
Precisione FP16

A differenza della precedente esportazione tflite, LiteRT non richiede un'esportazione FP16 separata. Un modello .tflite FP32 viene eseguito in precisione dimezzata in fase di esecuzione quando si usa un delegate GPU (WebGPU, OpenCL, Metal): questo è l'approccio ufficiale di LiteRT all'inferenza FP16.

Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione Ultralytics dedicata all'esportazione.

Inferenza su CPU e NPU Intel#

I modelli .tflite esportati vengono eseguiti sull'hardware Intel tramite il plugin LiteRT Intel OpenVINO. Passa device=intel:cpu oppure device=intel:npu e Ultralytics installa ai-edge-litert>=2.3.0 e ai-edge-litert-sdk-intel al primo utilizzo. La NPU richiede un processore Intel Core Ultra con il driver Intel NPU installato.

Predici
from ultralytics import YOLO

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

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

ModelloAttivitàdimensione
(pixel)
CPU
w8a32 LiteRT
(ms)
CPU
w8a32 Intel
(ms)
NPU
w8a32 Intel
(ms)
YOLO26nRilevamento64017.5
0.8 / 16.1 / 0.6
22.6
1.2 / 20.6 / 0.8
4.8
1.0 / 3.3 / 0.4
YOLO26n-segSegmentazione64024.2
0.9 / 22.1 / 1.3
32.6
1.0 / 30.1 / 1.5
6.2
0.8 / 4.2 / 1.2
YOLO26n-semSemantica64025.2
1.0 / 14.2 / 10.0
33.1
1.1 / 21.9 / 10.2
16.5
1.0 / 5.5 / 10.0
YOLO26n-depthProfondità64031.7
0.9 / 30.2 / 0.5
76.6
0.9 / 75.2 / 0.5
9.1
1.0 / 7.5 / 0.5
YOLO26n-clsClassificazione2244.6
2.8 / 1.7 / 0.0
7.3
3.3 / 3.9 / 0.0
4.1
3.2 / 0.9 / 0.0
YOLO26n-posePosa64020.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: Media di 15 chiamate predict() dopo 3 cicli di riscaldamento su bus.jpg, usando ultralytics 8.4.174 e ai-edge-litert 2.3.0 con esportazioni w8a32. Ogni cella mostra il tempo totale, con la suddivisione tra pre-elaborazione, inferenza e post-elaborazione riportata sotto.

Distribuzione dei modelli YOLO LiteRT esportati#

Dopo aver esportato il tuo modello Ultralytics YOLO in LiteRT, puoi distribuirlo su diverse piattaforme. Il modo più rapido per verificarlo localmente è il metodo YOLO("yolo26n.tflite") mostrato sopra. Per distribuirlo in altri ambienti, consulta le risorse seguenti:

Mobile e sistemi embedded#

  • Android: una guida introduttiva rapida per integrare LiteRT nelle applicazioni Android.
  • iOS: una guida per integrare e distribuire modelli LiteRT nelle applicazioni iOS.
  • Linux embedded e Raspberry Pi: esegui modelli LiteRT su computer a scheda singola, con accelerazione opzionale tramite Coral Edge TPU.
  • Microcontrollori: distribuisci su MCU con solo pochi kilobyte di memoria: il runtime di base occupa circa 16 KB su un Arm Cortex-M3.

Browser e Node.js (LiteRT.js)#

  • Panoramica di LiteRT.js: esegui lo stesso modello .tflite direttamente nel browser con accelerazione WebGPU/WASM, eliminando i calcoli lato server e mantenendo i dati sul dispositivo dell'utente.
  • Esempi end-to-end: esempi pratici ed esercitazioni per implementare LiteRT su dispositivi mobili, edge e web.

Riepilogo#

In questa guida abbiamo illustrato come esportare i modelli Ultralytics YOLO nel formato LiteRT. Riunendo la distribuzione su dispositivi mobili/edge (in precedenza TFLite) e nel browser (in precedenza TF.js) in un unico modello .tflite, LiteRT rende i tuoi modelli YOLO più veloci, più piccoli e portabili praticamente su qualsiasi destinazione on-device.

Per ulteriori dettagli, visita la documentazione ufficiale di LiteRT.

Inoltre, se vuoi conoscere altre integrazioni Ultralytics YOLO, consulta la nostra pagina della guida alle integrazioni, ricca di risorse utili.

Domande frequenti#

  • Usa la libreria Ultralytics per esportare un modello YOLO in LiteRT (.tflite). Per prima cosa, installa il pacchetto:

    pip install ultralytics

    Poi esporta il modello:

    from ultralytics import YOLO
    
    # Carica un modello YOLO26
    model = YOLO("yolo26n.pt")
    
    # Esporta il modello nel formato LiteRT
    model.export(format="litert", imgsz=640)  # usa imgsz=224 per la classificazione

    Per chi usa la CLI:

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

    Per ulteriori dettagli, visita la guida all'esportazione di Ultralytics.

  • LiteRT è il nuovo nome di TensorFlow Lite: stesso formato di modello .tflite, stessa evoluzione del runtime, nuovo marchio scelto da Google. In Ultralytics, un unico formato di esportazione litert ora copre entrambi i casi d'uso che in precedenza richiedevano due formati separati:

    • Il vecchio formato tflite → distribuzione su dispositivi mobili, embedded ed edge.
    • Il vecchio formato tfjs → distribuzione su browser e Node.js, ora gestita da LiteRT.js, che esegue lo stesso file .tflite.

    Se hai già un file .tflite, puoi caricarlo direttamente con YOLO("model.tflite") e verrà eseguito tramite il backend LiteRT.

  • Sì. Esporta il modello nel formato LiteRT, quindi eseguilo su Raspberry Pi per migliorare la velocità di inferenza. Per un'ulteriore ottimizzazione, valuta l'uso di Coral Edge TPU. Per i passaggi dettagliati, consulta la nostra guida alla distribuzione su Raspberry Pi.

  • Sì. LiteRT.js esegue lo stesso modello esportato .tflite direttamente in un browser web o in un'applicazione Node.js, con accelerazione WebGPU/WASM. Sostituisce il precedente flusso di lavoro TensorFlow.js: non serve un'esportazione separata per il browser, basta distribuire il modello LiteRT con il runtime LiteRT.js.

  • Sì, in fase di esecuzione. Un modello LiteRT FP32 viene eseguito automaticamente in FP16 quando utilizza un delegato GPU (WebGPU, OpenCL o Metal), secondo l'approccio ufficiale di LiteRT. Non serve quindi un'esportazione FP16 dedicata; per un'ulteriore compressione, usa la quantizzazione INT8 con quantize=8.

  • Se riscontri errori durante l'esportazione di modelli YOLO in LiteRT, ecco alcune soluzioni comuni:

    • Verifica la piattaforma: l'esportazione LiteRT è supportata su Linux x86_64 e macOS. Verifica che il tuo ambiente sia compatibile.
    • Verifica la compatibilità del pacchetto: assicurati di usare una versione compatibile di Ultralytics. Consulta la nostra guida all'installazione.
    • Problemi di quantizzazione: quando usi la quantizzazione INT8, assicurati di specificare correttamente il percorso del dataset nel parametro data.

    Per altri suggerimenti sulla risoluzione dei problemi, visita la nostra guida ai problemi comuni.

Commenti