[具身智能-656]:RDK Model Zoo 详解:背景、目标、使用方法等 RDK Model Zoo 完整详解地瓜机器人 D-Robotics一、基础定义与诞生背景1. 概念全称RDK Model Zoo面向 RDK 系列边缘开发板的开源模型案例仓库俗称模型动物园。 仓库地址https://github.com/D-Robotics/rdk_model_zoo2. 技术发展背景地平线机器人产品线RDK X3 / X5与车载产品线J5/J6工具链、模型格式割裂早期痛点开发者缺少完整链路参考Pytorch 训练模型 → ONNX 导出 → PTQ 量化 → BPU 模型编译 → 板端推理、前后处理全套代码量化参数、图像预处理归一化、NV12 输入格式、BPU 后处理极易踩坑X3、X5 BPU指令集不同.bin模型不能互通缺少平台隔离的标准化 Demo。项目目标官方统一提供端到端标准化参考工程打通「训练导出→PC 量化编译→板端 BPU 部署」全链路降低边缘 AI 落地门槛。关键区分结合你之前关注的.bin/.hbmRDK X3、X5机器人线Model Zoo 全部使用.bin车载征程 5/6 使用.hbm不在此仓库内RDK S100 独立分支仓库rdk_model_zoo_s使用.hbm与 X5 仓库互相独立。重要RDK Model Zoo 不提供 hbm 模型X5 分支所有预编译模型均为bayes-e架构专用.bin无法在 X3 运行。二、核心设计目标提供开箱即用预编译 BPU 模型仓库内置下载脚本一键拉取已经 PTQ 量化、编译完成的.bin模型直接上板运行无需本地编译。提供完整链路参考模板每个模型目录包含Pytorch → ONNX 导出脚本OpenExplorer (OE) 工具链量化 yaml 配置Python / C 板端推理代码图像预处理、BPU 输出后处理YOLO、分割、分类解析代码统一规范输入标准绝大多数模型采用NV12 图像输入RDK 摄像头原生输出格式省去板端 RGB 转换节省算力模型命名规范xxx_640x640_nv12.bin。屏蔽底层 API 差异按硬件划分 Git 分支隔离 X3hobot_dnn、X5hbm_runtime两套推理接口。性能基准参考附带 Benchmark 测速脚本用于评估 BPU 实际推理耗时、FPS。三、分支与硬件平台映射重中之重仓库通过Git 分支区分硬件分支不可混用模型不能跨分支迁移表格开发板Git 分支推理 Python 接口模型文件BPU 架构RDK X3 / X3Pirdk_x3hobot_dnn.pyeasy_dnnbernoulli2.binBayes 一代RDK X5 / Ultrardk_x5hbm_runtimebayes-e.binBayes2Bayes-eRDK X5 历史旧 Demordk_x5_legacypyeasy_dnn淘汰bayes-e.binBayes-eRDK S100/S600独立仓库 rdk_model_zoo_shbm_runtime.hbmNash⚠️ 高频踩坑直接 clone 默认切到主分支必须手动切换对应硬件分支否则代码、模型全部不兼容。四、仓库标准目录结构rdk_x5 分支plaintextrdk_model_zoo/ ├── demos/ # X3分支目录名 ├── samples/ # X5分支标准目录 │ └── vision/ # 视觉算法大类 │ ├── classification/ # 图像分类 ResNet/MobileNet │ ├── detect/ # 目标检测 YOLOv5/v8/v10/FCOS │ ├── instance_segmentation/ # 实例分割 │ ├── pose_estimation/ # 人体姿态 │ └── ocr/ # PaddleOCR │ ├── download.sh # 一键下载预编译.bin模型 │ ├── conversion/ # PC端模型量化、编译脚本yaml │ ├── python/ # Python推理demo │ ├── cpp/ # C推理demo │ ├── README_cn.md # 参数说明、运行命令 │ └── resource/ # 测试图片 ├── resource/ # 公共文档素材 └── requirements.txt每个模型目录三大核心组件download.sh从官方云端下载预编译.binconversion/PC 工具链模型转换全套工程ONNX→binpython/cpp板端部署代码。五、标准使用流程实操步骤步骤 1拉取仓库并切换正确分支bash运行git clone https://github.com/D-Robotics/rdk_model_zoo.git cd rdk_model_zoo # RDK X5 使用 git checkout rdk_x5 # RDK X3 使用 # git checkout rdk_x3步骤 2下载预编译模型两种方案方案 A推荐开箱即用进入对应模型目录执行下载脚本bash运行cd samples/vision/ultralytics_yolo bash download.sh脚本自动下载*_nv12.bin模型到本地。方案 B自行重新编译模型PC 端安装 OpenExplorer OE Toolchain进入conversion目录修改 yaml执行hb_mapper makertbin生成适配平台的.bin注意yaml 内march参数必须和硬件匹配X5bayes-eX3bernoulli2步骤 3拷贝代码 模型到开发板运行示例X5 Python 推理bash运行# 板端执行 python3 python/infer.py --model_file yolov8s_640x640_nv12.bin --image test.jpg六、核心技术要点结合你之前.bin/hbm 知识模型命名规则解读yolov8s_640x640_nv12.binyolov8s网络结构640x640固定输入分辨率nv12模型期望输入图像格式不是 RGB/BGR若输入图片格式不匹配推理结果完全错乱。前后处理划分原则Model Zoo 标准范式预处理缩放、均值归一化、色域转换 → 放在板端 CPU量化、归一化偏移嵌入模型内部BPU 执行后处理置信度过滤、NMS、坐标解码 → CPU 执行部分高性能 Demo 使用 C 编写的libpostprocess.so加速后处理避免 Python 速度瓶颈。接口名称陷阱重点X5 分支 Python 包名为hbm_runtime极易误认为支持.hbm 文件✅ 真相hbm_runtime只是 API 名称仅加载 bayes-e 架构.bin无法加载 J5/S100 的.hbm。七、工程价值与使用建议✅ 适合场景新手快速验证 BPU 推理链路自研算法部署时复制量化 yaml、后处理代码作为模板评估不同模型在 RDK 板卡上的 FPS、内存占用TROS.B 机器人项目算法基线参考。⚠️ 局限性仅提供主流开源模型定制网络需要自行基于 conversion 脚本改造预编译模型为固定分辨率动态 shape 需要修改量化配置重新编译不支持多模型权重共享X5 bin 单模型机制无 hbm link 链接能力预训练权重不提供仅提供导出 ONNX 与编译流程。八、常见踩坑清单不切换 Git 分支X3 代码在 X5 运行模型加载失败使用 X3 的 bin 放到 X5RGB 图像直接喂给nv12.bin模型输出乱码混淆 rdk_model_zoo机器人 X3/X5与 rdk_model_zoo_sS100 车载误以为 hbm_runtime 可以加载.hbm 模型。