CaRtGS: Computational Alignment for Real-Time Gaussian Splatting SLAM
Dapeng Feng1, Zhiqiang Chen2, Yizhen Yin1, Shipeng Zhong3, Yuhua Qi1, and Hongbo Chen1
Sun Yat-Sen University1, The University of Hong Kong2, WeRide Inc.3
sudo apt install libeigen3-dev libboost-all-dev libjsoncpp-dev libopengl-dev mesa-utils libglfw3-dev libglm-dev
git clone --recursive https://github.com/DapengFeng/cartgs.git
cd cartgs/
./build.sh
The benchmark datasets mentioned in our paper: Replica (NICE-SLAM Version) and TUM RGB-D.
- (optional) Download the dataset.
scripts/download_replica.sh
scripts/download_tum.sh
- For testing, you could use the below commands to run the system after specifying the
PATH_TO_Replica
andPATH_TO_SAVE_RESULTS
. We would disable the viewer by addingno_viewer
during the evaluation.
bin/replica_rgbd \
ORB-SLAM3/Vocabulary/ORBvoc.txt \
cfg/ORB_SLAM3/RGB-D/Replica/office0.yaml \
cfg/gaussian_mapper/RGB-D/Replica/replica_rgbd.yaml \
PATH_TO_Replica/office0 \
PATH_TO_SAVE_RESULTS
# no_viewer
- We also provide scripts to conduct experiments on all benchmark datasets mentioned in our paper. We ran each sequence five times to lower the effect of the nondeterministic nature of the system. You need to change the dataset root lines in scripts/*.sh then run:
scripts/replica_mono.sh
scripts/replica_rgbd.sh
scripts/tum_mono.sh
scripts/tum_rgbd.sh
# etc.
To use this toolkit, you have to ensure your results on each dataset are stored in the correct format. If you use our ./xxx.sh
scripts to conduct experiments, the results are stored in
results
├── replica_mono_0
│ ├── office0
│ ├── ....
│ └── room2
├── replica_rgbd_0
│ ├── office0
│ ├── ....
│ └── room2
│
└── [replica/tum]_[mono/rgbd]_num ....
├── scene_1
├── ....
└── scene_n
conda create -n cartgs python=3.10.12 pytorch=2.3.1 torchvision pytorch-cuda=12.1 opencv -c pytorch -c nvidia -c conda-forge
conda activate cartgs
pip install -r python/requirement.txt
pip install -e python/diff-gaussian-rasterization/
python python/shapeReplicaGT.py --replica_dataset_path PATH_TO_REPLICA_DATASET
python python/eval.py --dataset_center_path PATH_TO_ALL_DATASET --result_main_folder RESULTS_PATH
Finally, you are supposed to get two files including RESULTS_PATH/log.txt
and RESULTS_PATH/log.csv
.
We provide an example with the Intel RealSense D455 at examples/realsense_rgbd.cpp
. Please see scripts/realsense_d455.sh
for running it.
This work incorporates many open-source codes. We extend our gratitude to the authors of the software.
If you find this work useful in your research, consider citing it:
@misc{feng2024CaRtGS,
title={CaRtGS: Computational Alignment for Real-Time Gaussian Splatting SLAM},
author={Dapeng Feng and Zhiqiang Chen and Yizhen Yin and Shipeng Zhong and Yuhua Qi and Hongbo Chen},
year={2024},
eprint={2410.00486},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2410.00486},
}