Coral Edge TPU num Raspberry Pi com Ultralytics YOLO11 🚀
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
- Raspberry Pi 4B (2GB ou mais recomendado) ou Raspberry Pi 5 (Recomendado)
- Raspberry Pi OS Bullseye/Bookworm (64 bits) com desktop (Recomendado)
- Acelerador USB Coral
- Uma plataforma não baseada em ARM para exportar um modelo PyTorch Ultralytics
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 configurar 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 OS | Modo de alta frequência | Versão para download |
---|---|---|
Bullseye 32bit | Não | libedgetpu1-std_ ... .bullseye_armhf.deb |
Bullseye 64bit | Não | libedgetpu1-std_ ... .bullseye_arm64.deb |
Bullseye 32bit | Sim | libedgetpu1-max_ ... .bullseye_armhf.deb |
Bullseye 64bit | Sim | libedgetpu1-max_ ... .bullseye_arm64.deb |
Bookworm 32bit | Não | libedgetpu1-std_ ... .bookworm_armhf.deb |
Bookworm 64bit | Não | libedgetpu1-std_ ... .bookworm_arm64.deb |
Bookworm 32bit | Sim | libedgetpu1-max_ ... .bookworm_armhf.deb |
Bookworm 64bit | Sim | libedgetpu1-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
Após instalar o runtime, você precisa conectar seu Coral Edge TPU em uma porta USB 3.0 em seu Raspberry Pi. Isso ocorre porque, de acordo com o guia oficial, um novo udev
A regra precisa entrar em vigor após a instalação.
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
. É importante que o seu modelo termine com o sufixo _edgetpu.tflite
, caso contrário, o Ultralytics não saberá que você está usando um modelo Edge TPU.
Executando o modelo
Antes de realmente executar o modelo, você precisará instalar as bibliotecas corretas.
Se tensorflow
está instalado, desinstale o TensorFlow com o seguinte comando:
pip uninstall tensorflow tensorflow-aarch64
Em seguida, instale/atualize 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 você tiver vários Edge TPUs, pode usar o seguinte código para selecionar um TPU específico.
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 Raspberry Pi Os Bookworm 64-Bit e um USB Coral Edge TPU.
Nota
O tempo de inferência é mostrado, o pré/pós-processamento não está incluído.
Tamanho da Imagem | Modelo | Tempo de Inferência Padrão (ms) | Tempo de Inferência de Alta Frequência (ms) |
---|---|---|---|
320 | YOLOv8n | 32.2 | 26.7 |
320 | YOLOv8s | 47.1 | 39.8 |
512 | YOLOv8n | 73.5 | 60.7 |
512 | YOLOv8s | 149.6 | 125.3 |
Tamanho da Imagem | Modelo | Tempo de Inferência Padrão (ms) | Tempo de Inferência de Alta Frequência (ms) |
---|---|---|---|
320 | YOLOv8n | 22.2 | 16.7 |
320 | YOLOv8s | 40.1 | 32.2 |
512 | YOLOv8n | 53.5 | 41.6 |
512 | YOLOv8s | 132.0 | 103.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.