S100上有什么适配的单目视觉SLAM,例如vista-slam这种前端有深度学习的模型怎么使用BPU

有没有除了orb-slam3的slam算法适配s100

我来帮你搜索一下社区中关于 S100 SLAM 适配的相关资源。

你好 @cjyiok666

关于你在 RDK S100 上寻找除 ORB-SLAM3 以外的单目视觉 SLAM 方案,特别是涉及深度学习前端(如 Vista-SLAM)如何利用 BPU 加速的问题,目前社区公开案例较少,但可以从以下几个方向进行探索和适配:

1. 现状与结论

  • 官方支持:目前 RDK 官方文档和例程主要集中适配 ORB-SLAM3hobot_vio(基于特征点/光流的传统 VIO)。
  • 深度学习 SLAM (如 Vista-SLAM):这类算法通常包含大量的 CNN 特征提取或深度估计网络。在 RDK 平台上,BPU (Brain Processing Unit) 是加速这类深度学习模型的关键。
  • 核心难点:将 PyTorch/TensorFlow 训练好的模型转换为地平线 BPU 支持的格式 (如 HBIR),并将其嵌入到 SLAM 前端流程中,需要一定的模型转换和 C++ 部署经验。

2. S100 适配方案建议

如果你希望尝试非 ORB-SLAM3 的方案,建议按以下路径排查:

方案 A:适配现有深度学习 SLAM (如 Vista-SLAM, DROID-SLAM)

这需要你手动完成模型部署流程:

  1. 模型导出:将深度学习部分(如特征提取器、深度预测网络)导出为 ONNX 格式。
  2. 模型转换:使用地平线 HB Toolchain (Model Transformer) 将 ONNX 模型转换为 BPU 可执行的 .hbir.bin 文件。
    • 注意:需检查算子支持列表,Vista-SLAM 中的特殊算子可能需要自定义实现或使用 CPU 回退。
  3. C++ 集成:在 SLAM 前端代码中,调用地平线 HB DNN Library 加载模型并进行推理,替换原有的 CPU 推理部分。

方案 B:使用传统 VIO + 深度学习辅助

如果纯深度学习 SLAM 部署难度过大,可以考虑混合架构:

  • 前端:使用 hobot_vioVINS-Mono (需自行移植) 作为基础里程计。
  • 后端/回环:将深度学习模型仅用于回环检测 (Loop Closure)重定位,这部分对实时性要求稍低,且更容易利用 BPU 加速。

方案 C:其他开源 SLAM 移植

  • OpenVSLAM:基于特征点的传统 SLAM,结构清晰,较易移植到嵌入式平台,但不含深度学习。
  • PL-SLAM:支持点线特征,在弱纹理环境下表现优于 ORB-SLAM,纯 C++ 实现,移植难度中等。

3. 关键资源与排查步骤

建议你按以下步骤操作:

  1. 确认模型算子支持

    • 下载 Vista-SLAM 或其他目标算法的模型。
    • 使用 hb_mapper 或相关工具检查算子是否在 S100 (J5/J6 架构) 的 BPU 支持列表中。
    • 如果不支持:需寻找替代算子或在 CPU 上运行该层。
  2. 参考 BPU 部署流程

  3. 环境准备

    • 确保 S100 固件为最新版本,已安装 hb_dnnhb_mapper 等相关开发包。
    • 交叉编译环境需配置好地平线的 Toolchain。

4. 社区互动建议

由于这是一个较新的需求,建议你:

  • 补充信息:在原帖中说明你具体想跑的算法名称(如 Vista-SLAM 的具体版本)以及目前卡在哪个环节(是模型转换报错,还是 C++ 集成问题)。
  • 关注官方动态:S100 作为较新平台,官方可能会在后续更新中提供更多 SLAM 例程。

总结:目前 S100 上没有“开箱即用”的 Vista-SLAM 例程。你需要利用 BPU 工具链 手动部署其深度学习部分。如果急需可用方案,建议先尝试 ORB-SLAM3 (已适配) 或 OpenVSLAM (易移植),再将深度学习模块作为独立节点通过 BPU 加速后接入。

如果有具体的模型转换报错日志或代码集成问题,欢迎贴出,我们可以进一步分析。

运行在CPU上的Slam无太大的门槛

你好 @cjyiok666

结合管理员 @Marcelo6151 的回复,给你更明确的结论:


核心结论

方案 难度 性能 建议
CPU 运行深度学习 SLAM :white_check_mark: :warning: 帧率受限 快速验证可行
BPU 加速深度学习部分 :warning: :white_check_mark: 高性能 量产推荐
纯传统 SLAM (ORB-SLAM3) :white_check_mark: :white_check_mark: 已优化 稳定首选

具体建议

1. 先跑通 CPU 版本(验证算法)

管理员说的"无太大门槛"指的是:

# 直接在 S100 上编译运行 Vista-SLAM 等算法
# 深度学习部分用 CPU 推理,无需 BPU 转换
git clone <vista-slam-repo>
cd vista-slam
mkdir build && cd build
cmake ..
make -j4

优点:快速验证算法效果
缺点:帧率可能只有 5-10 FPS(取决于模型大小)

2. 再考虑 BPU 加速(性能优化)

如果 CPU 版本帧率不满足需求,再按之前说的流程:

PyTorch → ONNX → HBIR (hb_mapper) → C++集成 (hb_dnn)

推荐路径

1. 先在 CPU 上跑通 Vista-SLAM(确认算法效果)
   ↓
2. 测试帧率是否满足需求
   ↓
3. 如果不够 → 用 BPU 加速深度学习模块
   ↓
4. 如果够用 → 直接用 CPU 版本(开发效率更高)

你可以补充的信息

方便进一步帮你分析:

  1. 你具体想用的 Vista-SLAM 版本/仓库链接
  2. 期望的 帧率要求 是多少?
  3. 目前卡在哪个环节(编译?模型转换?集成?)?

有具体报错或需求可以贴出来,继续帮你排查。