RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)
- 摘要
- 1 引言
- 2 相关工作
- 2.1 基于监督的MVS
- 2.2 无监督和自监督MVS
- 2.3 多视图神经渲染
- 3 实现方法
- 3.1 无监督的MVS网络
Chang, D. et al. (2022). RC-MVSNet: Unsupervised Multi-View Stereo with Neural Rendering. In: Avidan, S., Brostow, G., Cissé, M., Farinella, G.M., Hassner, T. (eds) Computer Vision – ECCV 2022. ECCV 2022. Lecture Notes in Computer Science, vol 13691. Springer, Cham. https://doi.org/10.1007/978-3-031-19821-2_38
Source Code Link
摘要
(问题–方法–效果)
【问题】在不同的视图之间找到准确的对应关系是无监督的多视图立体声音响(MVS)的致命弱点。现有的方法建立在相应像素具有相似光度特征的假设上。然而,在真实场景中,多视图图像观察到非兰伯表面和遭遇遮挡。【方法】在2022年8月,我们提出了一种新的神经渲染方法(RC-MVSNet)来解决这种视图间对应的模糊性问题。具体地说,我们施加深度渲染一致性损失来约束靠近对象表面的几何特征,以减少遮挡。同时,我们引入了一个参考视图合成损失,以产生一致的监督,即使对非兰伯表面。【效果】在DTU和坦克和寺庙数据集上进行的大量实验表明,我们的RC-MVSNet方法在无监督的MVS框架上取得了最先进的性能,并且与许多监督方法相比具有一定的竞争力。
1 引言
多视图立体视觉(Multi-View Stereo,MVS)是三维计算机视觉中一项长期存在的基本任务。MVS的目标是从多视点图像和相应的校准摄像机中恢复真实场景的三维点云。近年来,深度学习的广泛应用导致了端到端MVS深度估计网络的出现。一种流行的基于学习的方法MVSNet将来自不同摄像机视图的RGB信息编码为一个代价体,并预测用于点云重建的深度图。后续的全监督方法进一步改进了神经网络架构,降低了内存使用,并在几个基准测试集上具有最突出的深度估计性能。但那些方法严重依赖于监督真实的深度,这需要一个深度传感器来收集训练数据。它将这些方法限制在有限的数据集和主要的室内场景中。为了使MVS在更一般的现实场景中实用,考虑基于无监督学习的替代方法是至关重要的,这些方法可以提供与有监督的方法相比具有竞争力的精度,而不需要任何真实深度。
现有的无监督MVS方法基于光度一致性假设,该假设即属于同一三维点的像素在不同视图方向下具有相同的颜色属性。然而,在现实世界的环境中,如图2所示,遮挡,反射,非兰伯特面、不同的相机曝光和其它变量会使这种假设无效。因此,不准确匹配的点会导致错误的几何重建。虽然有学者提出使用语义线索来消除立体匹配中的歧义,但由于其高度依赖于预先训练的语义特征提取模型(带监督)的准确性,改进非常有限。为了消除与监督的不一致,在本文中,我们建议使用神经渲染来解决在视图依赖的光度效应和遮挡的情况下的模糊性。
最近,人们对新的视图合成越来越感兴趣,特别是随着神经辐射场的引入,它可以模拟依赖的光度效应的基于可微体素渲染的视图。虽然最初关注的是使用输入密集采样视图对每个场景优化,但后续方法建议使用二维CNN编码器,即使用很少的输入图像预测新的视图。除了视图依赖辐射来定义沿视图光线的颜色外,这些方法还学习体积密度,当合成光线时,体积密度可以解释为深度。值得注意的是,深度是以一种纯粹的无监督的方式来学习的。然而,由于主要目标是新的视图合成,从体积密度获得的深度往往是不准确的。在我们的方法中,我们提出体素渲染方法构建新的损失函数,可以解决视图依赖效应和遮挡,同时沿用MVS方法中使用的深度表示,以确保局部准确和平滑的深度预测。
为此,我们引入了RC-MVSNet,一种新的端到端可微分的无监督多视图立体视觉网络。结合视图依赖渲染和结构化深度表示的优点,我们的方法在竞争激烈的DTU数据集中实现了最先进的深度预测结果,并在坦克和寺庙数据集的超范围样本上展现了鲁棒性能。综上所述,我们的贡献如下:
- 我们提出了一种基于神经体素渲染的参考视图合成损失,以生成RGB监督,能够解释视图依赖的光度效应。
- 我们引入高斯-均匀混合采样来学习接近物体表面的几何特征,以克服现有的无监督MVS方法中存在的遮挡伪影。
- 我们引入了一种深度渲染一致性损失,通过深度先验来细化初始深度图,并确保预测的鲁棒性和平滑性。
2 相关工作
2.1 基于监督的MVS
许多监督方法已经提出使用CNN网络来预测RGB输入的深度图和深度图过滤来重建点云。大多数最先进的方法采用3D代价体。MVSNet作为一项具有代表性的工作,通过单应性变换将相机参数和特征编码为代价体,并通过三维CNN对体积进行正则化,以生成深度预测。之后有一些工作通过引入多阶段架构和从粗到细的方式学习深度预测,提高了MVSNet的性能和降低了内存消耗。此外,还有用卷积循环的GRU或LSTM单元代替了密集的三维卷积。然而,对真实深度的依赖限制了它们在特定数据集的应用,因此,探索无监督的方法是有必要的。
2.2 无监督和自监督MVS
端到端无监督和基于伪标签的多阶段自监督学习在三维视觉中起着关键的作用,特别是在多视图重建系统中。光度一致性的基本假设为无监督的MVS提供了可行性。例如,Unsupvised MVS提出了第一个基于端到端学习的无监督MVS框架:相邻视图用于测得深度反向变换成参考视图,并强制执行光度一致性和结构相似性(the structured similarity of image,SSIM)来最小化参考图像和变换后的图像之间的差异。JDACS提取的语义特征的交叉视图一致性,并通过非负矩阵分解对分割图进行监督。然而,它仍然需要一个预先训练的语义特征提取主干,且交叉视图语义一致性的收敛不稳定,无法提供可靠的监督。U-MVSNet采用流深一致性损失来解决有歧义的监督问题。利用密集的二维光流对应关系来生成具有不确定性感知一致性的伪标签,在一定程度上提高了监督能力。然而,这种方法不能以端到端的方式进行训练,因为它需要复杂的预训练和微调。Self-supervised CVP-MVSNet也提出通过无监督预训练出深度伪标签,然后进行迭代自监督训练来细化伪标签;但它仍然受到有歧义的监督影响。此外,这些无监督和自监督的方法缺乏一个遮挡感知模块学习来自的不同方向的特征,导致点云重建不完整。
相反,我们的简单但有效的模型通过参考视图合成损失直接学习场景的几何特征。这大大降低了训练的复杂性,并减轻了有歧义的光度监督。它还通过类似于NeRF的渲染,避免了由遮挡引起的问题。
2.3 多视图神经渲染
近年来,各种神经渲染方法被提出,主要集中于新视图合成的任务。特别是,神经辐射场用一个具有位置和方向的连续隐式函数表示场景用于高质量的视图合成;一些后续工作,提高了其效率和性能。NeRF也有一些扩展,它们引入了多视图信息,以增强视图合成的泛化能力。MVSNeRF提出利用平面扫描代价体,已广泛应用于多视图立体视觉和几何感知场景理解,并将其与体素渲染相结合,用于神经辐射场重建;然而,它不能在无监督的情况下产生高质量的深度预测。NerfingMVS使用SfM的稀疏深度点来学习完整的深度来指导NeRF的优化过程。我们的方法利用了精确的神经渲染和代价体的有效泛化能力,并提供了基于端到端无监督学习的精确深度估计,这超过了以往所有的无监督多视角立体视觉方法,并演示了室内对象和超范围的室外场景的精确重建。
3 实现方法
在本节中,我们描述了RC-MVSNet。给定N个图像作为输入,以及它们相应的相机的内参K和外参(R,T),我们的方法预测了在参考相机视图中的深度图。整个流程图如图3所示。
它由一个主干分支和一个辅助分支组成。主干建立在Cascade MVSNet基础上,它以从粗到细的方式预测深度图 。辅助分支建立在神经辐射场基础之上,除了几何图形之外,它也建模了与视图相关的场景外观。使用体素渲染,合成参考视图,并与输入图像进行比较,即使在视图依赖效应的情况下,也能产生准确的监督。为了保证网络分支之间的几何一致性,在引入了额外的深度渲染一致性损失,即使在遮挡的情况下也能获得更完整和准确的深度预测。请注意,在训练过程中,这两个分支同时进行优化,相互提供监督。在推理过程中,只使用主干网来进行深度预测。
3.1 无监督的MVS网络
主干网络密切遵循Cascade MVSNet架构。输入图像 ( I j ) j = 1 N (I_j) _{j=1}^N (Ij)j=1N最初使用一个共享的2D U-Net进行编码,从而生成像素级特征。然后,在参考相机的坐标系中构造了一个特征代价体。利用摄像机的内参和外参将每个代价体的体素位置投影到每个输入图像中,并通过双线性插值法查询像素特征。变换后的特征体 ( V j ) j = 1 N (V_j) _{j=1}^N (Vj)j=1N,通过计算特征方差,它们被跨视图融合成一个特征体C:
C = Var ( V 1 , ⋯ , V N ) = ∑ j = 1 N ( V j − V ˉ j ) 2 N ( 1 ) C=\operatorname{Var}\left(V_1, \cdots, V_N\right)=\frac{\sum_{j=1}^N\left(V_j-\bar{V}_j\right)^2}{N}~~~~(1) C=Var(V1,⋯,VN)=N∑j=1N(Vj−Vˉj)2 (1)
使用3D U-Net进一步细化了特征代价体C,最后以从粗到细的方式在参考视图中输出一个深度图。