Ultralytics YOLO27:
Get Started

为 Ultralytics YOLO26 模型导出 Rockchip RKNN#

在嵌入式设备上部署计算机视觉模型时,尤其是部署在 Rockchip 处理器驱动的设备上,使用兼容的模型格式至关重要。将 Ultralytics YOLO26 模型导出为 RKNN 格式,可确保模型在 Rockchip 硬件上获得优化性能并保持兼容性。本指南将介绍如何将 YOLO26 模型转换为 RKNN 格式,包括浮点和 INT8 量化导出,从而支持在 Rockchip 平台上高效部署。

Rockchip RKNN export for NPU deployment

注意

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

什么是 Rockchip?#

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

RKNN Toolkit#

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 导出支持 Ultralytics 的全部七项任务。语义分割和深度估计仅适用于 YOLO26;YOLO26 是唯一提供这两种检测头的系列。

任务YOLOv8YOLO11YOLO26
检测✅✅✅
分割✅✅✅
语义分割❌❌✅
深度估计❌❌✅
分类✅✅✅
姿态✅✅✅
OBB✅✅✅

导出为 RKNN:转换 YOLO26 模型#

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

注意

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

安装#

运行以下命令安装所需的软件包:

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

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

用法#

注意

所有任务均支持 FP16 导出。目前,INT8 导出仅支持检测模型,未来将支持更多任务;因此,RV1103 和 RV1106 等仅支持 INT8 的目标平台只能导出检测模型。

RKNN 格式支持 Export、Predict 和 Validate 模式。推理和验证在 Rockchip NPU 硬件上运行。导出模型后,加载导出的模型即可运行推理或验证其准确率。默认情况下,对于支持 FP16 的 Rockchip 目标平台,RKNN 导出会使用浮点构建路径(quantize=16)。使用 quantize=8,结合校准数据构建 INT8 量化 RKNN 模型。RKNN 导出不提供独立的 FP32 模式;默认的 FP16 不会请求 FP32。

导出
from ultralytics import YOLO

# 加载 YOLO26 模型(替换为任何受支持的任务模型)
model = YOLO("yolo26n-obb.pt")

# 将模型导出为 RKNN 格式
model.export(format="rknn", name="rk3588")  # creates 'yolo26n-obb_rknn_model'

# 结合校准数据导出 INT8 量化 RKNN 模型(仅限检测模型)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml")  # creates 'yolo26n_rknn_model'
预测
from ultralytics import YOLO

# 加载导出的 RKNN 模型
model = YOLO("./yolo26n-obb_rknn_model")

# 运行推理
results = model("https://ultralytics.com/images/boats.jpg")
验证
from ultralytics import YOLO

# 加载导出的 RKNN 模型
model = YOLO("./yolo26n-obb_rknn_model")

# 在 DOTA8 数据集上验证准确率
metrics = model.val(data="dota8.yaml")

导出参数#

参数类型默认值说明
formatstr'rknn'导出模型的目标格式,用于指定与 Rockchip 部署环境的兼容性。
imgszint 或 tuple640模型输入所需的图像尺寸。正方形图像可使用整数;若要指定具体尺寸,则可使用元组 (height, width)。
batchint1指定导出模型的批量推理大小,或导出模型在 predict 模式下可同时处理的最大图像数。
namestr'rk3588'指定 Rockchip 目标平台。rk3588、rk3576、rk3566、rk3568、rk3562、rk2118 和 rv1126b 支持 FP16(quantize=16 或未设置)和 INT8(quantize=8);rv1103、rv1106、rv1103b 和 rv1106b 仅支持 INT8(quantize=8 或未设置)。
quantizeint 或 strNone量化精度:未设置或使用 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 会选择默认的检测校准数据集(coco8.yaml)。
fractionfloat、int 或 list1.0校准子集,可按比例、图像数量或 [train, val, test] 比例/数量指定。包含两个项目的列表会让 test 保持完整,而 0 会跳过它。
devicestrNone指定导出设备:GPU(device=0)、CPU(device=cpu)。
提示

请确保使用 x86 Linux 计算机导出为 RKNN。

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

部署导出的 YOLO26 RKNN 模型#

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

安装#

运行以下命令安装所需的软件包:

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

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

注意

如果日志提示 RKNN Runtime 版本与 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)
YOLO26nrknnFP16✅7.20.47758.5
YOLO26nrknnINT8✅4.10.46341.2
YOLO26srknnFP16✅21.00.56993.8
YOLO26srknnINT8✅12.00.55461.9
YOLO26mrknnFP16✅43.00.608226.3
YOLO26mrknnINT8✅22.00.603122.0
YOLO26lrknnFP16✅53.00.628264.7
YOLO26lrknnINT8✅28.00.617145.3
YOLO26xrknnFP16✅113.00.664655.4
YOLO26xrknnINT8✅58.00.649287.4

使用 ultralytics 8.4.60 进行基准测试

注意

上述基准测试使用 COCO128 数据集进行验证。推理时间不包括预处理和后处理。

总结#

本指南介绍了如何将 Ultralytics YOLO26 模型导出为 RKNN 格式,以便在 Rockchip 平台上更好地部署模型。你还了解了 RKNN Toolkit,以及在边缘 AI 应用中使用 RKNN 模型的具体优势。

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

如需了解更多使用详情,请参阅 RKNN 官方文档。

此外,如果你想进一步了解其他 Ultralytics YOLO26 集成方案,请访问我们的集成指南页面。页面上有许多实用资源和见解。

常见问题#

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

    示例
    from ultralytics import YOLO
    
    # 加载你的 YOLO 模型
    model = YOLO("yolo26n.pt")
    
    # 为特定的 Rockchip 平台导出为 RKNN 格式
    model.export(format="rknn", name="rk3588")
  • RKNN 模型专为充分利用 Rockchip 神经处理单元(NPUs)的硬件加速能力而设计。与在同一硬件上运行 ONNX 或 LiteRT 等通用模型格式相比,这种优化可显著提高推理速度并降低延迟。使用 RKNN 模型可以更高效地利用设备资源,从而降低功耗并提升整体性能;这对边缘设备上的实时应用尤为重要。将 Ultralytics YOLO 模型转换为 RKNN 后,你可以在搭载 Rockchip SoC(例如 RK3588、RK3566 等)的设备上实现最佳性能。

  • RKNN 模型针对 Rockchip 平台及其集成 NPU 进行了专门优化。虽然理论上可以通过软件仿真在其他平台上运行 RKNN 模型,但你无法获得 Rockchip 设备提供的硬件加速。若要在其他平台上实现最佳性能,建议将 Ultralytics YOLO 模型导出为专为相应平台设计的格式,例如适用于 NVIDIA GPU 的 TensorRT,或适用于 Google Coral 设备的 Edge TPU。Ultralytics 支持导出为多种格式,确保兼容各类硬件加速器。

  • Ultralytics YOLO 导出为 RKNN 格式时,支持使用浮点 RKNN 构建的 Rockchip 平台,包括 RK3588、RK3576、RK3566、RK3568、RK3562、RK2118 和 RV1126B。它还支持通过 quantize=8 导出 INT8 量化 RKNN,这对 RV1103、RV1106、RV1103B 和 RV1106B 等仅支持 INT8 的目标平台是必需的。这些平台常用于 Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等制造商的设备,因此你可以将优化后的 RKNN 模型部署到各种由 Rockchip 驱动的设备上,涵盖从单板计算机到工业系统的多种类型。

  • 由于针对 Rockchip NPU 进行了优化,RKNN 模型在 Rockchip 设备上的表现通常优于 ONNX 或 LiteRT 等其他格式。例如,Radxa Rock 5B(RK3588)上的基准测试显示,采用 RKNN 格式的 YOLO26n 在 FP16 下的推理时间为 58.5 毫秒/图像,在 INT8 下为 41.2 毫秒/图像,明显快于其他格式。正如基准测试部分所示,各种 YOLO26 模型尺寸都能获得这一性能优势。借助专用 NPU 硬件,RKNN 模型可最大限度地降低延迟并提高吞吐量,因此非常适合在基于 Rockchip 的边缘设备上运行实时应用。

评论