Salta para o conte√ļdo

Um guia sobre YOLOv8 Exportação de modelos para o TFLite para implantação

Logótipo TFLite

A implementação de modelos de visão computacional em dispositivos de ponta ou dispositivos incorporados requer um formato que possa garantir um desempenho perfeito.

O formato de exportação TensorFlow Lite ou TFLite permite-te otimizar os teus Ultralytics YOLOv8 modelos para tarefas como deteção de objetos e classificação de imagens em aplicativos baseados em dispositivos de borda. Neste guia, vamos percorrer os passos para converter os teus modelos para o formato TFLite, facilitando o desempenho dos teus modelos em vários dispositivos de ponta.

Porque deves exportar para o TFLite?

Introduzido pela Google em maio de 2017 como parte da sua estrutura TensorFlow , o TensorFlow Lite, ou TFLite, é uma estrutura de aprendizagem profunda de código aberto concebida para inferência no dispositivo, também conhecida como computação de ponta. Dá aos programadores as ferramentas necessárias para executar os seus modelos treinados em dispositivos móveis, incorporados e IoT, bem como em computadores tradicionais.

TensorFlow Lite √© compat√≠vel com uma vasta gama de plataformas, incluindo Linux incorporado, Android, iOS, e MCU. Exportar o teu modelo para o TFLite torna as tuas aplica√ß√Ķes mais r√°pidas, mais fi√°veis e capazes de funcionar offline.

Principais características 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 de ponta:

  • Otimiza√ß√£o no dispositivo: O TFLite optimiza o 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 poupar espa√ßo.

  • Suporte a v√°rias plataformas: O TFLite oferece ampla compatibilidade de plataformas, suportando Android, iOS, Linux incorporado e microcontroladores.

  • Suporta v√°rias linguagens: O TFLite √© compat√≠vel com v√°rias linguagens de programa√ß√£o, incluindo Java, Swift, Objective-C, C++ e Python.

  • Alto desempenho: Obt√©m um desempenho superior atrav√©s da acelera√ß√£o de hardware e da otimiza√ß√£o de modelos.

Op√ß√Ķes de implementa√ß√£o no TFLite

Antes de olharmos o código para exportar YOLOv8 modelos para o formato TFLite, 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:

  • Implanta√ß√£o com Android e iOS: Os aplicativos Android e iOS com TFLite podem analisar feeds de c√Ęmera e sensores baseados em borda para detetar 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 implanta√ß√£o de um modelo treinado nas plataformas Android e iOS usando TensorFlow Lite.

Arquitetura

  • Implementa com Linux incorporado: Se a execu√ß√£o de infer√™ncias em um Raspberry Pi usando o GuiaUltralytics n√£o atender aos requisitos de velocidade do seu caso de uso, √© poss√≠vel 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 .

  • Implanta√ß√£o em microcontroladores: Os modelos TFLite tamb√©m podem ser implantados em microcontroladores e outros dispositivos com apenas alguns kilobytes de mem√≥ria. O n√ļcleo do tempo de execu√ß√£o cabe em apenas 16 KB num Arm Cortex M3 e pode executar muitos modelos b√°sicos. N√£o necessita de suporte do sistema operativo, de quaisquer bibliotecas C ou C++ padr√£o, nem de atribui√ß√£o din√Ęmica de mem√≥ria.

Exportar para o TFLite: Converter o teu modelo YOLOv8

Podes melhorar a eficiência da execução de modelos no dispositivo e otimizar o desempenho convertendo-os para o formato TFLite.

Instalação

Para instalar os pacotes necess√°rios, executa:

Instalação

# Install the required package for YOLOv8
pip install ultralytics

Para obter instru√ß√Ķes detalhadas e melhores pr√°ticas relacionadas com o processo de instala√ß√£o, consulta o nosso guia de instala√ß√£oUltralytics . Durante a instala√ß√£o dos pacotes necess√°rios para YOLOv8, se tiveres alguma dificuldade, consulta o nosso guia de Problemas comuns para obteres solu√ß√Ķes e sugest√Ķes.

Utilização

Antes de seguir as instru√ß√Ķes de utiliza√ß√£o, √© importante notar que, embora todos os modelosUltralytics YOLOv8 estejam dispon√≠veis para exporta√ß√£o, podes garantir que o modelo que seleccionaste suporta a funcionalidade de exporta√ß√£o aqui.

Utilização

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolov8n_float32.tflite'

# Load the exported TFLite model
tflite_model = YOLO("yolov8n_float32.tflite")

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TFLite format
yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

# Run inference with the exported model
yolo predict model='yolov8n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'

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

Implantação de modelos exportados do YOLOv8 TFLite

Depois de exportar com sucesso os teus modelos Ultralytics YOLOv8 para o formato TFLite, podes agora implement√°-los. A primeira etapa principal e recomendada 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 obter instru√ß√Ķes detalhadas sobre a implanta√ß√£o de seus modelos TFLite em v√°rias outras configura√ß√Ķes, d√° uma olhada 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 programadores sobre a integra√ß√£o e implementa√ß√£o de modelos TensorFlow Lite em aplica√ß√Ķes iOS , que oferece instru√ß√Ķes e recursos passo a passo.

  • 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 concebidos para ajudar os programadores a implementar o TensorFlow Lite nos seus projectos de aprendizagem autom√°tica em dispositivos m√≥veis e perif√©ricos.

Resumo

Neste guia, concentramo-nos em como exportar para o formato TFLite. Ao converteres os teus modelos Ultralytics YOLOv8 para o formato de modelo TFLite, podes melhorar a eficiência e a velocidade dos modelos YOLOv8 , tornando-os mais eficazes e adequados para ambientes de computação periférica.

Para mais informa√ß√Ķes sobre a utiliza√ß√£o, consulta a documenta√ß√£o oficial do TFLite.

Al√©m disso, se tiveres curiosidade sobre outras integra√ß√Ķes de Ultralytics YOLOv8 , consulta a nossa p√°gina de guia de integra√ß√£o. Encontrar√°s toneladas de informa√ß√Ķes √ļteis e de conhecimentos √† tua espera.

FAQ

Como é que exporto um modelo YOLOv8 para o formato TFLite?

Para exportar um modelo YOLOv8 para o formato TFLite, podes utilizar a biblioteca Ultralytics . Primeiro, instala o pacote necess√°rio utilizando:

pip install ultralytics

Em seguida, utiliza o seguinte fragmento de código para exportar o teu modelo:

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolov8n_float32.tflite'

Para os utilizadores de CLI , podes conseguir isto com:

yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

Para mais informa√ß√Ķes, consulta o guia de exporta√ß√£oUltralytics .

Quais são as vantagens de utilizar TensorFlow Lite para a implementação do modelo YOLOv8 ?

TensorFlow Lite (TFLite) é uma estrutura de aprendizagem profunda de código aberto concebida para inferência no dispositivo, tornando-a ideal para a implementação de modelos YOLOv8 em dispositivos móveis, incorporados e IoT. Os principais benefícios incluem:

  • Otimiza√ß√£o no dispositivo: Minimiza a lat√™ncia e melhora a privacidade processando os dados localmente.
  • Compatibilidade de plataformas: Suporta Android, iOS, Linux incorporado e MCU.
  • Desempenho: Utiliza a acelera√ß√£o de hardware para otimizar a velocidade e a efici√™ncia do modelo.

Para saberes mais, consulta o guia TFLite.

√Č poss√≠vel executar os modelos YOLOv8 TFLite no Raspberry Pi?

Sim, podes executar YOLOv8 modelos TFLite no Raspberry Pi para melhorar a velocidade de inferência. Primeiro, exporta o teu modelo para o formato TFLite, como explicado aqui. Depois, usa uma ferramenta como o TensorFlow Lite Interpreter para executar o modelo no teu Raspberry Pi.

Para mais optimiza√ß√Ķes, podes considerar a utiliza√ß√£o do Coral Edge TPU. Para obter etapas detalhadas, consulte nosso guia de implanta√ß√£o do Raspberry Pi.

Posso utilizar modelos TFLite em microcontroladores para YOLOv8 previs√Ķes?

Sim, o TFLite suporta a implementa√ß√£o em microcontroladores com recursos limitados. O tempo de execu√ß√£o do n√ļcleo do TFLite requer apenas 16 KB de mem√≥ria num Arm Cortex M3 e pode executar modelos YOLOv8 b√°sicos. Isto torna-o adequado para ser implementado em dispositivos com pot√™ncia computacional e mem√≥ria m√≠nimas.

Para começar, visita o guia TFLite Micro para microcontroladores.

Que plataformas são compatíveis com os modelos YOLOv8 exportados pelo TFLite?

TensorFlow Lite oferece uma compatibilidade extensiva de plataformas, permitindo-te implementar modelos YOLOv8 numa vasta gama de dispositivos, incluindo:

  • Android e iOS: Suporte nativo atrav√©s das bibliotecas TFLite Android e iOS .
  • Linux incorporado: Ideal para computadores de placa √ļnica, como o Raspberry Pi.
  • Microcontroladores: Adequado para MCUs com recursos limitados.

Para mais informa√ß√Ķes sobre as op√ß√Ķes de implementa√ß√£o, consulta o nosso guia de implementa√ß√£o detalhado.

Como é que resolvo problemas comuns durante a exportação do modelo YOLOv8 para o TFLite?

Se encontrares erros ao exportar modelos YOLOv8 para o TFLite, as solu√ß√Ķes comuns incluem:

  • Verifica a compatibilidade dos pacotes: Certifica-te de que est√°s a utilizar vers√Ķes compat√≠veis de Ultralytics e TensorFlow. Consulta o nosso guia de instala√ß√£o.
  • Suporte do modelo: Verifica se o modelo espec√≠fico de YOLOv8 suporta a exporta√ß√£o TFLite, verificando aqui.

Para obteres mais sugest√Ķes de resolu√ß√£o de problemas, visita o nosso guia de Problemas comuns.



Criado em 2024-03-01, Atualizado em 2024-07-05
Autores: glenn-jocher (6), abirami-vina (1)

Coment√°rios