Exportação de modelos TFLite para implementação (obsoleta)#
A partir do Ultralytics 8.4.83, o formato de exportação autónomo 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 exporta o mesmo modelo .tflite — agora abrangendo a implementação em dispositivos móveis, incorporados, edge e navegadores num único formato.
format="tflite" ainda funciona, mas emite um aviso de obsolescência e exporta um modelo LiteRT. Usa format="litert" daqui em diante; para obter instruções e opções de exportação atuais, consulta o guia de exportação do LiteRT.
A implementação de modelos de visão computacional em dispositivos edge ou dispositivos incorporados requer um formato que garanta um desempenho fluido.
O antigo formato de exportação TensorFlow Lite ou TFLite otimizava modelos Ultralytics YOLO26 para tarefas como deteção de objetos e classificação de imagens em aplicações edge. Este guia preserva o contexto de implementação do TFLite legado; usa o LiteRT para novas exportações.
Por que motivo o TFLite era usado para exportação?#
Introduzido pela Google em maio de 2017 como parte da sua framework TensorFlow, o TensorFlow Lite, ou TFLite, como é abreviado, era uma framework de deep learning de código aberto concebida para inferência no dispositivo, também conhecida como computação edge. Fornecia aos programadores ferramentas para executar modelos treinados em dispositivos móveis, incorporados e IoT, bem como em computadores tradicionais.
O TensorFlow Lite suportava uma vasta gama de plataformas, incluindo Linux incorporado, Android, iOS e microcontroladores (MCUs). As exportações TFLite permitiam que as aplicações executassem modelos localmente e offline.
Principais funcionalidades dos modelos TFLite#
Os modelos TFLite oferecem uma vasta gama de funcionalidades essenciais que permitem a aprendizagem automática no dispositivo, ajudando os programadores a executar os seus modelos em dispositivos móveis, incorporados e edge:
-
Otimização no dispositivo: o TFLite é otimizado para ML no dispositivo, reduzindo a latência ao processar os dados localmente, aumentando a privacidade ao não transmitir dados pessoais e minimizando o tamanho do modelo para poupar espaço.
-
Suporte para várias plataformas: o TFLite oferece ampla compatibilidade entre plataformas, com suporte para Android, iOS, Linux incorporado e microcontroladores.
-
Suporte para diversas linguagens: o TFLite é compatível com várias linguagens de programação, incluindo Java, Swift, Objective-C, C++ e Python.
-
Alto desempenho: alcança um desempenho superior através da aceleração por hardware e da otimização do modelo.
Desempenho medido (histórico)#
Estes resultados foram registados com o plugin Ultralytics Flutter 0.6.8 e o LiteRT 2.1.5 no Android 16/API 36
num Xiaomi 17 com 12 GB de memória LPDDR5X. O seu Snapdragon 8 Elite Gen 5 de 3 nm
(SM8850) tem uma CPU Qualcomm Oryon de 8 núcleos (2 núcleos Prime até 4,6 GHz e 6 núcleos Performance até 3,62 GHz),
GPU Adreno e NPU Hexagon. Estas tabelas comparam os recursos TFLite INT8 legados do onnx2tf com as exportações
litert-torch candidatas avaliadas durante a migração. Os recursos da versão foram posteriormente substituídos pelas exportações
padronizadas, pelo que estes números não descrevem os bytes atuais do recurso v0.6.6. Consulta as
tabelas de desempenho do LiteRT para obter medições atuais.
Ambos os formatos foram executados na mesma medição consecutiva da GPU, nos tamanhos de entrada apresentados. Cada célula corresponde ao tempo total
(pré-processamento + inferência + pós-processamento), com a divisão por etapa abaixo; os registos nativos confirmaram que ambos
os formatos delegaram o grafo completo no LiteRT OpenCL (LITERT_CL) na GPU Adreno.
| Modelo | Tarefa | tamanho (píxeis) | Legado onnx2tf INT8 TFLite (ms) | Candidato w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Deteção | 640 | 14.0 1.8 / 8.1 / 4.2 | 13.5 1.9 / 8.1 / 3.5 |
| YOLO26n-seg | Segmentação | 640 | 30.1 1.9 / 20.3 / 8.0 | 28.6 1.8 / 20.1 / 6.7 |
| YOLO26n-sem | Semântica | 640 | 26.4 1.9 / 16.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-cls | Classificação | 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 na GPU (ms) | Compilações da 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, w8a16 recorreu à CPU, com cerca de 660 ms no total, contra cerca de 17 ms nos formatos de GPU. Estes resultados
motivaram o lançamento de w8a32, mas a compatibilidade e o desempenho do delegado dependem do dispositivo e da versão do runtime.
Faz um benchmark no dispositivo-alvo e confirma a utilização do acelerador nos registos do runtime.
Opções de implementação no TFLite#
Antes de analisarmos o exemplo de exportação de substituição do LiteRT, vamos compreender como os modelos TFLite são normalmente utilizados.
O TFLite oferece várias opções de implementação no dispositivo para modelos de aprendizagem automática, incluindo:
- Implementação com Android e iOS: tanto as aplicações Android como as iOS com TFLite podem analisar transmissões de câmaras e sensores baseados em edge para detetar 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 implementação de um modelo treinado em plataformas Android e iOS utilizando TensorFlow Lite.
-
Implementação com Linux incorporado: se executar inferências num Raspberry Pi utilizando o Guia da Ultralytics não cumprir os requisitos de velocidade do seu caso de utilização, pode utilizar 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.
-
Implementação com microcontroladores: os modelos TFLite também podem ser implementados em microcontroladores e noutros dispositivos com apenas alguns quilobytes de memória. O runtime principal cabe em apenas 16 KB num Arm Cortex M3 e pode executar muitos modelos básicos. Não requer suporte de sistema operativo, bibliotecas C ou C++ padrão, nem alocação dinâmica de memória.
Substituir a exportação TFLite pelo LiteRT#
Para novas exportações, converte o teu modelo para LiteRT. O modelo resultante mantém a extensão de ficheiro .tflite.
Instalação#
Para instalares os pacotes necessários, executa:
# Install the required package for YOLO26
pip install ultralyticsPara obter instruções detalhadas e boas práticas relacionadas com o processo de instalação, consulte o nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para YOLO26, se encontrar alguma dificuldade, consulte o nosso guia de problemas comuns para obter soluções e dicas.
Utilização#
Todos os modelos Ultralytics YOLO26 foram concebidos para suportar a exportação imediatamente, facilitando a sua integração no teu fluxo de trabalho de implementação preferido. Podes consultar a lista completa de formatos de exportação e opções de configuração compatíveis para escolher a melhor configuração para a tua aplicação.
O formato LiteRT de substituição suporta os modos Exportar, Prever e Validar. Exporta o teu modelo e, em seguida, carrega o modelo .tflite exportado para executar 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 do modelo exportado, que define a compatibilidade com vários ambientes de implementação. |
imgsz | int ou tuple | 640 | Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou um tuplo (height, width) para dimensões específicas. |
quantize | int ou str | None | Precisã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; não requer calibração) ou 32/não definido (FP32). FP16 não é exportado separadamente — um modelo FP32 é executado automaticamente em FP16 nos delegados da GPU. Substitui as flags obsoletas half/int8. |
batch | int | 1 | Especifica 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. |
data | str | None | Caminho para o YAML do conjunto de dados, essencial para a quantização; a classificação requer, em vez disso, um diretório de conjunto de dados ou um nome de conjunto de dados integrado. Se for omitido com quantize=8 ou 'w8a16', a Ultralytics seleciona o conjunto de dados de calibração predefinido para a tarefa do modelo. |
fraction | float, int ou list | 1.0 | Subconjunto de calibração como proporção, contagem de imagens ou proporções/contagens de [train, val, test]. Listas de dois itens deixam test completo, enquanto 0 o ignora. |
device | str | None | Especifica o dispositivo para a exportação: CPU (device=cpu), MPS para Apple silicon (device=mps). |
Para obter mais detalhes sobre o processo de exportação, visita a página da documentação da Ultralytics sobre exportação.
Implementação de modelos YOLO26 TFLite exportados#
Depois de exportares o teu modelo Ultralytics YOLO26 para o formato LiteRT, podes implementar 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 fragmento de código de utilização anterior. No entanto, para obter instruções detalhadas sobre a implementação dos teus modelos TFLite noutros contextos, consulta os seguintes recursos:
-
Android: um guia de início rápido para integrar o TensorFlow Lite em aplicações Android, com passos fáceis de seguir para configurar e executar modelos de aprendizagem automática.
-
iOS: consulta este guia detalhado para programadores sobre a integração e implementação de modelos TensorFlow Lite em aplicações iOS, com instruções passo a passo e recursos.
-
Exemplos de ponta a ponta: esta página apresenta uma visão geral de vários exemplos do TensorFlow Lite, demonstrando aplicações práticas e tutoriais concebidos para ajudar os programadores a implementar o TensorFlow Lite nos seus projetos de aprendizagem automática em dispositivos móveis e edge.
Resumo#
Este guia preserva o fluxo de trabalho de implementação do TFLite legado. Para novas exportações, utiliza o LiteRT para criar modelos .tflite destinados a ambientes de computação edge.
Para obter mais informações sobre a utilização, 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ções. Encontrarás aí muitas informações e conhecimentos úteis.
Perguntas frequentes#
Para uma nova exportação, utiliza o formato LiteRT. Primeiro, instala o pacote necessário utilizando:
pip install ultralyticsEm seguida, utiliza o seguinte fragmento de código para exportar o teu 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 utilizadores da CLI, podes fazê-lo com:
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classificationPara mais informações, consulta o guia de exportação do Ultralytics.
O TensorFlow Lite (TFLite) é uma framework de deep learning de código aberto concebida para inferência no dispositivo, o que a torna ideal para implementar modelos YOLO26 em dispositivos móveis, incorporados e IoT. As principais vantagens incluem:
- Otimização no dispositivo: minimiza a latência e aumenta a privacidade ao processar os dados localmente.
- Compatibilidade entre plataformas: suporta Android, iOS, Linux incorporado e MCU.
- Desempenho: utiliza aceleração por hardware para otimizar a velocidade e a eficiência do modelo.
Para saberes mais, consulta o guia do TFLite.
Sim, podes executar modelos YOLO26 TFLite num Raspberry Pi para melhorar as velocidades de inferência. Primeiro, exporta o teu modelo para o formato LiteRT, conforme explicado acima. Em seguida, utiliza uma ferramenta como o TensorFlow Lite Interpreter para executar o modelo no teu Raspberry Pi.
Para obter mais otimizações, podes considerar a utilização do Coral Edge TPU. Para obter passos detalhados, consulta o nosso guia de implementação no Raspberry Pi e o guia de integração do Edge TPU.
Sim, o TFLite suporta a implementação em microcontroladores com recursos limitados. O runtime principal do TFLite requer apenas 16 KB de memória num Arm Cortex M3 e pode executar modelos YOLO26 básicos. Isto torna-o adequado para implementação em dispositivos com capacidade computacional e memória mínimas.
Para começar, visita o guia do TFLite Micro para microcontroladores.
O TensorFlow Lite oferece ampla compatibilidade entre plataformas, permitindo implementar modelos YOLO26 numa vasta gama de dispositivos, incluindo:
- Android e iOS: suporte nativo através das bibliotecas TFLite para Android e iOS.
- Linux incorporado: ideal para computadores de placa única, como o Raspberry Pi.
- Microcontroladores: adequado para MCUs com recursos limitados.
Para obter mais informações sobre as opções de implementação, consulta o nosso guia de implementação detalhado.
Se encontrares erros ao exportar modelos YOLO26 para LiteRT, as soluções comuns incluem:
- Verificar a compatibilidade dos pacotes: certifica-te de que estás a utilizar versões compatíveis do Ultralytics,
litert-torcheai-edge-litert. Consulta o nosso guia de instalação. - Suporte do modelo: verifica se o modelo YOLO26 específico suporta a exportação para LiteRT, consultando a página de documentação de exportação da Ultralytics.
- Problemas de quantização: Ao utilizar a quantização INT8, certifica-te de que o caminho do teu conjunto de dados está corretamente especificado no parâmetro
data.
Para obteres mais sugestões de resolução de problemas, consulta o nosso guia de problemas comuns.
- Verificar a compatibilidade dos pacotes: certifica-te de que estás a utilizar versões compatíveis do Ultralytics,