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 cobrindo implantação em dispositivos móveis, embarcados, de borda (edge) e navegadores em um único formato.
format="tflite" ainda funciona, mas emite um aviso de descontinuação e exporta um modelo LiteRT em vez disso. Use format="litert" de agora em diante; para instruções e opções de exportação atuais, consulte o guia de exportação LiteRT.
A implantação de modelos de visão computacional em dispositivos de borda (edge) ou embarcados requer um formato que possa garantir um desempenho contínuo.
O formato de exportação antigo TensorFlow Lite ou TFLite otimizava modelos Ultralytics YOLO26 para tarefas como detecção de objetos e classificação de imagens em aplicações de edge. Este guia preserva o contexto de implantação legado do TFLite; use LiteRT para novas exportações.
Por que o TFLite era usado para exportação?#
Introduzido pelo Google em maio de 2017 como parte de seu framework TensorFlow, o TensorFlow Lite, ou TFLite para abreviar, foi um framework de deep learning de código aberto projetado para inferência no dispositivo, também conhecido como edge computing. Ele oferecia aos desenvolvedores ferramentas para executar modelos treinados em dispositivos móveis, embarcados e 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 Ultralytics Flutter 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 (SM8850) de 3 nm 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 assets TFLite INT8 onnx2tf legados com as exportações candidatas litert-torch avaliadas durante a migração. Os assets de lançamento foram subsequentemente substituídos pelas exportações padronizadas, portanto estes números não descrevem os bytes do asset atual v0.6.6. Consulte as tabelas de desempenho do LiteRT para obter as medições atuais.
Ambos os formatos foram executados no mesmo varrimento de GPU consecutivo nos tamanhos de entrada mostrados. Cada célula representa o tempo total
(pré-processamento + inferência + pós-processamento), com a divisão por estágio logo abaixo; os 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 em 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.
Avalie o dispositivo de destino e confirme o posicionamento do acelerador nos seus 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 aplicativos Android quanto iOS com TFLite podem analisar feeds de câmera e sensores baseados em borda 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 TensorFlow Lite.
-
Implementando com Linux embarcado: Se a execução de inferências em um Raspberry Pi usando o Guia Ultralytics não atender aos requisitos de velocidade para o seu caso de uso, você pode 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, converta seu 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 obter instruções detalhadas e práticas recomendadas relacionadas ao processo de instalação, consulte nosso Guia de Instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO26, se você encontrar alguma dificuldade, consulte nosso Guia de Problemas Comuns para obter soluções e dicas.
Uso#
Todos os modelos Ultralytics YOLO26 são projetados para suportar exportação pronta para uso, tornando fácil integrá-los ao seu fluxo de trabalho de implantação preferido. Você pode ver a lista completa de formatos de exportação suportados e opções de configuração para escolher a melhor configuração para sua aplicação.
O formato de substituição LiteRT suporta os modos Export, Predict e Validate. Exporte seu modelo e, em seguida, carregue o modelo .tflite exportado para executar a inferência ou validar 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; nenhuma calibração necessária), ou 32/não definido (FP32). FP16 não é exportado separadamente — um modelo FP32 roda em FP16 automaticamente em delegados de GPU. Substitui as flags descontinuadas half/int8. |
batch | int | 1 | Especifica o tamanho da inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente no modo predict. |
data | str | 'coco8.yaml' | Caminho para o arquivo de configuração do dataset (padrão: coco8.yaml), essencial para quantização. |
fraction | float | 1.0 | Especifica a fração do conjunto de dados a ser usada para calibração de quantização INT8. Permite calibrar em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados. Se não especificado com INT8 ativado, o conjunto de dados completo será usado. |
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, visite a página de documentação do Ultralytics sobre exportação.
Implantando modelos YOLO26 TFLite exportados#
Após exportar seu modelo Ultralytics YOLO26 para o formato LiteRT, você pode implantar o modelo .tflite resultante. O primeiro passo principal e recomendado para executar um modelo TFLite é usar 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 seus modelos TFLite em vários outros ambientes, dê uma olhada nos seguintes recursos:
-
Android: Um guia de início rápido para integrar o TensorFlow Lite em aplicativos Android, fornecendo etapas fáceis de seguir para configurar e executar modelos de aprendizado de máquina.
-
iOS: Confira este guia detalhado para desenvolvedores sobre como integrar e implantar modelos TensorFlow Lite em aplicativos 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, apresentando aplicações práticas e tutoriais projetados para ajudar os desenvolvedores a implementar o TensorFlow Lite em seus projetos de aprendizado de máquina 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, use LiteRT para criar modelos .tflite para ambientes de edge computing.
Para obter mais detalhes sobre o uso, visite a documentação oficial do TFLite.
Além disso, se você estiver curioso sobre outras integrações do Ultralytics YOLO26, confira nossa página do guia de integração. Você encontrará muitas informações úteis e insights lá.
FAQ#
Como substituo uma exportação TFLite pelo LiteRT?#
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, visite o guia de exportação do Ultralytics.
Quais são os benefícios de usar o TensorFlow Lite para implantação de modelos YOLO26?#
O TensorFlow Lite (TFLite) é uma estrutura de aprendizado profundo de código aberto projetada para inferência no dispositivo, 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, confira o guia do TFLite.
É possível executar modelos YOLO26 TFLite no Raspberry Pi?#
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 outras otimizações, considere usar o Coral Edge TPU. Para etapas detalhadas, consulte nosso guia de implantação do Raspberry Pi e o guia de integração do Edge TPU.
Posso usar modelos TFLite em microcontroladores para previsões YOLO26?#
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, visite o guia do TFLite Micro para microcontroladores.
Quais plataformas são compatíveis com modelos YOLO26 exportados para TFLite?#
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 obter mais informações sobre opções de implantação, consulte nosso guia de implantação detalhado.
Como soluciono problemas comuns durante a exportação do modelo YOLO26 para LiteRT?#
Se você encontrar erros ao exportar modelos YOLO26 para LiteRT, as soluções comuns incluem:
- Verifique a compatibilidade do pacote: Certifique-se de estar usando versões compatíveis do Ultralytics,
litert-torcheai-edge-litert. Consulte nosso guia de instalação. - Suporte ao modelo: Verifique se o modelo YOLO26 específico suporta a exportação LiteRT consultando a página de documentação de exportação do Ultralytics.
- Problemas de quantização: Ao usar a quantização INT8, certifique-se de que o caminho do seu conjunto de dados esteja especificado corretamente no parâmetro
data.
Para dicas adicionais de solução de problemas, visite nosso Guia de Problemas Comuns.