Exportação de modelo TFLite para implantação (obsoleto)#
A partir do Ultralytics 8.4.83, o formato de exportação independente tflite foi removido e substituído pelo formato unificado Google LiteRT. O LiteRT (Lite Runtime) é a próxima geração e o novo nome do TensorFlow Lite, e ele exporta o mesmo modelo .tflite — agora abrangendo implantações móveis, embarcadas, de borda e em navegador em um único formato.
format="tflite" ainda funciona, mas emite um aviso de descontinuação e exporta um modelo LiteRT em vez disso. Usa format="litert" daqui para frente; para instruções e opções de exportação atuais, consulta o guia de exportação do LiteRT.
Implantar modelos de visão computacional em dispositivos de borda ou dispositivos embarcados requer um formato que possa garantir um desempenho fluido.
O formato de exportação anterior do TensorFlow Lite ou TFLite otimizava os modelos do Ultralytics YOLO26 para tarefas como detecção de objetos e classificação de imagens em aplicações de borda. Este guia preserva o contexto de implantação legada do TFLite; usa o LiteRT para novas exportações.
Por que o TFLite era usado para exportação?#
Introduzido pelo Google em maio de 2017 como parte do seu framework TensorFlow, o TensorFlow Lite, ou TFLite para abreviar, era um framework de deep learning de código aberto projetado para inferência em dispositivos, também conhecido como computação de borda. Ele dava aos desenvolvedores ferramentas para executar modelos treinados em dispositivos móveis, embarcados e de IoT, bem como em computadores tradicionais.
O TensorFlow Lite suportava uma ampla gama de plataformas, incluindo Linux embarcado, Android, iOS e microcontroladores (MCUs). As exportações TFLite permitiam que as aplicações executassem modelos localmente e offline.
Principais recursos dos modelos TFLite#
Os modelos TFLite oferecem uma ampla gama de recursos principais que permitem o aprendizado de máquina no dispositivo, ajudando os desenvolvedores a executar seus modelos em dispositivos móveis, embarcados e de borda:
-
Otimização no dispositivo: O TFLite otimiza para ML no dispositivo, reduzindo a latência ao processar dados localmente, aumentando a privacidade ao não transmitir dados pessoais e minimizando o tamanho do modelo para economizar espaço.
-
Suporte a múltiplas plataformas: O TFLite oferece ampla compatibilidade de plataforma, suportando Android, iOS, Linux embarcado e microcontroladores.
-
Suporte a diversos idiomas: O TFLite é compatível com várias linguagens de programação, incluindo Java, Swift, Objective-C, C++ e Python.
-
Alto desempenho: Alcança desempenho superior por meio de aceleração de hardware e otimização de modelo.
Desempenho medido (histórico)#
Estes resultados foram gravados com o plugin Flutter do Ultralytics 0.6.8 e LiteRT 2.1.5 no Android 16/API 36 em um Xiaomi 17 com 12 GB de memória LPDDR5X. O seu Snapdragon 8 Elite Gen 5 de 3 nm (SM8850) possui 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. Estas tabelas comparam os ativos legados onnx2tf INT8 do TFLite com as exportações candidatas litert-torch avaliadas durante a migração. Os ativos de lançamento foram subsequentemente substituídos pelas exportações padronizadas, portanto, esses números não descrevem os bytes atuais do ativo v0.6.6. Consulta as tabelas de desempenho do LiteRT para as medições atuais.
Ambos os formatos foram executados no mesmo varrimento consecutivo de GPU nos tamanhos de entrada mostrados. Cada célula é o tempo total (pré-processamento + inferência + pós-processamento), com a divisão por estágio abaixo dela; logs nativos confirmaram que ambos os formatos delegaram o grafo completo para o LiteRT OpenCL (LITERT_CL) na GPU Adreno.
| Modelo | Tarefa | tamanho (pixels) | Legado onnx2tf INT8 TFLite (ms) | Candidato w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detectar | 640 | 14.0 1.8 / 8.1 / 4.2 | 13.5 1.9 / 8.1 / 3.5 |
| YOLO26n-seg | Segmentar | 640 | 30.1 1.9 / 20.3 / 8.0 | 28.6 1.8 / 20.1 / 6.7 |
| YOLO26n-sem | Semântico | 640 | 26.4 1.9 / 16.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-cls | Classificar | 224 | 3.5 0.9 / 2.2 / 0.4 | 3.2 1.0 / 2.2 / 0.1 |
| YOLO26n-pose | Pose | 640 | 17.4 2.4 / 9.9 / 5.1 | 14.0 1.9 / 9.3 / 2.8 |
| YOLO26n-obb | OBB | 640 | 13.9 3.0 / 8.3 / 2.7 | 13.0 2.9 / 7.9 / 2.3 |
A mesma execução de migração também comparou os formatos de quantização de deteção do YOLO26n. A inferência é a métrica comparável e dependente do formato:
| Formato Android | Inferência de GPU (ms) | Compilações de GPU |
|---|---|---|
| onnx2tf INT8 (TFLite legado) | 8.6 | sim |
| LiteRT w8a32 (candidato) | 8.4 | sim |
LiteRT INT8 (quantize=8) | 11.0 | sim |
| LiteRT FP32 | 8.8 | sim |
LiteRT w8a16 (quantize="w8a16") | Fallback para CPU | não |
Nesta execução, o w8a16 recorreu à CPU a cerca de 660 ms no total, em comparação com cerca de 17 ms para os formatos de GPU. Estes resultados motivaram o envio de w8a32, mas a compatibilidade do delegado e o desempenho dependem do dispositivo e da versão do runtime. Testa o dispositivo de destino e confirma o posicionamento do acelerador nos respetivos logs de runtime.
Opções de implantação no TFLite#
Antes de analisarmos o exemplo de exportação de substituição pelo LiteRT, vamos entender como os modelos TFLite são normalmente usados.
O TFLite oferece várias opções de implantação no dispositivo para modelos de aprendizado de máquina, incluindo:
- Implantando com Android e iOS: Tanto aplicações Android quanto iOS com TFLite podem analisar feeds de câmeras baseadas em borda e sensores para detectar e identificar objetos. O TFLite também oferece bibliotecas nativas para iOS escritas em Swift e Objective-C. O diagrama de arquitetura abaixo mostra o processo de implantação de um modelo treinado em plataformas Android e iOS usando o TensorFlow Lite.
-
Implementando com Linux Embarcado: Se a execução de inferências em um Raspberry Pi usando o Guia do Ultralytics não atender aos requisitos de velocidade para o teu caso de uso, podes usar um modelo TFLite exportado para acelerar os tempos de inferência. Além disso, é possível melhorar ainda mais o desempenho utilizando um dispositivo Coral Edge TPU.
-
Implantando com microcontroladores: Os modelos TFLite também podem ser implantados em microcontroladores e outros dispositivos com apenas alguns kilobytes de memória. O tempo de execução principal cabe em apenas 16 KB em um Arm Cortex M3 e pode executar muitos modelos básicos. Ele não requer suporte a sistema operacional, bibliotecas C ou C++ padrão ou alocação dinâmica de memória.
Substitua a exportação TFLite por LiteRT#
Para novas exportações, converte o teu modelo para LiteRT. O modelo resultante mantém a extensão de arquivo .tflite.
Instalação#
Para instalar os pacotes necessários, execute:
# Install the required package for YOLO26
pip install ultralyticsPara instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulta o nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO26, se encontrares alguma dificuldade, consulta o nosso guia de problemas comuns para obter soluções e dicas.
Uso#
Todos os modelos Ultralytics YOLO26 são projetados para suportar exportação nativamente, facilitando a integração deles no teu fluxo de trabalho de implantação preferido. Podes ver a lista completa de formatos de exportação suportados e opções de configuração para escolher a melhor configuração para a tua aplicação.
O formato LiteRT substituto suporta os modos Export, Predict e Validate. Exporta o teu modelo e, em seguida, carrega o modelo .tflite exportado para executar a inferência ou validar a sua precisão.
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 classificationfrom ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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")Argumentos de Exportação#
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
format | str | 'litert' | Formato de destino para o modelo exportado, definindo a compatibilidade com vários ambientes de implementação. |
imgsz | int ou tuple | 640 | Tamanho de imagem desejado para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas. |
quantize | int ou str | None | Precisão de quantização: 8 (INT8 estático, pesos int8 + ativações int8; precisa de calibração data/fraction), 'w8a16' (estático, pesos int8 + ativações int16; precisa de calibração data/fraction), 'w8a32' (INT8 dinâmico, pesos int8 + ativações FP32; sem necessidade de calibração) ou 32/não definido (FP32). O FP16 não é exportado separadamente — um modelo FP32 é executado em FP16 automaticamente em delegados de GPU. Substitui os sinalizadores obsoletos half/int8. |
batch | int | 1 | Especifica o tamanho de inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará concorrentemente no modo predict. |
data | str | None | Caminho para o YAML do dataset, essencial para a quantização; a classificação, em vez disso, aceita um diretório de dataset ou um nome de dataset integrado. Se omitido com quantize=8 ou 'w8a16', o Ultralytics seleciona o dataset de calibração padrão para a tarefa do modelo. |
fraction | float, int ou list | 1.0 | Subconjunto de calibração como uma proporção, contagem de imagens ou proporções/contagens de [train, val, test]. Listas de dois itens deixam test cheio, enquanto 0 o pula. |
device | str | None | Especifica o dispositivo para exportação: CPU (device=cpu), MPS para Apple silicon (device=mps). |
Para mais detalhes sobre o processo de exportação, visita a página de documentação do Ultralytics sobre exportação.
Implantando modelos YOLO26 TFLite exportados#
Após exportar o teu modelo Ultralytics YOLO26 para o formato LiteRT, podes implantar o modelo .tflite resultante. O primeiro passo principal e recomendado para executar um modelo TFLite é utilizar o método YOLO("model.tflite"), conforme descrito no trecho de código de uso anterior. No entanto, para instruções detalhadas sobre como implantar os teus modelos TFLite em várias outras configurações, dá uma vista de olhos nos seguintes recursos:
-
Android: Um guia de início rápido para integrar o TensorFlow Lite em aplicações Android, fornecendo passos fáceis de seguir para configurar e executar modelos de aprendizagem automática.
-
iOS: Consulta este guia detalhado para desenvolvedores sobre como integrar e implantar modelos do TensorFlow Lite em aplicações iOS, oferecendo instruções passo a passo e recursos.
-
Exemplos de Ponta a Ponta: Esta página fornece uma visão geral de vários exemplos do TensorFlow Lite, mostrando aplicações práticas e tutoriais criados para ajudar os desenvolvedores a implementar o TensorFlow Lite nos seus projetos de aprendizagem automática em dispositivos móveis e de borda.
Resumo#
Este guia preserva o fluxo de trabalho de implantação legada do TFLite. Para novas exportações, usa o LiteRT para criar modelos .tflite para ambientes de computação de borda.
Para mais detalhes sobre o uso, visita a documentação oficial do TFLite.
Além disso, se tiveres curiosidade sobre outras integrações do Ultralytics YOLO26, consulta a nossa página do guia de integração. Encontrarás muitas informações e percepções úteis lá.
FAQ#
Para uma nova exportação, use o formato LiteRT. Primeiro, instale o pacote necessário usando:
pip install ultralyticsEm seguida, use o seguinte trecho de código para exportar seu modelo:
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 classificationPara usuários da CLI, você pode fazer isso com:
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classificationPara mais detalhes, visita o guia de exportação do Ultralytics.
O TensorFlow Lite (TFLite) é um framework de deep learning de código aberto projetado para inferência em dispositivos, tornando-o ideal para implantar modelos YOLO26 em dispositivos móveis, embarcados e de IoT. Os principais benefícios incluem:
- Otimização no dispositivo: Minimize a latência e aumente a privacidade processando dados localmente.
- Compatibilidade de plataforma: Suporta Android, iOS, Linux embarcado e MCU.
- Desempenho: Utiliza aceleração de hardware para otimizar a velocidade e a eficiência do modelo.
Para saber mais, consulta o guia do TFLite.
Sim, você pode executar modelos YOLO26 TFLite no Raspberry Pi para melhorar a velocidade de inferência. Primeiro, exporte seu modelo para o formato LiteRT conforme explicado acima. Em seguida, use uma ferramenta como o TensorFlow Lite Interpreter para executar o modelo no seu Raspberry Pi.
Para otimizações adicionais, podes considerar o uso do Coral Edge TPU. Para etapas detalhadas, consulta o nosso guia de implantação no Raspberry Pi e o guia de integração do Edge TPU.
Sim, o TFLite suporta a implantação em microcontroladores com recursos limitados. O tempo de execução principal do TFLite requer apenas 16 KB de memória em um Arm Cortex M3 e pode executar modelos YOLO26 básicos. Isso o torna adequado para implantação em dispositivos com potência computacional e memória mínimas.
Para começar, visita o guia do TFLite Micro para Microcontroladores.
O TensorFlow Lite oferece ampla compatibilidade de plataforma, permitindo que você implante modelos YOLO26 em uma ampla gama de dispositivos, incluindo:
- Android e iOS: Suporte nativo por meio das bibliotecas TFLite para Android e iOS.
- Linux embarcado: Ideal para computadores de placa única, como o Raspberry Pi.
- Microcontroladores: Adequado para MCUs com recursos limitados.
Para mais informações sobre opções de implantação, consulta o nosso guia de implantação detalhado.
Se você encontrar erros ao exportar modelos YOLO26 para LiteRT, as soluções comuns incluem:
- Verificar a compatibilidade do pacote: Certifica-te de que estás a usar versões compatíveis do Ultralytics,
litert-torcheai-edge-litert. Consulta o nosso guia de instalação. - Suporte ao modelo: Verifica se o modelo YOLO26 específico suporta a exportação para LiteRT consultando a página de documentação de exportação do Ultralytics.
- Problemas de quantização: Ao usar a quantização INT8, certifica-te de que o caminho do teu dataset está especificado corretamente no parâmetro
data.
Para dicas adicionais de resolução de problemas, visita o nosso guia de Problemas Comuns.
- Verificar a compatibilidade do pacote: Certifica-te de que estás a usar versões compatíveis do Ultralytics,