Py学习  »  机器学习算法

XRDSLAM:高度模块化、灵活易拓展、基于深度学习的SLAM开源框架

计算机视觉工坊 • 2 周前 • 136 次点击  

点击下方卡片,关注「计算机视觉工坊」公众号
选择星标,干货第一时间送达

来源:OpenXRLab | 编辑:计算机视觉工坊

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

扫描下方二维码,加入3D视觉知识星球,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:近20门视频课程(星球成员免费学习)最新顶会论文计算机视觉书籍优质3D视觉算法源码等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!


  背景

SLAM即同步定位与建图,是一种利用传感器信息实现设备自身定位和环境三维地图构建的技术。然而,传统SLAM算法在面对强光、光照变化、纹理较弱和动态场景等情况时表现不佳,并且基于手工设计的特征和地图表达形式,以及基于手工编码的算法逻辑,往往难以应对所有挑战场景。相比之下,基于深度学习的方法利用神经网络的强大学习能力,在特征设计和地图表达、噪声数据处理等方面有着明显的优势,且借助神经网络端到端的推理方式,可以大幅降低开发的难度。近几年,随着NeRF和3DGS等技术的涌现,基于深度学习的SLAM方法备受关注。

为了方便研究者开展相关工作,商汤与浙大联合推出了一个基于深度学习的SLAM框架—XRDSLAM(https://github.com/openxrlab/xrdslam)。该框架采用了模块化的代码设计、多进程的运行机制,提供了统一的多数据集IO、三维可视化、精度指标评估等可复用的基础功能模块。基于我们的框架进行SLAM算法的开发,可以大幅降低开发者的代码开发成本,提升开发效率。

XRDSLAM

NICE-SLAM

Co-SLAM

Vox-fusion

Point-SLAM

SplaTAM

DPVO


  框架亮点

  • 模块化设计XRDSLAM采用了模块化的设计,包括数据集读取、配置解析、精度评估和三维可视化等模块。

  • 多进程实现实现了基于多进程的Tracker、Mapper、Visualizer,提升了系统的并行处理能力和效率。

  • 多数据集支持支持多个数据集的自动下载和IO操作,包括 Replica、 tum_rgbd、neural_rgbd_data、apartment等。

  • 可视化支持在线和离线两种可视化模式,方便调试算法和结果可视化展示。

  • 多指标评估支持对算法进行多种指标的评估,包括轨迹精度、渲染图像质量、重建质量等。

  • 多算法接入目前已经接入了6个算法,包括NICE-SLAM、Co-SLAM、Vox-fusion、Point-SLAM、DPVO和SplaTAM,涵盖了显式/隐式等不同的地图表达形式,以及神经辐射场、3D高斯等不同的建模方式。在统一的框架下,不同的算法可以方便地进行公平的对比评估。


  XRDSLAM 整体介绍

1. 模块化的设计

为了让用户能够更高效的上手XRDSLAM,我们提供了详细的文档教程,包含了:

XRDSLAM采用了模块化设计,提升了代码的可复用性和可扩展性。

OpenXRLab-XRDSLAM框架

我们的框架包含三个关键子进程:Tracker、Mapper和Visualizer。

  • Tracker负责处理输入数据并输出图像位姿信息;

  • Mapper提取关键帧并优化位姿信息;

  • Visualizer则负责可视化轨迹和重建结果。

我们还提供了Algorithm和Model两个抽象类作为算法的接口:

  • Algorithm基类提供了一个完整的SLAM算法所需要的操作定义,包括关键帧管理、优化器设置、追踪和建图等基础功能,以及一些状态判断等功能;

  • Model基类负责处理网络模型相关操作,包含了网络模型配置和初始化、模型参数设置和输出获取、前向传播和损失计算等功能。

发者只需继承Algorithm和Model这两个基类并实现相关接口函数,就可以轻松搭建出新的SLAM算法。

2. 详细的文档教程

为了让用户能够更高效的上手XRDSLAM,我们提供了详细的文档教程,包含了:

a. 如何编译运行

我们提供了简单易上手的操作脚本,可以快速完成环境的搭建和demo的运行。

b. 如集成 新的算法

3. 良好的复现效果与指标对比

XRDSLAM目前集成了6种开源算法,并给出了与原算法的指标对比:

性能测试:

  • 测试平台:X86_64,Linux 16.04,Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti 11GB]

  • 测试数据集:Replica/office0 (共2000帧, 分辨率 320x600, downsample_factor=2)

  • 耗时说明:耗时为单帧图像的平均耗时(运行总时间/2000)

Method

NICE-SLAM

Co-SLAM

Vox-Fusion

Point-SLAM

SplaTAM

DPVO

耗时(s)

1.97

1.05

2.62

11.54

6.49

0.43

Demo:

4. 良好的技术支持

我们会尽力及时地回答Issue当中的问题,欢迎大家踊跃参与讨论!

  总结

深度学习、3DGS与SLAM的结合正变得越来越火热!我们会持续不断地更新和改进XRDSLAM框架,加入更多最新的SLAM算法,并提供更方便易用的工具。

欢迎点击阅读原文查看代码库:https://github.com/openxrlab/xrdslam

本文仅做学术分享,如有侵权,请联系删文。

计算机视觉工坊交流群

目前我们已经建立了3D视觉方向多个社群,包括2D计算机视觉大模型工业3D视觉SLAM自动驾驶三维重建无人机等方向,细分群包括:

2D计算机视觉:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

大模型:NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等

工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

SLAM视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、BEV感知、Occupancy、目标跟踪、端到端自动驾驶等。

三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等

无人机:四旋翼建模、无人机飞控等

除了这些,还有求职硬件选型视觉产品落地最新论文3D视觉最新产品3D视觉行业新闻等交流群

添加小助理: dddvision,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。

▲长按扫码添加助理

3D视觉学习知识星球

3D视觉从入门到精通知识星球、国内成立最早、6000+成员交流学习。包括:星球视频课程近20门(价值超6000)项目对接3D视觉学习路线总结最新顶会论文&代码3D视觉行业最新模组 3D视觉优质源码汇总书籍推荐编程基础&学习工具实战项目&作业求职招聘&面经&面试题等等。欢迎加入3D视觉从入门到精通知识星球,一起学习进步。

▲长按扫码加入星球
3D视觉课程官网:www.3dcver.com

3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪,无人机等

▲长按扫码学习3D视觉精品课程

3D视觉相关硬件

图片说明名称
硬件+源码+视频教程精迅V1(科研级))单目/双目3D结构光扫描仪
硬件+源码+视频教程深迅V13D线结构光三维扫描仪
硬件+源码+视频教程御风250无人机(基于PX4)
硬件+源码工坊智能ROS小车
配套标定源码高精度标定板(玻璃or大理石)
添加微信:cv3d007或者QYong2014 咨询更多
欢迎点个在看,你最好看!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169665
 
136 次点击