P-MVSNet学习

P-MVSNet: Learning Patch-wise Matching Confidence Aggregation
for Multi-View Stereo–学习多视图立体的逐块匹配置信度聚合
本文的创新点
1、提出了基于区域匹配置信的代价体,通过学习的方式将每个假想面上的特征匹配置信聚合变为一个向量,从而提高立体匹配的准确度。
2、代价体在深度和空间方向应该都是各向异性的,hybrid 3D U-Net:混合了各向异性和各向同性的卷积网络,预测深度假设分布和深度图。

P-MVSNet是一种端到端的深度学习神经网络,它包括权重共享图像特征提取器、逐块匹配置信度聚合模块、基于混合3D U-Net的深度图推理网络以及改进估计深度图空间分辨率的细化结构。总体架构图如下
P-MVSNet学习_第1张图片
1、特征提取
特征提取分为两个层级:L1和L2。L1层级只作用于参考图像,通过一个3D的编码解码器,抽象出的L1特征,用于最终指导形成高分辨率的深度图。L2层级则作用于所有图像,通过3D编码器提取特征。L2层级的特征图将用于以相对较小的空间分辨率构建匹配置信体积(MCV)。
输出的Channel都变为16维,l2尺寸缩小1/4,l1尺寸缩小1/2。

2、学习逐块匹配置信度
首先对L2特征图(N个)根据平面扫描,可微的单应性变换构建特征体,该步骤和MVSNet的操作是相同的,**从源视角到参考视角的像素坐标对应点的计算过程,可以用单应性矩阵来描述。**连接变换后的特征Vi(d)和第i个视角图像特征Fi的是与参考相机视角下深度d相关的仿射变换。每个特征图上的像素点可以投影到参考图的视角下对应深度的平面上,N个特征图投影到参考图像下的若干平行平面构成了N个特征体。
像素的匹配置信(类似于cost volume)通过标准的平面扫描立体方法建立,定义为M=M(d,p,c),代表了第C个特征通道在特征图F0以及临近的特征图中像素P的匹配置信。与MVSNet的计算是类似的。在深度维度,每一个单位表示一个深度值,比较对应点的特征相似程度,相似度越高,说明这个平面对应的深度越接近真实深度
P-MVSNet学习_第2张图片

然后通过网络将pixel-wise MCV转换为patch-wise MCV(增加鲁棒性和准确度)。计算了像素的匹配置信后,我们通过学习的方式来计算区域匹配置信。该学习过程可以用两个公式来表示,该过程中,将像素p在深度区间d所对应的区域置信体定义为M*=M*(d,p,c)。
计算过程如公式2所示:

在这里插入图片描述
Ω1(﹒)定义为在假想平面以p为中心的3*3区域,Ω2(﹒)则定义为相邻的三个假象平面的集合。ρ1、ρ2、ρ3则是一些可学函数,ρ1​: 1×1×1 3D卷积+BN+ReLU,只关注p这一点的多通道匹配置信度聚合;ρ2​: 3×3×3 3D卷积+BN+ReLU,在相邻像素区域w1​融合匹配信息;ρ3​: 3×3×3 3D卷积+BN,在多patch中聚合matching confidence。最后,文章使用Tanh来正则化置信体。
使用了可学习的分段聚合函数,每个假设平面上每个像素的聚合特征匹配置信度是一个向量而不是标量,并且每个特征通道的权重都会自动调整,这可以提高对噪声数据的匹配鲁棒性和准确性

3、获得概率体

M*会输入混合3D U-Net中,得到潜在的概率体,定义为V2,表示F0的每个像素沿深度方向的潜在概率分布
混合3D U-Net由几个各向异性和各向同性3D卷积块以及深度聚集层组成,在浅层上,我们使用两种各向异性卷积,其核大小分别为1×3×3和7×1×1。1×3×3形状的计算块专注于融合每个采样假想平面上的信息,而7×1×1形状的3D卷积层可以在深度方向上扩大感受野,以相对较低的计算成本利用全局信息。在深层和输出层,我们使用各向同性3×3×3形状的3D卷积来融合更多的上下文信息。结构图如下
P-MVSNet学习_第3张图片
得到潜在概率体V2后,文章采用了类似于MVSNet中计算深度图的方式,通过softMax操作来从潜在概率体V2中计算最终预测深度图的概率体P2。最终每个像素的深度是通过将每个深度d通过P2加权平均取得。计算公式如图所示:
在这里插入图片描述
以上计算的深度记为DL2深度,对应之前的L2特征层级,但因为在实际中,L2层级往往是低分辨率的。
所以本文同时计算了DL1深度,将F′0和上采样的V2连接为(C+Z)通道输入,将其转发到(C+Z)通道2D卷积层和两个Z通道2D卷积层,以获得潜在概率体积V1、Pi1和DL1。

4、损失函数
Loss方程使用的是真实值和预测值之间的绝对误差,同时考虑了Dl1和Dl2两个方面,公式如下:P-MVSNet学习_第4张图片

5、点云重建
在通过轮流将每个输入图像作为参考图像从所提出的P-MVSNet推断出一组N个原始深度图之后,引入了两个过滤准则来丢弃错误预测的深度值:1)深度置信准则来去除明显不可信的预测,2)深度一致准则来丢弃相邻图像中不一致的深度值。
关于1)的具体解决方法: Depth-confidence,通过概率体在深度维度构建confidence map,而且利用了之前的两种分辨率的信息,最终在L1级别的confidence map上滤除置信度小于0.5的点。
2):Depth-consistency,按p的预测深度d§把它投影到另一张图的p’上,再按照d(p’)投回来,如果误差小于0.5(文中设定)则认为满足一致性,至少要做到ref跟两张src的一致性才通过测试。

你可能感兴趣的:(mvsnet系列,学习,深度学习,计算机视觉)