DiffMVS

基本信息

项目 内容
论文标题 Lightweight and Accurate Multi-View Stereo with Confidence-Aware Diffusion Model
作者 Fangjinhua Wang*, Qingshan Xu*, Yew-Soon Ong, Marc Pollefeys
作者单位 ETH Zurich(瑞士苏黎世联邦理工学院)
时间 2025
发表会议/期刊 IEEE Transactions on Pattern Analysis and Machine Intelligence(TPAMI)

方法概览

特点 文章性质
输入 标定之后的多视角图像
输出 场景的点云图,每个视角的法线和深度图
所属领域 MVS

1. 摘要精简

效果不怎么样,而且也没有利用diffusion的知识,因为MVS只是一个在深度上找匹配的任务

本文提出一种基于条件扩散模型的新型 MVS 框架,将深度细化建模为条件扩散过程。该框架设计了条件编码器,融合匹配信息、图像上下文和深度上下文特征以引导扩散过程;提出置信度感知采样策略,基于扩散模型预测的置信度自适应调整深度假设采样范围;构建轻量级扩散网络,结合 2D U-Net 与卷积 GRU,在保证性能的同时提升效率。基于该框架,推出两款方法:DiffMVS(单阶段扩散细化,侧重实时性)和 CasDiffMVS(两阶段级联扩散细化,侧重高精度)。实验表明,DiffMVS 以最优的运行时间和 GPU 内存效率实现了具有竞争力的性能,CasDiffMVS 在 DTU、Tanks & Temples 和 ETH3D 数据集上均达到最先进(SOTA)重建性能。

主要贡献包括:

  • 设计了条件编码器,融合匹配信息、图像上下文与深度上下文特征,以指导扩散过程;
  • 提出了基于置信度的采样策略,根据扩散模型预测的置信度自适应调整采样范围;
  • 构建了轻量级扩散网络,结合2D U-Net与卷积GRU,提升效率;
  • 基于该框架提出两种方法:DiffMVS(单阶段扩散细化)CasDiffMVS(两阶段级联扩散细化)

DiffMVS在运行时间和GPU内存方面达到SOTA效率,同时保持竞争力性能;CasDiffMVS在DTU、Tanks & Temples和ETH3D上达到SOTA性能。


2. 引言与动机

现有的级联MVS方法通常在低分辨率初始化粗深度图,然后在更高分辨率中逐步细化。然而,这种细化严重依赖粗深度图的质量,若粗估计错误,则容易陷入局部最优且难以恢复。

扩散模型通过从随机噪声中逐步去噪生成样本,能够避免陷入局部最小值。受此启发,本文将深度细化建模为条件扩散过程,通过引入随机噪声来跳出局部最优,并利用条件编码器提供匹配与上下文信息作为引导,从而提升深度估计的准确性与鲁棒性。


3. 创新点总结

3.1 条件扩散模型框架

  • 首次将条件扩散模型应用于 MVS,将深度细化转化为条件扩散过程,兼顾精度与效率,避免局部最小值问题。将MVS中的深度细化建模为条件扩散过程,通过逐步去噪的方式从带噪声的深度图中恢复准确深度;
  • 设计了条件编码器,融合匹配信息(代价体)、图像上下文特征和深度上下文特征,为扩散模型提供丰富且有针对性的条件输入。

3.2 基于置信度的自适应采样

  • 提出置信度引导的采样策略,根据扩散模型预测的每个像素的置信度 Ck1C_{k-1} 自适应调整采样范围 RkR_k

    Rk=(1Ck1)(RmaxRmin)+RminR_k = (1 - C_{k-1}) \cdot (R_{\text{max}} - R_{\text{min}}) + R_{\text{min}}

  • 置信度高的区域缩小采样范围以提升精度,置信度低的区域扩大采样范围以覆盖真值,从而提供更有效的一阶优化信息

3.3 轻量级扩散网络设计

  • 使用2D U-Net + 卷积GRU构建扩散网络,替代传统扩散模型中大型或堆叠的U-Net;
  • 在单个扩散时间步内进行多次GRU迭代更新,在保证性能的同时大幅降低参数量和计算成本;
  • 网络不使用注意力机制,进一步保持轻量级特性。

3.4 两种高效架构

  • DiffMVS:单阶段扩散细化,适用于实时应用;
  • CasDiffMVS:两阶段级联扩散细化,适用于高精度需求。

4. 网络架构

image-20251201153251461

整体流程分为三个阶段:

  1. 通过 FPN 提取多尺度图像特征,参考图像额外经 context FPN 提取上下文特征 Fc 和隐藏状态特征 h0。

  2. Stage 1(深度初始化):在低分辨率(1/8)构建代价体,通过3D U-Net正则化得到初始深度 DinitD_{\text{init}}

  3. 扩散深度细化

    • DiffMVS:单阶段扩散细化(stage 2),对粗深度图上采样后进行扩散去噪细化。

    • CasDiffMVS:两阶段级联扩散细化(stage 2 + stage 3),逐步提升分辨率并细化深度。

    • 核心组件:条件编码器(融合多特征生成条件输入)、扩散网络(2D U-Net + Conv GRU,迭代去噪)、置信度感知采样(自适应生成深度假设)。

  4. 学习型上采样:将细化后的深度图上采样至全分辨率,经光度和几何一致性过滤异常值,输出最终深度图。


5. 特征提取

  • 使用 FPN 提取多视图图像的多尺度特征;
  • 对于参考图像,额外使用一个上下文FPN编码器提取多尺度上下文特征 FcF_c 和隐藏状态特征 h0h_0,用于后续上采样和扩散模型。
  • 深度上下文特征:对采样的深度假设 Dksample 应用 2D 卷积,生成深度上下文特征,捕捉深度相对位置信息。
  • 匹配特征:通过分组相关计算参考图与源图的相似度,形成代价体,编码几何匹配信息。

6. 代价体构建(深度初始化阶段)

  • 在逆深度空间均匀采样 D0D_0 =48 个假设:{dj}j=1D0\{d_j\}_{j=1}^{D_0}
  • 通过单应性变换将源视图特征变换到参考视图:

    pi,j=Ki(R0,i(K01pdj)+t0,i)p_{i,j} = K_i \cdot (R_{0,i} \cdot (K_0^{-1} \cdot p \cdot d_j) + t_{0,i})

  • 将特征通道分为 G=4 组,使用分组相关计算相似性:

    si(p,j)g=1C1/GF0(p)g,Fi(pi,j)gs_i(p,j)^g = \frac{1}{C_1/G} \langle F_0(p)^g, F_i(p_{i,j})^g \rangle

  • 预测每个源视图的像素级视图权重 WiW_i,加权聚合得到代价体 VV

    V=i=1N1WiSii=1N1WiV = \frac{\sum_{i=1}^{N-1} W_i \cdot S_i}{\sum_{i=1}^{N-1} W_i}

细化阶段(局部代价体)

  1. 深度采样:基于置信度感知采样策略,在当前深度估计附近自适应采样 D1 个深度假设(DiffMVS D1=6,CasDiffMVS D1=4)。
  2. 局部相似度计算:重复初始化阶段的分组相关操作,计算新假设对应的局部相似度体积,重塑为 Lk∈RHm×Wm×(D1×G)。
  3. 特征融合:将局部代价体与深度上下文特征、图像上下文特征拼接,经 2D 卷积编码为条件特征,输入扩散网络。

7. 代价体正则化(深度初始化阶段)

image-20251201153311308

代价体正则通过网络结构设计和先验约束实现,具体如下:

  • 初始化阶段:采用轻量级 3D U-Net 对全局代价体 V 进行正则化,降低噪声干扰,生成平滑的概率体积 P。
  • 细化阶段:
    • 条件约束:通过条件编码器融合匹配信息、图像上下文和深度上下文,引导代价体向几何一致和语义合理的方向优化。
    • 迭代去噪:扩散网络通过 Conv GRU 迭代 K 次(DiffMVS K=4,CasDiffMVS K=3),逐步细化深度残差,间接实现代价体的动态正则。
    • 置信度约束:置信度感知采样通过调整采样范围,对高置信度(低误差)区域缩小范围精准优化,对低置信度(高误差)区域扩大范围探索最优解,提升代价体有效性。
  • 后处理过滤:深度图生成后,通过光度一致性(特征匹配相似度)和几何一致性(跨视图重投影误差)过滤异常值,进一步优化结果。

8. 深度图生成

  • 初始深度:从概率体计算逆深度的期望并转换:

    Dinit=(j=1D0P(j)1dj)1D_{\text{init}} = \left( \sum_{j=1}^{D_0} P(j) \cdot \frac{1}{d_j} \right)^{-1}

  • 扩散细化:在更高分辨率,将上采样后的深度 D0D_0 转换为归一化逆深度 Dˉ0\bar{D}_0,并添加噪声得到 xtx_t。扩散网络通过多次GRU迭代预测深度残差更新 Δxt,k\Delta x_{t,k} 和置信度 Ct,kC_{t,k},最终得到细化后的逆深度:

    x^0=xt+k=1KΔxt,k,Dˉt,K=Dˉ0+x^0\hat{x}_0 = x_t + \sum_{k=1}^{K} \Delta x_{t,k}, \quad \bar{D}_{t,K} = \bar{D}_0 + \hat{x}_0

  • 学习型上采样:通过预测 3×3 邻域的加权掩码,对低分辨率深度图进行加权组合上采样,得到全分辨率深度图。
  • 后处理:对全分辨率深度图应用光度和几何一致性检查,过滤 outliers 后,反投影为 3D 点云或输出最终深度图。

9. 损失函数

总损失为所有深度图(初始深度、扩散中间深度、上采样深度)损失的加权和:

Lfull=j=1JβJjLj\mathcal{L}_{\text{full}} = \sum_{j=1}^{J} \beta^{J-j} \mathcal{L}_j

其中 β=0.9\beta=0.9Lj\mathcal{L}_j 分为两种情况:

  • 对于大多数深度图,使用归一化逆深度的 L1L_1 损失:

    L=DˉDˉgt\mathcal{L} = |\bar{D} - \bar{D}_{\text{gt}}|

  • 对于扩散细化中的深度图(带置信度 CC),使用置信度加权的损失:

    L=DˉDˉgt1C+λClog(1C)\mathcal{L} = \frac{|\bar{D} - \bar{D}_{\text{gt}}|}{1 - C} + \lambda_C \cdot \log(1 - C)

    其中 λC=0.05\lambda_C = 0.05


10. 测试数据集

  • 训练集:DTU(室内)、BlendedMVS(大规模合成)
  • 测试集
    • DTU(室内物体)
    • Tanks & Temples(真实场景,分Intermediate和Advanced子集)
    • ETH3D(复杂真实场景,大基线、低纹理)

11. 消融实验

组件 实验设置 结论
扩散模型 移除扩散过程(无噪声) 性能显著下降,证明扩散机制有效
扩散条件 分别移除代价体、深度上下文、图像上下文 三者均为重要条件,缺一不可
扩散采样 比较单样本、固定范围多样本、置信度自适应采样 置信度自适应采样效果最佳
扩散网络 比较单U-Net、堆叠U-Net、U-Net+GRU U-Net+GRU在性能与效率间取得最佳平衡
DDIM步数 增加采样步数 TsT_s 性能略有提升,但为效率选用 Ts=1T_s=1
噪声尺度 调整噪声大小 (σ2,σ3)(\sigma_2, \sigma_3) 默认 (0.50,0.10)(0.50, 0.10) 最优,过大或过小均会降低性能
随机种子 使用10个不同随机种子训练 结果稳定,方差极小

总结

DiffMVS/CasDiffMVS首次将条件扩散模型引入MVS任务,通过噪声注入避免局部最优条件编码提供丰富引导置信度自适应采样增强优化,以及轻量级网络设计保证效率,在多个标准数据集上取得了SOTA或具有竞争力的性能,同时保持高效的运行时间和较低的内存占用。