Ultralytics YOLO27:

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

在嵌入式设备上部署计算机视觉模型时,尤其是在由 Rockchip 处理器驱动的设备上,拥有兼容的模型格式至关重要。将 Ultralytics YOLO26 模型导出为 RKNN 格式,可确保在 Rockchip 硬件上的优化性能和兼容性。本指南将指导你将 YOLO26 模型转换为 RKNN 格式,包括浮点和 INT8 量化导出,从而实现其在 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、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,因为只有该系列提供这些检测头。

任务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 格式支持 ExportPredictValidate 模式。推理和验证均在 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'
Predict
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'指定 Rockchip 目标设备。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 将选择默认的检测校准数据集 (coco8.yaml)。
fractionfloatintlist1.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

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

注意

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

RKNN 导出截图

实际应用#

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

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

基准测试#

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

性能
模型格式精确率状态大小(MB)mAP50-95(B)推理时间(ms/图像)
YOLO26nrknnFP167.20.47758.5
YOLO26nrknnINT84.10.46341.2
YOLO26srknnFP1621.00.56993.8
YOLO26srknnINT812.00.55461.9
YOLO26mrknnFP1643.00.608226.3
YOLO26mrknnINT822.00.603122.0
YOLO26lrknnFP1653.00.628264.7
YOLO26lrknnINT828.00.617145.3
YOLO26xrknnFP16113.00.664655.4
YOLO26xrknnINT858.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 平台,例如 rk3588rk3566 或其他目标。此过程会生成可直接部署到 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 模型。

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

评论