Ultralytics YOLO27:
Get Started

Exportar modelos YOLO para LiteRT para implementação em dispositivos de periferia e na Web#

LiteRT edge deployment framework

LiteRT (abreviatura de ambiente de execução leve) é o ambiente de execução de elevado desempenho da Google para IA no dispositivo. É a nova geração e a nova designação do TensorFlow Lite (TFLite), e utiliza o mesmo formato de modelo .tflite. Com o LiteRT, um único modelo Ultralytics YOLO exportado pode ser implementado em dispositivos móveis, sistemas incorporados, dispositivos de periferia e navegadores — abrangendo tudo o que os formatos de exportação mais antigos tflite e tfjs tratavam separadamente, agora numa única solução.



Assista: Como exportar Ultralytics YOLO26 para Google LiteRT | Implante IA de visão em Android e iOS | IA móvel 📱🚀

O formato de exportação LiteRT otimiza os teus modelos para tarefas como deteção de objetos, segmentação, estimativa de pose e classificação, para que funcionem rapidamente e sem ligação à Internet numa ampla variedade de dispositivos.

Executa hoje YOLO no Android com LiteRT através do plugin oficial para Flutter

O plugin oficial Ultralytics YOLO para Flutter executa imediatamente no Android as exportações LiteRT .tflite — inferência em tempo real com a câmara, previsão de imagem única, aceleração por GPU e transferência automática de modelos para as sete tarefas YOLO26, incluindo Depth. Para dispositivos Apple, utiliza a exportação CoreML; para NPU Qualcomm Snapdragon, consulta a integração Qualcomm QNN.

Tamanhos de entrada oficiais para dispositivos móveis

Exporta modelos de classificação em imgsz=224. Exporta modelos de deteção, segmentação, semântica, profundidade, pose e OBB em imgsz=640. Este padrão 224/640 é partilhado pelos recursos móveis oficiais LiteRT, CoreML e QNN.

Executa hoje YOLO na Web com LiteRT.js através do pacote npm oficial @ultralytics/yolo

O pacote NPM oficial Ultralytics YOLO executa exportações LiteRT .tflite diretamente no navegador através do LiteRT.js, sem servidor nem Python — com inferência em tempo real através da webcam, previsão de imagem única e aceleração WebGPU (com alternativa automática para CPU/WASM) em seis tarefas YOLO26 (deteção, segmentação, semântica, classificação, pose e OBB). No WebGPU, é frequentemente ~2× mais rápido do que o ONNX Runtime Web.

npm i @ultralytics/yolo @litertjs/core

Por que exportar para LiteRT?#

LiteRT é uma framework de código aberto concebida para inferência no dispositivo, também conhecida como computação de periferia. Disponibiliza aos programadores as ferramentas para executar modelos treinados em dispositivos móveis, sistemas incorporados e dispositivos IoT, computadores tradicionais e — através do LiteRT.js — diretamente em navegadores Web e no Node.js.

Um formato de modelo, todos os destinos:

  • Dispositivos móveis e sistemas incorporados: Android, iOS, Linux incorporado e microcontroladores (MCUs).
  • Aceleradores de periferia: compatível com o Coral Edge TPU para obter aceleração adicional.
  • Navegador e Node.js: o LiteRT.js executa na Web o mesmo modelo .tflite com aceleração WebGPU/WASM — eliminando a necessidade de uma exportação TensorFlow.js separada.

Principais funcionalidades dos modelos LiteRT#

  • Otimização no dispositivo: reduz a latência ao processar dados localmente, aumenta a privacidade ao não transmitir dados pessoais e minimiza o tamanho do modelo para economizar espaço.
  • Suporte a várias plataformas: funciona em Android, iOS, Linux embarcado, microcontroladores e navegadores modernos.
  • Aceleração de hardware: aproveita o XNNPACK na CPU e a aceleração da GPU via OpenCL, Metal e WebGPU. Por padrão, o delegado da GPU executa em FP16 para oferecer mais velocidade.
  • Quantização: oferece suporte a FP32, INT8 estático (quantize=8, pesos int8 + ativações int8), INT16-activation estático (quantize="w8a16", pesos int8 + ativações int16 para maior precisão) e INT8 dinâmico (quantize="w8a32", pesos int8 + ativações FP32, sem necessidade de dados de calibração) para compactar modelos e acelerar a inferência com perda mínima de precisão.
  • Suporte a diversas linguagens: compatível com Java/Kotlin, Swift, Objective-C, C++, Python e JavaScript.

Desempenho medido#

Hardware: Xiaomi 17 com 12 GB de memória LPDDR5X e Android 16 / API 36. O Snapdragon 8 Elite Gen 5 de 3 nm (SM8850) tem uma CPU Qualcomm Oryon de 8 núcleos (2 núcleos Prime de até 4.6 GHz e 6 núcleos Performance de até 3.62 GHz), GPU Adreno e NPU Hexagon.

ModeloTarefatamanho
(pixels)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetecção64052.2
1.8 / 48.1 / 2.4
15.8
2.3 / 8.9 / 4.6
YOLO26n-segSegmentação64073.4
1.8 / 65.6 / 6.0
33.2
1.8 / 23.8 / 7.6
YOLO26n-semSemântica64061.2
1.8 / 51.1 / 8.3
34.2
1.8 / 24.0 / 8.3
YOLO26n-depthProfundidade640124.4
1.9 / 115.1 / 7.4
23.0
1.8 / 13.5 / 7.7
YOLO26n-clsClassificação2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
YOLO26n-posePose64057.4
1.8 / 53.8 / 1.8
16.6
2.7 / 10.1 / 3.9
YOLO26n-obbOBB64050.3
1.8 / 47.2 / 1.4
11.7
1.8 / 7.8 / 2.0
  • Os valores de velocidade correspondem a latências de rajada para uma única imagem — a média de 15 execuções após 3 execuções de aquecimento em bus.jpg, medidas com o plugin Flutter da Ultralytics 0.6.10 e os recursos padronizados v0.6.6. A ordem de CPU/GPU alternou entre tarefas em uma única sequência de testes. Os registros nativos confirmaram que todas as linhas de CPU usaram LiteRT CPU/XNNPACK e todas as linhas de GPU delegaram o grafo completo ao LiteRT OpenCL (LITERT_CL).
  • A exportação para LiteRT rastreia diretamente o modelo PyTorch, gerando um .tflite NCHW com entrada float — o delegado da GPU compila o grafo inteiro (aqui, todas as sete tarefas são executadas na GPU Adreno) e w8a32 não precisa de dados de calibração. Os consumidores devem consultar os formatos dos tensores e os nomes das assinaturas, em vez de presumir o layout legado NHWC do onnx2tf ou os nomes de saída Identity; empacote os dados RGB diretamente no formato CHW planar ou faça a transposição antes da inferência. As exportações semânticas retornam logits NCHW e exigem argmax de classes no host. Os recursos oficiais para Android estão hospedados na versão v0.6.6 do yolo-flutter-app, e o registro detalhado do benchmark está no documento de desempenho do Flutter.
  • Os números correspondentes da NPU Hexagon do Snapdragon e da CPU/GPU do LiteRT estão na integração do Qualcomm QNN.
  • Compare os resultados da CPU/acelerador da Apple na integração do CoreML.

Os testes dos dispositivos a seguir usam os mesmos recursos padronizados v0.6.6.

Google Pixel 10#

Hardware: Google Pixel 10 com 12 GB de memória e Android 16 / API 36. O Google Tensor G5 de 3 nm tem uma CPU de 8 núcleos (1 núcleo Prime de até 3.78 GHz, 5 núcleos Performance de até 3.05 GHz e 2 núcleos Efficiency de até 2.25 GHz), GPU PowerVR D-Series e TPU Google. As frequências dos núcleos e o nome do driver da GPU foram obtidos no dispositivo de benchmark, pois o Google não os publica nas especificações vinculadas.

ModeloTarefatamanho
(pixels)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetecção64053.3
1.5 / 50.2 / 1.6
45.5
3.8 / 37.7 / 4.0
YOLO26n-segSegmentação64087.7
1.8 / 78.5 / 7.5
50.9
3.0 / 36.9 / 10.9
YOLO26n-semSemântica64068.6
1.5 / 59.0 / 8.0
71.6
1.5 / 59.5 / 10.6
YOLO26n-depthProfundidade640120.3
1.5 / 112.5 / 6.3
52.5
2.0 / 37.5 / 13.0
YOLO26n-clsClassificação2244.0
0.3 / 3.4 / 0.2
17.6
0.9 / 16.7 / 0.1
YOLO26n-posePose64059.7
1.5 / 57.0 / 1.2
46.6
3.8 / 39.2 / 3.5
YOLO26n-obbOBB64052.0
1.5 / 48.9 / 1.7
45.5
4.0 / 38.5 / 2.9

Benchmark: média de 15 chamadas predict() após 3 execuções de aquecimento em bus.jpg, usando ultralytics_yolo 0.6.10 e os recursos oficiais v0.6.6. A ordem de CPU/GPU alterna entre tarefas em uma única sequência de testes. Os registros nativos confirmaram que todas as linhas de CPU usaram LiteRT CPU/XNNPACK e todas as linhas de GPU delegaram o grafo completo ao LiteRT OpenCL (LITERT_CL).

Samsung Galaxy S26#

Hardware: Samsung Galaxy S26 (SM-S942B) com 12 GB de memória e Android 16 / API 36. O Exynos 2600 de 2 nm tem uma CPU Armv9.3 de 10 núcleos (1 núcleo C1-Ultra de até 3.8 GHz, 3 núcleos C1-Pro de desempenho de até 3.26 GHz e 6 núcleos C1-Pro de eficiência de até 2.76 GHz), GPU Xclipse 960 e NPU Samsung.

ModeloTarefatamanho
(pixels)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetecção64036.7
1.3 / 33.8 / 1.7
16.4
1.4 / 12.3 / 2.6
YOLO26n-segSegmentação64054.6
1.2 / 48.0 / 5.3
32.8
1.3 / 24.5 / 7.0
YOLO26n-semSemântica64047.8
1.2 / 38.4 / 8.1
34.2
1.3 / 24.9 / 8.0
YOLO26n-depthProfundidade64092.9
1.2 / 84.8 / 6.9
33.5
1.3 / 22.4 / 9.8
YOLO26n-clsClassificação2242.7
0.2 / 2.3 / 0.2
2.6
0.2 / 2.4 / 0.0
YOLO26n-posePose64042.8
1.3 / 40.5 / 1.0
18.4
1.4 / 14.1 / 2.9
YOLO26n-obbOBB64037.5
1.3 / 35.1 / 1.2
18.8
2.5 / 14.6 / 1.8

Benchmark: média de 15 chamadas predict() após 3 execuções de aquecimento em bus.jpg, usando ultralytics_yolo 0.6.10 e os recursos oficiais v0.6.6. A ordem de CPU/GPU alterna entre tarefas em uma única sequência de testes. Os registros nativos confirmaram que todas as linhas de CPU usaram LiteRT CPU/XNNPACK e todas as linhas de GPU delegaram o grafo completo ao LiteRT OpenCL (LITERT_CL).

Xiaomi 17T Pro#

Hardware: Xiaomi 17T Pro (2602EPTC0G) com 12 GB de memória LPDDR5X e Android 16 / API 36. O MediaTek Dimensity 9500 de 3 nm (MT6993) tem uma CPU Armv9.3 de 8 núcleos (1 núcleo C1-Ultra de até 4.21 GHz, 3 núcleos C1-Premium de até 3.5 GHz e 4 núcleos C1-Pro de até 2.7 GHz), GPU Mali-G1 Ultra MC12 e NPU MediaTek 990.

ModeloTarefatamanho
(pixels)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetecção64045.4
1.3 / 42.1 / 2.0
26.6
1.9 / 22.0 / 2.7
YOLO26n-segSegmentação640126.2
2.6 / 113.9 / 9.7
46.7
2.6 / 33.3 / 10.8
YOLO26n-semSemântica640117.9
2.6 / 98.8 / 16.5
74.3
2.6 / 54.7 / 17.0
YOLO26n-depthProfundidade640182.4
2.5 / 167.6 / 12.3
47.8
2.5 / 32.3 / 12.9
YOLO26n-clsClassificação2246.2
0.4 / 5.3 / 0.4
7.4
0.4 / 6.9 / 0.1
YOLO26n-posePose64097.6
2.5 / 93.3 / 1.8
28.6
2.5 / 23.3 / 2.8
YOLO26n-obbOBB64091.5
2.6 / 85.8 / 3.2
27.5
2.7 / 21.8 / 2.9

Benchmark: média de 15 chamadas predict() após 3 execuções de aquecimento em bus.jpg, usando ultralytics_yolo 0.6.10 e os recursos oficiais v0.6.6. A ordem de CPU/GPU alterna entre tarefas em uma única sequência de testes. Os registros nativos confirmaram que todas as linhas de CPU usaram LiteRT CPU/XNNPACK e todas as linhas de GPU delegaram o grafo completo ao LiteRT OpenCL (LITERT_CL).

Tarefas suportadas#

A exportação LiteRT oferece suporte às sete tarefas da Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com YOLO26, a única família que inclui esses cabeçalhos.

TarefaYOLOv8YOLO11YOLO26
Detetar✅✅✅
Segmentar✅✅✅
Semântica❌❌✅
Profundidade❌❌✅
Classificar✅✅✅
Pose✅✅✅
OBB✅✅✅

Exportar para LiteRT: convertendo seu modelo YOLO#

Você pode melhorar a eficiência da execução no dispositivo e ampliar as opções de implantação convertendo seus modelos para o formato LiteRT.

Instalação#

Para instalar o pacote necessário, executa:

Instalação
# Install the required package for YOLO
pip install ultralytics

Para ver instruções detalhadas e práticas recomendadas, consulte nosso guia de instalação da Ultralytics. Se encontrar dificuldades, consulte nosso guia de problemas comuns.

Suporte à plataforma

A exportação para LiteRT é compatível atualmente com Linux x86_64 e macOS. O próprio modelo .tflite exportado funciona em todas as plataformas compatíveis com LiteRT (dispositivos móveis, embarcados, de borda e navegadores).

Uso#

Todos os modelos YOLO da Ultralytics oferecem suporte à exportação desde o início. O formato LiteRT é compatível com os modos Exportar, Prever e Validar, para que você possa exportar um modelo e, em seguida, carregá-lo para executar inferências ou validar sua precisão localmente.

Exportar
from ultralytics import YOLO

# Carrega um modelo YOLO26
model = YOLO("yolo26n.pt")

# Exporte o modelo para o formato LiteRT
model.export(format="litert", imgsz=640)  # cria 'yolo26n.tflite'; use imgsz=224 para classificação
Exportação quantizada
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# INT8 dinâmico: pesos int8, ativações FP32 - sem necessidade de dados de calibração
model.export(format="litert", quantize="w8a32", imgsz=640)  # cria 'yolo26n_w8a32.tflite'

# INT8 estático: pesos int8 + ativações int8 - requer dados de calibração
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # cria 'yolo26n_int8.tflite'

# w8a16 estático: pesos int8 + ativações int16 (maior precisão) - requer dados de calibração
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # cria 'yolo26n_w8a16.tflite'
Prever
from ultralytics import YOLO

# Carregue o modelo LiteRT exportado
model = YOLO("yolo26n.tflite")

# Executar inferência
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Carregue o modelo LiteRT exportado
model = YOLO("yolo26n.tflite")

# Validar a precisão no conjunto de dados COCO8
metrics = model.val(data="coco8.yaml")

Argumentos de exportação#

ArgumentoTipoPadrãoDescrição
formatstr'litert'Formato de destino do modelo exportado, que define a compatibilidade com vários ambientes de implantação.
imgszint ou tuple640Tamanho de imagem desejado para a entrada do modelo. Pode ser um inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas.
quantizeint ou strNonePrecisão da quantização: 8 (INT8 estático, pesos int8 + ativações int8; requer calibração data/fraction), 'w8a16' (estático, pesos int8 + ativações int16; requer calibração data/fraction), 'w8a32' (INT8 dinâmico, pesos int8 + ativações FP32; sem necessidade de calibração) ou 32/não definido (FP32). FP16 não é exportado separadamente (consulte a observação abaixo). Substitui as flags obsoletas half/int8.
batchint1Especifica o tamanho do lote de inferência do modelo exportado ou o número máximo de imagens que o modelo exportado processará em simultâneo no modo predict.
datastrNoneArquivo YAML do conjunto de dados usado para a calibração INT8; para classificação, em vez disso, informe um diretório do conjunto de dados ou o nome de um conjunto de dados integrado. Se omitido com quantize=8 ou 'w8a16', a Ultralytics seleciona o conjunto de dados de calibração padrão para a tarefa do modelo.
fractionfloat, int ou list1.0Subconjunto de calibração como proporção, número de imagens ou proporções/contagens [train, val, test]. Listas de dois itens deixam test completo, enquanto 0 o ignora.
devicestrNoneEspecifica o dispositivo para a exportação. A exportação LiteRT é executada na CPU (device=cpu).
Precisão FP16

Ao contrário da exportação legada tflite, o LiteRT não exige uma exportação FP16 separada. Um modelo .tflite FP32 é executado em precisão de meia precisão durante a execução quando usa um delegado da GPU (WebGPU, OpenCL, Metal) — essa é a abordagem oficial do LiteRT para inferência FP16.

Para mais detalhes sobre o processo de exportação, visita a página da documentação da Ultralytics sobre exportação.

Implantação de modelos YOLO LiteRT exportados#

Depois de exportar seu modelo YOLO da Ultralytics para LiteRT, você pode implantá-lo em várias plataformas. A maneira mais rápida de verificá-lo localmente é o método YOLO("yolo26n.tflite") mostrado acima. Para implantá-lo em outros ambientes, consulte os recursos a seguir:

Dispositivos móveis e sistemas embarcados#

  • Android: Guia de início rápido para integrar LiteRT em aplicações Android.
  • iOS: Guia para integrar e implantar modelos LiteRT em aplicações iOS.
  • Linux embarcado e Raspberry Pi: Executa modelos LiteRT em computadores de placa única, opcionalmente com aceleração de um Coral Edge TPU.
  • Microcontroladores: Implanta em MCUs com apenas alguns kilobytes de memória — o ambiente de execução principal ocupa aproximadamente 16 KB em um Arm Cortex-M3.

Navegador e Node.js (LiteRT.js)#

  • Visão geral do LiteRT.js: Executa o mesmo modelo .tflite diretamente no navegador com aceleração WebGPU/WASM, eliminando a computação no servidor e mantendo os dados no dispositivo do usuário.
  • Exemplos de ponta a ponta: Exemplos práticos e tutoriais para implementar LiteRT em dispositivos móveis, na borda e na web.

Resumo#

Neste guia, mostramos como exportar modelos Ultralytics YOLO para o formato LiteRT. Ao unificar a implantação em dispositivos móveis e na borda (anteriormente TFLite) e no navegador (anteriormente TF.js) em um único modelo .tflite, LiteRT torna seus modelos YOLO mais rápidos, menores e portáteis em praticamente todos os dispositivos.

Para mais detalhes, consulta a documentação oficial do LiteRT.

Além disso, se tiver curiosidade sobre outras integrações do Ultralytics YOLO, consulta nossa página do guia de integração para encontrar muitos recursos úteis.

Perguntas frequentes#

  • Usa a biblioteca Ultralytics para exportar um modelo YOLO para LiteRT (.tflite). Primeiro, instala o pacote:

    pip install ultralytics

    Em seguida, exporta o modelo:

    from ultralytics import YOLO
    
    # Carrega um modelo YOLO26
    model = YOLO("yolo26n.pt")
    
    # Exporte o modelo para o formato LiteRT
    model.export(format="litert", imgsz=640)  # usar imgsz=224 para classificação

    Para usuários da CLI:

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

    Para mais detalhes, consulta o guia de exportação da Ultralytics.

  • LiteRT é o novo nome do TensorFlow Lite — mesmo formato de modelo .tflite, mesma linhagem de ambiente de execução, renomeado pelo Google. Na Ultralytics, o único formato de exportação litert agora abrange os dois casos de uso que antes exigiam formatos separados:

    • O antigo formato tflite → implantação em dispositivos móveis, embarcados e na borda.
    • O antigo formato tfjs → implantação em navegadores e Node.js, agora gerenciada pelo LiteRT.js, que executa o mesmo arquivo .tflite.

    Se você tiver um arquivo .tflite existente, poderá carregá-lo diretamente com YOLO("model.tflite"), que o executará pelo backend LiteRT.

  • Sim. Exporta o modelo para o formato LiteRT e executa-o em um Raspberry Pi para melhorar a velocidade de inferência. Para otimizar ainda mais, considera um Coral Edge TPU. Para ver as etapas detalhadas, consulta nosso guia de implantação no Raspberry Pi.

  • Sim. O LiteRT.js executa o mesmo modelo exportado .tflite diretamente em um navegador ou aplicação Node.js, com aceleração WebGPU/WASM. Isso substitui o fluxo de trabalho anterior do TensorFlow.js — não há uma exportação separada para o navegador; basta implantar o modelo LiteRT com o ambiente de execução LiteRT.js.

  • Sim — em tempo de execução. Um modelo LiteRT FP32 é executado automaticamente em FP16 quando roda em um delegado de GPU (WebGPU, OpenCL ou Metal), que é a abordagem oficial do LiteRT. Portanto, não precisas de uma exportação FP16 dedicada; para compactar ainda mais, usa quantização INT8 com quantize=8.

  • Se encontrar erros ao exportar modelos YOLO para LiteRT, algumas soluções comuns são:

    • Verifica a plataforma: a exportação LiteRT é compatível com Linux x86_64 e macOS. Confirma se o teu ambiente corresponde a esses requisitos.
    • Verifica a compatibilidade do pacote: confirma se estás usando uma versão compatível do Ultralytics. Consulta nosso guia de instalação.
    • Problemas de quantização: ao usar quantização INT8, verifica se o caminho do conjunto de dados está especificado corretamente no parâmetro data.

    Para mais dicas de solução de problemas, consulta nosso guia de problemas comuns.

Comentários