论文阅读_EffiMVSNet
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 方法面临核心瓶颈:
-
传统方法依赖 3D CNN 正则化 3D 代价体,内存和计算开销极大,仅能处理低分辨率图像;
-
部分优化方法(如 R-MVSNet)用循环网络替代 3D CNN,虽降低内存但牺牲运行速度;
-
现有高效方法难以同时兼顾高分辨率处理、高精度重建与低资源消耗。
作者旨在突破上述权衡,提出 “迭代动态代价体 + 级联 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 上采样模块,实现分辨率逐步提升。
网络架构
EffiMVS包含两个主要组件:
- 多尺度特征提取器:基于FPN提取多分辨率特征
- GRU优化器:包含动态代价体构建器和GRU模块,进行迭代深度优化
采用三级级联结构(阶段0、1、2),分辨率从粗到细。
特征提取
- 参考图像和源图使用FPN提取 3 个多尺度特征
- 参考图像额外提取上下文特征和GRU初始隐藏状态
- 特征图分辨率:阶段0(80×64),阶段1(160×128),阶段2(320×256)
代价体构建
局部代价体
通过可微单应性变换构建:
动态代价体构建
- 几何特征:从局部代价体提取
- 深度特征:从当前深度图提取
- 上下文特征:从参考图像特征提取
- 特征提取:用轻量 2D 卷积分别从局部代价体、历史深度图提取几何特征和深度特征;
- 特征融合:先拼接几何特征与深度特征,经 2D 卷积处理后,再与上下文特征拼接,形成最终动态代价体,最终三者在通道维度拼接形成最终动态代价体
深度假设采样
每次迭代在窄范围内均匀采样,每个阶段 k、迭代 t,围绕上一轮深度图,在窄逆深度范围内均匀采样个深度假设,范围公式为:
代价体正则化
不依赖传统3D CNN正则化,而是:使用2D卷积GRU迭代优化,GRU输入为动态代价体和隐藏状态h,通过循环更新逐步优化深度估计
GRU更新公式:
深度图生成
初始深度预测
使用轻量级3D CNN和soft argmin:
迭代优化
每个阶段 k 迭代T次,GRU 输出残差深度,每阶段迭代更新深度:
上采样
每个阶段结束后,基于最后隐藏态预测 mask 权重,通过加权组合将深度图上采样到下一阶段分辨率,作为初始深度
损失函数
多任务损失,包含所有输出深度图:
使用L1损失,加权求和不同阶段和迭代的输出。
阶段 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倍
- 支持不同硬件条件下的部署
高效上采样
- 基于学习的掩码上采样,避免简单插值
- 利用隐藏状态信息指导上采样过程




