Ir para o conteúdo

Coral Edge TPU num Raspberry Pi com Ultralytics YOLO11 🚀

Computador de placa única Raspberry Pi com acelerador USB Edge TPU

O que é um Coral Edge TPU?

O Coral Edge TPU é um dispositivo compacto que adiciona um coprocessador Edge TPU ao seu sistema. Ele permite inferência de ML de baixo consumo de energia e alto desempenho para modelos TensorFlow Lite. Leia mais na página inicial do Coral Edge TPU.



Assista: Como Executar a Inferência no Raspberry Pi usando o Google Coral Edge TPU

Aumente o Desempenho do Modelo Raspberry Pi com Coral Edge TPU

Muitas pessoas querem executar os seus modelos num dispositivo incorporado ou móvel, como um Raspberry Pi, uma vez que são muito eficientes em termos de energia e podem ser usados em muitas aplicações diferentes. No entanto, o desempenho da inferência nestes dispositivos é geralmente baixo, mesmo quando se utilizam formatos como ONNX ou OpenVINO. O Coral Edge TPU é uma ótima solução para este problema, uma vez que pode ser usado com um Raspberry Pi e acelerar muito o desempenho da inferência.

Edge TPU no Raspberry Pi com TensorFlow Lite (Novo)⭐

O guia existente da Coral sobre como usar o Edge TPU com um Raspberry Pi está desatualizado, e as versões atuais do tempo de execução do Coral Edge TPU não funcionam mais com as versões atuais do tempo de execução do TensorFlow Lite. Além disso, o Google parece ter abandonado completamente o projeto Coral, e não houve atualizações entre 2021 e 2025. Este guia mostrará como fazer o Edge TPU funcionar com as versões mais recentes do tempo de execução do TensorFlow Lite e um tempo de execução do Coral Edge TPU atualizado em um computador de placa única Raspberry Pi (SBC).

Pré-requisitos

Passo a Passo da Instalação

Este guia assume que você já tem uma instalação funcional do Raspberry Pi OS e que já instalou ultralytics e todas as dependências. Para obter ultralytics instalado, visite o guia de início rápido para se preparar antes de continuar aqui.

Instalando o runtime Edge TPU

Primeiro, precisamos instalar o runtime do Edge TPU. Existem muitas versões diferentes disponíveis, então você precisa escolher a versão certa para o seu sistema operacional. A versão de alta frequência executa o Edge TPU a uma velocidade de clock mais alta, o que melhora o desempenho. No entanto, pode resultar na limitação térmica do Edge TPU, por isso é recomendável ter algum tipo de mecanismo de resfriamento instalado.

Raspberry Pi OSModo de alta frequênciaVersão para download
Bullseye 32bitNãolibedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bitNãolibedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bitSimlibedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bitSimlibedgetpu1-max_ ... .bullseye_arm64.deb
Bookworm 32bitNãolibedgetpu1-std_ ... .bookworm_armhf.deb
Bookworm 64bitNãolibedgetpu1-std_ ... .bookworm_arm64.deb
Bookworm 32bitSimlibedgetpu1-max_ ... .bookworm_armhf.deb
Bookworm 64bitSimlibedgetpu1-max_ ... .bookworm_arm64.deb

Baixe a versão mais recente aqui.

Após baixar o arquivo, você pode instalá-lo com o seguinte comando:

sudo dpkg -i path/to/package.deb

Depois de instalar o tempo de execução, ligue o seu TPU Coral Edge a uma porta USB 3.0 no Raspberry Pi para que o novo udev A regra pode entrar em vigor.

Importante

Se já tiver o runtime Coral Edge TPU instalado, desinstale-o usando o seguinte comando.

# If you installed the standard version
sudo apt remove libedgetpu1-std

# If you installed the high frequency version
sudo apt remove libedgetpu1-max

Exportar para Edge TPU

Para usar a Edge TPU, precisa de converter o seu modelo para um formato compatível. Recomenda-se que execute a exportação no Google Colab, máquina Linux x86_64, usando o Ultralytics Docker container oficial, ou usando o Ultralytics HUB, uma vez que o compilador Edge TPU não está disponível no ARM. Consulte o Export Mode para os argumentos disponíveis.

Exportando o modelo

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/model.pt")  # Load an official model or custom model

# Export the model
model.export(format="edgetpu")
yolo export model=path/to/model.pt format=edgetpu # Export an official model or custom model

O modelo exportado será salvo em <model_name>_saved_model/ pasta com o nome <model_name>_full_integer_quant_edgetpu.tflite. Certifique-se de que o nome do ficheiro termina com _edgetpu.tflite caso contrário, Ultralytics não detectará que está a utilizar um modelo Edge TPU .

Executando o modelo

Antes de realmente executar o modelo, você precisará instalar as bibliotecas corretas.

Se já tiver TensorFlow instalado, desinstale-o com o seguinte comando:

pip uninstall tensorflow tensorflow-aarch64

Em seguida, instalar ou atualizar tflite-runtime:

pip install -U tflite-runtime

Agora você pode executar a inferência usando o seguinte código:

Executando o modelo

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite")  # Load an official model or custom model

# Run Prediction
model.predict("path/to/source.png")
yolo predict model=path/to/MODEL_NAME_full_integer_quant_edgetpu.tflite source=path/to/source.png # Load an official model or custom model

Encontre informações abrangentes na página Predict para obter detalhes completos sobre o modo de previsão.

Inferência com múltiplos Edge TPUs

Se tiver várias TPUs Edge, pode utilizar o seguinte código para selecionar uma TPU específica.

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite")  # Load an official model or custom model

# Run Prediction
model.predict("path/to/source.png")  # Inference defaults to the first TPU

model.predict("path/to/source.png", device="tpu:0")  # Select the first TPU

model.predict("path/to/source.png", device="tpu:1")  # Select the second TPU

Benchmarks

Benchmarks

Testado com o Raspberry Pi OS Bookworm 64-bit e uma TPU USB Coral Edge.

Nota

O tempo de inferência é mostrado, o pré/pós-processamento não está incluído.

Tamanho da ImagemModeloTempo de Inferência Padrão (ms)Tempo de Inferência de Alta Frequência (ms)
320YOLOv8n32.226.7
320YOLOv8s47.139.8
512YOLOv8n73.560.7
512YOLOv8s149.6125.3
Tamanho da ImagemModeloTempo de Inferência Padrão (ms)Tempo de Inferência de Alta Frequência (ms)
320YOLOv8n22.216.7
320YOLOv8s40.132.2
512YOLOv8n53.541.6
512YOLOv8s132.0103.3

Em média:

  • O Raspberry Pi 5 é 22% mais rápido com o modo padrão do que o Raspberry Pi 4B.
  • O Raspberry Pi 5 é 30,2% mais rápido com o modo de alta frequência do que o Raspberry Pi 4B.
  • O modo de alta frequência é 28,4% mais rápido que o modo padrão.

FAQ

O que é um Coral Edge TPU e como ele melhora o desempenho do Raspberry Pi com Ultralytics YOLO11?

O Coral Edge TPU é um dispositivo compacto projetado para adicionar um coprocessador Edge TPU ao seu sistema. Este coprocessador permite inferência de aprendizado de máquina de baixo consumo de energia e alto desempenho, particularmente otimizado para modelos TensorFlow Lite. Ao usar um Raspberry Pi, o Edge TPU acelera a inferência do modelo de ML, aumentando significativamente o desempenho, especialmente para modelos Ultralytics YOLO11. Você pode ler mais sobre o Coral Edge TPU em sua página inicial.

Como instalar o runtime Coral Edge TPU em um Raspberry Pi?

Para instalar o runtime do Coral Edge TPU no seu Raspberry Pi, baixe o pacote apropriado .deb pacote para sua versão do SO Raspberry Pi de este link. Uma vez descarregado, utilize o seguinte comando para o instalar:

sudo dpkg -i path/to/package.deb

Certifique-se de desinstalar quaisquer versões anteriores do runtime Coral Edge TPU seguindo os passos descritos na seção Passo a Passo da Instalação.

Posso exportar meu modelo Ultralytics YOLO11 para ser compatível com o Coral Edge TPU?

Sim, você pode exportar o seu modelo Ultralytics YOLO11 para ser compatível com o Coral Edge TPU. Recomenda-se realizar a exportação no Google Colab, numa máquina Linux x86_64 ou usando o Ultralytics Docker container. Você também pode usar o Ultralytics HUB para exportar. Aqui está como você pode exportar o seu modelo usando Python e CLI:

Exportando o modelo

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/model.pt")  # Load an official model or custom model

# Export the model
model.export(format="edgetpu")
yolo export model=path/to/model.pt format=edgetpu # Export an official model or custom model

Para obter mais informações, consulte a documentação do Modo de Exportação.

O que devo fazer se o TensorFlow já estiver instalado no meu Raspberry Pi, mas eu quiser usar o tflite-runtime?

Se você tiver o TensorFlow instalado no seu Raspberry Pi e precisar mudar para tflite-runtime, você precisará desinstalar o TensorFlow primeiro usando:

pip uninstall tensorflow tensorflow-aarch64

Em seguida, instale ou atualize tflite-runtime com o seguinte comando:

pip install -U tflite-runtime

Para obter instruções detalhadas, consulte a seção Executando o Modelo.

Como executar a inferência com um modelo YOLO11 exportado em um Raspberry Pi usando o Coral Edge TPU?

Após exportar seu modelo YOLO11 para um formato compatível com Edge TPU, você pode executar a inferência usando os seguintes trechos de código:

Executando o modelo

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/edgetpu_model.tflite")  # Load an official model or custom model

# Run Prediction
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png # Load an official model or custom model

Detalhes abrangentes sobre os recursos do modo de previsão completa podem ser encontrados na Página de Previsão.



📅C riado há 1 ano ✏️ Atualizado há 3 dias
glenn-jocherRizwanMunawarSkillnoobUltralyticsAssistantlalayantsjk4eMatthewNoyce

Comentários