Spann3R 3D重建快速上手:安装配置与演示教程
2026/8/24 4:07:26 网站建设 项目流程

Spann3R 3D重建快速上手:安装配置与演示教程

【免费下载链接】spann3r[3DV'25 Award Candidate] 3D Reconstruction with Spatial Memory项目地址: https://gitcode.com/gh_mirrors/sp/spann3r

Spann3R 是一个支持从照片序列直接恢复场景三维结构的 3D 重建项目,核心思路是"空间记忆"——网络在逐帧处理图像时会累积并复用已见过的几何信息(该工作为 3DV 2025 获奖候选)。本文面向第一次接触该项目的新手,带你完成环境安装、权重准备、demo.py演示启动与 Gradio 网页界面运行,并讲清每个关键目录的职责,跑通后你就能复现增量式三维重建流程。

Spann3R 解决什么问题,适合谁用

它做的事情可以概括为:输入一段连续拍摄的图片序列(如手机录像抽帧),输出场景的点云、深度图和相机轨迹。相比"逐对图像独立估计再拼接"的传统做法,空间记忆机制让重建过程保持全局一致,长序列下漂移更少。

  • 想用一段视频快速重建房间、展厅等场景的开发者;
  • 做多视图几何、增量重建方向研究,需要可复现基线的同学;
  • 想在重建结果上继续做 NeRF / 3D 高斯泼溅(可接 Nerfstudio 的 splatfacto)的进阶用户。

如何安装依赖并编译 CUDA 内核

建议全程在 conda 虚拟环境中操作,避免污染系统 Python。完整步骤如下:

git clone https://gitcode.com/gh_mirrors/sp/spann3r cd spann3r conda create -n spann3r python=3.9 cmake=3.14.0 conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=11.8 -c pytorch -c nvidia pip install -r requirements.txt cd croco/models/curope/ python setup.py build_ext --inplace cd ../../../

几个要点:

  • 第 4 行按你显卡的 CUDA 版本调整pytorch-cuda参数;
  • requirements.txt锁定了关键版本,如numpy==1.26.4gradio==4.43.0opencv-python==4.10.0.84einops==0.8.0trimesh==4.4.9等;
  • ⚠️ 第 8、9 行编译的是 RoPE 旋转位置编码的 CUDA 扩展,位于croco/models/curope/,跳过它 demo 无法运行;
  • Open3D 建议按官方说明安装开发版,0.16.0 起存在已知问题。

最后准备权重文件:

mkdir checkpoints cd checkpoints # 下载 DUSt3R 预训练权重,并放入 Spann3R 官方 checkpoint(下载地址以仓库 README 为准)

两个权重都放在./checkpoints下即可,demo.py默认读取./checkpoints/spann3r.pth

首次启动:demo.py 演示命令与参数说明

先按仓库 README 指引下载示例数据(两个真实场景),解压为./examples,然后运行:

python demo.py --demo_path ./examples/s00567 --kf_every 10 --vis --vis_cam
参数作用与修改建议
--demo_path输入图片序列目录,换成你自己的数据路径即可
--kf_every每多少帧记为一个关键帧,序列很长时可调大
--vis打开渲染窗口,手动调整视角后按空格开始增量重建渲染
--vis_cam同时可视化相机位姿
--save_path输出目录,默认./output/demo/
--ckpt_path权重路径,默认./checkpoints/spann3r.pth
--save_ori保存原始图像对应的相机内参到transform.json,供 Nerfstudio 训练使用

💡 想接 Nerfstudio 做高斯泼溅渲染时,加--save_ori重跑一遍,然后执行ns-train splatfacto --data ./output/demo/s00567 --pipeline.model.camera-optimizer.mode SO3xR3,再用ns-render interpolate加载训练产出的config.yml渲染。具体流程以仓库 README 为准。

不想敲命令?启动 Gradio 交互界面

项目内置了一个网页界面,适合快速体验:

python app.py

支持--server_port修改端口、--server_name指定绑定地址、--share生成临时共享链接,远程服务器上尤其好用。

关键目录与文件分工

  • spann3r/:项目主体,model.py(模型定义)、loss.py(训练损失)、training.py(训练循环)都在这里,datasets/下是各数据集的加载逻辑;
  • croco/:底层视觉基础模型及 RoPE 的 CUDA 内核(croco/models/curope/),数据增强与 habitat 渲染工具也在其中;
  • dust3r/:双视图重建的基座模块,含云优化器cloud_opt/与几何工具;
  • docs/data_preprocess.md:Habitat、ScanNet++、ArkitScenes、Co3D、BlendedMVS 等训练数据的预处理说明;
  • 顶层脚本各司其职:demo.py演示、app.py网页界面、train.py训练、eval.py评估。

如何训练与评估模型

训练需要多卡环境,示例命令为:

torchrun --nproc_per_node 8 train.py --batch_size 4

评估则直接:

python eval.py

训练数据的下载与预处理细节请阅读docs/data_preprocess.md,文中对每个数据集的目标路径(如./data/scannetpp)都有说明。

新手检查清单

✅ conda 环境 Python 3.9 + PyTorch 2.3.0,croco/models/curope/的 CUDA 扩展已编译成功; ✅ DUSt3R 权重与 Spann3R 权重均在./checkpoints/下,文件名与脚本默认路径一致; ✅ 示例数据已解压为./examples--demo_path指向真实图片目录。

常见问题:加了--vis却没有窗口弹出,通常是服务器无图形环境,去掉--vis改为只跑重建,或改用app.py --share在本地浏览器查看;重建点云过稀,可尝试调低--conf_thresh;权重缺失时报 FileNotFoundError,检查--ckpt_path是否指向存在的文件。

【免费下载链接】spann3r[3DV'25 Award Candidate] 3D Reconstruction with Spatial Memory项目地址: https://gitcode.com/gh_mirrors/sp/spann3r

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询