Fast-MVSNet

基本信息

项目 内容
论文标题 Fast-MVSNet: Sparse-to-Dense Multi-View Stereo With Learned Propagation and Gauss-Newton Refinement
作者 Zehao Yu, Shenghua Gao
作者单位 ShanghaiTech University
时间 2020
发表会议/期刊 CVPR

方法概览

特点 文章性质
输入 多视角
输出 参考视角深度图
所属领域 MVS

1. 摘要精简

提出一种高效的稀疏到密集、粗到精多视图立体匹配(MVS)框架 Fast-MVSNet,兼顾重建精度与效率。该方法先构建稀疏代价体预测稀疏高分辨率深度图,再通过小型 CNN 学习局部像素的深度依赖关系,将稀疏深度图 densify 为密集深度图,最后引入可微分高斯牛顿(Gauss-Newton)层优化深度图。所有模块轻量且可微分,支持端到端训练,内存消耗低且效率极高 —— 比 R-MVSNet 快 14 倍、比 Point-MVSNet 快 5 倍,在 DTU 和 Tanks and Temples 数据集上取得相当或更优的重建效果,源代码已开源(https://github.com/svip-lab/FastMVSNet)。


2. 研究动机与出发点

现有深度学习 MVS 方法存在效率与内存的核心矛盾:MVSNet 等基于 3D CNN 的方法内存消耗随分辨率立方增长,难以适配高分辨率场景;R-MVSNet 和 Point-MVSNet 虽优化了内存,但效率仍不足(R-MVSNet 处理 400×300 深度图需 6.9 秒,Point-MVSNet 处理 640×480 需 3 秒),无法满足实际场景需求。此外,低分辨率深度图丢失细细节,高分辨率深度图直接预测成本过高。因此,本文提出稀疏到密集 + 粗到精的混合策略,在保证精度的同时大幅提升效率,解决 MVS 的实用性瓶颈。


3. 创新点

  1. 提出稀疏到密集 + 粗到精的双策略框架:稀疏表示降低内存与计算成本,粗到精流程保证重建精度,兼顾效率与有效性;
  2. 设计数据驱动的深度传播模块:基于联合双边上采样启发,用小型 CNN 学习局部像素的深度依赖关系, densify 稀疏深度图,过程可解释且无需手动调参;
  3. 提出可微分高斯牛顿层:以多视图 CNN 特征和粗深度图为输入优化深度,支持端到端训练,快速提升亚像素精度;
  4. 整体模块轻量高效:所有组件均为小型网络或可微分优化层,内存消耗仅为 Point-MVSNet 的 1/2,推理速度远超现有 SOTA 方法。

4. 网络架构

image-20251126182304918

三阶段流水线结构:

网络整体分为三个串联阶段,流程为 “稀疏深度预测→密集深度传播→深度优化细化”:

  1. 阶段 1:稀疏高分辨率深度图预测,通过稀疏代价体构建与 3D CNN 正则化,输出稀疏高分辨率深度图;
  2. 阶段 2:深度图传播,利用小型 CNN 学习的权重,将稀疏深度图 densify 为密集深度图,保留边缘细节;
  3. 阶段 3:高斯牛顿细化,通过可微分高斯牛顿层优化密集深度图,提升亚像素精度;
  4. 后处理:多视图深度图融合为 3D 点云,采用与 MVSNet 一致的融合策略。

5. 特征提取

采用与 MVSNet 一致的 8 层 2D CNN,所有输入视图(参考图 + 源图)共享权重:

网络结构:每层卷积后含批归一化和 ReLU 激活,无额外下采样层(除自然卷积步长效应);

输出特征:最终输出 32 通道特征图,尺寸为输入图像的 1/8,为后续稀疏代价体构建提供紧凑且富含语义的特征表示;


6. 代价体构建

稀疏代价体:尺寸为 18H×18W×D×F\frac{1}{8}H\times\frac{1}{8}W\times D\times F,训练时 D=48D=48,评估时 D=96D=96,代价体内存消耗为Point-MVSNet的一半


7. 代价体正则化

  • 使用3D CNN正则化代价体(也可用其他方法如Conv GRU)
  • 通过可微分argmax预测稀疏深度图
  • 3D CNN在稀疏表示下能融合更大空间上下文信息

8. 深度图生成

初始深度图:

阶段 1:稀疏高分辨率深度图生成,正则化后的稀疏代价体通过可微分 argmax 操作,输出与输入图像同尺寸的稀疏深度图;

传播过程:

先通过最近邻插值得到初始密集深度图,再利用 CNN 预测的局部权重wp,qw_{p,q}进行加权聚合,公式为

D~(p)=1zpqN(p)D(q)wp,q\tilde{D}(p)=\frac{1}{z_{p}}\sum_{q\in N(p)}D(q)\cdot w_{p,q}

其中 wp,qw_{p,q} 由CNN预测

高斯牛顿细化:

image-20251126182140813

高斯牛顿细化,以多视图特征和密集深度图为输入,最小化重投影特征误差:

E(p)=i=1NFi(pi)F0(p)2E(p)=\sum_{i=1}^{N}\|F_{i}(p^{\prime}_{i})-F_{0}(p)\|_{2}

深度增量计算:

δ=(JTJ)1JTr\delta=-(J^{T}J)^{-1}J^{T}r

最终深度为D^(p)=D^(p)+δ\hat{D}(p)'=\hat{D}(p)+\delta


9. 损失函数

采用均值绝对误差(MAE)损失,同时监督传播后的密集深度图和细化后的深度图,确保各阶段精度

Loss=ppvalidD~(p)D^(p)+λD~(p)D^(p)Loss=\sum_{p\in\mathfrak{p}_{valid}}\|\tilde{D}(p)-\hat{D}(p)\|+\lambda\cdot\|\tilde{D}^{\prime}(p)-\hat{D}(p)\|

D^\hat{D}为传播后的密集深度图,D^\hat{D}^′为高斯牛顿细化后的深度图;

其中 λ=1.0\lambda=1.0,,平衡两阶段损失贡献。D^\hat{D} 为真实深度图


10. 测试数据集

  • DTU数据集:80个场景,49或64个相机位置,7种光照条件
  • Tanks and Temples:大规模室外数据集,测试泛化能力
  • 输入图像分辨率:DTU为1280×960,Tanks and Temples为1920×1056

11. 消融实验测试组件

消融实验在 DTU 评估集上进行,验证核心组件的有效性:

  1. 稀疏高分辨率深度图:对比低分辨率深度图(上采样至相同尺寸),验证稀疏高分辨率表示在细节保留上的优势;
  2. 传播模块:对比 “无传播模块(仅最近邻插值)” 与 “含传播模块”,验证学习式深度传播对密集深度图精度的提升;
  3. 高斯牛顿细化:对比 “无细化” 与 “含细化”,验证优化层对亚像素精度的改善(整体质量相对提升 9.5%);
  4. 效率对比:将 Point-MVSNet 的 PointFlow 模块替换为高斯牛顿层,验证其在保持相当精度的同时,效率提升 5 倍。

额外创新点补充

  1. 可解释性传播:传播模块受联合双边上采样启发,融合图像信息与局部深度依赖,相比黑盒网络更具可解释性;
  2. 端到端可训练:高斯牛顿层设计为可微分,使整个稀疏到密集流程能端到端训练,避免分阶段训练的误差累积;
  3. 灵活性强:代价体正则化可替换为 R-MVSNet 的 ConvGRU,框架兼容性高,适配不同场景需求。

其他亮点

  • 在DTU上取得最佳完整性和整体质量
  • 内存消耗仅5.3GB,远低于其他方法
  • 支持640×480高分辨率深度图输出
  • 在Tanks and Temples上展现良好泛化能力
  • 代码开源:https://github.com/svip-lab/FastMVSNet