[具身智能-654]:X5可以加载bin模型文件吗?

📅 2026/7/26 0:58:56 👁️ 阅读次数 📝 编程学习
[具身智能-654]:X5可以加载bin模型文件吗?

明确结论(分两种场景,极易混淆)

1. ❌RDK X5 绝对不能加载【X3 编译出来的 .bin】

  • X3 bin:march=bernoulli2(Bayes 一代 BPU 指令集)
  • X5 BPU:Bayes-e(Bayes2 二代指令集)两代 BPU 微指令集完全不兼容。 直接拷贝 X3 的.bin 到 X5 加载:
  • 运行时初始化失败、报模型校验错误;
  • 不存在任何兼容方案,改后缀、二进制修补均无效; ✅ 解决方案:原始 ONNX 模型,使用X5 配套 OE Toolchain,重新量化编译

2. ✅RDK X5 可以加载【专门给 X5 编译生成的 .bin】

重点区分:后缀同样叫.bin,但内部指令集不一样!

RDK X5(地瓜机器人 D-Robotics)OE v2.x工具链同时支持两种部署产物:

  1. .bin(混合异构模型,hb_mapper makertbin 输出)
    • 适用 Runtime:hrt_runtimehobot_dnn
    • 单模型封装,内置 BPU 指令 + CPU fallback 算子;
    • 社区绝大多数 X5 示例、TROS.B 默认使用此格式。
  2. .hbm(Horizon Binary Model,link 链接输出)
    • 面向地平线车载芯片J5/J6(天工开物 HBDK4);
    • 标准 hbm 在 RDK X5 上无法运行(Nash 指令集 vs Bayes-e)。

行业重大误区纠正:

.bin不是 X3 专属后缀!

后缀只是名字,核心看编译时指定的 march 目标架构

  • march=bernoulli2→ X3 bin(X5 不可用)
  • march=bayes-e→ X5 bin(X5 可用)
  • march=nash-e/nash-mJ5/J6 hbm(X5 不可用)

X5 上 .bin vs .hbm 边界汇总

表格

文件编译目标 march能否在 RDK X5 加载适用平台
X3 生成 xxx.binbernoulli2❌ 不支持RDK X3 / X3Pi
X5 工具链生成 xxx.binbayes-e✅ 原生支持RDK X5
J5/J6 工具链生成 xxx.hbmnash-e❌ 不支持征程 5/J5、征程 6/J6

配套工程要点

  1. 如何快速判断一份 bin 能不能在 X5 跑?使用板端工具校验:

bash

运行

hrt_model_exec model_info --model_file xxx.bin
  • 正常打印张量信息 = X5 可用 bin;
  • 报模型解析失败、header 非法 = X3 旧 bin,无法使用。
  1. yaml 编译配置关键参数(X5 生成可用 bin)

yaml

march: 'bayes-e' # 重中之重,不能写成bernoulli2 output_model_file_prefix: "model_x5"

命令:

bash

运行

hb_mapper makertbin --config convert.yaml
  1. 选型建议(RDK X5 项目)
  • 快速开发、复用 hobot_dnn/TROS.B:选用X5 版.bin
  • 不要尝试使用车载 J5/J6 链路去生成 hbm,两者指令集不互通。