跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

YOLOv26 在 RK3588 上的 RKNN ONNX 部署实践(C++)

YOLOv26 模型导出至 RK3588 平台的 RKNN ONNX 格式适配方案。核心在于扩展 Ultralytics 导出器以支持自定义格式,并调整 Detect Head 结构以优化推理性能。适用于基于 C++ 和 RKNN SDK 的嵌入式部署场景,解决了原生导出格式不兼容的问题。

奶糖兔发布于 2026/3/22更新于 2026/8/1950 浏览

概要

本方案聚焦 YOLOv26 在 RK3588 平台上的部署适配,核心工作集中在 C++ 推理侧的模型准备。主要涉及基于 Ultralytics YOLOv26 的导出改造,新增 RKNN_ONNX 格式以对接 rknn-toolkit2,并对 Detect Head 进行重构,确保导出的 ONNX 模型能高效运行在 Rockchip NPU 上。

该方案适用于:

  • RK3588 / RK356x 等 Rockchip NPU 设备
  • 使用 C++ + RKNN SDK 进行高性能推理
  • 希望保留 Ultralytics 训练生态的用户

项目依赖

  • ultralytics

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

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

1. 修改 ultralytics/engine/exporter.py
1.1 扩展 export_formats

我们需要在 export_formats() 返回列表末尾追加一项,以便 CLI 支持新格式:

["RKNN_ONNX", "rknn_onnx", "_rknn_model", False, False, ["batch", "name"]],
```\n
这样即可在命令行中直接使用:

```bash
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()

二、AutoBackend 识别新模型类型

为了让框架正确加载新导出的模型,需要在 AutoBackend 中注册并识别 rknn_onnx 类型,确保推理引擎能正确初始化后端。

三、Detect Head 重构(关键步骤)

修改 ultralytics/nn/modules/head.py

原生 Ultralytics 的 Detect Head 针对通用 ONNX 优化,但在 RKNN 环境下可能需要调整算子顺序或输出形状。

这样做的原因

RKNN 对某些算子的支持有限,或者需要特定的输入输出维度。通过重构 Detect Head,可以消除不兼容的算子,减少转换过程中的精度损失,提升最终在 NPU 上的推理效率。

四、C++ 推理侧建议

在 C++ 端加载模型时,建议注意内存管理策略。RKNN 模型加载后应尽快分配好输入输出缓冲区,避免频繁的重置操作影响实时性。

五、具体效果模型结构

完成上述修改后,导出的模型结构应满足 RKNN 的输入要求。实际部署时,请结合具体的网络层数与算子支持情况进行验证。

目录

  1. 概要
  2. 项目依赖
  3. 一、导出格式扩展:新增 RKNN_ONNX
  4. 1. 修改 ultralytics/engine/exporter.py
  5. 1.1 扩展 export_formats
  6. 1.2 修改 Exporter.call() 中的 flags 解包
  7. 二、AutoBackend 识别新模型类型
  8. 三、Detect Head 重构(关键步骤)
  9. 修改 ultralytics/nn/modules/head.py
  10. 这样做的原因
  11. 四、C++ 推理侧建议
  12. 五、具体效果模型结构
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Linux 进程信号机制:产生方式与闹钟应用
  • C++ 字符串类基础与常见算法题解析
  • OpenTiny NEXT 前端智能化征文:系统学习 AI 前端与 WebAgent
  • CycleGAN 详解与图像风格转换实现
  • 网络安全行业自学与转行学习路径建议
  • 支持 ChatGLM/文心一言的 API 管理镜像部署手册
  • Mac 安装 OpenClaw 并配置飞书云文档实战
  • FastAPI + SQLAlchemy 构建高性能 RESTful API 接口实战
  • C++ vector 容器底层原理与模拟实现
  • Gazebo 机器人三维物理仿真平台
  • ROS2 从零认识 URDF:机器人模型描述的说明书
  • 基于 DGX Spark 部署 Stable Diffusion 3.5 及 ComfyUI 实战
  • Harness Engineering:给 AI 套上缰绳的工程学
  • 缓存算法实战:LRU 与 LFU 的 Java 实现与原理解析
  • 基于 Spring Boot 和 WebSocket 的 Java 实时聊天室实战
  • Isaac Lab 机器人强化学习:配置架构、添加流程与调参技巧
  • 利用统一 API 接口实现大模型选型与成本优化
  • 前端团队协作最佳实践指南
  • 仿射频分复用(AFDM):扩展 OFDM 实现场景灵活性与弹性
  • Ollama 本地大模型部署与使用指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online