高斯涂抹SLAM
高斯涂抹SLAM
*Hidenobu Matsuki · *Riku Murai · Paul H.J. Kelly · Andrew J. Davison
(* 等贡献)
CVPR 2024 (亮点)
论文 | 视频 | 项目页面
本软件实现了我们在CVPR'24上发表的论文高斯涂抹SLAM中提出的密集SLAM系统。该方法展示了第一个基于3D高斯涂抹的单目SLAM(左),也支持双目/RGB-D输入(中/右)。
注意事项
- 在学术论文中, 请引用我们的工作为"高斯涂抹SLAM"或简称"MonoGS"(这个repos的名称),以免与其他工作混淆。
- 差分高斯光栅化器与相机姿态梯度计算可在此处获得。
- [新] 代码的加速版本可在
dev.speedup
分支中找到, 它能在fr3/office序列上达到10fps的速度,同时保持一致的性能(在RTX4090/i9-12900K上测试)。代码将在进一步重构和测试后合并到主分支。
入门指南
安装
git clone https://github.com/muskie82/MonoGS.git --recursive
cd MonoGS
设置环境。
conda env create -f environment.yml
conda activate MonoGS
根据你的设置,请按照这个文档修改environment.yml
中pytorch/cudatoolkit的依赖版本。
我们的测试环境为:
- Ubuntu 20.04:
pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6
- Ubuntu 18.04:
pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3
快速演示
bash scripts/download_tum.sh
python slam.py --config configs/mono/tum/fr3_office.yaml
你将看到一个GUI窗口弹出。
下载数据集
运行以下脚本将自动将数据集下载到./datasets
文件夹。
TUM-RGBD数据集
bash scripts/download_tum.sh
Replica数据集
bash scripts/download_replica.sh
EuRoC MAV数据集
bash scripts/download_euroc.sh
运行
单目
python slam.py --config configs/mono/tum/fr3_office.yaml
RGB-D
python slam.py --config configs/rgbd/tum/fr3_office.yaml
python slam.py --config configs/rgbd/replica/office0.yaml
或单进程版本
python slam.py --config configs/rgbd/replica/office0_sp.yaml
双目(实验性)
python slam.py --config configs/stereo/euroc/mh02.yaml
使用Realsense进行实时演示
首先,你需要安装pyrealsense2
。
在conda环境中,运行:
pip install pyrealsense2
将Realsense相机连接到PC的USB-3端口,然后运行:
python slam.py --config configs/live/realsense.yaml
我们使用了英特尔Realsense d455进行测试。我们建议使用类似的全局快门相机以获得稳健的相机跟踪。在初始BA完成之前,请避免激烈的相机运动。查看我们YouTube视频的前15秒,了解如何移动相机进行初始化。我们建议使用dev.speed-up
分支中的代码进行实时演示。
评估
要评估该方法,请使用--eval
命令行参数运行SLAM系统:
python slam.py --config configs/mono/tum/fr3_office.yaml --eval
此标志将自动以无头模式运行我们的系统,并记录包括渲染指标在内的结果。
可重复性
发布版本和论文中的结果之间可能会有微小差异。请记住,多进程性能由于GPU利用率而存在一些随机性。 我们在RTX 4090上运行所有实验,在使用不同GPU时,性能可能会有所不同。
致谢
这项工作结合了许多开源代码。我们对这些软件的作者表示感谢。
许可证
MonoGS在LICENSE.md下发布。有关不属于MonoGS作者的代码依赖项列表,请查看Dependencies.md。
引用
如果您发现这个代码/工作在您自己的研究中有用,请考虑引用以下内容:
@inproceedings{Matsuki:Murai:etal:CVPR2024,
title={{G}aussian {S}platting {SLAM}},
author={Hidenobu Matsuki and Riku Murai and Paul H. J. Kelly and Andrew J. Davison},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2024}
}