YOLO Vision 2026:

用于 Ultralytics YOLO26 模型的 Rockchip RKNN 导出#

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

Rockchip RKNN export for NPU deployment

注意

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

什么是 Rockchip?#

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

RKNN Toolkit#

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

RKNN 模型的主要功能#

RKNN 模型在 Rockchip 平台上部署具有以下优势:

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

将操作系统烧录到 Rockchip 硬件#

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

支持的任务#

RKNN 导出支持所有七个 Ultralytics 任务。语义分割和深度估计仅在 YOLO26(唯一搭载这些检测头的模型系列)上可用。

任务YOLOv8YOLO11YOLO26
检测
分割
语义
深度
分类
Pose
OBB

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

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

注意

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

安装#

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

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

有关安装过程的详细说明和最佳实践,请查阅我们的 Ultralytics Installation guide。在安装 YOLO26 所需的软件包时,如果遇到任何困难,请参考我们的 Common Issues guide 获取解决方案和提示。

用法#

RKNN 格式支持 ExportPredictValidate 模式。推理和验证在瑞芯微 NPU 硬件上运行。导出你的模型,然后加载导出的模型以运行推理或验证其准确性。默认情况下,RKNN 导出对支持 FP16 的瑞芯微目标使用浮点构建路径(quantize=16)。使用 quantize=8 通过校准数据构建 INT8 量化的 RKNN 模型。RKNN 导出不会公开单独的 FP32 模式;FP16 默认值不会请求 FP32。

导出
from ultralytics import YOLO

# Load a YOLO26 model (replace with any supported task model)
model = YOLO("yolo26n-obb.pt")

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

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

# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")

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

# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")

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

导出参数#

参数类型默认值描述
formatstr'rknn'导出模型的目标格式,定义了与 Rockchip 部署环境的兼容性。
imgszinttuple640模型输入的所需图像大小。对于正方形图像可以是整数,或者对于特定尺寸可以是元组 (height, width)
batchint1指定导出模型的批处理推理大小,或导出的模型在 predict 模式下同时处理的最大图像数量。
namestr'rk3588'指定瑞芯微目标。rk3588rk3576rk3566rk3568rk3562rk2118rv1126b 支持 FP16(quantize=16 或未设置)和 INT8(quantize=8);rv1103rv1106rv1103brv1106b 仅支持 INT8(quantize=8 或未设置)。
quantizeintstrNone量化精度:未设置或 16 为支持 FP16 的目标构建 FP16;未设置时自动为仅支持 INT8 的目标启用 INT8;8 构建 INT8。RKNN 导出没有单独的 FP32 模式。替代了已弃用的 half/int8 标志。
simplifyboolTrue使用 onnxslim 简化中间 ONNX 图。
opsetintNone指定中间 ONNX 图的 ONNX opset 版本。如果未设置,则默认为 19,大于 19 的值会被缩减为 19。
datastrNone用于 INT8 校准的数据集 YAML;分类则需要数据集目录或内置数据集名称。如果在 quantize=8 中省略此项,Ultralytics 将为模型任务选择默认的校准数据集。
fractionfloat1.0用于 INT8 量化的校准图像比例。
devicestrNone指定用于导出的设备:GPU(device=0)、CPU(device=cpu)。
提示

在导出到 RKNN 时,请确保使用 x86 Linux 机器。

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

部署导出的 YOLO26 RKNN 模型#

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

安装#

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

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

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

注意

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

RKNN 导出截图

实际应用场景#

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

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

基准测试#

下方的 YOLO26 基准测试由 Ultralytics 团队在基于瑞芯微 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 以及在边缘 AI 应用中使用 RKNN 模型的具体优势。

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

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

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

常见问题解答#

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

你可以使用 Ultralytics Python 包中的 export() 方法或通过命令行界面(CLI)轻松将你的 Ultralytics YOLO 模型导出为 RKNN 格式。确保你使用基于 x86 的 Linux 个人电脑进行导出过程,因为不支持在诸如瑞芯微之类的 ARM64 设备上执行此操作。你可以使用 name 参数指定目标瑞芯微平台,例如 rk3588rk3566 或其他参数。此过程生成一个优化的 RKNN 模型,准备好部署在你的瑞芯微设备上,并利用其神经网络处理单元(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 或 LiteRT 等通用模型格式相比,这种优化能带来显著更快的推理速度并降低延迟。使用 RKNN 模型能更高效地利用设备资源,从而降低功耗并提升整体性能,这对于边缘设备上的实时应用尤为关键。通过将你的 Ultralytics YOLO 模型转换为 RKNN,你可以在搭载 RK3588、RK3566 等 Rockchip SoC 的设备上获得最佳性能。

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

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

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

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

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

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

评论