欢迎光临
我们一直在努力

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(c++)

文章目录

    • 概要
    • 项目依赖
    • 一、导出格式扩展:新增 RKNN_ONNX
      • 1. 修改 `ultralytics/engine/exporter.py`
        • 1.1 扩展 `export_formats`
        • 1.2 修改 `Exporter.__call__()` 中的 flags 解包
      • 2. 新增导出函数 `export_rknn_onnx`
    • 二、AutoBackend 识别新模型类型
    • 三、Detect Head 重构(关键步骤)
      • 修改 `ultralytics/nn/modules/head.py`
      • 这样做的原因
    • 四、C++ 推理侧建议
    • 五、 具体效果模型结构

概要

本文介绍 YOLOv26 在 RK3588 平台上的部署方案(C++ 推理侧),重点在于:

  • 基于 Ultralytics YOLOv26 的模型导出改造
  • 新增 RKNN_ONNX 导出格式,用于对接 rknn-toolkit2 / rknn_model_zoo
  • 对 Detect Head 进行重构,使导出的 ONNX 更适合 RKNN 推理

该方案适合:

  • RK3588 / RK356x 等 Rockchip NPU
  • 使用 C++ + RKNN SDK 部署 YOLOv26
  • 希望保留 Ultralytics 训练与导出生态的用户

项目依赖

  • ultralytics

说明:本文不涉及 rknn-toolkit2 的安装与量化流程,仅聚焦 模型导出与结构适配。


一、导出格式扩展:新增 RKNN_ONNX

1. 修改 ultralytics/engine/exporter.py

1.1 扩展 export_formats

在 export_formats() 返回列表末尾新增一项:

[\”RKNN_ONNX\”, \”rknn_onnx\”, \”_rknn_model\”, False, False, [\”batch\”, \”name\”]],

这样可以在 CLI 中直接使用:

yolo export model=yolov26.pt format=rknn_onnx


1.2 修改 Exporter.__call__() 中的 flags 解包

在 flags 元组中加入 rknn_onnx:

(
jit,
onnx,
xml,
engine,
coreml,
saved_model,
pb,
tflite,
edgetpu,
tfjs,
paddle,
mnn,
ncnn,
imx,
rknn,
executorch,
axelera,
rknn_onnx, # 新增
) = flags

并在后续导出逻辑中调用:

if rknn_onnx:
f[17] = self.export_rknn_onnx()

赞(0)
未经允许不得转载:171主机测评 » Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(c++)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址