深度解析 DUSt3R:无需相机标定的稠密无约束立体 3D 重建
1. 引言:打破传统 MVS 的枷锁
1.1 传统 MVS 管线的困境
**多视角立体视觉(MVS)**是计算机视觉的核心里程碑之一,其目标是从多张图像中恢复场景的 3D 结构。然而,传统 MVS 管线面临一个根本性障碍:
“MVS 算法的好坏完全取决于输入图像和相机参数的质量。”
传统 MVS 管线需要一系列前置条件:
| 步骤 | 要求 | 脆弱性 |
|---|---|---|
| 1. 特征匹配 | 关键点检测与描述子 | 纹理稀疏区域失败 |
| 2. SfM 重建 | 相机位姿和内参 | 视角变化大时失败 |
| 3. 稠密匹配 | 极线几何约束 | 需要精确相机参数 |
| 4. 三角化 | 多视角一致性 | 噪声累积 |
| 5. Bundle Adjustment | 全局优化 | 容易陷入局部最优 |
每个步骤的误差都会累积到下一步,整个系统极其脆弱。
1.2 DUSt3R 的革命性思路
DUSt3R(CVPR 2024)的核心洞察:
与其一步步估计相机参数,不如直接让神经网络”学会”3D 重建,然后从输出中”反推”所有需要的几何量。
关键创新:将成对重建问题重新定义为点图(Pointmap)回归,彻底摆脱了对相机模型的硬约束。
1.3 DUSt3R 能做什么?
| 任务 | 输入 | 输出 |
|---|---|---|
| 单目深度估计 | 单张图像 | 深度图、点云 |
| 双目重建 | 两张图像 | 两视角的稠密点云 |
| 多目重建 | 多张图像 | 全局一致的 3D 模型 |
| 像素匹配 | 两张图像 | 密集对应关系 |
| 相对位姿估计 | 两张图像 | 相对旋转和平移 |
| 绝对位姿估计 | 查询图 + 参考图 | 相机在世界中位置 |
| 相机内参估计 | 单张图像 | 焦距等内参 |
一个模型,统一了几乎所有 3D 视觉几何任务。
2. 核心表示:Pointmap 详解
2.1 什么是 Pointmap?
Pointmap 是 DUSt3R 提出的核心 3D 表示:
一个 Pointmap 是与输入图像 分辨率相同的稠密 3D 点场,其中每个像素 对应一个 3D 点 。
一对一的像素-3D 映射:
2.2 Pointmap 与传统深度图的区别
| 维度 | 深度图 | Pointmap |
|---|---|---|
| 维度 | ||
| 坐标系统 | 需要相机内参才能转为 3D | 像素坐标系下的 3D 坐标 |
| 歧义性 | 仅包含深度信息 | 包含 完整信息 |
| 应用范围 | 深度估计专用 | 多任务统一表示 |
| 几何信息 | 仅沿射线方向 | 完整 3D 位置 |
2.3 Pointmap 的物理意义
传统相机模型中,点图可以从深度图推导:
其中 是相机内参矩阵。
DUSt3R 的关键洞察:不需要知道 ,网络直接学习这个映射,将 2D 像素坐标隐式地与 3D 几何关联起来。
2.4 双目 Pointmap 的坐标框架
对于两视角输入 ,DUSt3R 输出:
重要约定:
- :图像 的点图,表达在 的相机坐标系
- :图像 的点图,也表达在 的相机坐标系
这意味着两个点图天然对齐,可以直接比较!
2.5 Pointmap 的坐标变换
给定世界到相机的变换矩阵 ,点图的坐标变换为:
其中 是齐次坐标映射。
3. 网络架构:Asymmetric CroCo3D Stereo
3.1 架构概览
DUSt3R 基于 CroCo(Cross-View Completion)预训练框架,采用了非对称的 Stereo Transformer 架构:
输入图像对 (I^1, I^2) ↓ ┌─────────────────────────────────────────┐ │ Siamesian ViT-L 编码器(权重共享) │ │ F^1 = Encoder(I^1), F^2 = Encoder(I^2) │ └────────────┬────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ Cross-Attention Transformer 解码器 │ │ B 个解码器块,交叉注意力 │ │ G^1_i = DecBlock^1_i(G^1_{i-1}, G^2_{i-1}) │ │ G^2_i = DecBlock^2_i(G^2_{i-1}, G^1_{i-1}) │ └────────────┬────────────────────────────┘ ↓ ┌────────────┴────────────────────────────┐ │ 两个回归头(Linear / DPT) │ │ X^{1,1}, C^{1,1} = Head^1(G^1_0...G^1_B) │ │ X^{2,1}, C^{2,1} = Head^2(G^2_0...G^2_B) │ └─────────────────────────────────────────┘ ↓ 输出点图 + 置信度图3.2 编码器:ViT-Large
采用 Vision Transformer(ViT-Large)作为编码器:
| 配置 | 值 |
|---|---|
| 图像块大小 | 16×16 |
| 编码器隐层维度 | 1024 |
| 编码器深度 | 24 |
| 编码器注意力头数 | 16 |
两个分支使用共享权重,确保对称性。
3.3 解码器:Cross-Attention Transformer
解码器由 个 transformer 块组成,每个块包含:
- Self-Attention:同分支内 token 相互注意力
- Cross-Attention:当前分支 token 关注另一分支 token
- MLP:前馈网络
关键:解码过程中信息在两分支间持续流动,确保输出点图正确对齐。
3.4 回归头:Linear vs DPT
| 头类型 | 描述 | 适用场景 |
|---|---|---|
| Linear | 简单线性层 | 快速推理、低分辨率 |
| DPT | DPT(Dense Prediction Transformer)头 | 高分辨率、高精度 |
DPT 头结构:
MLP 特征 → 上采样 → 跳跃连接 → 最终预测3.5 模型变体
| 模型名称 | 输入分辨率 | 头类型 | 编码器 | 解码器 |
|---|---|---|---|---|
| DUSt3R_ViTLarge_BaseDecoder_224_linear | 224×224 | Linear | ViT-L | ViT-B |
| DUSt3R_ViTLarge_BaseDecoder_512_linear | 512×384~160 | Linear | ViT-L | ViT-B |
| DUSt3R_ViTLarge_BaseDecoder_512_dpt | 512×384~160 | DPT | ViT-L | ViT-B |
4. 训练目标:置信度感知回归损失
4.1 3D 回归损失
DUSt3R 的唯一训练目标是 3D 空间中的回归损失。
归一化策略:为处理预测与真实值之间的尺度不确定性:
回归损失(对有效像素 ):
4.2 置信度感知损失
核心创新:网络同时学习每个像素的置信度。
置信度加权回归损失:
其中:
- :像素 的置信度分数
- :控制正则化强度的超参数
置信度保证:
4.3 置信度图的作用
置信度图 具有以下作用:
| 场景 | 置信度表现 |
|---|---|
| 天空/背景 | 低置信度(无有效 3D 点) |
| 透明物体 | 低置信度(单视角观察) |
| 纹理丰富区域 | 高置信度(多视角可三角化) |
| 遮挡区域 | 中等置信度(部分可见) |
置信度让 DUSt3R 能够自适应地处理歧义区域,无需人工标注。
5. 下游应用:从 Pointmap 导出几何量
5.1 像素匹配
建立两图像间的像素对应关系,通过 3D 点图空间的最近邻搜索:
互最近邻约束:确保匹配的双向一致性。
5.2 相机内参恢复
从点图 估计相机内参(假设主点在图像中心,像素为正方形):
其中 。
求解:使用 Weiszfeld 算法快速迭代求解。
5.3 相对位姿估计
方法一:Procrustes 对齐
通过最小二乘求解相对位姿 :
方法二:PnP + RANSAC
更鲁棒的做法,使用 2D-3D 对应关系。
5.4 绝对位姿估计(视觉定位)
给定查询图像 和参考图像 :
- 估计 的内参(从 )
- 建立 与 的 2D-2D 匹配
- 获取 2D-3D 对应关系
- 运行 PnP-RANSAC 得到绝对位姿
6. 全局对齐:多视角稠密重建
6.1 为什么需要全局对齐?
单次推理只能处理两幅图像,多视角场景需要将所有成对预测对齐到统一的坐标系。
6.2 成对图构建
构建连接图 :
- 顶点:图像
- 边:存在视觉重叠的图像对
边筛选策略:
- 使用图像检索方法
- 或将所有图像对输入网络
- 基于平均置信度过滤低质量对
6.3 全局优化问题
目标是恢复全局一致的点图 :
约束:(防止平凡解 )
6.4 与 Bundle Adjustment 的区别
| 方面 | Bundle Adjustment | DUSt3R 全局对齐 |
|---|---|---|
| 优化变量 | 相机参数 + 3D 点 | 成对变换 + 全景点图 |
| 误差项 | 2D 重投影误差 | 3D 投影误差 |
| 收敛速度 | 慢(高维非线性) | 快(几百步梯度下降) |
| 对噪声鲁棒性 | 中等 | 高 |
| 实现复杂度 | 高(需要相机模型) | 低(无需显式几何约束) |
6.5 相机参数恢复
若需恢复相机参数,扩展优化框架:
即可同时估计所有相机位姿 、内参 和深度图 。
7. 实验结果与分析
7.1 视觉定位(绝对位姿估计)
数据集:7Scenes(室内)、Cambridge Landmarks(室外)
| 方法 | 7Scenes 平均 (cm/°) | Cambridge 平均 (cm/°) |
|---|---|---|
| HLoc | 4.3/1.38 | 17.3/0.26 |
| PixLoc | 3.0/1.05 | 18.0/0.24 |
| NeuMaps | 3.5/1.12 | 13.8/0.27 |
| DUSt3R 512 | 3.7/1.13 | 13.2/0.24 |
DUSt3R 虽未针对定位任务训练,但达到了与专用方法相当的水平。
7.2 多视角位姿估计
数据集:CO3Dv2、RealEstate10K
| 方法 | CO3Dv2 RRA@15 | CO3Dv2 RTA@15 | CO3Dv2 mAA(30) | RE10K mAA(30) |
|---|---|---|---|---|
| PoseDiffusion | 80.5 | 79.8 | 66.5 | 48.0 |
| PixSfM | 33.7 | 32.9 | 30.1 | 49.4 |
| DUSt3R 512 (PnP) | 94.3 | 88.4 | 77.2 | 61.2 |
| DUSt3R 512 (GA) | 96.2 | 86.8 | 76.7 | 67.7 |
DUSt3R 大幅超越所有基线方法!
7.3 单目深度估计(零样本)
数据集:DDAD、KITTI、NYUv2
| 方法 | 训练方式 | DDAD Rel↓ | DDAD δ₁.₂₅↑ | KITTI Rel↓ | KITTI δ₁.₂₅↑ |
|---|---|---|---|---|---|
| DPT-BEiT | 监督 | 10.70 | 84.63 | 9.45 | 89.27 |
| NeWCRFs | 监督 | 9.59 | 82.92 | 5.43 | 91.54 |
| SlowTv | 零样本 | 12.63 | 79.34 | — | — |
| DUSt3R 224 | 零样本 | 16.32 | 77.58 | 16.97 | 77.89 |
| DUSt3R 512 | 零样本 | 13.88 | 81.17 | 10.74 | 86.60 |
7.4 多目深度估计
数据集:DTU、ETH3D、Tanks & Temples、ScanNet
| 方法 | 需要 GT 参数 | 平均 rel↓ | 平均 τ↑ |
|---|---|---|---|
| COLMAP | 是 | 9.3 | 67.8 |
| MVSNet | 是 | 18.6 | 49.4 |
| DeMoN | 部分 | 16.0 | 18.3 |
| DUSt3R 224 | 否 | 6.85 | 54.59 |
| DUSt3R 512 | 否 | 4.73 | 64.52 |
DUSt3R 无需任何相机参数,但性能超过使用 GT 参数的传统方法!
7.5 3D 重建质量
数据集:DTU
| 方法 | 需要 GT 相机 | 精度 (mm)↓ | 完整度 (mm)↓ | 总体 (mm)↓ |
|---|---|---|---|---|
| Gipuma | 是 | 0.283 | 0.873 | 0.578 |
| CasMVSNet | 是 | 0.325 | 0.385 | 0.355 |
| GeoMVSNet | 是 | 0.331 | 0.259 | 0.295 |
| DUSt3R 512 | 否 | 2.677 | 0.805 | 1.741 |
虽然精度略低于专用方法,但 DUSt3R 完全无需相机标定,开箱即用。
8. 训练细节
8.1 训练数据
| 数据集 | 类型 | 规模 |
|---|---|---|
| CO3Dv2 | 物体多视角 | ~6M 图像 |
| ARKitScenes | 室内 RGB-D | 大规模 |
| ScanNet++ | 室内多视角 | 大规模 |
| MegaDepth | 室外旅行照片 | 大规模 |
| BlendedMVS | MVS 合成数据 | 大规模 |
| Waymo Open | 自动驾驶 | 大规模 |
| Habitat | 仿真室内 | 大规模 |
| StaticThings3D | 静态场景 | 中等 |
总计:约 850 万图像对
8.2 两阶段训练策略
阶段 1:低分辨率(224×224)
- 批量大小:16- 学习率:0.0001- 训练轮数:100- 优化器:AdamW阶段 2:高分辨率(512 像素)
- 批量大小:4(梯度累积 2)- 学习率:0.0001- 训练轮数:100- 多分辨率:[(512,384), (512,336), (512,288), (512,256), (512,160)]8.3 CroCo 预训练的重要性
| 模型 | CO3Dv2 RRA@15 | 多目深度 rel↓ |
|---|---|---|
| DUSt3R 224-NoCroCo | — | 9.37 |
| DUSt3R 224 | — | 6.85 |
| DUSt3R 512 | 96.2 | 4.73 |
CroCo 预训练对 DUSt3R 至关重要。
9. 关键数学公式汇总
- 点图定义:
- 坐标变换:
- 编码器:
- 解码器(交叉注意力):
- 3D 回归损失:
- 置信度感知损失:
- 全局对齐优化:
- Procrustes 相对位姿:
10. 总结与展望
DUSt3R 的核心贡献
- Pointmap 表示:革命性的 3D 表示,隐式包含像素-3D 对应关系
- 无需相机标定:首次实现完全无约束的稠密 3D 重建
- 统一多任务:一个模型搞定几乎所有 3D 几何视觉任务
- CroCo 预训练:充分利用跨视图补全的自监督预训练
- 全局对齐优化:基于 3D 投影误差的快速多视角对齐
当前局限
| 局限 | 描述 | 潜在改进 |
|---|---|---|
| 精度 | 回归方法精度低于三角化 | 混合方法(回归 + 优化) |
| 尺度歧义 | 单目/双目结果存在尺度不确定性 | 绝对尺度恢复 |
| 动态场景 | 主要针对静态场景 | 时序建模 |
| 实时性 | H100 上 ~40ms/对,多图仍需数秒 | 模型蒸馏 |
后续工作与衍生
| 工作 | 描述 | 关系 |
|---|---|---|
| MASt3R | DUSt3R + 局部特征头 + Metric Pointmap | 升级版 |
| Po3R | DUSt3R + 已知深度/焦距/位姿 | 扩展版 |
| MUSt3R | 多视角版本(无全局对齐) | 多视角版 |
| MV-DUSt3R+ | Meta 的极速多视角重建(2 秒) | 极速版 |
| Easi3R | DUSt3R 适配动态场景 | 动态版 |
在 3D 视觉版图中的位置
DUSt3R 代表了数据驱动几何视觉的巅峰:
传统几何视觉:COLMAP + MVS → 需要精确标定 → 脆弱
DUSt3R 路线:海量数据预训练 → 学习强几何先验 → 无需标定 → 鲁棒DUSt3R 证明了”让神经网络学会几何”比”让神经网络遵守几何约束”更有效。 它不仅是一个优秀的 3D 重建模型,更是一个可以充当各种 3D 视觉任务基础的多功能模型。后续的 MASt3R、Po3R 等工作进一步拓展了其能力边界,推动了”3D 基础模型”(3D Foundation Model)的发展。
参考资料
- Wang, S., Leroy, V., Cabon, Y., Chidlovskii, B., & Revaud, J. (2024). “DUSt3R: Geometric 3D Vision Made Easy.” CVPR 2024, pp. 20654-20664.
- “naver/dust3r.” GitHub: naver/dust3r. https://github.com/naver/dust3r
- Wang, S., & Leroy, V., et al. (2023). “CroCo: Cross-View Completion.” arXiv<2312>2312>.14132.
- “naver/mast3r.” GitHub: naver/mast3r.
- “naver/pow3r.” GitHub: naver/pow3r.
- “naver/must3r.” GitHub: naver/must3r.
- “facebookresearch/mvdust3r.” GitHub: facebookresearch/mvdust3r.
- Schönberger, J. L., & Frahm, J.-M. (2016). “Structure-from-Motion Revisited.” CVPR 2016.
- Schonberger, J. L., & Frahm, J.-M. (2016). “Structure-from-Motion Revisited.” CVPR 2016 (COLMAP).
- Reizenstein, J., et al. (2021). “Common Objects in 3D.” NeurIPS 2021 (CO3D).
- Barath, D., et al. (2020). “MAGSAC++, a Parameter-Free Histogram-Based Optimizer.” TPAMI 2020.
- Ranftl, R., et al. (2021). “Vision Transformers for Dense Prediction.” ICCV 2021 (DPT).
- Zhang, J., et al. (2023). “Point-M2AE: Multi-Scale Masked Autoencoders for Point Cloud Self-Supervised Learning.” NeurIPS 2023.
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!

