CasMVSNet理解

Cascade Cost Volume for High-Resolution Multi-View Stereo

  • 一、整体结构
  • 二、特征金字塔
  • 三、单应性变换
  • 四、代价体
  • 五、损失函数Loss

一、整体结构

CasMVSNet理解_第1张图片

1.输入图像经过特征金字塔得到不同尺寸的特征图;
2.从小尺寸的特征图开始,进行单应性变换构建代价体,再使用方差聚合为一个统一的代价体,之后用三维卷积聚集代价体上下文信息并正则化噪声污染,最后回归得到深度图(这一步过程大致和MVSNet相同);
3.根据当前得到的深度图,找到合适的深度采样区间,将其作为下一尺度单应性变换的深度采样参考,以此缩小预设深度区间,有效减少深度采样数,之后的步骤与步骤2相同;
4.再第三个尺度上重复步骤三,再次缩小深度范围,得到最终的深度图。

优点:自适应的深度采样确保了计算和内存资源用在更有意义的区域上,可以显著减少计算时间和GPU内存消耗。

二、特征金字塔

将级联成本体应用于MVSNet时,从特征金字塔网络的特征映射{P1,P2,P3}构建了三个成本量。它们对应的空间分辨率是输入图像大小的{1/16,1/4,1}。

三、单应性变换

MVSNet单应性变换推导
在这里插入图片描述

四、代价体

目的:构造三维代价体来度量相应图像块之间的相似度并判断它们是否匹配。

构建三维代价体的主要步骤:
1)假设离散的深度平面。
2)将每个视图提取的特征图变换到假设平面上,构造特征体;
3)将不同视角的特征体融合在一起,形成三维代价体。

一个标准的代价体如下图,体积为W x H x D x F, 其中W× H为空间分辨率,D为平面假设数,I为平面间隔,F为特征图通道数。
CasMVSNet理解_第2张图片

1)深度范围假设:
由R1表示的第一阶段的深度(或视差)范围覆盖了输入场景的整个深度(或视差)范围。在接下来的阶段中,根据前一阶段的预测结果,缩小假设范围。
Rk+1=Rk·wk
其中,Rk是第k阶段的假设范围,wk<1是假设范围的折减因子。
CasMVSNet理解_第3张图片
2)平面间隔假设:
假设第一阶段的深度(或视差)间隔为I1。与通常采用的成本体相比,初始假设平面间隔相对较大,以生成粗略的深度(或视差)估计。在接下来的阶段中,应用更精细的假设平面间隔来恢复更详细的输出。因此,得到:Ik+1=Ik·pk,其中Ik是第k阶段的假设平面间隔,pk<1是假设平面间隔的折减因子。
3)平面数假设:
第k阶段的假设平面数,给定假设范围Rk和假设平面间隔Ik,相应的假设平面数Dk由方程Dk=Rk/Ik确定。当成本体积的空间分辨率固定时,较大的Dk生成更多的假设平面和相应的更精确的结果,同时导致GPU内存和运行时间增加。在级联公式的基础上,可以有效地减少假设平面的总数,因为假设范围被逐步缩小,同时仍然覆盖整个输出范围。
4)空间分辨率:
由于每个阶段特征金字塔网络输出的特征图尺寸加倍,因此将每个阶段代价体的空间分辨率加倍。
将N定义为级联代价体积的总阶数(在网络中N=3),那么第k阶代价体的空间分辨率为:
在这里插入图片描述

此时的单应性变换矩阵为:
在这里插入图片描述
其中,dmk表示在第k级处的第m像素的预测深度,∆mk+1是要在k+1阶段学习的第m像素的剩余深度。即,用不同的∆构造更多(或更精细)的深度平面。

五、损失函数Loss

在这里插入图片描述
式中,Lk指第k阶段的损失,λk为其相应的权重。

你可能感兴趣的:(MVS-DL,深度学习,计算机视觉,三维重建,CasMVSNet,MVS)