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 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.



📅 Criado há 1 ano ✏️ Atualizado há 4 meses

Comentários