Efficient Multi-view Stereo by Iterative Dynamic Cost Volume

Efficient Multi-view Stereo by Iterative Dynamic Cost Volume:基于迭代动态代价体积的高效多视图立体

摘要:本文提出了一种新的多视点立体视觉迭代动态代价体积。使用基于二维卷积的GRU进行处理,GRU的每一步输出都可以进一步用于产生新的成本量。通过这种方式,构建了一个迭代的基于GRU的优化器。此外,还提出了一种级联和分层的细化结构,以利用多尺度信息,加快收敛速度。目标是提高高分辨率MVS的计算速度和减少内存消耗,并保证较高的重建质量。

创新:该方法的核心思想是构造一个轻量级的、动态的成本量,并以迭代的方式进行处理。
1、提出了一种新的动态代价体积,它是非常轻量级的,可以通过基于二维卷积的GRU迭代处理。这样,避免了大容量静态开销体积的内存和时间消耗问题。
2、提出了一种级联和分层的细化结构,利用多尺度信息,加快收敛速度。首先通过轻量级的3D CNN,为gru提供了可靠的初始化,这对快速收敛和最终性能至关重要。

1、网络结构

方法由多尺度特征提取器和基于GRU的优化器组成。更具体地说,基于GRU的优化器包括一个动态成本卷构造函数和一个GRU模块。与以往的许多工作不同,动态成本量不仅可以聚合几何信息,还可以聚合上下文和深度信息。更重要的是,它是由GRU以迭代的方式处理。具体来说,在每个更新步骤中,首先构造一个建议的动态成本卷,然后通过GRU更新深度图。此外,还提出了一种级联和分层的细化体系结构,以利用多尺度信息,加快收敛速度。具体而言,利用轻量级3D CNN生成最粗深度图,可作为下一个GRU的可靠初始化。在此基础上,对深度图进行多级GRU优化。值得注意的是,在每个阶段k,给定初始深度图Dk0,本文提出的基于GRU的优化器可以迭代更新多次,并输出最终的深度图。 框架如下图所示
在这里插入图片描述
提取多尺度特征,构建初级代价体;
输入至初始深度值预测模块,利用轻量级的3D CNN估计初始深度图;
利用深度图估计新的深度范围,构造局部代价体;
利用几何特征(局部体)、深度特征(深度图)、上下文特征(参考图)构建动态代价体;
输入迭代GRU模块,采用多尺度级联的GRU结构对多尺度信息进行聚合,更新深度图;
循环以上结构,进行多阶段多次迭代。

2、多尺度特征提取器

大小为W × H的输入图像由参考图像I0和N−1个源图像组成。利用特征金字塔网络(FPN),从N个输入图像中提取多尺度特征,特征图的金字塔有3个比例尺阶段k = 0,1,2。分辨率分别为原始图像的1/8、1/4、1/2。用一个额外的FPN网络处理参考图像,为我们基于gru的优化器提取多尺度上下文特征和初始隐藏状态。

3、动态代价体

将几何特征、深度特征和上下文特征聚合起来构建动态成本体积,分别从局部代价体积、深度特征和参考图像中提取几何特征、深度特征和上下文特征。更重要的是,得益于迭代策略,可以在一个较窄的反向深度范围内更新深度假设,从而在每次迭代中构建局部代价量,这使得动态代价量比静态代价量轻得多。下图可以看出局部代价体是利用上一次迭代的深度图估计的深度范围得到的局部代价体,经过二维卷积后得到几何特征,通过上一次的深度图进行卷积得到深度特征,参考图像经过上下文提取网络得到文本特征,拼接之后得到动态代价体。
在这里插入图片描述

3.1局部代价体

与MVSNet一样,给定参考视图的深度假设dj={1,…,D}中,利用可微单应性变化,通过方差构建局部代价体,表示参考特征和源特征之间的相关性。对于阶段k和迭代t的每个像素p,统一在反向深度范围Rk中采样Dk深度假设:在这里插入图片描述
Im表示最小深度假设平面间隔。Dt−1k 为t−1次迭代中更新的深度图。为了用二维CNN处理局部代价体,并将其与上下文和深度信息融合,我们取消了深度维度,并沿着通道维度连接代价图。因此,与MVSNet不同,该局部代价体的形状是CL∈RW×H×(C×D),其中C和D分别表示通道维度和深度维度。

3.2特征聚合

在每次迭代t中,使用两个轻量级提取器从局部代价体和深度图Dt−1k 中提取几何特征和深度特征,该提取器由两个二维卷积层组成。上下文特征来源于多尺度上下文特征提取器,每个阶段只需要提取一次。为了构建最终的动态代价体C,首先利用二维卷积层处理几何特征和深度特征的连接。然后,将输出与上下文特征连接起来,形成动态代价体。所有的连接操作都在通道维度中执行。

4、多阶段GRUs

动态代价体由GRU以迭代的方式处理,由上图可以看出是多阶段结构,该方法将动态成本体积构建在金字塔特征图上,并分别由多尺度GRU处理。具体来说,优化模块在每个阶段k更新深度图Tk次,并输出一组更新量Δdtk,其中t为1 ~ Tk。在每次迭代t中,输入深度图Dt−1k ,通过Dtk =Dt−1k + Δdk更新,然后作为下一次迭代t + 1的输入。更重要的是,每一阶段最后一次迭代的深度图DTk k将被上采样到DTk+1 k,作为下一阶段的初始深度图D0k+1
如图所示,每次迭代后深度图的质量都有明显的提高。在这里插入图片描述

4.1初始深度预测

基于GRU的优化模块根据局部空间信息更新深度值,使其对初始深度值敏感。由于MVS中普遍存在纹理薄弱区域和相似区域的问题,不可靠的初始深度图会使基于GRU的优化更容易输出错误的深度值。因此,提出了初始深度值预测模块,在最粗阶段预测可靠的初始深度值。
通过成本体积构建、3D CNN正则化和回归三个模块来预测概率体积Pd和相应的深度图。在MVSNet的工作之后,建立了一个很小的成本量,它由稀疏深度假设组成,但包含足够大的逆深度范围。然后,利用一个轻量级的3D CNN对代价体积进行正则化,得到每个深度假设d对应的概率体积Pd。最后,用soft argmin回归初始深度图Dinit:
在这里插入图片描述

初始深度预测模块的结构图
在这里插入图片描述

4.2GRU公式

设计了一个GRU模块来更新深度图,公式如下,下图公式与普通GRU的公式定义类似。
在这里插入图片描述

5、损失函数

在训练阶段, 不同的迭代步骤从初始深度预测模块和基于GRU的多阶段优化模块中输出两组深度图。我们用相应分辨率的地面真相深度图计算所有输出深度图上的L1损失。因此,最终损失是所有损失的加权和:在这里插入图片描述
其中Linit是初始深度预测模块获得的初始深度图的损失。Tk为第k阶段的优化迭代次数。{Li k |i = 1…T~k + 1}为Tk输出深度图和k阶段上采样深度图的损失,λki~为相应的权值。

猜你喜欢

转载自blog.csdn.net/qq_44708206/article/details/129054313