Ultralytics YOLO27:
Get Started

快速入门指南:在 Raspberry Pi 上使用 Ultralytics YOLO26#

Raspberry Pi 是一款小巧、价格实惠的计算机,无需 GPU 即可运行 Ultralytics YOLO26,在边缘端实现实时目标检测。本指南将带你了解如何在 Raspberry Pi 4 和 5 上部署 YOLO26:刷写操作系统、安装 Ultralytics、导出为 NCNN 以在 ARM 上实现最快推理,以及对实时摄像头画面运行预测。本指南还提供了八种导出格式的性能基准测试,帮助你为硬件选择速度与精度之间的最佳平衡。

跳转至设置 Ultralytics、导出为 NCNN 并运行推理、基准测试或摄像头推理。



观看: Raspberry Pi 5 更新与改进
注意

本指南已在运行最新 Raspberry Pi OS Bookworm (Debian 12) 的 Raspberry Pi 4 和 Raspberry Pi 5 上测试。只要安装相同的 Raspberry Pi OS Bookworm,本指南预计也适用于 Raspberry Pi 3 等较旧的 Raspberry Pi 设备。

什么是 Raspberry Pi?#

Raspberry Pi 是一款小巧、价格实惠的单板计算机。它在各种项目和应用中广受欢迎,应用范围从业余爱好者的家庭自动化到工业用途。Raspberry Pi 开发板能够运行多种操作系统,并提供 GPIO(通用输入/输出)引脚,便于与传感器、执行器和其他硬件组件集成。Raspberry Pi 有多种型号,规格各不相同,但都遵循相同的基本设计理念:低成本、小巧且用途广泛。

Raspberry Pi 系列对比#

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837、Cortex-A53 64Bit SoCBroadcom BCM2711、Cortex-A72 64Bit SoCBroadcom BCM2712、Cortex-A76 64Bit SoC
CPU 最高频率1.4GHz1.8GHz2.4GHz
GPUVideoCore IVVideoCore VIVideoCore VII
GPU 最高频率400MHz500MHz800MHz
内存1GB LPDDR2 SDRAM1GB、2GB、4GB、8GB LPDDR4-3200 SDRAM2GB、4GB、8GB、16GB LPDDR4X-4267 SDRAM
PCIe不适用不适用1xPCIe 2.0 接口
最大功耗2.5A@5V3A@5V5A@5V(启用 PD)

什么是 Raspberry Pi OS?#

Raspberry Pi OS(以前称为 Raspbian)是一个类 Unix 操作系统,基于 Debian GNU/Linux 发行版,面向 Raspberry Pi Foundation 发布的 Raspberry Pi 系列紧凑型单板计算机。Raspberry Pi OS 针对配备 ARM CPU 的 Raspberry Pi 进行了高度优化,并采用轻量级桌面环境;在 Raspberry Pi 4 和 5 上默认使用 Wayland 运行。Raspberry Pi OS 目前仍在积极开发,重点是在 Raspberry Pi 上尽可能提升 Debian 软件包的稳定性和性能。

将 Raspberry Pi OS 刷写到 Raspberry Pi#

拿到 Raspberry Pi 后,首先要做的是将 Raspberry Pi OS 刷写到 micro-SD 卡中,将卡插入设备并启动进入操作系统。请参阅 Raspberry Pi 提供的详细入门文档,为首次使用做好设备准备。

设置 Ultralytics#

你可以通过两种方式在 Raspberry Pi 上设置 Ultralytics 包,以用于接下来的计算机视觉项目:

从 Docker 开始#

在 Raspberry Pi 上快速开始使用 Ultralytics YOLO26 的方法,是运行适用于 Raspberry Pi 的预构建 Docker 镜像。

执行以下命令以拉取 Docker 容器并在 Raspberry Pi 上运行。该容器基于官方 Python 3.13-slim-trixie 镜像,该镜像运行 Debian 13 和 Python 3.13。

t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t

Docker 镜像已包含 Ultralytics,因此你可以直接将模型导出为 NCNN。

不使用 Docker 开始#

安装 Ultralytics 包#

这里将在 Raspberry Pi 上安装 Ultralytics 包。导出为 NCNN 等格式所需的依赖项,会在你首次导出 PyTorch 模型时自动安装,因此这里只需安装基础包。

  1. 更新软件包列表、安装 pip 并升级到最新版本

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. 安装 ultralytics pip 包

    pip install ultralytics
  3. 重启设备

    sudo reboot

在 Raspberry Pi 上使用 NCNN#

在 Ultralytics 支持的所有模型导出格式中,NCNN 在 Raspberry Pi 设备上可提供最佳推理性能,因为它针对 ARM 架构等移动和嵌入式平台进行了高度优化。将 YOLO26n PyTorch 模型转换为 NCNN,然后使用导出的模型运行推理:

示例
from ultralytics import YOLO

# 加载 YOLO26n PyTorch 模型
model = YOLO("yolo26n.pt")

# 将模型导出为 NCNN 格式
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'

# 加载导出的 NCNN 模型
ncnn_model = YOLO("yolo26n_ncnn_model")

# 运行推理
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
提示

如需了解支持的导出选项详情,请参阅模型部署选项指南。

YOLO26 相较于 YOLO11 的性能提升#

YOLO26 专为 Raspberry Pi 5 等硬件资源受限的设备设计。与 YOLO11n 相比,在 Raspberry Pi 5 上使用 ONNX 导出模型、输入尺寸为 640 时,YOLO26n 的 FPS 提升约 ~15%(6.79 → 7.79),同时 mAP 更高(40.1 对比 39.5)。下表和图表展示了这项对比。

YOLO26 benchmarks on RPi 5
基于 Ultralytics 8.4.14 进行基准测试
性能
模型mAP50-95(B)推理时间 (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

使用 Ultralytics 8.4.14 进行基准测试。

Raspberry Pi 5 YOLO26 基准测试#

Ultralytics 团队对 YOLO26 进行了基准测试,测量其在八种不同模型格式下的速度和准确率:PyTorch、TorchScript、ONNX、OpenVINO、LiteRT、MNN、NCNN、ExecuTorch。基准测试在 Raspberry Pi 5 上以 FP32 精度运行,默认输入图像尺寸为 640。

对比图表#

我们仅列出 YOLO26n 和 YOLO26s 模型的基准测试结果,因为其他尺寸的模型对于 Raspberry Pi 来说太大,无法运行,也无法提供良好的性能。

YOLO26 benchmarks on RPi 5
基于 Ultralytics 8.4.108 进行基准测试

详细对比表#

下表展示了两种不同模型(YOLO26n、YOLO26s)在八种不同格式(PyTorch、TorchScript、ONNX、OpenVINO、LiteRT、MNN、NCNN、ExecuTorch)下运行于 Raspberry Pi 5 时的基准测试结果,包括每种组合的状态、大小、mAP50-95(B) 指标和推理耗时。

性能
格式状态磁盘占用大小 (MB)mAP50-95(B)推理时间 (ms/im)
PyTorch✅5.30.4760299.09
TorchScript✅9.80.4734353.20
ONNX✅9.50.4734125.99
OpenVINO✅9.60.4734104.55
LiteRT✅9.80.4730123.30
MNN✅9.40.474991.87
NCNN✅9.40.478467.03
ExecuTorch✅9.40.4772144.83

使用 Ultralytics 8.4.108 进行基准测试

注意

推理时间不包括预处理和后处理。

复现我们的结果#

如需在所有导出格式下复现上述 Ultralytics 基准测试,请运行以下代码:

示例
from ultralytics import YOLO

# 加载 YOLO26n PyTorch 模型
model = YOLO("yolo26n.pt")

# 在 COCO128 数据集上对 YOLO26n 的所有导出格式进行速度和精度基准测试
results = model.benchmark(data="coco128.yaml", imgsz=640)

请注意,基准测试结果可能因系统的具体硬件和软件配置,以及运行基准测试时系统的当前负载而有所不同。为获得最可靠的结果,请使用包含大量图像的数据集,例如 data='coco.yaml'(5000 张验证图像)。

LiteRT 导出需在其他设备上进行

format=litert 导出(通过 litert-torch)仅支持 Linux x86_64 和 macOS,不支持直接在 Raspberry Pi 上进行。请在 Linux x86_64 计算机或 Mac 上导出 .tflite 模型,将其复制到 Raspberry Pi,然后在 Pi 上进行推理。

使用 Raspberry Pi 摄像头#

在使用 Raspberry Pi 进行计算机视觉项目时,获取实时视频流对于执行推理可能至关重要。Raspberry Pi 上的板载 MIPI CSI 接口可用于连接官方 Raspberry Pi 摄像头模块。在本指南中,我们使用了 Raspberry Pi Camera Module 3 获取视频流,并使用 YOLO26 模型进行推理。

提示
注意

Raspberry Pi 5 使用的 CSI 接口比 Raspberry Pi 4 更小(22 针对比 15 针),因此你需要一根 15 针转 22 针适配线来连接 Raspberry Pi 摄像头。

测试摄像头#

将摄像头连接到 Raspberry Pi 后,执行以下命令。你应该会看到摄像头的实时视频流,持续约 5 秒。

rpicam-hello
提示

使用摄像头进行推理#

使用 Raspberry Pi 摄像头对 YOLO26 模型运行推理有两种方法。

使用 Raspberry Pi 摄像头运行推理

我们可以使用 Raspberry Pi OS 预装的 picamera2 来访问摄像头,并对 YOLO26 模型运行推理。

示例
import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# 初始化 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()

# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")

while True:
    # 逐帧捕获
    frame = picam2.capture_array()

    # 对帧运行 YOLO26 推理
    results = model(frame)

    # 可视化该帧上的结果
    annotated_frame = results[0].plot()

    # 显示处理后的帧
    cv2.imshow("Camera", annotated_frame)

    # 如果按下 'q',则退出循环
    if cv2.waitKey(1) == ord("q"):
        break

# 释放资源并关闭窗口
cv2.destroyAllWindows()
提示

如果你想更改图像/视频输入类型,请查看我们的推理来源文档。

使用 Raspberry Pi 的最佳实践#

若要让运行 YOLO26 的 Raspberry Pi 发挥最佳性能,可以遵循以下几项最佳实践。

  1. 使用 SSD

    如果要将 Raspberry Pi 用于 24x7 全天候连续运行,建议使用 SSD 作为系统存储,因为 SD 卡无法承受持续写入,可能会损坏。Raspberry Pi 5 配有板载 PCIe 接口,现在你可以通过适配器连接 SSD,例如 Raspberry Pi 5 NVMe Base。

  2. 不安装图形界面进行刷写

    刷写 Raspberry Pi OS 时,你可以选择不安装桌面环境(Raspberry Pi OS Lite),这样可以节省一些设备内存,为计算机视觉处理留出更多空间。

  3. 对 Raspberry Pi 进行超频

    如果你想在 Raspberry Pi 5 上运行 Ultralytics YOLO26 模型时稍微提升性能,可以将 CPU 从基础频率 2.4GHz 超频至 3.0GHz,并将 GPU 从 800MHz 超频至 1GHz。如果系统变得不稳定或崩溃,请以每次 100MHz 的幅度降低超频值。确保配备适当的散热,因为超频会增加热量,可能导致热降频。

    a. 升级软件

    sudo apt update && sudo apt dist-upgrade

    b. 打开配置文件进行编辑

    sudo nano /boot/firmware/config.txt

    c. 在文件末尾添加以下几行

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. 按 CTRL + X,然后按 Y,再按 ENTER 保存并退出

    e. 重启 Raspberry Pi

后续步骤#

你已成功在 Raspberry Pi 上设置 YOLO26。接下来,你可以探索预测模式以了解更多推理选项,探索导出模式以了解其他部署格式;如果你需要更强的边缘计算能力,也可以查看 NVIDIA Jetson 指南。完整文档请访问 Ultralytics YOLO26 文档。

致谢与引用#

本指南最初由 Daan Eeltink 为 Kashmir World Foundation 编写。该组织致力于使用 YOLO 保护濒危物种。我们感谢他们在目标检测技术领域的开创性工作和对教育的重视。

如需了解 Kashmir World Foundation 的更多活动信息,请访问其网站。

常见问题#

  • 按照以下步骤,在不使用 Docker 的情况下于 Raspberry Pi 上设置 Ultralytics YOLO26:

    1. 更新软件包列表并安装 pip:
      sudo apt update
      sudo apt install python3-pip -y
      pip install -U pip
    2. 安装 Ultralytics 包:
      pip install ultralytics
    3. 重启设备以应用更改:
      sudo reboot

    详细说明请参阅不使用 Docker 开始部分。

  • Ultralytics YOLO26 的 NCNN 格式针对移动和嵌入式平台进行了高度优化,非常适合在 Raspberry Pi 设备上运行 AI 任务。NCNN 利用 ARM 架构最大限度地提升推理性能,与其他格式相比,处理速度更快、效率更高。如需了解支持的导出格式详情,请参阅模型导出选项。

  • 你可以使用 Python 或 CLI 命令将 PyTorch YOLO26 模型转换为 NCNN 格式:

    示例
    from ultralytics import YOLO
    
    # 加载 YOLO26n PyTorch 模型
    model = YOLO("yolo26n.pt")
    
    # 将模型导出为 NCNN 格式
    model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    
    # 加载导出的 NCNN 模型
    ncnn_model = YOLO("yolo26n_ncnn_model")
    
    # 运行推理
    results = ncnn_model("https://ultralytics.com/images/bus.jpg")

    详情请参阅在 Raspberry Pi 上使用 NCNN部分。

  • 主要差异包括:

    • 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,提供 2GB、4GB、8GB 和 16GB 版本。

    这些改进使 YOLO26 模型在 Raspberry Pi 5 上的性能基准优于 Raspberry Pi 4。更多详情请参阅 Raspberry Pi 系列对比表格。

  • 设置 Raspberry Pi Camera 以运行 YOLO26 推理有两种方法:

    1. 使用 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()
    2. 使用 TCP 流:

      rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
      from ultralytics import YOLO
      
      model = YOLO("yolo26n.pt")
      results = model("tcp://127.0.0.1:8888")

    有关详细设置说明,请参阅摄像头推理部分。

评论