RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)

RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)

    • 摘要
    • 1 引言
    • 2 相关工作
      • 2.1 基于监督的MVS
      • 2.2 无监督和自监督MVS
      • 2.3 多视图神经渲染
    • 3 实现方法
      • 3.1 无监督的MVS网络
      • 3.2 参考试图合成
      • 3.3 深度渲染一致性

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所示,遮挡,反射,非兰伯特面、不同的相机曝光和其它变量会使这种假设无效。因此,不准确匹配的点会导致错误的几何重建。虽然有学者提出使用语义线索来消除立体匹配中的歧义,但由于其高度依赖于预先训练的语义特征提取模型(带监督)的准确性,改进非常有限。为了消除与监督的不一致,在本文中,我们建议使用神经渲染来解决在视图依赖的光度效应和遮挡的情况下的模糊性

RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)_第1张图片
最近,人们对新的视图合成越来越感兴趣,特别是随着神经辐射场的引入,它可以模拟依赖的光度效应的基于可微体素渲染的视图。虽然最初关注的是使用输入密集采样视图对每个场景优化,但后续方法建议使用二维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所示。
RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)_第2张图片

它由一个主干分支和一个辅助分支组成。主干建立在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)=Nj=1N(VjVˉj)2    (1)
使用3D U-Net进一步细化特征代价体C,最后以从粗到细的方式在参考视图中输出一个深度图。

光度一致性
为了监督在没有任何真实深度的情况下的深度图预测,现有方法强制参考图和其他源输入视图之间的光度一致性。其关键思想是在被变换到参考视图后,将参考图像 I 1 I_1 I1和任何源图像 I j I_j Ij之间的相似性最大化。给定相应的内参K参考视图到源视图的相对转换T,以及参考视图中预测的深度图D,我们通过逆变换将参考图像中的任何像素pi(齐次符号)变换到源图像
p ^ i = K T ( D s ( p i ) ⋅ K − 1 p i )      ( 2 ) \widehat{p}_i =KT(D_s(p_i)·K^{-1}p_i)~~~~(2) p i=KT(Ds(pi)K1pi)    (2)
通过在变换后的像素位置 p ^ i \widehat{p}_i p i对源图像的颜色值进行双向采样,即 I ^ 1 j ( p i ) = I j ( p ^ i ) \widehat{I}_1^j(p_i)=Ij(\widehat{p}_i) I 1j(pi)=Ij(p i),从而获得第j个新参考图像 I ^ 1 j \widehat{I}_1^j I 1j。除了获得新参考图像 I ^ 1 j \widehat{I}_1^j I 1j之外,还生成了一个二值掩模 M j M_j Mj,掩盖了投影在源图像边界之外的无效像素。在无监督的MVS系统中,所有的N−1源视图都被逆变换成参考视图来计算光度一致性损失:
L P C = ∑ j = 2 N 1 ∥ M j ∥ 1 ( ∥ ( I ^ 1 j − I 1 ) ⊙ M j ∥ 2 + ∥ ( ∇ I ^ 1 j − ∇ I 1 ) ⊙ M j ∥ 2 )      ( 3 ) \mathcal{L}_{P C}=\sum_{j=2}^N \frac{1}{\left\|M_j\right\|_1}\left(\left\|\left(\hat{I}_1^j-I_1\right) \odot M_j\right\|_2+\left\|\left(\nabla \hat{I}_1^j-\nabla I_1\right) \odot M_j\right\|_2\right)~~~~(3) LPC=j=2NMj11( (I^1jI1)Mj 2+ (I^1jI1)Mj 2)    (3)
这里,∇表示像素级梯度,⊙表示像素级乘积。

3.2 参考试图合成

光度一致性假设不同输入视图之间的像素颜色一致,而这在反射材料中常见的视图依赖效应并不成立。此外,如果参考视图中的某些像素在匹配的源视图中被遮挡,则会强制执行不正确的颜色相似性。为了解决这些缺点,而不是使用容易出错的源图像变换,我们建议使用神经辐射场合成源图像的参考视图,通过网络学习如何处理视角依赖效应和遮挡

隐式神经体结构
与主干分支的代价体C类似,隐式神经体积 C’ 也通过计算特征方差构造,如等式 (1)中定义。但是,由于我们希望仅使用从源视图中获得的信息来合成参考视图,因此我们从变换后的体积 ( V j ) j = 2 N (V_j)_{j=2}^N (Vj)j=2N中计算方差体 C’ ,而不使用参考特征体积 V 1 V_1 V1。因此,我们收集了N−1个源视图的特征,并应用3D U-Net U(·) 来学习隐式神经体F,我们将其表示为F=U(C’)。

点特征聚合
要恢复场景的几何图形和外观,从参考照相机中心沿 ϕ ϕ ϕ 的方向发射光线。对于沿射线的每个点 q ∈ R q \in \mathbb{R} qR,我们通过双周期采样源图像查询RGB值 ℓ = ( I j [ x j , y j ] ) j = 2 N ℓ= (I_j[x_j, y_j])_{j=2}^N =(Ij[xj,yj])j=2N,其中 x j 和 y j x_j和y_j xjyj表示点q的二维位置。除了这些性质外,我们还通过在位置q处的三线性插值,从隐式神经体F中获得了一个神经特征f = F (q)。这些神经特征克服了传统的神经辐射场方法的糟糕泛化性,该方法需要对每个场景进行训练或微调,通过从几何感知的代价体回归属性,例如,在我们的例子中是隐式的神经体。这提高了我们的方法在与不同训练集上的鲁棒性。这些输入特征被连接到点特征中,我们使用多层感知机MLP M(·)将这些特征转换为预测的体密度 σ 和颜色 c = [r,g,b]。整个过程可以概括为:
σ , c = M ( q , ϕ , f , ℓ )      ( 4 ) σ,c = M(q,ϕ,f,ℓ)~~~~(4) σ,c=M(q,ϕ,f,)    (4)

[4] Chen, A., Xu, Z., Zhao, F., Zhang, X., Xiang, F., Yu, J., Su, H.: Mvsnerf: Fast generalizable radiance field reconstruction from multi-view stereo. arXiv preprint arXiv:2103.15595 (2021) 3, 5, 7, 8, 23
[15] Mildenhall, B., Srinivasan, P.P., Tancik, M., Barron, J.T., Ramamoorthi, R., Ng, R.: Nerf: Representing scenes as neural radiance fields for view synthesis. In: European conference on computer vision. pp. 405–421. Springer (2020) 3, 4, 7, 8, 23
[17] Roessle, B., Barron, J.T., Mildenhall, B., Srinivasan, P.P., Nießner, M.: Dense depth priors for neural radiance fields from sparse input views. arXiv preprint arXiv:2112.03288 (2021) 7

根据之前的工作[4,15,17],我们使用位置编码对位置q和方向d进行编码。

参考视图合成损失
在NeRF中,我们沿着相机射线 r ( t ) = o + t ϕ r (t) =o+tϕ r(t)=o+采样K个候选点,其中o是相机原点,ϕ是像素的观察方向。对于从近到远平面范围内的样本距离 t k ( t n ≤ t k ≤ t f ) t_k(t_n≤t_k≤t_f) tktntktf,我们查询相应的密度 σ k σ_k σk和颜色 c k c_k ck。要计算像素级的颜色 C ^ ( r ) \widehat{C}(r) C (r),颜色值沿光线 r ( t ) r (t) r(t)积分:
C ^ ( r ) = ∑ k = 1 K w k c k      ( 5 ) \hat{\mathbf{C}}(\mathbf{r})=\sum_{k=1}^K w_k c_k~~~~(5) C^(r)=k=1Kwkck    (5)
这里 w k = T k ( 1 − e x p ( − σ k δ k ) ) w_k = T_k(1−exp(−σ_kδ_k)) wk=Tk(1exp(σkδk))为积分权值,其中 δ k = t k + 1 − t k δ_k = t_{k+1}−t_k δk=tk+1tk为相邻采样位置之间的间隔, T k T_k Tk表示从 t n t_n tn t f t_f tf的透光率累积:
T k = exp ⁡ ( − ∑ k ′ = 1 k σ k ′ δ k ′ )      ( 6 ) T_k=\exp \left(-\sum_{k^{\prime}=1}^k \sigma_{k^{\prime}} \delta_{k^{\prime}}\right)~~~~(6) Tk=exp(k=1kσkδk)    (6)
在等式(5)中优化辐射场颜色输出 C ^ \hat{\mathbf{C}} C^,即在参考视图中的一个像素(x、y)的合成RGB值,采用由均方误差组成的渲染一致性损失 L R C \mathcal{L}_{RC} LRC
L R C = ∥ C ^ ( r ) − C ( r ) ∥ 2 2      ( 7 ) \mathcal{L}_{R C}=\|\hat{\mathbf{C}}(\mathbf{r})-\mathbf{C}(\mathbf{r})\|_2^2~~~~(7) LRC=C^(r)C(r)22    (7)
这里的 C ( r ) \mathbf{C(r)} C(r)是指参考图像 I 1 I_1 I1中的像素颜色 I 1 [ x , y ] I_1[x,y] I1[x,y]

3.3 深度渲染一致性

使用辅助渲染分支和渲染一致性损失显著提高了无监督深度预测的质量。这是通过对两个分支的联合训练和优化一个共享的二维图像编码器而得到的结果。为了进一步优化渲染一致性和改进无监督深度预测,我们还应用了高斯-均匀混合采样和深度渲染一致性损失,提高了两个网络分支的有效性。

高斯均匀混合物采样
在等式(5)中沿光线采样点进行体素渲染,现有方法将 [ t n , t f ] [t_n, t_f ] [tn,tf]划分为K个均匀分布的子区间:
t k ∼ U [ t n + k − 1 K ( t f − t n ) , t n + k K ( t f − t n ) ]      ( 8 ) t_k \sim \mathcal{U}\left[t_n+\frac{k-1}{K}\left(t_f-t_n\right), t_n+\frac{k}{K}\left(t_f-t_n\right)\right]~~~~(8) tkU[tn+Kk1(tftn),tn+Kk(tftn)]    (8)
这种采样策略是低效的,而且也独立于主干分支的深度预测。我们建议在预测深度图D的深度先验指导下,按照高斯分布对候选点进行采样,如图4所示。假设一个像素p =(x, y)的预测深度为 z p = D ( x , y ) z_p = D(x,y) zp=D(xy),我们使用以下分布对候选样本距离进行采样样:
$$
t_k \sim \mathcal{N}(z_p, s_p^2) ~~~~
\

$$

你可能感兴趣的:(MVS论文笔记,论文阅读,图像处理,python,三维重建)