【论文简述】Rethinking Disparity: A Depth Range Free Multi-View Stereo Based on Disparity(AAAI 2023)

一、论文简述

1. 第一作者:Qingsong Ya、Qingsong Yan

2. 发表年份:2023

3. 发表期刊:AAAI

4. 关键词:MVS、三维重建、视差、极线、流

5. 探索动机:现有的基于学习的多视图立体(MVS)方法依赖于深度范围来构建三维代价体,当深度范围过大或不可靠时可能会失败。通常,深度范围决定网络尝试去拟合的代价体的三维分布,并且代价体的大小受计算能力和存储能力的限制,导致这些方法很容易过拟合配置好的深度范围。下图显示了两种最先进的方法,当深度范围扩大时,GBiNet和IterMVS的性能会急剧下降。原因是这些方法不能用固定数量的深度值捕获足够的匹配信息。

6. 工作目标:通过极线视差解决上述问题。

7. 核心思想:We propose a new MVS pipeline, which allows the CNN to focus only on the matching problem between two different views and relies on the multi-view geometry to recover the depth by matching results.

  1. Instead of constructing the 3D cost volume, this paper only constructs the 2D cost volume to match pixels between each pair and generates the depth map by triangulation. In other words, DispMVS exploits the multi-view geometry to reduce the burden of networks, which does not rely on the computationally expensive 3D cost volume to estimate the depth.
  2. We redesign the flow to deal with the multi-view stereo matching without applying stereo rectification for each pair. First, we propose the epipolar disparity flow (Eflow) and reveal the relationship between the E-flow and the depth. Then we extend E-flow from two-view to multi-view and iteratively update the E-flow by a fused depth to maintain multi-view consistency.

8. 实验结果:

DispMVS achieves the state-of-the-art result on the DTUMVS and Tanks&Temple without the 3D cost volume, demonstrating the effectiveness of combining multi-view geometry with a learning-based approach.

9.论文下载:

https://arxiv.org/pdf/2211.16905.pdf

二、实现过程

1. 流和深度

给定一个参考视图r和一个源视图s及其内参矩阵Kr,Ks和它们的相对外参[Rs,Ts],定义dr,ds为深度,frs,fsr表示每个视图的流。假设场景是静态的,可以根据多视图几何将深度转换为流,反之亦然。

深度。描述图像的三维形状,可以将图像平面上的像素重新投影到三维空间。式1将r中的像素pr通过其深度dr(pr)重新投影到3D中的Ppr,其中p~r为pr的齐次表示,以提高计算效率。Ppr也可以通过式2投影到s。

。流描述了两个图像之间图像平面上像素的移动。对于匹配的像素r中的pr和s中的ps,由式3计算得到流frs。通常,流不需要遵循几何约束,并且具有两个自由度。

深度到流。式4显示了如何将dr(pr)转换为fr(pr)。首先通过dr(pr)将pr重新投影到Ppr,然后投影Ppr到s得到匹配像素ps,最后计算出frs(pr)。

流到深度。虽然三角测量是一种直接的方法将fr转换为dr,但它必须解一个不可微的齐次线性函数。考虑到这一点,使用一个可微的封闭形式的解来计算深度,即使它不是最优的。已知pr和frs(pr),可由式3求出ps。基于多视图几何一致性,得到式5中的约束:

由式6可知,深度的计算方法有dxr(pr)和dyr(pr)两种,因为frs(pr)是二维矢量,提供x维fxrxs(pr)和y维fyrys(pr)的流。理论上,dxr(pr)等于dyr(pr)。然而,较小的流在数值上并不稳定,并且会给三角剖分带来噪声。因此,根据公式7选择由较大流三角化的深度:

2. E-flow:极线视差流

流描述了图像平面上像素的运动,但不服从极线几何,这在三角测量深度时引入了模糊性。因此,使用极线几何来抑制流,并通过式8定义极线视差流(E-flow),其中edir为极线的归一化方向向量,·为向量的点积。

E-flow和Flow。与Flow相比,E-flow是一个标量,只在极线上移动。在静态场景中,flow和E-flow是描述像素运动的两种不同方式,它们的关系如式9:

下图显示了像素pr的flow frs(pr)和E-flow ers(pr)的关系。在r中画出ps来可视化E-flow和Flow。dpr是pr的深度,frs(pr)和ers(pr)表示pr的移动方式。在静态场景中,dpr、frs(pr)和ers(pr)是相互关联的,可以基于多视图几何相互转换。

E-flow和深度。考虑到E-flow与flow的关系,以及flow与深度的关系,可以通过式10将E-flow转换为深度,反之亦然。 

3. DispMVS

给定参考图像r和N个源图像si,DispMVS首先从所有输入图像中提取特征,然后从随机初始化中迭代更新深度。DispMVS分别通过2D代价体估计每对的E-flow,并通过加权和将E-flow转换为深度,用于后续的多视图深度融合。下图为DispMVS在粗阶段第一次迭代的流程。

特征提取。基于RAFT的特征提取,使用两个相同的编码器从输入图像中提取特征。一个编码器同时从输入图像中提取匹配特征来计算相似度。同时,另一个编码器从参考图像中提取上下文特征,迭代更新E-flow。因为采用了从粗到精的策略来提高效率和精度,这些编码器使用UNet结构来提取粗特征特征cr,csi,粗阶段Csi分辨率为1/16,精细阶段分辨率为1/4的fr,fsi。此外,还使用了可变形卷积网络在解码器部分捕获有价值的信息。

E-flow的初始化。DispMVS依赖于E-flow来估计深度,因此需要一个初始深度作为起始点。采用PatchMatch的初始化策略并使用式11初始化dr,0,其中rand来源于正态分布,(dmin,dmax)是深度范围的下界和上界。有dr,0时,DispMVS可以通过式10对E-flow进行初始化。第一次迭代是0。

E-flow估计。初始化后,DispMVS通过GRU模块估计每对(r,si)的esi。对于pr和粗特征cr(pr), DispMVS使用ersi(pr)找到si上的匹配点psi,并从csi(ps)中采样特征。为了增加感受野,DispMVS在csi上应用ms的平均池化来生成不同尺度的特征,并在psi,t周围沿极线均匀采样mp个点,每个尺度的采样距离为1像素。然后,DispMVS通过式12计算cr(pr)和csi的和mp×ms特征之间的相似性,构建2D代价体。最后,DispMVS将代价体和ersi(pr)输入至GRU模块,以估算新的ersi(pr)和权重wsi(pr)。在DispMVS中,粗阶段设置ms=4,mp=9,精细阶段ms=2,Mp=5。

下图比较了两种不同的采样空间。(a)为现有方法的采样空间,这些方法在三维空间中均匀采样以构建三维代价体体。(b)为DispMVS的采样空间,它在每个源图像平面上均匀采样,并通过三角测量估计深度,其分布由源图像的相对位姿决定。

多视图E-flow估计。E-flow由于只适用于两个视图,DispMVS利用加权和将流扩展到多视图情况。DispMVS通过式10将ersi转换为drsi,然后通过式13对dr进行融合,其中wsi通过softmax进行归一化。值得注意的是,DispMVS迭代重建深度,这意味着深度和E-flow之间有多次转换,从而进一步提高了多视图一致性。

从粗到细的策略。DispMVS在粗糙阶段使用cr、csi迭代tc次,在精细阶段fr、fsi迭代f次。DispMVS在粗阶段的随机深度开始,然后向上采样将粗的深度改为细阶段进行后续改进。通常,DispMVS需要更多的tc和更少的tf来提高效率和准确性。

损失函数。由于DispMVS在每次迭代中输出一个深度,计算所有深度图的l1损失以加快收敛速度。为了提高训练过程的稳定性,使用逆深度范围对真值(gt)和深度dri进行归一化。下式为损失函数,其中γ=0.9:

4. 实验

4.1.  实现细节

训练过程在两台V100上完成。

4.2. 与先进技术的比较

5. 限制

由于DispMVS在迭代过程中需要不断构建二维代价体,其计算效率相对较低。在实验中,DispMVS大约需要0.7秒来处理DTUMVS上的视图。相比之下,IterMVS每视图只需要大约0.3秒,而DispMVS需要更有效的极线匹配模块。此外,DispMVS训练时需要大约48G GPU内存,因为DispMVS需要多次迭代GRU模块来更新深度,GRU模块需要保存所有梯度和中间结果。

猜你喜欢

转载自blog.csdn.net/qq_43307074/article/details/131858829