RDK X5 算法应用开发 + Model Zoo 通俗讲解
一、先说人话理解整套流程
我们电脑上用 PyTorch 训练出来的神经网络模型(YOLO、目标检测等),不能直接放到 RDK X5 的 BPU 上运行。 就像:Word 文档不能直接在手机上打开,需要转格式;
AI 模型同理:PC 训练的浮点模型→ 经过地平线工具量化、编译,生成专属.hbm文件,才能给 BPU 执行推理。
Model Zoo = 官方现成工具箱地瓜机器人官方整理好的仓库: 里面放好了常用检测 / 分类模型、配套转换脚本、开发板上直接运行的Demo 代码。 不用从零写模型预处理、BPU 调用、NMS后处理,拿来改一改就能用。
二、分清两台设备分工(重中之重,很多人混淆)
PC 电脑(Ubuntu + Docker OE 工具链)任务:模型编译、量化。 软件:
hb_mapper(模型编译器) 作用:把 ONNX 模型 → 转换成.hbm(BPU 能识别的程序包) ⚠️编译器只能在 PC 运行!RDK开发板没有编译工具!RDK X5 开发板任务:运行推理加载
.hbm模型,接收图片,调用 BPU 做目标检测、输出识别结果。
三、Model Zoo 里面都有什么?
仓库名称:rdk_model_zoo每个模型文件夹固定分成三块:
- model_export(PC 电脑使用)yaml 配置文件、编译脚本,用来生成 hbm 模型;
- cpp /py(RDK 开发板运行)C++、Python 两套推理示例代码;
- README:写清楚编译步骤、模型输入尺寸、参数。
支持模型:YOLOv5/v8/v11、FCOS、图像分类、实例分割、OCR 文字识别等。
四、两种使用方式(按需选择)
方式 1:快速验证(新手演示首选,不用 PC 编译)
- 在 Model Zoo 对应模型目录,下载官方已经编译完成的
.hbm文件; - 通过 scp/U 盘把 hbm 传到 RDK X5;
- 在开发板运行自带 python/cpp demo,直接测试 AI 检测效果。
适用场景:功能演示、方案验证、快速看效果。
方式 2:自研模型部署(产品开发正式流程)
如果你自己训练了 YOLO 等模型,完整步骤:
- PC 上把训练好的模型导出成ONNX;
- 启动地平线 OE Docker 环境;
- 复制 Model Zoo 里的 yaml 模板,修改参数(重点:RDK X5 架构写
bayes-e); - 使用
hb_mapper命令做量化、编译,产出.hbm; - 将 hbm 传到开发板;
- 修改 Model Zoo 的推理代码,适配自己模型,运行测试。
核心优化点(机器人项目必看)
编译 yaml 里开启
input_type_rt: "nv12"模型直接接收 NV12 图像。可以和 MIPI 相机 ISP 输出对接,不需要 CPU 做图像格式转换,硬件流水线零拷贝,延迟最低。
五、和前面学的五大多媒体 Demo 怎么配合?
五大 demo 负责获取图像(相机、本地视频、网络 RTSP); Model Zoo 代码负责 AI 识别。 两者通过分流器 splitter拼接,组成机器人标准视觉链路:
链路 1:MIPI 相机实时目标检测
vio_capture 采集 NV12 画面 → 分流器 → 分支 1:vio2display HDMI 画面预览 → 分支 2:送入 Model Zoo YOLO 模型,BPU 检测目标 → 检测框通过硬件 OSD 叠加到画面上
链路 2:网络 IPC 摄像头 AI 识别
rtsp2display 拉取网络视频 → 硬件解码得到 NV12 → 分流 → 一路 HDMI 预览,一路送入 BPU 做检测
链路 3:本地录像智能分析
decode2display 播放 h265 视频文件 → 解码 NV12 → 分流推理
一句话总结:多媒体 Demo 负责拿到画面,Model Zoo 代码负责看懂画面里的物体。
六、开发完整流程极简版
PC:训练模型 → 导出 ONNX → hb_mapper 编译 → 得到 hbm ↓拷贝 RDK X5:运行推理程序加载 hbm → 获取图像 → BPU 推理 → 解析检测结果
七、高频踩坑通俗说明
❌ 不要尝试在 RDK 开发板执行 hb_mapper 板子只能跑模型,不能编译模型;编译必须 PC Docker。
❌ 分支选错 下载 Model Zoo 后必须切换
rdk_x5分支;直接拉 main 分支代码不兼容 X5。❌ 架构参数写错 RDK X5:
march: bayes-e;RDK X3 是 bernoulli2,两者不能混用。❌ 图像格式不匹配 模型编译成 NV12 输入,代码却送 RGB 图片,识别完全失效。
❌ 工具链版本不一致 PC 端 OE 工具版本 和 开发板 TROS/hobot_dnn 版本差距太大,hbm 模型运行报错。
八、精简总结
Model Zoo 是地瓜机器人提供的算法开源仓库,内置大量预适配 RDK 的视觉模型和推理代码。 算法部署分为两步:在 PC 电脑 Docker 环境使用 hb_mapper 工具,把训练好的模型编译为 BPU 识别的 hbm 模型;再把 hbm 文件放到 RDK X5 开发板,调用 BPU 执行 AI 推理。 我们可以将 Model Zoo 推理代码,和 vio_capture、rtsp2display 等多媒体示例结合,实现相机、视频流一边画面预览、一边实时目标检测,构成机器人完整视觉感知系统。