RDK X5 YOLO 全链路工具集
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_76096a1e/rdk-yolo-toolkit。
技能介绍
要解决什么问题
把 Ultralytics 系 YOLO 从 x86+GPU 训练 落到 地瓜 RDK X5(bayes-e BPU) 上,常见卡点不在「能不能跑通脚本」,而在 ONNX 算子图、Detect head 结构 和 PTQ 校准分布 与 BPU 编译器的隐式假设不一致:unsupported op、量化 cosine 掉线、板端 forward 走 CPU fallback。
本技能面向 OpenExplore v1.2.8 / hb_mapper 1.24.x 工具链,覆盖 YOLOv5u / v8 / v9 / v11 / v13 / YOLO26 的检测、分割、姿态、OBB、分类等任务,并串到 TROS / ROS2(HobotDnn) 生产链路。
技能如何协作
Agent 按 训练环境(x86+GPU)→ 量化环境(x86 Linux)→ 板端(RDK X5 aarch64) 分阶段追问,未说明的环境不擅自假设;支持本机直跑或 SSH 远程执行。
典型主路径是 训练与量化在同一台 x86 机器:ONNX 不跨机,只有 *.bin 通过 scp 上板。
- 导出:
export_monkey_patch.py改写 Detect/Attention 前向,输出 BPU 友好的多 head ONNX,并保持simplify=False,避免 layout 被折叠后编译器误判。 - 量化:
mapper.py驱动 PTQ(校准.rgbchw、yaml 由脚本生成),对照官方中间产物与 cosine similarity 做验收,最终仍要以 mAP/recall 为准。 - 板端:Python 侧 NV12 letterbox + BPU 推理 + numpy 后处理(含 DFL 解码);ROS2 侧配置
dnn_Parser(如ultralytics_yolo)、hbmem topic 与摄像头/MIPI/回灌模式。
文档里单独的 「工艺原理速查」 解释 why:opset 10/11、NV12 _128 输入、校准集必须贴近真实场景、dnn_Parser 与 reg_max 对应关系等,便于定位根因而非反复试错。
适用边界
- v1.0 目标平台仅为 RDK X5;板端需 OS ≥ 3.5.0、dnn_node 等版本与 BPU 设备可用。
- 量化 cosine ≥0.8 只是官方下限,生产上建议更高并做量化 ONNX 与数据集评测;不能只看 cosine。
- TROS 配置勿照搬示例里面向厂内模型的
dnn_Parser;自训量化模型需与 parser、class_num、reg_max(YOLO26 为 1)一致。 - 国内网络、conda ToS、
setuptools/Arial.ttf 等环境坑在技能里有明确 checklist,否则训练或horizon_nn.build_onnx阶段容易中断。
使用场景
- 在 x86 上训完自定义检测数据集,要把 Ultralytics 权重量化成 RDK X5 可用的 `.bin` 并验收 cosine 与 mAP
- 默认 `yolo export` 的 ONNX 被 hb_mapper 报 unsupported op,需要按 BPU 友好方式改 Detect 头并重新 PTQ
- 板端已烧录模型,要在 TROS 里用 USB/MIPI 摄像头跑 HobotDnn,并核对 `dnn_Parser` 与类别 list
- 厂房/安防场景与 COCO 校准分布差很远,量化后 recall 掉点,需要重做 `.rgbchw` 校准集并对比 quantized ONNX
适合人员
- 做地瓜 RDK X5 项目的嵌入式算法工程师,要把 YOLO 从训练机落到 BPU 并控制单帧延迟
- 机器人/ROS2 集成工程师,负责把自训量化模型接到 HobotDnn 与 hbmem 摄像头链路
- 首次接触 OpenExplore hb_mapper 的 CV 同学,需要在 Agent 引导下走完导出、校准与板端 Python 验证
- 维护 YOLOv11/YOLO26 多任务(检测/分割/OBB)版本线,需统一 reg_max 与 parser 配置避免 TROS 全错检