本文是对CL-MVSNet: Unsupervised Multi-View Stereo with Dual-Level Contrastive Learning Kaiqiang Xiong, Rui Peng, Zhe Zhang, Tianxing Feng, Jianbo Jiao, Feng Gao, Ronggang Wang的阅读记录
Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2023, pp. 3769-3780
原文链接https://openaccess.thecvf.com/content/ICCV2023/html/Xiong_CL-MVSNet_Unsupervised_Multi-View_Stereo_with_Dual-Level_Contrastive_Learning_ICCV_2023_paper.html
发展背景
有监督MVS方法:
严重依赖于获取昂贵的大规模地面真实三维训练数据
无监督MVS方法:
- Unsop MVSNet:第一个端到端无监督MVS框架
- RC MVSNet:采用了渲染一致性网络来解决由视图相关的光度效应和遮挡引起的模糊性,但是可能存在无法区分的区域遭受显著的性能退化
- CL-MVSNet:将图像层次和场景层次的对比学习集成到无监督的MVS框架中
多阶段自监督方法:
旨在通过过滤和处理推断的深度图来获得可靠的伪标签,用于监督后续阶段的模型训练。
MVS以前的方法存在的限制:
o 无法区分的区域
o 依赖于视图的效果
过去这些方法不能以端到端的方式进行训练,而且需要大量时间
文提出了一种新的双层对比学习方法,称为CL-MVSNet,模型将两个对比分支集成到无监督MVS框架中,以构建额外的监督信号。解决了传统方法存在的问题,主要通过以下:
- 图像级对比分支-》以引导模型获得更多的上下文感知,从而在无法区分的区域中实现更完整的深度估计。
- 场景级对比分支-》来提高表示能力,提高对视图相关效果的鲁棒性。
- L0.5光度一致性损失,加入惩罚-》鼓励模型更多地关注准确的点
对比学习
硬阳性样本已被证实有利于促进对比学习
硬阳性样本:所谓的硬阳性样本,就是那些被模型错误地预测为负样本,但实际上应该是正样本的样本。
像素和对象级别的监督提供了一种直接定义阳性和阴性样本的方法
提出利用双层次对比学习策略来提高无监督MVS
图像级对比分支
场景级对比分支
L0.5光度一致性损失
在深度估计之后,具有不期望的深度预测的大多数点【普通点和坏点】将在深度融合之前被过滤掉
为什么不用L1或者L2 的原因-》L1(平等对待所有点)和L2(减少异常值,即坏点)这两个规范不能直接关注精确的点。
CL MVSNet的框架
它的框架结构如上图所示:
- 常规分支:
使用CasMVSNet 作为基础网络,根据光度一致性和几何一致性选择源视图,构建成本体积,进行正则化和深度回归,得到常规样本的深度估计和置信度掩码。 - 图像级对比分支:
使用Bernoulli分布的二值掩码对源视图进行遮挡,模拟局部光度一致性失效的情况,得到图像级对比样本,然后用相同的网络结构得到图像级对比样本的深度估计,最后用对比一致性损失来拉近常规样本和图像级对比样本的深度估计。 - 场景级对比分支:
随机选择源视图,构成场景级对比样本,然后用相同的网络结构得到场景级对比样本的深度估计,最后用对比一致性损失来拉近常规样本和场景级对比样本的深度估计。 - L0.5光度一致性损失:
在常规分支上,使用L0.5范数来计算重建图像和参考图像之间的光度一致性损失,这样可以使模型更加关注准确点,提高重建的精度。提出的L0.5光度一致性在重建图像和规则分支上的输入参考图像之间得到了加强,以实现更准确的重建。
骨干网络
CL-MVSNet的骨干网络是基于CasMVSNet的。在推理阶段,只使用骨干网络来获得深度预测。这个网络结构被集成到了一个无监督的多视图立体(MVS)框架中,用于构建监督信号。此外,还引入了L0.5光度一致性损失,以鼓励模型更多地关注准确的点。这种设计使得CL-MVSNet在处理不可区分区域和视角依赖效应的问题上具有更强的鲁棒性
采用与CasMVSNet相同的视图选择策略来构建常规样本,对于给定的1个参考图和N-1个原图从常规样本和相机参数,目标是用骨干网络估计对应的深度图,以下是具体过程:
1、特征提取(feature extraction)
构建特征体(Feature Volume):
N张图像被馈送到共享特征金字塔网络中在具有递增分辨率的三个阶段中生成2D像素级特征。在最粗糙的阶段,初始深度假设和3D特征体是根据通过可微单应性而来的特征构建的
2、 生成代价体(Cost Volume)
分组相关度量:将Nc个通道的N个特征体分成NG组,然后构造原始代价体C。然后,原始代价体C经历规则的3D UNet和softmax,从而产生概率量Pv。最后,通过加权和获得深度图D
3、使用置信掩码进行深度估计
在深度估计阶段生成了一个概率体积 Pv,用于测量深度假设的像素级置信度。然后,通过对关于深度估计的四个最近深度假设进行概率求和,可以获得概率图 Pm。通过将概率图 Pm 与某个阈值 γ 进行比较,可以生成一个二值置信度掩码 Mc,用于指示模型对于像素级深度估计的置信度。具体地,通过比较 Pm 和 γ,即 Pm > γ,可以得到 Mc
4、基本光度一致性损失
原图通过推断的深度图扭曲到重建参考图像,对重建参考图像和参考图像执行一致性
在通过逆扭曲计算重构参考图上的像素点在原图上的位置的过程中,生成二进制有效掩码Mi,指示重建图像Ii中的有效像素
然后通过公式对比出重构参考图和参考图之间的光度一致性损失
存在问题:无法在无法区分的区域(例如,具有低纹理或重复图案的区域)提供有效的监控信号。
为解决以上问题,本文引入了双层对比学习方法和L0.5光度一致性。
图像级对比度一致性
通过引入图像级对比分支来隐含地鼓励模型感知上下文的替代方案。
图像级别对比样本:
图像对比样本是通过对给定的常规样本{Ii} Ni=1进行人工变换来生成的。具体来说,对于一个源图像Ii,我们设置一个遮挡率α来构造一个二值像素级遮罩,模拟局部光度一致性失败的情况。然后,遮罩Mo用于遮挡图像Ii,如图4所示。简单地处理所有的源图像,就可以得到一个图像对比样本{I1, I′ 2 , I′ 3 , . . . , I′ N }。然后,这个困难的正样本将被送入网络,得到深度估计DIC。为了保证训练的稳定性,我们采用了一个课程学习策略,逐渐增加遮挡率α,从0增加到0.1。
图像级别对比一致性损失:见原文
场景级对比一致性
样本:
对于给定的参考图像I1,将参考图像I1与同一场景随机选取的N−1图像{Ii " }Ni =2组合,即可构造场景级对比样本。随后,DSC将推断出对比样本的深度图。值得注意的是,使用场景级对比样本构建的成本体积代表的是与常规3D场景相同的3D场景。因此,网络应该从场景级对比样本中获得与常规样本相同的深度估计。
场景级对比一致性损失:见原文
L0.5光度一致性
为了清晰起见,我们将推断的深度图中的点分为三类:
精确点
普通点
坏点
L1(平等对待所有点)和L2(减少异常值,即坏点)这两个规范不能直接关注精确的点。所以本文提出L0.5(由于其梯度性质,将该范数应用于光度一致性损失可以使精确点更加准确,将普通点转化为精确点,而不必关注坏点)光度一致性
总体损失:
见原文
CL-MVSNet存在的局限:
无法对物体边缘区域进行准确的深度估计