用于 Ultralytics YOLO26 模型的 Rockchip RKNN 导出

在嵌入式设备(尤其是搭载 Rockchip 处理器的设备)上部署计算机视觉模型时,拥有兼容的模型格式至关重要。将 Ultralytics YOLO26 模型导出为 RKNN 格式可确保在 Rockchip 硬件上获得优化的性能和兼容性。本指南将引导你完成将 YOLO26 模型转换为 RKNN 格式的过程,从而实现在 Rockchip 平台上的高效部署。

Rockchip RKNN export for NPU deployment

注意

本指南已在基于 Rockchip RK3588 的 Radxa Rock 5B 和基于 Rockchip RK3566 的 Radxa Zero 3W 上进行了测试。预计它可在其他支持 rknn-toolkit2 的 Rockchip 设备上工作,例如 RK3576、RK3568、RK3562、RK2118 和 RV1126B。仅支持 INT8 推理的目标(RV1103、RV1106、RV1103B、RV1106B)目前尚不支持,因为 Ultralytics RKNN 导出目前仅生成 FP16 模型。

什么是 Rockchip?

Rockchip 以提供多功能且节能的解决方案而闻名,其设计的先进片上系统(SoCs)为各种消费电子产品、工业应用和 AI 技术提供动力。凭借基于 ARM 的架构、内置神经网络处理器(NPU)和高分辨率多媒体支持,Rockchip SoCs 为平板电脑、智能电视、物联网系统和 边缘 AI 应用 等设备提供了尖端的性能。Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等公司提供了各种基于 Rockchip SoCs 的产品,进一步扩大了其在不同市场的覆盖范围和影响力。

RKNN 工具包

RKNN Toolkit 是 Rockchip 提供的一套工具和库,旨在促进深度学习模型在其硬件平台上的部署。RKNN(即 Rockchip Neural Network)是这些工具使用的专有格式。RKNN 模型旨在充分利用 Rockchip 的 NPU(神经网络处理器)提供的硬件加速,确保在 RK3588、RK3566、RV1103、RV1106 和其他由 Rockchip 驱动的系统等设备上实现 AI 任务的高性能。

RKNN 模型的主要特点

RKNN 模型为在 Rockchip 平台上部署提供了多项优势:

  • 针对 NPU 优化:RKNN 模型经过专门优化,可在 Rockchip 的 NPU 上运行,确保最佳的性能和效率。
  • 低延迟:RKNN 格式可最大限度地减少推理延迟,这对边缘设备的实时应用至关重要。
  • 平台特定定制:RKNN 模型可以针对特定的 Rockchip 平台进行调整,从而更好地利用硬件资源。
  • 能效:通过利用专用的 NPU 硬件,RKNN 模型比基于 CPU 或 GPU 的处理消耗更少的电量,从而延长了便携式设备的电池寿命。

将操作系统刷入 Rockchip 硬件

拿到基于 Rockchip 的设备后的第一步是刷入操作系统,以便硬件能够启动进入工作环境。在本指南中,我们将列出我们测试的两款设备(Radxa Rock 5B 和 Radxa Zero 3W)的入门指南。

导出至 RKNN:转换你的 YOLO26 模型

将 Ultralytics YOLO26 模型导出为 RKNN 格式,并使用导出的模型进行推理。

注意

请务必使用基于 X86 的 Linux PC 导出模型至 RKNN,因为不支持在基于 Rockchip 的设备(ARM64)上进行导出。

安装

要安装所需的软件包,请运行:

!!! Tip "安装"

# Install the required package for YOLO26
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在安装 YOLO26 所需的软件包时遇到任何困难,请查阅我们的 常见问题指南 获取解决方案和建议。

使用方法

注意

目前导出仅支持检测模型。未来将支持更多模型。

使用方法
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rk2118, rv1126b (FP16). INT8-only targets rv1103, rv1106, rv1103b, rv1106b are not yet supported.
model.export(format="rknn", name="rk3588")  # creates '/yolo26n_rknn_model'

导出参数

参数类型默认值描述
formatstr'rknn'导出模型的目标格式,定义与各种部署环境的兼容性。
imgszinttuple640模型输入的所需图像尺寸。可以是正方形图像的整数,也可以是特定维度的元组 (height, width)
batchint1指定导出模型的批量推理大小,或者导出模型在 predict 模式下将同时处理的最大图像数量。
namestr'rk3588'指定 Rockchip 目标平台。支持 FP16 的平台:rk3588、rk3576、rk3566、rk3568、rk3562、rk2118、rv1126b。仅支持 INT8 的目标(rv1103、rv1106、rv1103b、rv1106b)尚不支持。
devicestrNone指定导出时使用的设备:GPU (device=0) 或 CPU (device=cpu)。
提示

在导出至 RKNN 时,请务必使用 x86 Linux 机器。

有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面

部署导出的 YOLO26 RKNN 模型

一旦成功将 Ultralytics YOLO26 模型导出为 RKNN 格式,下一步就是将这些模型部署在基于 Rockchip 的设备上。

安装

要安装所需的软件包,请运行:

!!! Tip "安装"

# Install the required package for YOLO26
pip install ultralytics

使用方法

使用方法
from ultralytics import YOLO

# Load the exported RKNN model
rknn_model = YOLO("./yolo26n_rknn_model")

# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
注意

如果你遇到日志消息显示 RKNN 运行时版本与 RKNN Toolkit 版本不匹配导致推理失败,请将 /usr/lib/librknnrt.so 替换为官方的 librknnrt.so 文件

RKNN 导出截图

现实世界应用

搭载 YOLO26 RKNN 模型的 Rockchip 设备可用于各种应用:

  • 智能监控:部署高效的目标检测系统进行安全监控,且功耗较低。
  • 工业自动化:直接在嵌入式设备上实施质量控制和缺陷检测。
  • 零售分析:无需依赖云端,即可实时跟踪客户行为和库存管理。
  • 智能农业:利用 农业中的计算机视觉 监测作物健康状况并检测病虫害。
  • 自主机器人:在资源受限的平台上实现基于视觉的导航和障碍物检测。

基准测试

下方的 YOLO26 基准测试由 Ultralytics 团队在基于 Rockchip RK3588 的 Radxa Rock 5B 上使用 rknn 模型格式运行,测试了速度和准确性。

性能
模型格式状态大小 (MB)mAP50-95(B)推理时间 (ms/im)
YOLO26nrknn7.10.47965.7
YOLO26srknn20.90.57199.2
YOLO26mrknn42.50.610235.3
YOLO26lrknn52.10.630280.5
YOLO26xrknn112.20.666669.1

基准测试使用 ultralytics 8.4.23

注意

上述基准测试的验证使用 COCO128 数据集完成。推理时间不包括预处理/后处理。

总结

在本指南中,你已了解如何将 Ultralytics YOLO26 模型导出为 RKNN 格式,以增强其在 Rockchip 平台上的部署。你还了解了 RKNN Toolkit 以及将 RKNN 模型用于边缘 AI 应用的具体优势。

Ultralytics YOLO26 与 Rockchip NPU 技术的结合,为在嵌入式设备上运行高级计算机视觉任务提供了高效的解决方案。这种方法可以以极低的功耗和高性能实现实时 目标检测 和其他视觉 AI 应用。

有关用法的更多详细信息,请访问 RKNN 官方文档

此外,如果你想了解有关其他 Ultralytics YOLO26 集成的更多信息,请访问我们的 集成指南页面。你会在那里找到大量有用的资源和见解。

常见问题 (FAQ)

我该如何将我的 Ultralytics YOLO 模型导出为 RKNN 格式?

你可以使用 Ultralytics Python 包中的 export() 方法或通过命令行界面(CLI)轻松将你的 Ultralytics YOLO 模型导出为 RKNN 格式。请确保使用基于 x86 的 Linux PC 进行导出过程,因为不支持在 Rockchip 等 ARM64 设备上执行此操作。你可以使用 name 参数指定目标 Rockchip 平台,例如 rk3588rk3566 或其他。此过程将生成一个优化过的 RKNN 模型,可随时部署在你的 Rockchip 设备上,利用其神经网络处理器(NPU)加速推理。

示例
from ultralytics import YOLO

# Load your YOLO model
model = YOLO("yolo26n.pt")

# Export to RKNN format for a specific Rockchip platform
model.export(format="rknn", name="rk3588")

在 Rockchip 设备上使用 RKNN 模型有什么好处?

RKNN 模型专为充分利用 Rockchip 神经网络处理器(NPU)的硬件加速功能而设计。与在同一硬件上运行 ONNX 或 TensorFlow Lite 等通用模型格式相比,这种优化带来了显著更快的推理速度并降低了延迟。使用 RKNN 模型可以更高效地利用设备资源,从而降低功耗并提高整体性能,这对边缘设备的实时应用尤为重要。通过将你的 Ultralytics YOLO 模型转换为 RKNN,你可以在由 RK3588、RK3566 等 Rockchip SoCs 驱动的设备上获得最佳性能。

我可以在 NVIDIA 或 Google 等其他制造商的设备上部署 RKNN 模型吗?

RKNN 模型是专门针对 Rockchip 平台及其集成 NPU 进行优化的。虽然你可以在技术上使用软件仿真在其他平台上运行 RKNN 模型,但你将无法受益于 Rockchip 设备提供的硬件加速。为了在其他平台上获得最佳性能,建议将你的 Ultralytics YOLO 模型导出为专门为这些平台设计的格式,例如针对 NVIDIA GPU 的 TensorRT 或针对 Google Edge TPU 的 TensorFlow Lite。Ultralytics 支持导出为多种格式,确保与各种硬件加速器兼容。

RKNN 模型部署支持哪些 Rockchip 平台?

Ultralytics YOLO 到 RKNN 格式的导出目前支持具有 FP16 推理能力的 Rockchip 平台:RK3588、RK3576、RK3566、RK3568、RK3562、RK2118 和 RV1126B。仅支持 INT8 的目标(RV1103、RV1106、RV1103B、RV1106B)目前尚不支持,因为其 NPU 需要量化,这已经在路线图中。这些平台常见于 Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等制造商的设备中,让你能够将优化后的 RKNN 模型部署在从单板计算机到工业系统的各种 Rockchip 驱动设备上。

RKNN 模型在 Rockchip 设备上的性能与其他格式相比如何?

由于针对 Rockchip 的 NPU 进行了优化,RKNN 模型在 Rockchip 设备上通常优于 ONNX 或 TensorFlow Lite 等其他格式。例如,在 Radxa Rock 5B (RK3588) 上的基准测试显示,RKNN 格式的 YOLO26n 推理时间为 99.5 毫秒/图像,明显快于其他格式。正如 基准测试部分 所示,这种性能优势在各种 YOLO26 模型尺寸中保持一致。通过利用专用的 NPU 硬件,RKNN 模型最大限度地减少了延迟并最大化了吞吐量,使其成为基于 Rockchip 的边缘设备实时应用的理想选择。

评论