如何快速上手MASt3R:终极3D图像匹配指南

【免费下载链接】mast3r Grounding Image Matching in 3D with MASt3R 【免费下载链接】mast3r 项目地址: https://gitcode.com/GitHub_Trending/ma/mast3r

MASt3R(Grounding Image Matching in 3D with MASt3R)是一款强大的3D图像匹配工具,能够实现高精度的图像特征匹配与三维场景重建。本文将为新手用户提供完整的快速上手指南,帮助你轻松掌握这一先进技术。

📌 MASt3R核心功能与应用场景

MASt3R通过深度学习技术实现了图像间的精准匹配,其核心优势在于:

  • 三维场景重建:从多张二维图像生成精确的三维点云模型
  • 跨视角特征匹配:即使在视角变化、光照差异较大的情况下也能保持高匹配精度
  • 广泛适用性:适用于建筑建模、视觉定位、AR/VR开发等多种场景

MASt3R图像匹配示例 图:MASt3R在不同场景下的图像匹配结果展示,彩色线条表示匹配的特征点对

🔧 快速安装步骤

1. 克隆项目仓库

git clone --recursive https://gitcode.com/GitHub_Trending/ma/mast3r
cd mast3r
# 若已克隆仓库,更新子模块:
# git submodule update --init --recursive

2. 创建并配置环境

推荐使用conda创建独立环境:

conda create -n mast3r python=3.11 cmake=3.14.0
conda activate mast3r
conda install pytorch torchvision pytorch-cuda=12.1 -c pytorch -c nvidia
pip install -r requirements.txt
pip install -r dust3r/requirements.txt

3. 安装额外依赖

# 安装ASMK
pip install cython
git clone https://github.com/jenicek/asmk
cd asmk/cython/
cythonize *.pyx
cd ..
pip install .
cd ..

# 可选:编译RoPE CUDA内核以提升性能
cd dust3r/croco/models/curope/
python setup.py build_ext --inplace
cd ../../../../

📥 模型 checkpoint 下载

MASt3R需要预训练模型才能运行,执行以下命令下载:

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/

🚀 启动交互式演示

MASt3R提供了直观的Web界面,让你可以轻松体验3D重建功能:

python3 demo.py --model_name MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric

启动后,访问http://localhost:7860即可打开界面。

MASt3R交互式演示界面 图:MASt3R的Web演示界面,可上传图像并调整3D重建参数

📝 基础使用方法

图像匹配示例

以下是使用MASt3R进行图像匹配的基本代码片段:

from mast3r.model import AsymmetricMASt3R
from mast3r.fast_nn import fast_reciprocal_NNs
import mast3r.utils.path_to_dust3r
from dust3r.inference import inference
from dust3r.utils.image import load_images

# 加载模型
device = 'cuda'
model = AsymmetricMASt3R.from_pretrained("naver/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric").to(device)

# 加载图像
images = load_images(['image1.jpg', 'image2.jpg'], size=512)

# 执行推理
output = inference([tuple(images)], model, device, batch_size=1, verbose=False)

# 获取特征描述符
desc1, desc2 = output['pred1']['desc'].squeeze(0).detach(), output['pred2']['desc'].squeeze(0).detach()

# 寻找匹配点
matches_im0, matches_im1 = fast_reciprocal_NNs(desc1, desc2, subsample_or_initxy1=8, device=device, dist='dot')

MASt3R特征匹配效果 图:MASt3R在建筑物图像上的特征匹配结果,彩色线条表示成功匹配的特征点

🐳 使用Docker快速部署

如果不想手动配置环境,可以使用Docker快速部署:

cd docker
# 带CUDA支持
bash run.sh --with-cuda --model_name="MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric"

# 仅CPU版本
bash run.sh --model_name="MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric"

📚 进阶应用

MASt3R不仅可以进行图像匹配,还支持更高级的应用:

视觉定位

# 运行Aachen-Day-Night数据集的视觉定位
python3 visloc.py --model_name MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric \
  --dataset "VislocAachenDayNight('/path/to/Aachen-Day-Night-v1.1/', subscene='day', pairsfile='fire_top50', topk=20)" \
  --pixel_tol 5 --output_dir /path/to/output

大规模场景重建

使用demo_glomap.py脚本可以实现更大规模的场景重建:

python3 demo_glomap.py --model_name MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric --input_dir ./path/to/images

📄 许可证信息

MASt3R采用CC BY-NC-SA 4.0许可证,非商业用途免费使用。详细信息请参见项目根目录下的LICENSE文件。

🔍 更多资源

通过本指南,你已经掌握了MASt3R的基本安装和使用方法。开始探索这个强大工具在3D视觉领域的无限可能吧!

【免费下载链接】mast3r Grounding Image Matching in 3D with MASt3R 【免费下载链接】mast3r 项目地址: https://gitcode.com/GitHub_Trending/ma/mast3r

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐