Um Guia sobre a Exportação de Modelos YOLO11 para TFLite para Implementação
A implementação de modelos de visão computacional em dispositivos de borda ou dispositivos embarcados requer um formato que possa garantir um desempenho perfeito.
O formato de exportação TensorFlow Lite ou TFLite permite otimizar seus modelos Ultralytics YOLO11 para tarefas como detecção de objetos e classificação de imagens em aplicações baseadas em dispositivos de borda. Neste guia, vamos percorrer os passos para converter seus modelos para o formato TFLite, tornando mais fácil para seus modelos terem um bom desempenho em vários dispositivos de borda.
Por que devo exportar para TFLite?
Introduzido pelo Google em maio de 2017 como parte de sua estrutura TensorFlow, o TensorFlow Lite, ou TFLite para abreviar, é uma estrutura de aprendizado profundo de código aberto projetada para inferência no dispositivo, também conhecida como computação de borda. Ele oferece aos desenvolvedores as ferramentas necessárias para executar seus modelos treinados em dispositivos móveis, embarcados e IoT, bem como em computadores tradicionais.
O TensorFlow Lite é compatível com uma ampla gama de plataformas, incluindo Linux embarcado, Android, iOS e MCU. Exportar seu modelo para TFLite torna suas aplicações mais rápidas, mais confiáveis e capazes de serem executadas offline.
Principais Características dos Modelos TFLite
Os modelos TFLite oferecem uma ampla gama de recursos importantes que habilitam 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 extensa compatibilidade de plataforma, suportando Android, iOS, Linux embarcado e microcontroladores.
-
Suporte a 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 desempenho superior através de aceleração de hardware e otimização de modelo.
Opções de Implementação no TFLite
Antes de analisarmos o código para exportar modelos YOLO11 para o formato TFLite, vamos entender como os modelos TFLite são normalmente usados.
O TFLite oferece várias opções de implementação no dispositivo para modelos de aprendizado de máquina, incluindo:
- Implementando com Android e iOS: Tanto as aplicações Android quanto iOS com TFLite podem analisar feeds de câmera e sensores baseados na borda para detectar e identificar objetos. O TFLite também oferece bibliotecas iOS nativas 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 usando o TensorFlow Lite.
-
Implementando com Linux Embarcado: Se executar inferências em um Raspberry Pi usando o Guia Ultralytics não atender aos requisitos de velocidade para 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.
-
Implementando com Microcontroladores: Os modelos TFLite também podem ser implementados 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. Não requer suporte ao sistema operacional, nenhuma biblioteca C ou C++ padrão ou alocação dinâmica de memória.
Exportar para TFLite: Convertendo Seu Modelo YOLO11
Você pode melhorar a eficiência da execução do modelo no dispositivo e otimizar o desempenho convertendo seus modelos para o formato TFLite.
Instalação
Para instalar os pacotes necessários, execute:
Instalação
# Install the required package for YOLO11
pip install ultralytics
Para obter instruções detalhadas e melhores práticas relacionadas ao processo de instalação, consulte nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO11, se você encontrar alguma dificuldade, consulte nosso guia de problemas comuns para obter soluções e dicas.
Utilização
Todos os modelos Ultralytics YOLO11 são projetados para suportar a exportação, facilitando a integração em seu fluxo de trabalho de implantação preferido. Você pode visualizar a lista completa de formatos de exportação e opções de configuração suportados para escolher a melhor configuração para sua aplicação.
Utilização
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
# Run inference with the exported model
yolo predict model='yolo11n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'
Argumentos de Exportação
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
format |
str |
'tflite' |
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 inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas. |
half |
bool |
False |
Ativa a quantização FP16 (meia precisão), reduzindo o tamanho do modelo e potencialmente acelerando a inferência em hardware suportado. |
int8 |
bool |
False |
Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com perda mínima de precisão, principalmente para dispositivos de borda. |
nms |
bool |
False |
Adiciona a Supressão Não Máxima (NMS), essencial para um pós-processamento de detecção preciso e eficiente. |
batch |
int |
1 |
Especifica o tamanho do lote de inferência do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente em predict modo. |
data |
str |
'coco8.yaml' |
Caminho para o conjunto de dados arquivo de configuração (padrão: coco8.yaml ), essencial para a quantização. |
fraction |
float |
1.0 |
Especifica a fração do conjunto de dados a ser usada para a calibração da 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 for especificado com INT8 habilitado, o conjunto de dados completo será usado. |
device |
str |
None |
Especifica o dispositivo para exportar: 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 da Ultralytics sobre exportação.
Implementando Modelos YOLO11 TFLite Exportados
Após exportar com sucesso seus modelos Ultralytics YOLO11 para o formato TFLite, você já pode implantá-los. A primeira etapa principal e recomendada para executar um modelo TFLite é utilizar o YOLO("model.tflite")
método, conforme descrito no trecho de código de uso anterior. No entanto, para obter instruções detalhadas sobre como implementar seus modelos TFLite em várias outras configurações, consulte os seguintes recursos:
-
Android: Um guia de início rápido para integrar o TensorFlow Lite em aplicativos Android, fornecendo passos fáceis de seguir para configurar e executar modelos de aprendizado de máquina.
-
iOS: Consulte este guia detalhado para desenvolvedores sobre como integrar e implementar modelos TensorFlow Lite em aplicativos iOS, oferecendo instruções e recursos passo a passo.
-
Exemplos Completos: Esta página fornece uma visão geral de vários exemplos do TensorFlow Lite, mostrando 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
Neste guia, focamos em como exportar para o formato TFLite. Ao converter seus modelos Ultralytics YOLO11 para o formato de modelo TFLite, você pode melhorar a eficiência e a velocidade dos modelos YOLO11, tornando-os mais eficazes e adequados para ambientes de computação de borda.
Para 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 YOLO11, certifique-se de verificar nossa página de guia de integração. Você encontrará muitas informações e insights úteis esperando por você lá.
FAQ
Como exporto um modelo YOLO11 para o formato TFLite?
Para exportar um modelo YOLO11 para o formato TFLite, você pode usar a biblioteca Ultralytics. Primeiro, instale o pacote necessário usando:
pip install ultralytics
Em seguida, use o seguinte trecho de código para exportar seu modelo:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
Para usuários de CLI, você pode conseguir isso com:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
Para mais detalhes, visite o guia de exportação da Ultralytics.
Quais são os benefícios de usar o TensorFlow Lite para a implementação de modelos YOLO11?
TensorFlow Lite (TFLite) é uma estrutura de aprendizado profundo de código aberto projetada para inferência no dispositivo, tornando-o ideal para implementar modelos YOLO11 em dispositivos móveis, embarcados e IoT. Os principais benefícios incluem:
- Otimização no dispositivo: Minimize a latência e melhore a privacidade processando os 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, consulte o guia do TFLite.
É possível executar modelos YOLO11 TFLite no Raspberry Pi?
Sim, você pode executar modelos YOLO11 TFLite no Raspberry Pi para melhorar as velocidades de inferência. Primeiro, exporte o seu modelo para o formato TFLite conforme explicado acima. Em seguida, use uma ferramenta como o TensorFlow Lite Interpreter para executar o modelo no seu Raspberry Pi.
Para mais otimizações, pode considerar usar o Coral Edge TPU. Para obter instruções detalhadas, consulte o nosso guia de implementação do Raspberry Pi e o guia de integração do Edge TPU.
Posso usar modelos TFLite em microcontroladores para previsões YOLO11?
Sim, o TFLite suporta a implementaçã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 YOLO11 básicos. Isso o torna adequado para implementaçã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 YOLO11 exportados em TFLite?
O TensorFlow Lite oferece ampla compatibilidade de plataforma, permitindo que você implemente modelos YOLO11 em uma vasta gama de dispositivos, incluindo:
- Android e iOS: Suporte nativo através das bibliotecas TFLite 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 as opções de implementação, consulte nosso guia de implementação detalhado.
Como soluciono problemas comuns durante a exportação de modelos YOLO11 para TFLite?
Se você encontrar erros ao exportar modelos YOLO11 para TFLite, as soluções comuns incluem:
- Verificar a compatibilidade do pacote: Certifique-se de que está usando versões compatíveis do Ultralytics e do TensorFlow. Consulte nosso guia de instalação.
- Suporte ao Modelo: Verifique se o modelo YOLO11 específico oferece suporte à exportação para TFLite, consultando a página de documentação de exportação da 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
data
parâmetro.
Para obter dicas adicionais de solução de problemas, visite nosso guia de Problemas Comuns.