你好 @hitbuyi,
结论:X5 和 S100 平台(基于 J5 芯片)是支持 BEV 模型的,社区已有多个成熟的参考算法和部署案例。
目前地平线 OpenExplorer 工具链主要支持以下几种 BEV 视觉转换方法的参考算法:
- BEV_IPM (基于逆透视变换)
- BEV_LSS (基于 Lift-Splat-Shoot)
- BEV_GKT (基于 Geometry-guided Kernel Transformer)
- BEV_Detr3D (基于 Transformer)
1. 可用的 BEV 参考算法
社区已有详细的精华帖介绍了这些算法的原理、训练和部署流程:
- BEV_IPM: 【参考算法】地平线 BEV_IPM参考算法-v1.2.2
- 特点: 使用 IPM 映射完成图像 2D 到 BEV 3D 的转换,计算效率较高。
- 性能: 在 J5 上单核 FPS 约 106 (EfficientNetB0 backbone)。
- BEV_LSS: 【参考算法】地平线 BEV_LSS 参考算法-v1.2.2
- 特点: 基于 LSS (Lift-Splat-Shoot) 方法,通过深度预测将特征投影到 BEV 空间。
- 性能: 在 J5 上单核 FPS 约 138 (EfficientNetB0 backbone)。
- BEV_GKT: 【参考算法】地平线 BEV_GKT 参考算法-v1.2.2
- 特点: 基于 Transformer 架构,几何引导的核变换。
- BEV_Detr3D: 也在支持列表中,具体细节可参考工具链文档。
2. 如何获取和使用例子
这些参考算法包含在 OpenExplorer (OE) 开发包中。
获取步骤:
- 下载 OpenExplorer 包: 需要登录地平线开发者社区,下载对应芯片版本(如
horizon_j5_open_explorer_v$version$.tar.gz)。- 部分高级参考算法可能需要 VIP 权限,如有需要请联系项目对接人申请。
- 查找示例代码: 解压后,参考算法通常位于
horizon_model_train_sample或model_zoo目录下。- 例如 BEV_LSS 的配置和训练脚本通常在
configs/bev/和tools/目录中。
- 例如 BEV_LSS 的配置和训练脚本通常在
- AI Benchmark: OE 包中还提供了板端性能测试示例,位于
ddk/samples/ai_benchmark/j5/qat/script/bev/,可以直接在板子上测试 FPS 和延迟。
3. 开发建议
- 工具链版本: 建议使用较新的 OpenExplorer 版本(如 v1.1.68 或更高),以获得更好的算子支持和性能优化。
- 数据集: 这些参考算法通常基于 nuScenes 数据集进行训练和验证。
- 训练流程: 支持浮点训练 → Calibration (量化校准) → 量化模型验证 → 编译 (.hbm) → 板端部署的完整流程。
- 注意:对于 IPM 和 LSS 模型,通常只需做 Calibration 即可满足量化精度,无需复杂的 QAT 训练。
- 常见问题: 社区中有很多关于 BEV 模型训练精度复现、数据集打包、板端部署的讨论帖,遇到问题可以先搜索论坛。
相关帖子推荐:
你可以先从 BEV_LSS 或 BEV_IPM 的参考算法入手,这两个文档最齐全,社区讨论也最多。如果有具体的环境配置或代码运行问题,欢迎随时提问!