8.5 AI模型、算法与工具链
本节主要解答与地平线RDK平台上AI模型部署、算法开发、以及算法工具链使用相关的常见疑问。
Q1: 使用算法工具链遇到问题,在提问时需要提供哪些信息?
A: 当您在使用地平线算法工具链遇到问题并寻求技术支持时,为了帮助快速定位问题,请尽量提供以下完整信息:
- 目标RDK硬件平台及处理器架构: 例如 RDK X3 (BPU Bernoulli2), RDK Ultra (BPU Bayes), RDK X5 (BPU Bayes-e), Super100 (BPU Nash-e), Super100P (BPU Nash-m)。
- 算法工具链转换环境信息:
horizon_nn
包版本 (通过pip list | grep horizon
查看)。- Python 版本 (例如 Py3.8, Py3.10)。
- 使用的工具链Docker镜像版本(如果使用Docker)。
- 原始模型文件: 提供您的ONNX模型文件(或其他原始格式模型文件)。
- 模型转换相关文件:
- 转换时使用的
yaml
配置文件。 - 完整的
hb_mapper make_model_log
或类似日 志文件 (例如hb_mapper_makertbin_log_*.log
)。 - 用于PTQ量化的校准数据集(或其生成方法和少量样本)。
- 转换时使用的
- 板端部署相关文件:
- 板端部署的代码片段或完整项目。
- 板端运行时的具体报错信息和日志。
- RDK板卡的系统版本信息(通过
rdkos_info
命令获取)。
- 详细的问题复现步骤: 清晰地描述如何一步步操作才能重现您遇到的问题。
- 预期行为与实际行为: 描述您期望得到的结果以及实际观察到的现象。
注意: 很多常见问题可能在工具链的旧版本中存在,而已在新版本中修复。建议优先使用官方最新发布的Docker镜像和工具链版本。
- Docker镜像下载与挂载参考:
- 如果问题复杂,建议将完整的开发机转换项目、板端部署项目以及详细的错误复现方式,通过网盘等形式分享给技术支持人员。
Q2: 进行AI算法开发有哪些推荐的官方资源?
A:
- RDK用户手册 - 算法工具链章节: 这是最基础也是最重要的参考资料,详细介绍了工具链 的安装、使用流程、各项工具的功能和参数等。
- 通用入口:https://developer.d-robotics.cc/rdk_doc/04_toolchain_development (请以官方最新文档为准)
- RDK Model Zoo (模型仓库): 官方提供的模型示例库,包含了多种常见AI模型在RDK平台上的移植、优化、量化和部署示例代码及教程。
- 地平线开发者社区 - 资源中心: 社区的资源中心板块通常会汇总各类开发资源,包括工具链、SDK、示例代码、技术文档、教程视频等。
Q3: RDK X3(旭日X3派)平台有哪些社区算法资源和工具链手册?
A: 针对RDK X3平台的算法开发,可以参考以下OpenExplorer社区资源:
- RDK X3 算法工具链社区手册 (OpenExplorer): https://developer.d-robotics.cc/api/v1/fileData/horizon_xj3_open_explorer_cn_doc/index.html
- RDK X3 OpenExplore 产品发布及相关资源帖: https://developer.d-robotics.cc/forumDetail/136488103547258769
Q4: RDK Ultra平台有哪些社区算法资源和工具链手册?
A: 针对RDK Ultra平台的算法开发,可以参考以下OpenExplorer社区资源:
- RDK Ultra 算法工具链社区手册 (OpenExplorer): https://developer.d-robotics.cc/api/v1/fileData/horizon_j5_open_explorer_cn_doc/index.html
- RDK Ultra OpenExplore 产品发布及相关资源帖: https://developer.d-robotics.cc/forumDetail/118363912788935318
Q5: RDK X5平台有哪些社区算法资源和工具链手册?
A: 针对RDK X5平台的算法开发,可以参考以下OpenExplorer社区 资源:
- RDK X5 算法工具链社区手册 (OpenExplorer): https://developer.d-robotics.cc/api/v1/fileData/x5_doc-v126cn/index.html (请注意文档版本号,以最新为准)
- RDK X5 OpenExplore 产品发布及相关资源帖: https://developer.d-robotics.cc/forumDetail/251934919646096384
Q6: 算法工具链的Docker镜像是基于Ubuntu 20.04制作的,这会影响转换产物(如.bin或.hbm模型文件)在RDK板端Ubuntu 22.04系统上运行吗?
A: 通常不会影响。
地平线OpenExplorer提供的算法工具链Docker镜像虽然可能基于Ubuntu 20.04制作,但其主要作用是提供一个隔离的、包含所有必要转换工具和依赖库的模型转换环境。
它生成的模型文件(如.bin
用于PTQ,.hbm
用于QAT)是针对RDK板卡上特定BPU架构的二进制指令和权重数据。这些模型文件本身与运行 它们的RDK板卡操作系统的Ubuntu版本(无论是20.04还是22.04)是解耦的,只要板卡上的Runtime库(如libdnn.so
等BPU驱动和推理库)与模型转换时使用的工具链版本兼容即可。
Q7: 如何在RDK平台上部署YOLO系列模型(如YOLOv5, YOLOv8, YOLOv10)?
A: 地平线官方和社区提供了丰富的YOLO系列模型在RDK平台上的部署教程和示例。
-
YOLOv5 在RDK X3平台的部署:
- 全流程部署教程: YOLOv5在RDK X3上的全流程部署
- YOLOv5s 2.0版本训练与转化: 如果您使用的是YOLOv5s的tag 2.0版本,可以参考官方工具链入门手册配置开发环境,并参考此博客进行训练和转化:YOLOv5s v2.0训练与转化博客
- 较高版本YOLOv5输出层修改: 如果您使用的是较高版本的YOLOv5(如v5.0, v6.0, v7.0等,其输出层结构与v2.0不同),可能需要修改模型的输出层以适配RDK BPU的后处理要求。参考博客:高版本YOLOv5输出层修改指南
- 板端示例后处理注意: RDK系统
/app/pydev_demo/07_yolov5_sample
中的后处理部分可能直接摘自某个特定版本的训练代码,存在较多冗余计算,主要用于算法验证。对于追求性能的实际部署,建议参考RDK Model Zoo中的优化后处理实现。 - 实时视频流检测 (TROS部署,刷满30fps): 使用TROS快速部署YOLOv5刷满30fps
-
YOLOv8 在RDK X3平台的部署:
- Python多进程刷满30fps参考: CSDN博客 - YOLOv8 RDK X3部署
-
YOLOv10 在Bayes架构平台(如RDK X5/Ultra)的部署:
- Python多线程刷满30fps参考: CSDN博客 - YOLOv10 Bayes平台部署
-
通用资源: 强烈建议查阅 RDK Model Zoo (https://github.com/D-Robotics/rdk_model_zoo),其中包含了多种YOLO版本(及其他主流模型)的官方部署示例、预处理/后处理代码、以及性能优化技巧。