适用于 Ultralytics YOLO26 模型的 Rockchip RKNN 导出#
在嵌入式设备上部署计算机视觉模型时,尤其是在由 Rockchip 处理器驱动的设备上,拥有兼容的模型格式至关重要。将 Ultralytics YOLO26 模型导出为 RKNN 格式,可确保在 Rockchip 硬件上的优化性能和兼容性。本指南将指导你将 YOLO26 模型转换为 RKNN 格式,包括浮点和 INT8 量化导出,从而实现其在 Rockchip 平台上的高效部署。
本指南已在基于 Rockchip RK3588 的 Radxa Rock 5B 和基于 Rockchip RK3566 的 Radxa Zero 3W 上完成测试。预计它也适用于其他支持 rknn-toolkit2 的 Rockchip 设备,例如 RK3576、RK3568、RK3562、RK2118、RV1126B、RV1103、RV1106、RV1103B 和 RV1106B。RV1103 和 RV1106 等仅支持 INT8 的目标设备需要 quantize=8。
什么是 Rockchip?#
Rockchip 以提供多样化且高能效的解决方案而闻名,设计了先进的片上系统(SoCs),为广泛的消费电子产品、工业应用和 AI 技术提供动力。凭借基于 ARM 的架构、内置神经处理单元(NPUs)和高分辨率多媒体支持,Rockchip SoCs 为平板电脑、智能电视、IoT 系统和边缘 AI 应用等设备提供前沿性能。Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等公司提供了各种基于 Rockchip SoCs 的产品,进一步扩大了其在多元市场中的覆盖范围和影响力。
RKNN Toolkit#
RKNN Toolkit 是 Rockchip 提供的一组工具和库,用于帮助在其硬件平台上部署深度学习模型。RKNN,即 Rockchip 神经网络,是这些工具使用的专有格式。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,因为只有该系列提供这些检测头。
导出为 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
# 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 (detection models only)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml") # creates 'yolo26n_rknn_model'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")导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'rknn' | 导出模型的目标格式,用于定义其与 Rockchip 部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入所需的图像尺寸。可以使用表示正方形图像的整数,也可以使用元组 (height, width) 指定具体尺寸。 |
batch | int | 1 | 指定导出模型的批量推理大小,或指定导出模型在 predict 模式下并发处理的最大图像数量。 |
name | str | 'rk3588' | 指定 Rockchip 目标设备。rk3588、rk3576、rk3566、rk3568、rk3562、rk2118 和 rv1126b 支持 FP16(quantize=16 或未设置)和 INT8(quantize=8);rv1103、rv1106、rv1103b 和 rv1106b 仅支持 INT8(quantize=8 或未设置)。 |
quantize | int 或 str | None | 量化精度:未设置或 16 会为支持 FP16 的目标构建 FP16;未设置会自动为纯 INT8 目标启用 INT8;8 构建仅对检测模型受支持的 INT8。RKNN 导出没有单独的 FP32 模式。它取代了已废弃的 half/int8 标志。 |
simplify | bool | True | 使用 onnxslim 简化中间 ONNX 图。 |
opset | int | None | 指定中间 ONNX 图的 ONNX opset 版本。未设置时默认为 19,高于 19 的值会被降为 19。 |
data | str | None | 用于 INT8 校准的数据集 YAML。如果在使用 quantize=8 时省略此项,Ultralytics 将选择默认的检测校准数据集 (coco8.yaml)。 |
fraction | float、int 或 list | 1.0 | 校准子集可以按比例、图像数量或 [train, val, test] 的比例/数量指定。包含两个项目的列表会保留 test 的完整内容,同时跳过 0。 |
device | str | None | 指定导出设备: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安装完成后,按照上方 Usage 部分所示,在 Rockchip 设备上运行推理和验证——导出的 _rknn_model 可直接通过 YOLO(...) 加载。
如果你遇到日志消息提示 RKNN runtime 版本与 RKNN Toolkit 版本不匹配,并导致推理失败,请将 /usr/lib/librknnrt.so 替换为官方的 librknnrt.so 文件。

实际应用#
搭载 Rockchip 的设备结合 YOLO26 RKNN 模型可用于各种应用:
- 智能监控:以低功耗部署高效的目标检测系统,用于安全监控。
- 工业自动化:直接在嵌入式设备上实施质量控制和缺陷检测。
- 零售分析:无需依赖云端,即可实时跟踪客户行为并管理库存。
- 智慧农业:利用农业计算机视觉监测作物健康状况并检测害虫。
- 自主机器人:在资源受限的平台上实现基于视觉的导航和障碍物检测。
基准测试#
以下 YOLO26 基准测试由 Ultralytics 团队在基于 Rockchip RK3588 的 Radxa Rock 5B 上运行,使用 rknn 模型格式测量速度和准确率。
| 模型 | 格式 | 精确率 | 状态 | 大小(MB) | mAP50-95(B) | 推理时间(ms/图像) |
|---|---|---|---|---|---|---|
| YOLO26n | rknn | FP16 | ✅ | 7.2 | 0.477 | 58.5 |
| YOLO26n | rknn | INT8 | ✅ | 4.1 | 0.463 | 41.2 |
| YOLO26s | rknn | FP16 | ✅ | 21.0 | 0.569 | 93.8 |
| YOLO26s | rknn | INT8 | ✅ | 12.0 | 0.554 | 61.9 |
| YOLO26m | rknn | FP16 | ✅ | 43.0 | 0.608 | 226.3 |
| YOLO26m | rknn | INT8 | ✅ | 22.0 | 0.603 | 122.0 |
| YOLO26l | rknn | FP16 | ✅ | 53.0 | 0.628 | 264.7 |
| YOLO26l | rknn | INT8 | ✅ | 28.0 | 0.617 | 145.3 |
| YOLO26x | rknn | FP16 | ✅ | 113.0 | 0.664 | 655.4 |
| YOLO26x | rknn | INT8 | ✅ | 58.0 | 0.649 | 287.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或其他目标。此过程会生成可直接部署到 Rockchip 设备的优化 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")RKNN 模型专为利用 Rockchip 神经处理单元(NPUs)的硬件加速能力而设计。与在相同硬件上运行 ONNX 或 LiteRT 等通用模型格式相比,这种优化可显著提升推理速度并降低延迟。使用 RKNN 模型可以更高效地利用设备资源,从而降低功耗并提升整体性能,这对于边缘设备上的实时应用尤为重要。将 Ultralytics YOLO 模型转换为 RKNN 后,你可以在采用 RK3588、RK3566 等 Rockchip SoCs 的设备上实现最佳性能。
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 等制造商的设备中,让你能够在从单板计算机到工业系统的各种 Rockchip 设备上部署优化后的 RKNN 模型。