Meet YOLO26: next-gen vision AI.

Link to this section针对 Ultralytics YOLO26 模型的 Rockchip RKNN 导出#

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

Rockchip RKNN export for NPU deployment

注意

本指南已在 Radxa Rock 5B(基于 Rockchip RK3588)和 Radxa Zero 3W(基于 Rockchip RK3566)上进行了测试。预计它也适用于其他支持 rknn-toolkit2 的 Rockchip 设备,例如 RK3576、RK3568、RK3562、RK2118、RV1126B、RV1103、RV1106、RV1103B 和 RV1106B。仅支持 INT8 的目标设备(如 RV1103 和 RV1106)需要设置 int8=True

Link to this section什么是 Rockchip?#

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

Link to this sectionRKNN 工具包#

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

Link to this sectionRKNN 模型的关键特性#

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

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

Link to this section将操作系统烧录到 Rockchip 硬件#

拿到 Rockchip 设备后的第一步是烧录操作系统,以便硬件能够启动进入工作环境。本指南将指引你前往我们测试过的两款设备(Radxa Rock 5B 和 Radxa Zero 3W)的入门指南。

Link to this section导出到 RKNN:转换你的 YOLO26 模型#

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

注意

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

Link to this section安装#

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

安装
# Install the required package for YOLO26
pip install ultralytics

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

Link to this section使用方法#

注意

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

RKNN 格式支持 导出预测验证 模式。推理和验证在 Rockchip NPU 硬件上运行。导出模型后,加载导出的模型即可进行推理或验证其准确性。默认情况下,RKNN 导出使用带有 half=True 的现有浮点构建路径,适用于支持 FP16 的 Rockchip 目标。使用 int8=True 可构建带有校准数据的 INT8 量化 RKNN 模型。RKNN 导出不提供单独的 FP32 模式;保留 int8=False 并不会请求 FP32。

导出
from ultralytics import YOLO

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

# Export the model to RKNN format
model.export(format="rknn", name="rk3588")  # creates '/yolo26n_rknn_model'

# Export an INT8-quantized RKNN model with calibration data
model.export(format="rknn", name="rk3588", int8=True, data="coco8.yaml")
预测
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
验证
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this section导出参数#

参数类型默认值说明
formatstr'rknn'导出的目标格式,定义了与 Rockchip 部署环境的兼容性。
imgszinttuple640模型输入所需的图像尺寸。可以是用于正方形图像的整数,也可以是用于特定尺寸的元组 (height, width)
batchint1指定导出模型的批量推理大小,或者是导出的模型在 predict 模式下并发处理的最大图像数量。
namestr'rk3588'指定 Rockchip 目标,例如 rk3588、rk3576、rk3566、rk3568、rk3562、rk2118、rv1126b、rv1103、rv1106、rv1103b 或 rv1106b。
halfboolTrue为支持 FP16 的目标启用默认的浮点 RKNN 导出路径。与 int8=True 互斥。
int8boolFalse启用 INT8 量化。仅支持 INT8 的目标(如 RV1103 和 RV1106)必需。当设置为 False 时,RKNN Toolkit 会为支持 FP16 的目标构建浮点模型,而不是 FP32。
datastrNone用于 INT8 校准的数据集 YAML。如果设置了 int8=True 但省略此项,Ultralytics 会为模型任务选择默认的校准数据集。
fractionfloat1.0用于 INT8 量化的校准图像占比。
devicestrNone指定导出设备:GPU (device=0),CPU (device=cpu)。
提示

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

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

Link to this section部署导出的 YOLO26 RKNN 模型#

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

Link to this section安装#

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

安装
# Install the required package for YOLO26
pip install ultralytics

安装后,按照上述 使用 部分所示的方法在你的 Rockchip 设备上运行推理和验证即可——导出的 _rknn_model 可以直接使用 YOLO(...) 加载。

注意

If you encounter a log message indicating that the RKNN runtime version does not match the RKNN Toolkit version and the inference fails, please replace /usr/lib/librknnrt.so with official librknnrt.so file.

RKNN 导出截图

Link to this section实际应用场景#

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

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

Link to this section基准测试#

下方的 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 数据集完成。推理时间不包含预处理/后处理。

Link to this section总结#

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

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

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

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

Link to this section常见问题 (FAQ)#

Link to this section如何将我的 Ultralytics YOLO 模型导出为 RKNN 格式?#

你可以通过 Ultralytics Python 包中的 export() 方法或命令行界面 (CLI) 轻松地将你的 Ultralytics YOLO 模型导出为 RKNN 格式。请确保你使用基于 x86 的 Linux PC 进行导出过程,因为不支持在 ARM64 设备(如 Rockchip)上进行此操作。你可以使用 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")

Link to this section在 Rockchip 设备上使用 RKNN 模型有哪些好处?#

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

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

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

Link to this sectionRKNN 模型部署支持哪些 Rockchip 平台?#

Ultralytics YOLO 的 RKNN 格式导出支持具有浮点 RKNN 构建的 Rockchip 平台,包括 RK3588、RK3576、RK3566、RK3568、RK3562、RK2118 和 RV1126B。它还支持使用 int8=True 进行 INT8 量化的 RKNN 导出,这对于仅限 INT8 的目标(如 RV1103、RV1106、RV1103B 和 RV1106B)是必需的。这些平台常见于 Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等制造商的设备中,使你能够在从单板计算机到工业系统的各种 Rockchip 驱动设备上部署你优化的 RKNN 模型。

Link to this sectionRKNN 模型在 Rockchip 设备上的性能与其他格式相比如何?#

由于针对 Rockchip 的 NPU 进行了优化,RKNN 模型在 Rockchip 设备上的表现通常优于 ONNX 或 TensorFlow Lite 等其他格式。例如,在 Radxa Rock 5B (RK3588) 上的基准测试显示,RKNN 格式的 YOLO26n 实现了 65.7 ms/image 的推理时间,明显快于其他格式。这种性能优势在各种 YOLO26 模型尺寸中都是一致的,正如 基准测试部分 中所示。通过利用专用的 NPU 硬件,RKNN 模型最大限度地减少了延迟并提高了吞吐量,使其非常适合基于 Rockchip 的边缘设备上的实时应用。

评论