EffiMVS

基本信息

项目 内容
论文标题 Effi-MVS (Efficient Multi-view Stereo by Iterative Dynamic Cost Volume)
作者 Shaoqian Wang, Bo Li, Yuchao Dai
作者单位 Northwestern Polytechnical University (西北工业大学,School of Electronics and Information)
时间 2022
发表会议/期刊 CVPR

方法概览

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

摘要

本文提出 Effi-MVS,一种基于迭代动态代价体的高效多视图立体(MVS)方法。核心设计是轻量级动态代价体,可通过基于 2D 卷积的 GRU 进行迭代处理,且每步 GRU 输出能反哺生成新的代价体,形成迭代优化器。同时,采用级联分层细化架构,利用轻量 3D CNN 生成粗深度图作为初始化,保证快速收敛,再通过多阶段 GRU 在金字塔特征图上逐步细化深度。实验表明,该方法在 DTU 和 Tanks & Temples 数据集上实现精度、速度和内存占用的 state-of-the-art 性能,内存消耗更低,运行速度较次优方法快 2 倍。


引言动机

现有学习型 MVS 方法面临核心瓶颈:

  1. 传统方法依赖 3D CNN 正则化 3D 代价体,内存和计算开销极大,仅能处理低分辨率图像;

  2. 部分优化方法(如 R-MVSNet)用循环网络替代 3D CNN,虽降低内存但牺牲运行速度;

  3. 现有高效方法难以同时兼顾高分辨率处理、高精度重建与低资源消耗。

    作者旨在突破上述权衡,提出 “迭代动态代价体 + 级联 GRU 优化” 的框架:通过轻量化代价体减少内存占用,迭代更新扩大有效搜索空间,级联架构利用多尺度信息加速收敛,最终实现 “高精度、高速度、低内存” 三者兼得。


创新点

3.1 迭代动态代价体设计

  • 提出轻量级动态代价体,摒弃传统静态 3D 代价体的密集深度假设,仅在窄逆深度范围内采样少量假设(每个阶段 D=4),大幅降低内存消耗。
  • 代价体可迭代更新:每轮 GRU 输出的深度图会作为下一轮代价体构建的输入,动态调整深度假设范围,既保证大搜索空间覆盖真值,又避免无效计算。

3.2 级联分层细化架构

  • 设计 “粗初始化→多阶段细优化” 的级联流程:用轻量 3D CNN 处理稀疏代价体,生成可靠粗深度图,为 GRU 优化提供优质初始化,避免局部最优。
  • 多阶段 GRU 分别作用于 3 个尺度的金字塔特征图,从低分辨率到高分辨率逐步细化,兼顾收敛速度与细节精度,支持高分辨率图像处理。

3.3 多特征融合的代价体构建

  • 动态代价体融合三类特征:从局部代价体提取的几何特征、从历史深度图提取的深度特征、从参考图提取的上下文特征,丰富匹配信息,提升弱纹理、遮挡区域的鲁棒性。
  • 特征聚合采用 2D 卷积处理,避免 3D 卷积的高资源消耗,同时保留空间上下文信息。

3.4 2D CNN-based GRU 优化器

  • 设计基于 2D 卷积的 GRU 模块(含 1×5 和 5×1 卷积),替代 3D CNN 处理代价体,大幅降低计算复杂度。
  • GRU 输出残差深度Δdt,通过Dt=Dt−1+Δdt迭代更新深度图,配合 mask 上采样模块,实现分辨率逐步提升。

网络架构

image-20251127131214202

EffiMVS包含两个主要组件:

  1. 多尺度特征提取器:基于FPN提取多分辨率特征
  2. GRU优化器:包含动态代价体构建器和GRU模块,进行迭代深度优化

采用三级级联结构(阶段0、1、2),分辨率从粗到细。


特征提取

  • 参考图像和源图使用FPN提取 3 个多尺度特征
  • 参考图像额外提取上下文特征和GRU初始隐藏状态
  • 特征图分辨率:阶段0(80×64),阶段1(160×128),阶段2(320×256)

代价体构建

局部代价体

通过可微单应性变换构建:

pi,j=Ki(R0,i(K01pdj)+t0,i)\mathbf{p}^{\prime}_{i,j}=\mathbf{K}_{i}\cdot(\mathbf{R}_{0,i}\cdot(\mathbf{K}_{0}^{-1}\cdot\mathbf{p}\cdot d_{j})+\mathbf{t}_{0,i})

动态代价体构建

image-20251127131201285

  • 几何特征:从局部代价体提取
  • 深度特征:从当前深度图提取
  • 上下文特征:从参考图像特征提取
  • 特征提取:用轻量 2D 卷积分别从局部代价体、历史深度图提取几何特征和深度特征;
  • 特征融合:先拼接几何特征与深度特征,经 2D 卷积处理后,再与上下文特征拼接,形成最终动态代价体CDC_D,最终三者在通道维度拼接形成最终动态代价体

深度假设采样

每次迭代在窄范围内均匀采样,每个阶段 k、迭代 t,围绕上一轮深度图Dt1kD_{t−1}^k,在窄逆深度范围RkR_k内均匀采样Dk=4D_k=4个深度假设,范围公式为:

Rk=[1Dt1k(p)22kIm,1Dt1k(p)+22kIm]\mathbf{R}_{k}=[\frac{1}{\mathbf{D}_{t-1}^{k}(\mathbf{p})}-2^{2-k}\mathbf{I}_{m},\frac{1}{\mathbf{D}_{t-1}^{k}(\mathbf{p})}+2^{2-k}\mathbf{I}_{m}]


代价体正则化

不依赖传统3D CNN正则化,而是:使用2D卷积GRU迭代优化,GRU输入为动态代价体和隐藏状态h,通过循环更新逐步优化深度估计

GRU更新公式:

zt=σ(conv([ht1,CDt1],Wz))z^{t}=\sigma(conv([h^{t-1},C_{D}^{t-1}],W_{z}))

rt=σ(conv([ht1,CDt1],Wr))r^{t}=\sigma(conv([h^{t-1},C_{D}^{t-1}],W_{r}))

h~t=tanh(conv([rtht1,CDt1],Wh))\tilde{h}^{t}=tanh(conv([r^{t}\odot h_{t-1},C_{D}^{t-1}],W_{h}))

ht=(1rt)ht1+zth~th^{t}=(1-r^{t})\odot h_{t-1}+z^{t}\odot\tilde{h}^{t}


深度图生成

初始深度预测

使用轻量级3D CNN和soft argmin:

Dinit=d=dmindmaxd×Pd\mathbf{D}^{init}=\sum_{d=d_{min}}^{d_{max}}d\times\mathbf{P}_{d}

迭代优化

每个阶段 k 迭代T次,GRU 输出残差深度,每阶段迭代更新深度:

Dtk=Dt1k+Δdtk\mathbf{D}^{k}_{t}=\mathbf{D}^{k}_{t-1}+\Delta\mathbf{d}^{k}_{t}

上采样

每个阶段结束后,基于最后隐藏态hTkh^{T^k}预测 mask 权重,通过加权组合将深度图上采样到下一阶段分辨率,作为初始深度D0k+1D_0^{k+1}


损失函数

多任务损失,包含所有输出深度图:

Ltotal=Linit+k=02i=1Tk+1λikLikL_{total}=L_{init}+\sum_{k=0}^{2}\sum_{i=1}^{T_{k}+1}\lambda_{i}^{k}L_{i}^{k}

使用L1损失,加权求和不同阶段和迭代的输出。

LikL_{i}^{k}阶段 k 第 i 次迭代输出(含上采样后)深度图与对应尺度真值的 L1 损失;


测试数据集

  • DTU:室内数据集,128个扫描
  • Tanks & Temples:室外数据集,分为Intermediate和Advanced集合
  • 在DTU上训练,在两个数据集上测试(无微调)

消融实验

1. 迭代次数

  • 测试不同迭代配置:1-1-1, 2-2-2, 3-3-3, 4-4-4
  • 更多迭代提高完整性,填充空洞
  • 1-1-1版本仍保持高质量,速度最快

2. 初始深度预测

  • 移除IDP模块导致完整性下降(0.374 vs 0.313)
  • 证明可靠初始化的重要性

3. 动态代价体组件

  • 移除深度特征:完整性0.357
  • 移除上下文特征:完整性0.325
  • 同时移除:完整性0.368
  • 证明多特征融合的重要性

4. 阶段数量

  • 2阶段:Overall 0.339
  • 3阶段:Overall 0.317
  • 4阶段:Overall 0.314
  • 更多阶段提高精度但增加计算成本

其他创新点

灵活性设计

  • 测试时可调整迭代次数平衡精度与效率
  • 快速版本(1-1-1)比PatchmatchNet快2倍
  • 支持不同硬件条件下的部署

高效上采样

  • 基于学习的掩码上采样,避免简单插值
  • 利用隐藏状态信息指导上采样过程