快速入门指南:Raspberry Pi 与 Ultralytics YOLO26
这份综合指南详细介绍了如何在 Raspberry Pi 设备上部署 Ultralytics YOLO26。此外,它还展示了性能基准测试,以演示 YOLO26 在这些小巧而强大的设备上的能力。
Watch: Raspberry Pi 5 updates and improvements.
本指南已在运行最新 Raspberry Pi OS Bookworm (Debian 12) 的 Raspberry Pi 4 和 Raspberry Pi 5 上进行了测试。只要安装了相同的 Raspberry Pi OS Bookworm,本指南预计也适用于较旧的 Raspberry Pi 设备(如 Raspberry Pi 3)。
什么是 Raspberry Pi?
Raspberry Pi 是一款小巧、实惠的单板计算机。从业余家庭自动化到工业用途,它在各种项目和应用中广受欢迎。Raspberry Pi 开发板能够运行多种操作系统,并提供 GPIO (General Purpose Input/Output) 引脚,方便与传感器、执行器和其他硬件组件集成。它们有不同型号和规格,但都具备低成本、紧凑和多功能的共同设计理念。
Raspberry Pi 系列对比
| Raspberry Pi 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, Cortex-A53 64Bit SoC | Broadcom BCM2711, Cortex-A72 64Bit SoC | Broadcom BCM2712, Cortex-A76 64Bit SoC |
| CPU 最高频率 | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| GPU 最高频率 | 400Mhz | 500Mhz | 800Mhz |
| 内存 | 1GB LPDDR2 SDRAM | 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM | 4GB, 8GB LPDDR4X-4267 SDRAM |
| PCIe | N/A | N/A | 1xPCIe 2.0 接口 |
| 最大功耗 | 2.5A@5V | 3A@5V | 5A@5V (已启用 PD) |
什么是 Raspberry Pi OS?
Raspberry Pi OS(前身为 Raspbian)是基于 Debian GNU/Linux 发行版、专为 Raspberry Pi 系列紧凑型单板计算机设计的类 Unix 操作系统,由 Raspberry Pi Foundation 发行。Raspberry Pi OS 针对带有 ARM CPU 的 Raspberry Pi 进行了高度优化,并使用带有 Openbox 堆叠窗口管理器的修改版 LXDE 桌面环境。Raspberry Pi OS 处于积极开发中,重点在于尽可能提高 Raspberry Pi 上尽可能多 Debian 软件包的稳定性和性能。
将 Raspberry Pi OS 烧录到 Raspberry Pi
拿到 Raspberry Pi 后要做的第一件事是将 Raspberry Pi OS 烧录到 micro-SD 卡中,插入设备并引导进入操作系统。请按照详细的 Raspberry Pi 入门文档 指引,为首次使用做好设备准备。
设置 Ultralytics
在 Raspberry Pi 上设置 Ultralytics 软件包以构建你的下一个 Computer Vision 项目有两种方法。你可以任选其一。
使用 Docker 开始
在 Raspberry Pi 上开始使用 Ultralytics YOLO26 的最快方法是运行适用于 Raspberry Pi 的预构建 docker 镜像。
执行以下命令以拉取 Docker 容器并在 Raspberry Pi 上运行。此镜像基于 arm64v8/debian docker 镜像,其中包含 Python3 环境下的 Debian 12 (Bookworm)。
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t完成后,跳转至 在 Raspberry Pi 上使用 NCNN 部分。
不使用 Docker 开始
安装 Ultralytics 包
在这里,我们将在 Raspberry Pi 上安装带有可选依赖项的 Ultralytics 软件包,以便我们可以将 PyTorch 模型导出为其他不同格式。
-
更新包列表,安装 pip 并升级到最新版本
sudo apt update sudo apt install python3-pip -y pip install -U pip -
安装带有可选依赖项的
ultralyticspip 包pip install ultralytics[export] -
重启设备
sudo reboot
在 Raspberry Pi 上使用 NCNN
在 Ultralytics 支持的所有模型导出格式中,NCNN 在 Raspberry Pi 设备上运行时可提供最佳的推理性能,因为 NCNN 是针对移动/嵌入式平台(如 ARM 架构)进行高度优化的。
将模型转换为 NCNN 并运行推理
将 PyTorch 格式的 YOLO26n 模型转换为 NCNN,以使用导出的模型运行推理。
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")有关支持的导出选项的更多详情,请访问 Ultralytics 部署选项文档页面。
YOLO26 相较于 YOLO11 的性能改进
YOLO26 专为在 Raspberry Pi 5 等硬件受限的设备上运行而设计。与 YOLO11n 相比,YOLO26n 在 Raspberry Pi 5 上使用 ONNX 导出模型、在 640 输入尺寸下 FPS 提升了约 15% (6.79 → 7.79),同时提供了更高的 mAP (40.1 vs 39.5)。下表和图表展示了这一对比。
| 模型 | mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.26 |
使用 Ultralytics 8.4.14 进行基准测试。
Raspberry Pi 5 YOLO26 基准测试
Ultralytics 团队在十种不同的模型格式上运行了 YOLO26 基准测试,以测量速度和 accuracy:PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch。基准测试在 Raspberry Pi 5 上以 FP32 precision 以及默认 640 输入图像尺寸下运行。
对比图表
我们仅包含 YOLO26n 和 YOLO26s 模型的基准测试,因为其他模型尺寸在 Raspberry Pi 上运行过大,且无法提供理想的性能。
详细对比表
下表展示了在 Raspberry Pi 5 上运行的两种不同模型 (YOLO26n, YOLO26s) 在十种不同格式(PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch)下的基准测试结果,提供了每种组合的状态、大小、mAP50-95(B) 指标和推理时间。
| 格式 | 状态 | 磁盘大小 (MB) | mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4798 | 302.15 |
| TorchScript | ✅ | 9.8 | 0.4764 | 357.58 |
| ONNX | ✅ | 9.5 | 0.4764 | 130.33 |
| OpenVINO | ✅ | 9.6 | 0.4818 | 70.74 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 213.58 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 213.5 |
| TF Lite | ✅ | 9.9 | 0.4764 | 251.41 |
| MNN | ✅ | 9.4 | 0.4784 | 90.89 |
| NCNN | ✅ | 9.4 | 0.4805 | 67.69 |
| ExecuTorch | ✅ | 9.4 | 0.4764 | 148.36 |
使用 Ultralytics 8.4.1 进行基准测试
推理时间不包括预处理/后处理。
复现我们的结果
若要在所有 export formats 上重现上述 Ultralytics 基准测试,请运行此代码:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)请注意,基准测试结果可能会因系统的具体硬件和软件配置,以及运行基准测试时系统的当前工作负载而有所不同。为了获得最可靠的结果,请使用包含大量图像的数据集,例如 data='coco.yaml' (5000 张验证集图像)。
使用 Raspberry Pi Camera
在使用 Raspberry Pi 进行计算机视觉项目时,获取实时视频流以进行推理至关重要。Raspberry Pi 上的板载 MIPI CSI 连接器允许你连接官方的 Raspberry Pi 摄像头模块。在本指南中,我们使用了 Raspberry Pi Camera Module 3 来获取视频流,并使用 YOLO26 模型进行推理。
了解更多关于 Raspberry Pi 提供的不同摄像头模块 以及 如何开始使用 Raspberry Pi 摄像头模块 的信息。
Raspberry Pi 5 使用的 CSI 连接器比 Raspberry Pi 4 更小(15 引脚对 22 引脚),因此你需要一根 15 引脚转 22 引脚转接线 来连接 Raspberry Pi 摄像头。
测试摄像头
将摄像头连接到 Raspberry Pi 后执行以下命令。你应该能看到大约 5 秒的实时摄像视频流。
rpicam-hello在官方 Raspberry Pi 文档中了解更多关于 rpicam-hello 的使用
使用摄像头进行推理
有两种使用 Raspberry Pi 摄像头对 YOLO26 模型进行推理的方法。
我们可以使用 Raspberry Pi OS 预装的 picamera2 来访问摄像头并对 YOLO26 模型进行推理。
import cv2
from picamera2 import Picamera2
from ultralytics import YOLO
# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
while True:
# Capture frame-by-frame
frame = picam2.capture_array()
# Run YOLO26 inference on the frame
results = model(frame)
# Visualize the results on the frame
annotated_frame = results[0].plot()
# Display the resulting frame
cv2.imshow("Camera", annotated_frame)
# Break the loop if 'q' is pressed
if cv2.waitKey(1) == ord("q"):
break
# Release resources and close windows
cv2.destroyAllWindows()如果你想更改图像/视频输入类型,请查看我们关于 推理来源 的文档
使用 Raspberry Pi 的最佳实践
为了在运行 YOLO26 的 Raspberry Pi 上实现最大性能,请遵循以下几项最佳实践。
-
使用 SSD
当 Raspberry Pi 需要 24x7 不间断运行时,建议为系统使用 SSD,因为 SD 卡无法承受持续写入,可能会损坏。借助 Raspberry Pi 5 上的板载 PCIe 连接器,你现在可以使用 Raspberry Pi 5 的 NVMe 基座 等适配器连接 SSD。
-
无 GUI 系统刷写
在刷写 Raspberry Pi OS 时,你可以选择不安装桌面环境(使用 Raspberry Pi OS Lite),这可以节省设备内存,为计算机视觉处理留出更多空间。
-
超频 Raspberry Pi
如果你想在 Raspberry Pi 5 上运行 Ultralytics YOLO26 模型时提升性能,可以将 CPU 从基础的 2.4GHz 超频至 2.9GHz,将 GPU 从 800MHz 超频至 1GHz。如果系统变得不稳定或崩溃,请以 100MHz 为增量降低超频值。确保散热良好,因为超频会增加热量产生,并可能导致热节流。
a. 升级软件
sudo apt update && sudo apt dist-upgradeb. 打开并编辑配置文件
sudo nano /boot/firmware/config.txtc. 在底部添加以下行
arm_freq=3000 gpu_freq=1000 force_turbo=1d. 按 CTRL + X 保存并退出,然后按 Y,再按 ENTER
e. 重启 Raspberry Pi
后续步骤
你已在 Raspberry Pi 上成功设置了 YOLO。如需进一步学习和支持,请访问 Ultralytics YOLO26 文档 和 Kashmir World Foundation。
致谢与引用
本指南最初由 Daan Eeltink 为 Kashmir World Foundation 创建,该组织致力于使用 YOLO 保护濒危物种。我们感谢他们在目标检测技术领域做出的开创性工作和教育投入。
欲了解更多关于 Kashmir World Foundation 活动的信息,请访问他们的 网站。
常见问题 (FAQ)
如何在不使用 Docker 的情况下在 Raspberry Pi 上设置 Ultralytics YOLO26?
要在不使用 Docker 的情况下在 Raspberry Pi 上设置 Ultralytics YOLO26,请按照以下步骤操作:
- 更新软件包列表并安装
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - 安装带有可选依赖项的 Ultralytics 软件包:
pip install ultralytics[export] - 重启设备以应用更改:
sudo reboot
有关详细说明,请参考 不使用 Docker 启动 部分。
为什么我应该在 Raspberry Pi 上使用 Ultralytics YOLO26 的 NCNN 格式来完成 AI 任务?
Ultralytics YOLO26 的 NCNN 格式针对移动和嵌入式平台进行了高度优化,非常适合在 Raspberry Pi 设备上执行 AI 任务。NCNN 通过利用 ARM 架构最大限度地提高了推理性能,与其他格式相比提供了更快、更高效的处理能力。有关支持的导出选项的更多详细信息,请访问 Ultralytics 关于部署选项的文档页面。
如何将 YOLO26 模型转换为 NCNN 格式以便在 Raspberry Pi 上使用?
你可以使用 Python 或 CLI 命令将 PyTorch YOLO26 模型转换为 NCNN 格式:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")有关详细信息,请参阅 在 Raspberry Pi 上使用 NCNN 部分。
Raspberry Pi 4 和 Raspberry Pi 5 在运行 YOLO26 时的硬件差异有哪些?
主要区别包括:
- CPU:Raspberry Pi 4 使用 Broadcom BCM2711,Cortex-A72 64 位 SoC,而 Raspberry Pi 5 使用 Broadcom BCM2712,Cortex-A76 64 位 SoC。
- 最高 CPU 频率:Raspberry Pi 4 的最高频率为 1.8GHz,而 Raspberry Pi 5 可达 2.4GHz。
- 内存:Raspberry Pi 4 提供最高 8GB 的 LPDDR4-3200 SDRAM,而 Raspberry Pi 5 采用 LPDDR4X-4267 SDRAM,提供 4GB 和 8GB 版本。
这些改进使得 YOLO26 模型在 Raspberry Pi 5 上的性能基准比 Raspberry Pi 4 更好。有关更多详细信息,请参考 Raspberry Pi 系列对比 表格。
我该如何设置 Raspberry Pi 摄像头模块以配合 Ultralytics YOLO26 使用?
有两种设置 Raspberry Pi 摄像头以进行 YOLO26 推理的方法:
-
使用
picamera2:import cv2 from picamera2 import Picamera2 from ultralytics import YOLO picam2 = Picamera2() picam2.preview_configuration.main.size = (1280, 720) picam2.preview_configuration.main.format = "RGB888" picam2.preview_configuration.align() picam2.configure("preview") picam2.start() model = YOLO("yolo26n.pt") while True: frame = picam2.capture_array() results = model(frame) annotated_frame = results[0].plot() cv2.imshow("Camera", annotated_frame) if cv2.waitKey(1) == ord("q"): break cv2.destroyAllWindows() -
使用 TCP 流:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("tcp://127.0.0.1:8888")
有关详细设置说明,请访问 使用摄像头进行推理 部分。