树莓派上的Coral Edge TPU使用指南

CoralEdge TPU是一种紧凑型设备,它为系统添加了一个Edge TPU协处理器。这种协处理器能够以低功耗实现高性能的机器学习模型推理,特别适合TensorFlow Lite模型。尽管许多人希望在树莓派这样的嵌入式或移动设备上运行他们的模型,因为这些设备非常节能,并且可以用于多种不同的应用,但这些设备上的推理性能通常很差,即使使用onnx或openvino这样的格式也是如此。Coral Edge TPU是解决这个问题的一个很好的方案,因为它可以与树莓派一起使用,并且大大加速推理性能。

在树莓派上使用TensorFlow Lite的Edge TPU

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

推荐使用2GB或更多内存的树莓派4B或树莓派5,以及带有桌面环境的64位Raspberry Pi OS Bullseye/Bookworm。还需要一个Coral USB加速器,以及一个非ARM平台来导出Ultralytics PyTorch模型。

本指南假设已经安装了工作的Raspberry Pi OS,并已安装ultralytics及其所有依赖项。要安装ultralytics,请访问快速入门指南进行设置,然后继续本指南。

首先,需要安装Edge TPU运行时。有多个版本可供选择,因此需要为操作系统选择正确的版本。下载最新版本后,可以使用以下命令安装它:

sudo dpkg -i path/to/package.deb

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

要使用Edge TPU,需要将模型转换为兼容格式。建议在Google Colab、x86_64 Linux机器上使用官方Ultralytics Docker容器或使用Ultralytics HUB运行导出,因为ARM上不可用Edge TPU编译器。以下是如何使用Python和CLI导出模型的方法:

from ultralytics import YOLOmodel = YOLO("path/to/model.pt")model.export(format="edgetpu")

导出的模型将保存在名为_saved_model/的文件夹中,文件名为_full_integer_quant_edgetpu.tflite。重要的是,模型文件名必须以_edgetpu.tflite结尾,否则ultralytics不知道正在使用Edge TPU模型。

在实际运行模型之前,需要安装正确的库。如果已安装tensorflow,则需要先卸载tensorflow:

pip uninstall tensorflow tensorflow-aarch64

然后安装或更新tflite-runtime:

pip install -U tflite-runtime

现在可以使用以下代码运行推理:

from ultralytics import YOLOmodel = YOLO("path/to/_full_integer_quant_edgetpu.tflite")model.predict("path/to/source.png")

有关完整预测模式详细信息,请访问预测页面。

如果有多个Edge TPUs,可以使用以下代码选择特定的TPU:

from ultralytics import YOLOmodel = YOLO("path/to/_full_integer_quant_edgetpu.tflite")model.predict("path/to/source.png", device="tpu:0")model.predict("path/to/source.png", device="tpu:1")

推理默认使用第一个TPU。

Coral Edge TPU是什么,它如何增强树莓派的性能?Coral Edge TPU是一种紧凑型设备,旨在为系统添加一个Edge TPU协处理器。这个协处理器能够以低功耗实现高性能的机器学习模型推理,特别适合TensorFlow Lite模型。当使用树莓派时,Edge TPU可以加速ML模型推理,显著提升性能。可以在他们的主页上了解更多关于Coral Edge TPU的信息。

如何在树莓派上安装Coral Edge TPU运行时?要安装Coral Edge TPU运行时,请从这个链接下载适合树莓派操作系统版本的.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 YOLOmodel = YOLO("path/to/model.pt")model.export(format="edgetpu")

有关更多信息,请参考导出模式文档。

如果树莓派上已经安装了TensorFlow,但想使用tflite-runtime,该怎么办?如果树莓派上已经安装了TensorFlow,并且需要切换到tflite-runtime,需要先卸载TensorFlow:

pip uninstall tensorflow tensorflow-aarch64

然后,使用以下命令安装或更新tflite-runtime:

pip install -U tflite-runtime

有关特定wheel,例如TensorFlow 2.15.0 tflite-runtime,可以从这个链接下载并使用pip安装。有关运行模型的详细信息,请参见运行模型部分。

如何使用导出的YOLO11模型在树莓派上使用Coral Edge TPU进行推理?在将YOLO11模型导出为Edge TPU兼容格式后,可以使用以下代码片段进行推理:

from ultralytics import YOLOmodel = YOLO("path/to/edgetpu_model.tflite")model.predict("path/to/source.png")
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485