Saltar 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 ML de baixo consumo e alto desempenho para modelos TensorFlow modelos Lite. Leia mais na página inicial do Coral Edge TPU .



Ver: Como executar a inferência no Raspberry Pi usando Google Coral Edge TPU

Melhore o desempenho do modelo Raspberry Pi com o 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 energéticos e podem ser utilizados em muitas aplicações diferentes. No entanto, o desempenho da inferência nestes dispositivos é geralmente fraco, mesmo quando se utilizam formatos como ONNX ou OpenVINO. O Coral Edge TPU é uma óptima solução para este problema, uma vez que pode ser utilizado com um Raspberry Pi e acelerar bastante o desempenho da inferência.

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

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

Pré-requisitos

Passo a passo da instalação

Este guia pressupõe que já tem uma instalação do Raspberry Pi OS a funcionar e que instalou ultralytics e todas as dependências. Para obter ultralytics instalado, visite a página guia de início rápido para obter a configuração antes de continuar aqui.

Instalando o tempo de execução do Edge TPU

Primeiro, precisamos de instalar o tempo de execução do Edge TPU . Existem muitas versões diferentes disponíveis, pelo que é necessário escolher a versão correta para o seu sistema operativo.

Raspberry Pi OS Modo de alta frequência Versão a descarregar
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
Bicho do livro 32bit Não libedgetpu1-std_ ... .bookworm_armhf.deb
Verme dos livros 64bit Não libedgetpu1-std_ ... .bookworm_arm64.deb
Bicho do livro 32bit Sim libedgetpu1-max_ ... .bookworm_armhf.deb
Verme dos livros 64bit Sim libedgetpu1-max_ ... .bookworm_arm64.deb

Descarregue a versão mais recente a partir daqui.

Depois de descarregar o ficheiro, pode instalá-lo com o seguinte comando:

sudo dpkg -i path/to/package.deb

Depois de instalar o tempo de execução, tem de ligar o seu Coral Edge TPU a uma porta USB 3.0 no seu Raspberry Pi. Isto porque, de acordo com o guia oficial, uma nova porta udev precisa de entrar em vigor após a instalação.

Importante

Se já tiver o tempo de execução do 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 o seu modelo para um modelo compatível com o Edge TPU

Para utilizar o Edge TPU, é necessário converter o seu modelo num formato compatível. Recomenda-se que execute a exportação em Google Colab, máquina Linux x86_64, usando o contentor oficial Ultralytics Docker, ou usando Ultralytics HUB, uma vez que o compilador Edge TPU não está disponível em ARM. Veja o Modo de exportação para os argumentos disponíveis.

Exportar 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á guardado no ficheiro <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.tflitecaso contrário, o ultralytics não sabe que está a utilizar um modelo Edge TPU .

Executar o modelo

Antes de poder executar o modelo, é necessário instalar as bibliotecas corretas.

Se tensorflow estiver instalado, desinstale o tensorflow com o seguinte comando:

pip uninstall tensorflow tensorflow-aarch64

Em seguida, instalar/atualizar tflite-runtime:

pip install -U tflite-runtime

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

Executar 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

Para obter informações completas sobre o modo de previsão, consulte a página Prever.

Inferência com várias TPUs Edge

Se tiver várias Edge TPUs, 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

FAQ

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

O Coral Edge TPU é um dispositivo compacto concebido para adicionar um coprocessador Edge TPU ao seu sistema. Este coprocessador permite uma inferência de aprendizagem automática de baixo consumo e elevado desempenho, particularmente optimizada para modelos TensorFlow Lite. Ao usar um Raspberry Pi, o Edge TPU acelera a inferência do modelo ML, aumentando significativamente o desempenho, especialmente para Ultralytics YOLO11 modelos. Pode ler mais sobre o Coral Edge TPU na sua página inicial.

Como é que instalo o tempo de execução do Coral Edge TPU num Raspberry Pi?

Para instalar o tempo de execução do Coral Edge TPU no seu Raspberry Pi, descarregue o ficheiro .deb para a sua versão do Raspberry Pi OS a partir de esta ligação. Uma vez descarregado, utilize o seguinte comando para o instalar:

sudo dpkg -i path/to/package.deb

Certifique-se de que desinstala todas as versões anteriores do tempo de execução do Coral Edge TPU , seguindo os passos descritos na secção " Passo a passo da instalação".

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

Sim, você pode exportar seu modelo Ultralytics YOLO11 para ser compatível com o Coral Edge TPU. Recomenda-se que a exportação seja efectuada em Google Colab, numa máquina Linux x86_64 ou utilizando o contentor Docker Ultralytics . Também pode utilizar o Ultralytics HUB para exportar. Eis como pode exportar o seu modelo utilizando Python e CLI:

Exportar 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 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 em vez dele?

Se tiveres TensorFlow instalado no teu Raspberry Pi e precisares de mudar para tflite-runtime, terá de desinstalar primeiro o TensorFlow :

pip uninstall tensorflow tensorflow-aarch64

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

pip install -U tflite-runtime

Para uma roda específica, como TensorFlow 2.15.0 tflite-runtimepode ser descarregado a partir de esta ligação e instalá-lo utilizando pip. Instruções pormenorizadas estão disponíveis na secção sobre a execução do modelo Execução do modelo.

Como é que executo a inferência com um modelo YOLO11 exportado num Raspberry Pi utilizando o Coral Edge TPU?

Depois de exportar o modelo YOLO11 para um formato compatível com o Edge TPU, é possível executar a inferência usando os seguintes trechos de código:

Executar 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 completos sobre as funcionalidades do modo de previsão podem ser encontrados na página Prever.

📅C riado há 10 meses ✏️ Atualizado há 1 mês

Comentários