高斯SLAM:基于高斯散布的逼真密集SLAM
弗拉基米尔·尤盖 · 李越* · 西奥·格弗斯 · 马丁·奥斯瓦尔德
*贡献突出
⚙️ 设置环境
克隆仓库:
git clone https://github.com/VladimirYugay/Gaussian-SLAM
确保gcc和g++路径已导出:
export CC=<gcc path>
export CXX=<g++ path>
从提供的conda环境文件设置环境:
conda env create -f environment.yml
conda activate gslam
我们在RTX3090和RTX A6000 GPU上的Ubuntu22和CentOS7.5上测试了代码。
🔨 运行高斯SLAM
下载数据: 我们的代码在Replica、TUM_RGBD、ScanNet和ScanNet++数据集上进行了测试。我们还提供了下载Replica和TUM_RGBD的脚本。在使用脚本之前需要先安装git lfs。ScanNet和ScanNet++的下载过程见相关页面。配置文件以我们使用的序列命名。
运行代码:
python run_slam.py configs/<dataset_name>/<config_name> --input_path <path_to_the_scene> --output_path <output_path>
例如:
python run_slam.py configs/Replica/room0.yaml --input_path /home/datasets/Replica/room0 --output_path output/Replica/room0
您也可以在配置YAML文件中设置输入和输出路径。
复现结果: 尽管我们使代码的所有部分都是确定性的,但高斯散布的差分光栅器并非如此。指标可能会在运行之间略有不同。在论文中,我们报告了使用0、1和2三个种子计算的平均指标。
您可以通过运行以下命令复现单个场景的结果:
python run_slam.py configs/<dataset_name>/<config_name> --input_path <path_to_the_scene> --output_path <output_path>
如果您在SLURM集群上运行,可以通过运行脚本复现整个数据集的结果:
./scripts/reproduce_sbatch.sh
请注意,评估depth_L1指标需要重建网格,如果在集群上运行,这需要headless安装open3d。
演示: 我们使用gaussian-splatting-lightning仓库中的相机路径工具来制作基于重建场景的飞越视频。我们感谢作者出色的工作。
📌 引用
如果您发现我们的论文和代码有用,请引用我们:
@misc{yugay2023gaussianslam,
title={Gaussian-SLAM: Photo-realistic Dense SLAM with Gaussian Splatting},
author={Vladimir Yugay and Yue Li and Theo Gevers and Martin R. Oswald},
year={2023},
eprint={2312.10070},
archivePrefix={arXiv},
primaryClass={cs.CV}
}