Skip to content

在Raspberry Pi上使用Coral Edge TPU与Ultralytics YOLO11 🚀

带有USB Edge TPU加速器的Raspberry Pi单板计算机

什么是Coral Edge TPU?

Coral Edge TPU是一个紧凑的设备,为您的系统添加了一个Edge TPU协处理器。它为TensorFlow Lite模型提供了低功耗、高性能的ML推理。更多信息请访问Coral Edge TPU主页



观看: 如何在Raspberry Pi上使用Google Coral Edge TPU进行推理

使用Coral Edge TPU提升Raspberry Pi的模型性能

许多人希望在嵌入式或移动设备(如Raspberry Pi)上运行他们的模型,因为这些设备非常节能,并且可以用于许多不同的应用。然而,即使使用onnxopenvino等格式,这些设备上的推理性能通常也很差。Coral Edge TPU是解决这个问题的一个很好的方案,因为它可以与Raspberry Pi一起使用,并大大加速推理性能。

在Raspberry Pi上使用TensorFlow Lite的Edge TPU(新)⭐

Coral关于如何在Raspberry Pi上使用Edge TPU的现有指南已经过时,当前的Coral Edge TPU运行时构建不再与当前的TensorFlow Lite运行时版本兼容。此外,Google似乎已经完全放弃了Coral项目,2021年至2024年之间没有任何更新。本指南将向您展示如何在Raspberry Pi单板计算机(SBC)上使用最新版本的TensorFlow Lite运行时和更新的Coral Edge TPU运行时。

前提条件

安装步骤

本指南假设您已经安装了可用的Raspberry Pi OS,并且已经安装了ultralytics及其所有依赖项。要安装ultralytics,请访问快速入门指南以在继续之前进行设置。

安装Edge TPU运行时

首先,我们需要安装Edge TPU运行时。有许多不同的版本可用,因此您需要为您的操作系统选择正确的版本。

Raspberry Pi OS 高频模式 下载版本
Bullseye 32bit libedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bit libedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bit libedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bit libedgetpu1-max_ ... .bullseye_arm64.deb
Bookworm 32bit libedgetpu1-std_ ... .bookworm_armhf.deb
Bookworm 64bit libedgetpu1-std_ ... .bookworm_arm64.deb
Bookworm 32bit libedgetpu1-max_ ... .bookworm_armhf.deb
Bookworm 64bit libedgetpu1-max_ ... .bookworm_arm64.deb

从这里下载最新版本

下载文件后,可以使用以下命令安装它:

sudo dpkg -i path/to/package.deb

安装运行时后,您需要将Coral Edge TPU插入Raspberry Pi上的USB 3.0端口。这是因为根据官方指南,安装后需要新的udev规则生效。

重要

如果您已经安装了Coral Edge TPU运行时,请使用以下命令卸载它。

# 如果你安装了标准版本
sudo apt remove libedgetpu1-std

# 如果你安装了高频版本
sudo apt remove libedgetpu1-max

将你的模型导出为Edge TPU兼容的模型

要使用Edge TPU,你需要将模型转换为兼容的格式。建议你在Google Colab、x86_64 Linux机器上运行导出,使用官方的Ultralytics Docker容器,或使用Ultralytics HUB,因为Edge TPU编译器在ARM上不可用。查看导出模式以获取可用参数。

导出模型

from ultralytics import YOLO

# 加载模型
model = YOLO("path/to/model.pt")  # 加载官方模型或自定义模型

# 导出模型
model.export(format="edgetpu")
yolo export model=path/to/model.pt format=edgetpu  # 导出官方模型或自定义模型

导出的模型将保存在<model_name>_saved_model/文件夹中,名称为<model_name>_full_integer_quant_edgetpu.tflite

运行模型

导出模型后,你可以使用以下代码运行推理:

运行模型

from ultralytics import YOLO

# 加载模型
model = YOLO("path/to/edgetpu_model.tflite")  # 加载官方模型或自定义模型

# 运行预测
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # 加载官方模型或自定义模型

预测页面找到全面的预测模式详细信息。

重要

你应该使用tflite-runtime而不是tensorflow来运行模型。 如果已安装tensorflow,请使用以下命令卸载tensorflow:

pip uninstall tensorflow tensorflow-aarch64

然后安装/更新tflite-runtime

pip install -U tflite-runtime

如果你想为tensorflow 2.15.0下载tflite-runtime轮子,请从这里下载并使用pip或你选择的包管理器安装。

常见问题

什么是Coral Edge TPU,它如何增强Raspberry Pi与Ultralytics YOLO11的性能?

Coral Edge TPU是一个紧凑的设备,旨在为你的系统添加一个Edge TPU协处理器。这个协处理器能够在低功耗下实现高性能的机器学习推理,特别是针对TensorFlow Lite模型的优化。当使用Raspberry Pi时,Edge TPU加速了ML模型的推理,显著提升了性能,特别是对于Ultralytics YOLO11模型。你可以在他们的主页上阅读更多关于Coral Edge TPU的信息。

如何在Raspberry Pi上安装Coral Edge TPU运行时?

要在你的Raspberry Pi上安装Coral Edge TPU运行时,请从此链接下载适用于你的Raspberry Pi OS版本的.deb包。下载后,使用以下命令安装它:

sudo dpkg -i path/to/package.deb

确保按照安装指南部分中的步骤卸载任何以前的Coral Edge TPU运行时版本。

我可以将我的Ultralytics YOLO11模型导出为与Coral Edge TPU兼容的模型吗?

是的,你可以将你的Ultralytics YOLO11模型导出为与Coral Edge TPU兼容的模型。建议在Google Colab、x86_64 Linux机器上进行导出,或使用Ultralytics Docker容器。你也可以使用Ultralytics HUB进行导出。以下是如何使用Python和CLI导出模型的方法:

导出模型

from ultralytics import YOLO

# 加载模型
model = YOLO("path/to/model.pt")  # 加载官方模型或自定义模型

# 导出模型
model.export(format="edgetpu")
yolo export model=path/to/model.pt format=edgetpu  # 导出官方模型或自定义模型

更多信息,请参阅导出模式文档。

如果我的Raspberry Pi上已经安装了TensorFlow,但我想要使用tflite-runtime,我应该怎么做?

如果你在Raspberry Pi上已经安装了TensorFlow,并且需要切换到tflite-runtime,你需要先卸载TensorFlow:

pip uninstall tensorflow tensorflow-aarch64
然后,使用以下命令安装或更新 tflite-runtime

pip install -U tflite-runtime

对于特定的 wheel 文件,例如 TensorFlow 2.15.0 的 tflite-runtime,你可以从此链接下载并使用 pip 安装。详细的说明可以在运行模型的部分找到 运行模型

如何在 Raspberry Pi 上使用 Coral Edge TPU 运行导出的 YOLO11 模型的推理?

在将 YOLO11 模型导出为 Edge TPU 兼容格式后,你可以使用以下代码片段运行推理:

运行模型

from ultralytics import YOLO

# 加载模型
model = YOLO("path/to/edgetpu_model.tflite")  # 加载官方模型或自定义模型

# 运行预测
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # 加载官方模型或自定义模型

有关完整预测模式功能的详细信息,请参阅预测页面


📅 Created 8 months ago ✏️ Updated 13 days ago

Comments