文献阅读:Learning-based Multi-View Stereo: A Survey

8 阅读22分钟

一、摘要

3D reconstruction aims to recover the dense 3D structure of a scene. It plays an essential role in various applications such as Augmented/Virtual Reality (AR/VR), autonomous driving and robotics. Leveraging multiple views of a scene captured from different viewpoints, Multi-View Stereo (MVS) algorithms synthesize a comprehensive 3D representation, enabling precise reconstruction in complex environments. Due to its efficiency and effectiveness, MVS has become a pivotal method for image-based 3D reconstruction. Recently, with the success of deep learning, many learning-based MVS methods have been proposed, achieving impressive performance against traditional methods. We categorize these learning-based methods as: depth map-based, voxel-based, NeRF-based, 3D Gaussian Splatting-based, and large feed-forward methods. Among these, we focus significantly on depth map-based methods, which are the main family of MVS due to their conciseness, flexibility and scalability. In this survey, we provide a comprehensive review of the literature at the time of this writing. We investigate these learning-based methods, summarize their performances on popular benchmarks, and discuss promising future research directions in this area.

三维重建的目标是恢复场景的稠密三维结构。它在增强/虚拟现实(AR/VR)、自动驾驶和机器人等应用中具有重要作用。利用从不同视角拍摄的同一场景的多张图像,多视角立体(MVS)算法能够综合这些观测,构建完整的三维表示,从而在复杂环境中实现精确重建。由于兼具效率和效果,MVS 已成为基于图像的三维重建中的关键方法。近年来,随着深度学习的成功,出现了大量基于学习的 MVS 方法,并且在性能上显著优于传统方法。我们将这些基于学习的方法划分为以下几类:基于深度图的方法、基于体素的方法、基于 NeRF 的方法、基于 3D Gaussian Splatting 的方法,以及大型前馈方法。其中,我们重点关注基于深度图的方法,因为它们结构简洁、灵活且易于扩展,是 MVS 的主要方法族。在这篇综述中,作者对截至写作时的相关文献进行了较为全面的回顾,系统考察了这些基于学习的方法,总结了它们在主流基准测试上的表现,并讨论了该方向未来值得关注的研究趋势。

文章链接如下:<[2408.15235] Learning-based Multi-View Stereo: A Survey>

二、MVS核心流程

大致流程为相机标定、视图选择、多视图深度估计和深度融合,此外还介绍了常用数据集与基准常见评估指标

相机标定

相机标定的目标是确定相机的内参和外参,以便准确理解其成像几何关系。对于 MVS 而言,这是整个重建流程的基础:只有在相机几何参数准确一致的前提下,后续的跨视图几何推理和深度恢复才有可靠保障。 通常相机参数可通过现成的 SfM 或 SLAM 方法获得。这些方法联合优化稀疏三角化点与相机参数,从而得到每个视角的外参矩阵和内参矩阵。

对于基于深度图的 MVS 方法,还通常需要设定一个有效深度范围,以缩小搜索空间并提高深度估计精度:在 离线方法 中,深度范围通常通过将 SfM 得到的稀疏点云投影到每个视角,并统计其最小/最大深度值得到; 在 在线方法 中,由于场景尺度往往比较固定,例如室内房间场景,因此常直接使用预设的固定深度范围。

视图选择

在 MVS 中,选择哪些源视图参与某个参考视图的重建至关重要。一个好的视图选择策略需要在以下因素之间取得平衡:三角测量质量; 匹配准确性; 视锥重叠程度。

目前常见的视图选择策略主要有两类:

  • 1)在线 MVS 中的局部关键帧选择

多数在线方法会根据相机位姿变化是否足够明显,决定当前帧是否应被设为关键帧。随后,在关键帧缓存中,为当前参考帧挑选若干与其位姿差异最小的历史关键帧作为源视图。这种方法适合视频序列场景,计算代价较低,也满足在线处理要求。

  • 2)离线 MVS 中基于稀疏点云的视图评分

多数离线方法依赖 SfM 产生的稀疏点云,对视图对之间的重叠关系进行评分。对某个参考视图而言,如果另一个视图与它共同观测到的三维点较多,并且这些点对应的基线角度更适合三角测量,那么该视图就会获得更高分数。最终选择评分最高的若干视图作为邻近视图。

多视图深度估计

为了构造适合卷积操作的规则数据结构,大多数基于深度图的学习式 MVS 方法都会采用 平面扫描(plane sweep)  算法来建立匹配代价。其核心思想是

  • 首先根据预设或估计的深度范围,将深度空间离散为若干采样点;
  • 对每个深度假设,利用单应性变换将参考视图中的像素映射到源视图;
  • 在对应位置上提取并比较特征;
  • 将这些跨视图匹配代价组织成规则的代价体;
  • 后续网络再对代价体进行正则化并回归深度。

这一机制与双目立体中的视差假设搜索有相通之处,只不过 MVS 处理的是多视角、非规则相机布局下的深度假设空间。

深度融合

在基于深度图的 MVS 中,完成每个视图的深度估计之后,还需要将所有深度图融合为统一的三维表示,例如点云或网格。

在线 MVS 往往采用 TSDF(截断有符号距离函数)融合 的方式,将连续到来的深度图依次整合到体表示中,随后通过 Marching Cubes 提取网格。这种方法适合实时场景,但通常不在融合前进行专门的深度过滤。

离线 MVS 更强调结果质量,通常会在深度图转化为点云之前先进行 深度过滤,以剔除明显错误的估计。常见过滤包括:光度过滤:排除低匹配置信度的深度; 几何过滤:排除跨视图不一致的深度

随后,这些方法利用基于可见性的融合策略,减少不同视角之间的遮挡冲突和深度矛盾,再将深度图回投影为三维点云。

常用数据集与基准

常见数据集有SUN3D、ScanNet、7-Scenes、DTU、Tanks and Temples、ETH3D、BlendedMVS、ScanNet++

常见评估指标

二维指标有平均绝对误差(Abs)、平均相对绝对误差(Abs Rel)、阈值内点比例(如 δ < 1.25)

三维指标有 Precision / Accuracy(重建结果中有多少点接近真值)、Recall / Completeness(真值中有多少部分被成功重建)、F-score(综合准确率与完整率的调和指标)

三、监督学习框架下的基于深度图的 MVS 方法

更具体而言,一个典型的深度图式 MVS 流程通常包括以下几个环节:
*特征提取->代价体构建->代价体正则化->深度估计->深度细化->置信度估计->损失函数设计

特征提取

考虑到效率,多数方法采用较轻量的 CNN 结构提取多视图图像特征,例如 ResNet、U-Net、FPN 等。

在线方法更关注实时性,因此特征提取网络往往选择低延迟结构。例如: DeepVideoMVS 结合轻量级 MNasNet 与 FPN;SimpleRecon 和 DoubleTake 同时使用较浅的 ResNet 分支与高效单目先验编码器,以兼顾效率和深度质量。

离线方法则更强调精度。早期代表 MVSNet 使用堆叠式 2D CNN 提取图像特征。后续粗到细方法通常配合 FPN 或多尺度图像,提取不同分辨率下的特征,以支持多阶段深度估计。

近年来,越来越多研究开始加强特征表达能力:使用 可变形卷积 自适应调整感受野,以更好处理纹理分布差异明显的区域;使用 Transformer 或 Vision Transformer 引入长程上下文信息,提升对低纹理区域和跨视图全局关系的建模能力。

代价体构建

为降低计算量并满足实时应用需求,在线方法通常构建 三维代价体,即为每个像素和每个深度假设保存一个标量匹配代价。常见做法包括:计算参考图像与源图像在对应位置的像素强度差;计算参考特征与投影源特征的 L2 距离;使用特征点积作为相似性度量。

一些方法还会将辅助信息纳入代价体,例如:射线方向;相对位姿;来自前一时刻几何结果的深度提示。这些附加信息通常有助于提升深度预测精度。

离线方法为获取更丰富的匹配信息,通常构建 四维代价体,即每个像素—深度位置上保存一个特征向量,而非单个标量。由于源视图数量不固定且遮挡普遍存在,如何稳健聚合多视图匹配信息非常关键。MVSNet 提出了经典的 基于方差的代价体构建方式:先将所有源视图特征根据深度假设投影到参考视图,再计算这些特征在通道维上的方差,以此表征匹配不一致程度。

后续工作进一步探索了更高效或更鲁棒的聚合方式,例如:分组相关(group-wise correlation);基于门控卷积的自适应视图聚合;依据深度不确定性或可见性预测的加权融合;像素级学习视图权重。这类设计的目标,是减轻遮挡区域和无效匹配对最终深度估计的干扰。

代价体正则化

在线方法一般采用 2D 编码器—解码器结构 来聚合信息:

  • 将代价体与参考图像拼接后送入 U-Net 式网络;
  • 利用历史帧信息进行时序融合;
  • 通过 ConvLSTM 或贝叶斯更新机制累积时间上的信息;
  • 在保证计算量可控的情况下提升深度稳定性与准确性。

离线方法中的正则化路线大致可分为三类:

1. 直接使用 3D CNN

这是最经典的一类做法。MVSNet 利用 3D U-Net 对四维代价体进行正则化,通过在空间和深度维上联合卷积,学习更合理的几何结构约束。优点是精度高,缺点是计算和显存开销大。

2. 使用 RNN 沿深度维顺序处理

R-MVSNet 将代价体按深度切片后,使用卷积 GRU 顺序处理,从而显著降低显存占用。缺点是推理速度较慢,且深度维建模具有方向性。

3. 粗到细策略

这是后续最主流的高效方案之一。做法是:先在低分辨率、宽深度范围上进行粗估计;再将预测深度上采样;在更细尺度上围绕预测值构建局部代价体进行精细化。

有些方法不再采用“一次性预测最终深度”的策略,而是通过 迭代更新 逐步优化深度图。其基本思想是:先给出一个初始估计,再通过多轮细化逐渐逼近更准确的结果。这类方法大致分为两种思路:
结合 PatchMatch 的迭代优化 :PatchmatchNet 等方法将经典 PatchMatch 搜索机制与深度网络结合起来,通过学习式传播和代价聚合模块,使深度假设能够更快收敛并得到更准确估计。
借鉴光流迭代更新框架 :另一些方法受 RAFT 启发,利用 GRU 类结构不断预测深度残差,对先前结果进行逐步修正。这类方法在效率和灵活性上表现出一定优势。

深度估计

在线方法通常将网络输出压缩到单通道,再通过 Sigmoid 或类似变换映射到预定义深度范围,从而得到连续深度估计。

离线方法通常先得到概率体,再从中估计最终深度。主流策略有两种:回归式(soft argmax)分类式(argmax)

回归式将每个深度假设的概率作为权重,求深度期望值。优点是可获得亚像素精度,因此非常常见。 分类式直接选择概率最大的深度假设。优点是直观、稳定,但难以自然获得亚像素精度,通常需要后处理进一步细化。近期也出现了混合策略:先分类选出最优假设,再对其附近进行回归补偿。

深度细化

由于 MVS 输出的原始深度图仍可能存在局部噪声、边缘模糊或台阶效应,因此很多方法在主干网络之后增加了深度细化模块。常见细化思路包括:

  • 使用条件随机场增强空间一致性;
  • 通过多视图光度一致性进行后处理;
  • 在点云层面估计残差并修正深度;
  • 用高分辨率图像特征辅助局部 refinement;
  • 借助边缘保持模块增强边界清晰度。

这类模块特别有助于改善:物体边缘、薄结构和高频几何细节。

置信度估计

在深度融合阶段,置信度是决定某个深度值是否可靠的重要依据。因此,很多离线 MVS 方法会额外估计 光度置信度。置信度越准确,后续的深度过滤和点云融合质量通常越高。较常见的做法包括:

  • 直接取预测概率体中最大概率值;
  • 取估计深度附近若干采样点的概率和;
  • 从隐藏状态或匹配代价中学习一个单独的置信度预测网络。

损失函数

在线方法多数采用深度或逆深度上的回归损失,如 L1 损失。有些方法还会加入:对数深度损失、深度梯度损失、法向一致性损失、多视图重投影损失。

离线方法的损失函数通常与深度预测方式对应:若采用 soft argmax,则多使用 L1 或 smooth L1 回归损失;若采用 argmax 分类,则多使用交叉熵损失;若采用混合预测,则同时结合分类损失与回归损失。

四、基于深度表示的无监督与半监督 MVS

光度一致性假设

现有无监督方法通常建立在光度一致性假设之上,即:如果参考视图中的某个像素被正确投影到源视图,那么对应的颜色或结构应保持一致。具体来说:对参考图像中的每个像素,根据预测深度将其投影到源图像;再通过双线性插值得到重建后的图像;使用重建图像与参考图像之间的差异定义损失。

常见损失包括: 光度一致性损失结构相似性损失(SSIM)深度平滑损失。其中,深度平滑项用于鼓励在图像颜色变化平缓区域中,深度也保持相对连续。

不过,单纯依赖光度一致性会面临明显挑战:非朗伯反射、曝光变化、遮挡区域、匹配歧义。这也是无监督方法性能普遍不及监督方法的重要原因。

 端到端无监督方法

这一类方法直接从输入图像出发,在没有真值深度的前提下训练整个 MVS 网络,通常使用光度一致性、结构一致性和平滑约束作为监督信号。一些代表性工作尝试引入额外信息以缓解仅靠光度损失带来的歧义,例如:

  • 语义一致性:利用预训练语义分割网络,让跨视图语义结果保持一致;
  • 神经渲染监督:将 NeRF 风格的渲染一致性引入 MVS 框架,以更好处理遮挡和光照变化;
  • 对比学习约束:强化正确匹配区域的特征一致性;
  • 更鲁棒的光度损失形式:降低离群点对训练的主导作用。

这类方法的优点是:不需要显式预处理、、训练流程统一、更适合真实世界中缺少标签的场景。但其难点仍然在于监督信号较弱,尤其在反光、低纹理或大遮挡区域。

多阶段无监督方法

另一类无监督方法依赖 伪标签生成 或 预训练模块,通常可分为多个训练阶段。典型思路包括:

  • 使用光度一致性与几何一致性生成伪深度图;
  • 借助预训练光流网络引入流—深度一致性;
  • 用教师—学生框架进行知识蒸馏,并利用教师网络生成更可靠的伪标签训练学生模型。

相比完全端到端训练,这类方法通常训练更复杂,但监督更强、效果也更稳定。

半监督方法

半监督 MVS 方法相对较少,其中较具代表性的工作是利用 少量稀疏三维点 作为监督信号。其核心思想是:

  • 用稀疏点恢复出参考视图上的部分深度约束;
  • 构造三维点一致性损失;
  • 再结合粗到细传播模块,逐步提高边界和细节区域的深度精度。

这种方式位于“全监督”和“完全无监督”之间,在标注资源有限时具有实用价值。

五、其他表示方式下的学习式 MVS

除基于深度图的方法外,近年还有大量研究探索其他三维表示,包括:体素表示NeRF 表示3D Gaussian Splatting 表示直接前馈点表示

基于体素的方法

这类方法通常使用体表示和隐式函数(例如 TSDF 或 SDF)建模场景几何。核心流程是:将 2D 图像特征提升到 3D 体素空间;构造三维特征体;用 3D CNN 预测 TSDF;最后用 Marching Cubes 提取网格。

为提升效率,一些方法引入多尺度稀疏化机制,在粗层级先去除大量空体素,再在细层级只对有效区域继续重建。NeuralRecon、TransformerFusion 等方法都采用了类似思路。不过,即使采用粗到细设计,体素方法仍然很难扩展到无界大场景,因为体素网格的空间开销会随场景尺度快速增长。

基于 NeRF 的方法

NeRF 最初用于新视角合成,它使用多层感知机将三维位置与观察方向映射为颜色和体密度,并通过可微体渲染进行训练。虽然 NeRF 的原始目标是渲染,但后续工作将其与 SDF 结合,用于表面重建。训练完成后,可以从隐式场中提取网格,实现高质量三维几何恢复。

在没有真值几何监督时,基于优化的 NeRF 重建 通常通过 渲染损失 自监督优化,并辅以 eikonal 正则项,约束隐式函数具有合理的 SDF 性质。后续研究进一步引入:哈希网格加速训练、patch 级光度约束、单目深度/法向先验、稀疏 SfM 点云监督、面向反射表面的显式外观建模。这些设计有助于改善几何歧义和反光表面重建问题。

可泛化 NeRF 方法常从深度图式 MVS 或体素 MVS 中吸收灵感,例如:构建 plane sweep 代价体、利用三维特征体建模几何、用 Transformer 直接前馈预测 NeRF 表示。

论文指出,NeRF 类方法在镜面、反光等场景中通常比传统基于光度一致性的深度图方法更具优势,因为它们能更自然地建模复杂视角相关外观。

基于 3D Gaussian Splatting 的方法

3D Gaussian Splatting(3DGS)与 NeRF 不同,它不是隐式 MLP 表示,而是用一组显式三维高斯点来建模场景。每个高斯点包含:均值位置、协方差、颜色、不透明度。渲染时,通过将三维高斯投影到二维图像平面,再进行高效的 splatting 与 alpha 融合,能够以较高速度实现高质量渲染。

基于优化的 3DGS 重建 对高斯分布施加几何正则,使其更贴合真实表面;将 3D 高斯约束为更接近表面片元的二维高斯;引入局部深度/法向一致性和多视图几何约束。这些方法显著提升了 3DGS 在几何精度上的表现。

可泛化的 3DGS 通常借助:多视图 Transformer、扩散模型、深度先验。从而在无需逐场景优化的情况下,快速生成可渲染的三维高斯表示。

大型前馈点表示方法

近年来,一个很重要的新趋势是:利用大规模多视图数据和 Transformer 骨干,直接通过单次前向传播预测场景几何或点图表示,从而绕开传统 MVS 中显式构建代价体和逐场景优化的流程。这类方法的典型流程包括:

  1. ViT 特征提取:利用预训练视觉 Transformer 提取视图级几何感知特征。DINO 一类的自监督视觉表征在这方面表现出很强的迁移能力。
  2. 跨视图注意力聚合:不同于传统 MVS 依赖 plane sweep 构建几何约束明确的代价体,这类方法使用 attention 机制在多视图之间直接建立隐式对应关系,实现跨图像的信息交互。
  3. 几何与位姿预测头:模型直接回归:相机内外参、稠密深度图、点图(pointmap)、特征轨迹等。例如,DUSt3R 展示了直接回归点图这一思路的可行性;VGGT 等更进一步,在单次前向中联合输出多种几何变量。

这类方法的优点是:前向推理直接、不一定要求已知相机位姿、在无位姿或弱约束设置下非常灵活。

但挑战也很明显:训练内存压力大、多视图/高分辨率扩展困难、对训练分布依赖较强、在大规模场景上的几何精度仍有提升空间。

六、讨论

性能比较

总体来看,离线深度图方法 的性能通常优于 在线方法。原因在于:在线方法为了实时性,通常只能使用稀疏深度采样和局部时序信息;离线方法可以访问全局图像集合,并使用更复杂、更高精度的代价体和正则化策略。因此,在综合精度上,基于深度图的离线方法仍是目前最成熟且最强的一类学习式 MVS 方案。

体素方法在室内局部重建中有一定优势,但在大型室内外场景中受内存和分辨率限制明显,难以与深度图方法竞争。

NeRF / 3DGS 方法方法在小规模、细节丰富场景中往往能取得非常出色的结果,尤其擅长处理复杂外观和精细结构。但在大场景中,扩展性和训练/优化成本依然是主要瓶颈。

大型前馈点表示方法在视觉上往往能重建出“看起来合理”的几何结构,但若从严格的点云定量评测角度来看,其精度通常仍不及成熟的 MVS 深度图方法。原因包括:同时估计相机与几何本身就更困难;训练数据分布与测试大场景之间常存在偏差;高内存需求限制了输入图像数量和分辨率。

效率比较

在工业应用中,低运行时间和低显存占用非常重要,例如机器人、AR/VR 和边缘设备。与其他表示方式相比,基于深度图的 MVS 在效率与扩展性之间仍然最具平衡性。原因包括:体素方法受限于三维网格存储;NeRF 和 3DGS 方法通常需要逐场景优化;大型前馈方法依赖大规模 Transformer,显存需求较高。

论文还指出,一些新近的离线深度图方法通过精简 3D 卷积、使用更轻量的模块设计,在保证较高精度的同时,显著降低了运行时间和显存开销。这说明未来深度图式 MVS 在工程落地方向仍具有很大潜力。

未来研究方向

  • 数据集与基准
  • 视图选择
  • 特征提取
  • 生成式重建
  • 效率
  • 先验辅助

七、结论与展望

本文系统梳理了近年来基于学习的多视角立体方法,并按照三维表示形式将其划分为五类:基于深度图、基于体素、基于 NeRF、基于 3D Gaussian Splatting,以及大型前馈方法。深度图式 MVS 仍然是当前最成熟、最实用的主流路线,NeRF / 3DGS / 大型前馈方法正在快速拓展 MVS 的边界, 未来真正重要的课题,不只是精度更高,而是更泛化、更高效、更适合真实世界复杂场景。

八、笔者思考

论文发表于2015年8月。