CL-MVSNet: Unsupervised Multi-view Stereo with Dual-level Contrastive Learning

📅 2026/7/10 14:19:29 👁️ 阅读次数 📝 编程学习
CL-MVSNet: Unsupervised Multi-view Stereo with Dual-level Contrastive Learning

0. 摘要

无监督多视图立体方法最近取得了可喜的进展。然而,以前的方法主要依赖于光度一致性假设,这可能会受到两个限制:低识别度的区域和依赖于视图的效果,例如低纹理区域和反射。为了解决这些问题,我们提出了一种新的双对比学习方法,称为 CL-MVSNet。具体来说,我们的模型将两个对比分支集成到无监督 MVS 框架中,以构建额外的监督信号。一方面,我们提出了图像级对比分支来引导模型获得更多的上下文感知,从而在不可区分的区域中实现更完整的深度估计。另一方面,我们利用场景级对比分支来提高表示能力,提高依赖于视图的效果的鲁棒性。此外,为了恢复更准确的 3D 几何形状,我们引入了光度一致性损失,这鼓励模型更多地关注准确的点,同时减轻不良点的梯度惩罚。对DTU和Tanks and Temples的大量实验表明,我们的方法在所有端到端无监督框架中实现了最先进的性能,并且在无需微调的情况下大幅优于有监督的对应框架。

1. 引言

主要贡献如下:

  • 提出了图像级对比一致性损失,这使用模型更加具有上下文感知能力并在不易区分的区域中实现更完整的重建。
  • 提出了场景级对比一致性损失,这增强了表示能力,从而提高了视图相关效果的鲁棒性。
  • 提出了光度一致性损失来进一步推进对比学习框架,使模型能够专注于准确的点,从而实现更准确的重建。
  • DTU和Tanks and Temples基准测试的实验表明,我们的方法优于最先进的端到端无监督模型,并超越其有监督模型。

2. 相关工作

2.1. 监督MVS

随着深度学习技术和大规模3D数据集的发展,有监督MVS近年来取得了重大进展。MVSNet提出了一种流行的MVS流水线,可以概括为四个步骤:特征提取、成本聚合、成本量正则化和深度回归。最近的工作通过引入多级架构 RNN 来努力减轻巨大的内存和计算成本以及其他一些方法。然而,上述所有方法都依赖于标记的训练数据,而在实践中获得这些数据的成本很高。

2.2. 端到端非监督与多阶段自监督MVS

把没有监督信号的MVS框架分为两类,到端非监督和多阶段自监督。前者主要依赖光度一致性假设,它强制重建的图像和reference image保持光度一致性,但是这在很多场景下是无法保证的,所以近年来也有研究者考虑法线一致性、语义一致性等等;后者力求通过处理推断得到的深度图来得到可靠的伪标签来监督训练,但是这使得训练过程不是端到端的。并且额外产生的标签数据也占用存储空间,自监督训练也十分耗时。

3. Method

本节将详细阐述文章的主要贡献。我们首先描述无监督主干(第 3.1 节),然后描述所提出的图像级对比度一致性(第 3.2 节)、场景级对比度一致性(第 3.3 节)和L0.5光度一致性(第 3.4 节)。 最后,我们介绍了训练期间的整体损失函数(第 3.5 节)。我们的架构概述如图2所示。CL-MVSNet是一个适用于任意基于学习的 MVS 的通用框架。我们以代表性的CasMVSNet作为这项工作的backbone。

3.1. 非监督 Multi-view Stereo

输入一张ref图和若干张src图,分阶段特征提取这些步骤和CasMVSNet一样。在代价体聚合阶段,我们将个通道的N个特征体分成组,然后构造原始代价体C如下:


然后使用3D UNet来处理这个原始代价体,使用softmax来获得概率体,然后使用加权和获得最终深度图D:

使用由粗到细的方法,粗的深度图用于生成下一步的深度假设。利用高分辨率特征得到精细的深度,以此类推。

3.1.1. 利用置信度掩码进行深度估计

在深度估计期间,生成了副产品概率体,用于度量深度假设的像素级置信度。然后,通过对关于深度估计的4个最接近的深度假设进行概率和,可以获得概率图​。我们生成一个二元置信掩模​,标志着模型是否对逐像素深度估计有信心:

在我们的实现中,设置为0.95。来自正则分支的深度估计和置信mask将用于正则化两个提出的对比分支的输出。

3.1.2. 普通的光度一致性误差

以前的无监督方法会使用光度一致性损失来在没有真值的情况下进行训练,如图3所示。


具体来说,给定ref图像、src图像、内参K、外参T和推断的深度图,src图像被warp以重建ref图像。对于重构ref图像中的特定像素p,可以通过inverse warping计算其在src图像中的坐标


然后可以通过可微分的双线性采样得到重建的图片​,即

通过inverse warping过程,生成二元的有效性掩模,它指示重建图像中的有效像素。在以前的无监督MVS方法中,所有src图像根据推断的参考深度warp到ref视图,然后光度一致性损失可以计算为:

其中是梯度操作,是element-wise product,为1或2,也就是L1或者L2的意思。

3.2. 图片级对比一致性

如前所述,局部光度一致性无法在难以区分的区域(例如具有低纹理或重复图案的区域)提供有效的监督信号。为了克服这个问题,引入了逐块光度一致性损失以增强匹配的鲁棒性。然而,由于patch大小不合适,该模型可能会遭受性能下降,例如,大patch可能会导致纹理丰富的区域的准确性损失。在本文中,我们提出了一种替代方案,通过引入图像级对比分支来隐式地促使模型具有上下文感知能力。接下来将详细阐述图像级对比样本和图像级对比一致性损失。

3.2.1. 图片级对比抽样

图像级对比抽样是通过人为地对普通样本施加变换来生成的。对于大小为的src图像,我们设置遮挡率来构造大小为的二值像素级掩模。具体来说,掩模中的任何元素都会以遮挡度(概率)来置1:


其中B表示伯努利分布,遮挡掩模记为​。然后用对图像进行掩模,如图4所示。以这种方式简单地处理所有src图像,就生成了图像级对比样本。然后将这些困难的正样本输入网络以获得深度估计。为了确保训练稳定性,我们采用课程学习策略(curriculum
learning strategy)来逐渐增加遮挡率,在我们的实验中,遮挡率从0增长到0.1。

图 4. 图像级对比示例。 (a) 源图像常规样品。 (b) 图像级 con- 的源图像对比样本。伯努利分布二元掩模用于模拟 (b) 中局部光度一致性失败的情况。

3.2.2. 图片级对比一致性损失

为了促进常规分支和图像级对比分支之间的一致性,我们将图像级对比一致性损失计算为:

其中​和​分别表示常规分支和图像级对比分支的推断深度。

3.3. 场景级对比一致性

据我们所知,所有无监督MVS方法都利用光度和几何先验来实现MVSNet之后的视角选择。具体来说,与参考图像重叠较多的图像将获得较高的分数,并且将选择分数最高的N-1张图像作为常规样本中的源图像。请注意,一些监督方法随机选择源视图以提高鲁棒性。由于严重的视图相关效应和遮挡导致局部光度一致性失败(如图 5 所示),直接在无监督MVS的常规分支中使用此策略将导致性能更差。然而,从对比学习的角度来看,这些图像可以用来构建困难正样本。下面,我们将详细介绍如何生成场景级对比样本并强制场景级对比一致性。

图 5. 视图相关的效果和遮挡。从源头 view4,A 点被遮挡,沿线只有 A' 点可见视线。此外,相同区域B的外观由于照明、相机的变化,不同视图中的效果有所不同曝光和反射。

3.3.1. 场景级对比采样

对于给定的参考图像​,可以通过将ref图像与同一场景的N-1个随机选择的图像相结合来构造场景级对比样本。然后,将为对比样本推断出深度图。值得注意的是,使用场景级对比样本构建的代价体代表了与常规场景相同的3D场景。因此,网络应该从场景级对比样本中获得与常规样本相同的深度估计。

3.3.2. 场景级对比一致性损失

然后将场景级对比一致性损失​应用于场景级对比分支。该损失用于使场景级对比样本更接近常规样本,从而提高对视图相关效果的鲁棒性:


其中​分别指来自常规分支和场景级对比分支的深度图。

3.4.​光度一致性

在MVS的通用流程中,在深度融合之前应用深度过滤过程,以屏蔽掉最不需要的点,如图 6 所示。为了清楚起见,我们将推断的深度图中的点分为三类:

  • accurate point:具有准确预测的像素,它将在深度过滤后幸存下来并有助于最终的重建。
  • ordinary point:与精确点接近的像素点,将被过滤掉。
  • terrible point:预测相当错误的像素,其中大部分位于无用的背景或遮挡区域,将被过滤掉。 此外,在这些点上强制执行的光度一致性可能会误导模型。
图 6. 深度过滤。大多数深度不准确的点都会在深度融合之前被过滤掉。可以看出,这些点通常位于遮挡区域或无用的背景中,光度一致性失败的地方。

在MVS系统中,理想的深度图应该包含更精确的点。此外,由于这一观察,需要对精确点施加更多约束的损失函数。我们对L1范数和L2范数进行了分析,它们广泛用于普通光度一致性损失(方程(5))。我们首先写出它们的表达式和梯度公式:

其中e表示x-x'的绝对值,表示在光度一致性强制执行期间重建图像与原始图像在特定像素处的距离。是一个特定常量。

在训练期间,网络参数以反向传播方式更新,使用相对于损失函数计算的梯度。根据式(9),我们可以得出L1范数是一个公平范数,对所有点一视同仁,旨在获得平均绝对误差较低的深度图;而L2范数更关注误差较大的像素,以减少异常点,即terrible point。然而,这两个规范并不能直接聚焦于准确的点。因此,我们提出了基于范数的光度一致性损失。范数及其梯度公式可表示为:


与L1-norm或L2-norm不同,L0.5-norm更注重精确点。由于其梯度特性,将此范数应用于光度一致性损失可以使准确的点更加准确,将 ordinary point 变成 accurate point,并减少对糟糕点的关注。根据上述分析,我们提出光度一致性损失为:


3.5. Overall Loss

4. 实验

下图是在 DTU 和 Tanks and Temples 数据集上面的评分。




值得一提的是,作者单独开了一个小节作为卖点,即和自监督SOTA方法的效率比较。多阶段自监督方法无法进行端到端训练。具体来说,KD-MVS需要多轮训练进行蒸馏,每轮之前需要复杂的预训练和预处理,使用额外的数据集来生成伪标签,并且需要额外的存储空间来保存伪标签。没有上述限制,CL-MVSNet方法采用与他们相同的主干网,但仅在16个epoch内就收敛并取得了有竞争力的结果,在单个NVIDIA Tesla V100上每个epoch的训练时间仅为10小时。

5. 结论与局限性

5.1. 结论

利用双层对比学习来处理不可区分区域和视图相关效应的问题。对于难以区分的区域,提出了图像级对比分支,以鼓励模型考虑更多上下文信息。对于依赖于视图的效果,采用场景级对比分支来提高鲁棒性。此外,我们探索了光度一致性损失来强调精确点的惩罚,从而实现更准确的重建。 我们通过实验证明,CL-MVSNet在DTU和Tanks&Temples基准上优于所有 SOTA 端到端无监督MVS方法和有监督对应方法。

5.2. 局限性

我们的模型解决了不可区分区域和视图相关效应的局限性,但对象边缘区域的准确深度估计仍然是一个挑战。值得注意的是,这是无监督 MVS 方法中的常见问题。为了缓解这个问题,我们采用[17]中提出的边缘感知深度平滑度损失,它基于输入参考图像的梯度图和推断的深度图应该相似的假设。然而,这个简单的假设在很多情况下可能是无效的。例如,同一对象内可能存在显着的颜色梯度变化。

参考文献

CL-MVSNet: Unsupervised Multi-view Stereo with Dual-level Contrastive Learning

【论文精读】CL-MVSNet: Unsupervised Multi-view Stereo with Dual-level Contrastive Learning-CSDN博客