概要
本文介绍 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 exportmodel=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()

