Salta para o conte√ļdo

Coral Edge TPU num Raspberry Pi com Ultralytics YOLOv8 ūüöÄ

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 teu sistema. Permite a inferência ML de baixo consumo e alto desempenho para modelos TensorFlow Lite. Lê mais na página inicial do Coral Edge TPU .

Melhora 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 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 usado 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. Para al√©m disso, a Google parece ter abandonado completamente o projeto Coral, e n√£o houve quaisquer actualiza√ß√Ķes entre 2021 e 2024. Este guia ir√° mostrar-te como colocar o Edge TPU a funcionar com as vers√Ķes mais recentes do runtime TensorFlow Lite e um runtime Coral Edge TPU atualizado num computador de placa √ļnica (SBC) Raspberry Pi.

Pré-requisitos

Guia de instalação

Este guia assume que já tens uma instalação do Raspberry Pi OS a funcionar e que já instalaste ultralytics e todas as dependências. Para obteres ultralytics instalado, visita a página guia de início rápido para te preparares antes de continuares.

Instalando o tempo de execução do Edge TPU

Primeiro, precisas de instalar o tempo de execu√ß√£o do Edge TPU . Existem muitas vers√Ķes diferentes dispon√≠veis, pelo que tens de escolher a vers√£o correcta para o teu sistema operativo.

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

Descarrega a vers√£o mais recente a partir daqui.

Depois de transferires o ficheiro, podes instal√°-lo com o seguinte comando:

sudo dpkg -i path/to/package.deb

Depois de instalares o runtime, tens de ligar o teu Coral Edge TPU a uma porta USB 3.0 do teu Raspberry Pi. Isto porque, de acordo com o guia oficial, um novo udev A regra tem de entrar em vigor após a instalação.

Importante

Se já tiveres o tempo de execução do Coral Edge TPU instalado, desinstala-o utilizando 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

Exporta o teu modelo para um modelo compatível com o Edge TPU

Para utilizar o Edge TPU, tens de converter o teu modelo para um formato compatível. Recomenda-se que executes a exportação no Google Colab, numa máquina Linux x86_64, utilizando o contentor Docker oficial Ultralytics , ou utilizando o Ultralytics HUB, uma vez que o compilador Edge TPU não está disponível em ARM. Vê o Modo de exportação para os argumentos disponíveis.

Exportação

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.

Executa o modelo

Depois de exportar o teu modelo, podes executar a inferência com ele utilizando o seguinte código:

Corre

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

Encontra informa√ß√Ķes completas na p√°gina Prever para obteres todos os detalhes do modo de previs√£o.

Importante

Deves executar o modelo utilizando tflite-runtime e n√£o tensorflow. Se tensorflow estiver instalado, desinstala o tensorflow com o seguinte comando:

pip uninstall tensorflow tensorflow-aarch64

Depois instala/atualiza tflite-runtime:

pip install -U tflite-runtime

Se quiseres um tflite-runtime roda para tensorflow 2.15.0 transfere-o a partir de aqui e instala-o utilizando pip ou o teu gestor de pacotes preferido.



Created 2024-02-12, Updated 2024-06-10
Authors: glenn-jocher (6), Skillnoob (1)

Coment√°rios