MASt3R-SLAM: 实时稠密SLAM与3D重建先验

MASt3R-SLAM: 实时稠密SLAM与3D重建先验

MASt3R-SLAM [CVPR 2025] MASt3R-SLAM: Real-Time Dense SLAM with 3D Reconstruction Priors MASt3R-SLAM 项目地址: https://gitcode.com/gh_mirrors/ma/MASt3R-SLAM

项目介绍

MASt3R-SLAM 是一个基于深度学习的实时稠密SLAM系统,它利用3D重建先验来提高定位和地图构建的准确性。该系统由 Riku Murai、Eric Dexheimer 和 Andrew J. Davison 合作开发,能够在多种环境中实现高效的SLAM(Simultaneous Localization and Mapping,即同时定位与建图)。

项目快速启动

以下是一个快速启动MASt3R-SLAM项目的步骤:

环境搭建

  1. 创建一个新的conda环境:

    conda create -n mast3r-slam python=3.11
    conda activate mast3r-slam
    
  2. 检查CUDA版本:

    nvcc --version
    
  3. 根据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
    
  4. 克隆仓库并安装依赖:

    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 .
    
  5. 可选安装 torchcodec 以加速MP4加载:

    pip install torchcodec==0.1
    

检查点设置

  1. 创建一个用于存放检查点的目录:

    mkdir -p checkpoints/
    
  2. 下载检查点文件:

    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/
    

运行示例

  1. 下载TUM数据集:

    bash ./scripts/download_tum.sh
    
  2. 运行示例:

    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解决方案。

MASt3R-SLAM [CVPR 2025] MASt3R-SLAM: Real-Time Dense SLAM with 3D Reconstruction Priors MASt3R-SLAM 项目地址: https://gitcode.com/gh_mirrors/ma/MASt3R-SLAM

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

! check.warn(importable) running build_ext building &#39;mast3r_slam_backends&#39; extension "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\Users\Mr.Wan\MASt3R-SLAM\mast3r_slam/backend/include -IC:\Users\Mr.Wan\MASt3R-SLAM\thirdparty/eigen -IC:\ProgramData\anaconda3\envs\mast3r-slam\Lib\site-packages\torch\include -IC:\ProgramData\anaconda3\envs\mast3r-slam\Lib\site-packages\torch\include\torch\csrc\api\include -IC:\ProgramData\anaconda3\envs\mast3r-slam\Lib\site-packages\torch\include\TH -IC:\ProgramData\anaconda3\envs\mast3r-slam\Lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include" -IC:\ProgramData\anaconda3\envs\mast3r-slam\include -IC:\ProgramData\anaconda3\envs\mast3r-slam\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.7\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\cppwinrt" /EHsc /Tpmast3r_slam/backend/src/gn.cpp /Fobuild\temp.win-amd64-cpython-311\Release\mast3r_slam\backend\src\gn.obj /MD /wd4819 /wd4251 /wd4244 /wd4267 /wd4275 /wd4018 /wd4190 /wd4624 /wd4067 /wd4068 /EHsc /O2 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=mast3r_slam_backends -D_GLIBCXX_USE_CXX11_ABI=0 /std:c++17 gn.cpp 分析报错
03-13
从日志来看,这是在构建 C++ 扩展模块时发生的一个编译错误,涉及到了 `gn.cpp` 文件的解析问题。以下是针对此情况的一些常见原因及解决方案。 --- ### 可能的原因 1. **缺少头文件路径或库链接** 编译器无法找到所需的头文件或者相关的静态/动态库文件。检查 `-I` 和 `/linker` 参数设置是否正确。 2. **语法或逻辑错误存在于 `gn.cpp` 中** 这可能是由于代码本身存在问题引起的,如变量未定义、函数声明不匹配等。 3. **版本兼容性问题** 使用的不同工具链(例如 MSVC 版本、CUDA SDK 版本)之间可能存在不一致的地方,尤其当涉及到 CUDA 加速或其他高性能计算框架时更是如此。 4. **编码风格警告升级为错误** 在某些环境下,一些特定的编码规范冲突会被当作严重错误处理,导致编译中断。 --- ### 解决方法 #### 1. 检查并补充正确的 Include Path 确保所有的依赖都已正确配置于编译选项中。例如: - Eigen 库已经位于 `thirdparty/eigen` 下; - Torch/CPU/GPU 的相关头文件均已被导入。 如果仍有缺失,请根据实际需求调整下面类似行的内容: ```bash -I<完整路径>/Eigen \ -I<完整路径>/torch/include \ ``` 另外确认所有第三方资源均已下载完毕并且其位置预期相符。 #### 2. 审核源码 (`gn.cpp`) 打开 `gn.cpp` 文件逐一排查可能出现异常的部分。特别注意以下几方面: - 是否存在拼写失误; - 各种类型的转换是否有潜在风险; - 对外部 API 的引用是否存在歧义之处等等。 同时也可以暂时屏蔽掉不必要的功能块以便快速定位核心问题所在区域。 #### 3. 验证各组件间的一致性 对比当前使用的 Microsoft Visual Studio 年份版本号以及配套的 Windows SDK 数值同官方推荐的最佳实践保持同步;同样适用于 NVIDIA CUDA Toolkit Version Selection Guidelines 页面所给出的标准组合清单。 #### 4. 修改预处理器指令避免误判 若单纯因为格式化差异触发了过多无意义告诫消息的话,则可通过更改上述命令字符串里的若干开关标志位达成抑制效果示例: 原始内容: ```plaintext /wd4819 /wd4251 /wd4244 ... ``` 修改成: ```plaintext /Wall -pedantic-errors=false // 更宽松标准模式切换 // 或者直接忽略全部非关键级提示音 -Wno-everything ``` > 注释:具体可用参数取决于目标平台特性支持范围限制等因素影响需谨慎选取应用。 最后别忘了保存更新后的 Makefile / setup.py 文档后再试运行一次整体流程观察结果变化趋势如何! --- ### 总结 综上所述,这类跨语言混合项目调试往往比较棘手需要耐心细致地逐步推进解决进程直至成功为止。祝你好运!如果有进一步细节想要探讨随时欢迎再来咨询哦~ 😊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姚蔚桑Dominique

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值