MASt3R-SLAM: 实时稠密SLAM与3D重建先验
项目介绍
MASt3R-SLAM 是一个基于深度学习的实时稠密SLAM系统,它利用3D重建先验来提高定位和地图构建的准确性。该系统由 Riku Murai、Eric Dexheimer 和 Andrew J. Davison 合作开发,能够在多种环境中实现高效的SLAM(Simultaneous Localization and Mapping,即同时定位与建图)。
项目快速启动
以下是一个快速启动MASt3R-SLAM项目的步骤:
环境搭建
-
创建一个新的conda环境:
conda create -n mast3r-slam python=3.11 conda activate mast3r-slam
-
检查CUDA版本:
nvcc --version
-
根据CUDA版本安装PyTorch:
# CUDA 11.8 conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=11.8 -c pytorch -c nvidia # CUDA 12.1 conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia # CUDA 12.4 conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia
-
克隆仓库并安装依赖:
git clone https://github.com/rmurai0610/MASt3R-SLAM.git --recursive cd MASt3R-SLAM/ # 如果克隆仓库时未使用 --recursive,运行以下命令 # git submodule update --init --recursive pip install -e thirdparty/mast3r pip install -e thirdparty/in3d pip install --no-build-isolation -e .
-
可选安装 torchcodec 以加速MP4加载:
pip install torchcodec==0.1
检查点设置
-
创建一个用于存放检查点的目录:
mkdir -p checkpoints/
-
下载检查点文件:
wget https://download.europe.naverlabs.com/ComputerVision/MASt3R/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth -P checkpoints/ wget https://download.europe.naverlabs.com/ComputerVision/MASt3R/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric_retrieval_trainingfree.pth -P checkpoints/ wget https://download.europe.naverlabs.com/ComputerVision/MASt3R/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric_retrieval_codebook.pkl -P checkpoints/
运行示例
-
下载TUM数据集:
bash ./scripts/download_tum.sh
-
运行示例:
python main.py --dataset datasets/tum/rgbd_dataset_freiburg1_room/ --config config/calib.yaml
应用案例和最佳实践
使用RealSense相机
连接一个RealSense相机到PC,并运行以下命令:
python main.py --dataset realsense --config config/base.yaml
处理视频
系统可以处理MP4视频或包含RGB图像的文件夹。以下是如何处理视频的示例:
python main.py --dataset <path/to/video>.mp4 --config config/base.yaml
python main.py --dataset <path/to/folder> --config config/base.yaml
如果已知校准参数,可以在intrinsics.yaml
中指定,然后运行:
python main.py --dataset <path/to/video>.mp4 --config config/base.yaml --calib config/intrinsics.yaml
python main.py --dataset <path/to/folder> --config config/base.yaml --calib config/intrinsics.yaml
典型生态项目
MASt3R-SLAM可以作为多种应用的基础,例如机器人导航、增强现实(AR)和虚拟现实(VR)等。以下是一些可能的项目示例:
- 机器人导航系统:集成MASt3R-SLAM以实现机器人自主导航和地图构建。
- 增强现实应用:使用MASt3R-SLAM进行实时的环境理解,以增强虚拟物体的放置和交互。
- 虚拟现实体验:结合MASt3R-SLAM提供的空间感知能力,为用户提供沉浸式的虚拟现实体验。
MASt3R-SLAM的开源特性和强大的功能使其成为一个适用于多种场景的优秀SLAM解决方案。