Advertisement

论文阅读《Multi-View Depth Estimation by Fusing Single-View Depth Probability with Multi-View Geometry》

阅读量:

论文提出了一种融合单视图深度概率与多视图几何信息的新框架(Monocular and Geometric Network: MaGNet),用于提升深度估计的准确性。该框架通过概率采样策略生成深度假设值,并结合多视图一致性权重进行匹配,同时迭代优化单视图深度概率分布。实验结果表明,该方法在深度估计和不确定性预测方面表现优异,显著优于现有方法。论文还提供了模型架构图和相关代码实现。

论文链接:https://arxiv.org/abs/2112.08177,源码链接:https://github.com/baegwangbin/MaGNet


概述

出发点

多视角匹配代价体的构建在显存资源上造成显著的消耗。在无或弱纹理区域、反射表面以及运动物体等特定场景下,单目深度估计的效果显著优于其他方法。为此,本文提出了一种创新的深度估计框架,命名为Monocular and Geometric Network : MaGNet。该框架通过预测单视图的深度概率分布,并将其参数化为像素级别的高斯分布,从而实现对深度信息的精细刻画。在深度估计过程中,MaGNet采用参考帧估计的深度分布作为采样依据,以生成潜在的深度假设值。这种基于概率的采样策略,能够在保持较少的深度假设数量的同时,显著提升估计精度。此外,本文提出了一种基于深度一致性加权的多视图匹配得分方法,以确保多视图深度估计结果与单视图预测结果保持一致。

Probabilistic depth sampling(基于概率分布的深度值采样):主要依据单目估计结果提取深度概率分布,通过该分布推导出深度假设值;Depth consistency weighting for multi-view matching(多视图深度一致性权重):基于单视图深度概率分布推导多视图匹配权重,并对多视图匹配结果进行加权处理;Iterative refinement(迭代优化策略):基于概率分布构建的深度假设体与多视图一致性权重构建得到紧凑的初始匹配代价体。当单视图的深度概率分布存在误差导致无法采样得到深度假设值时,提出了基于迭代优化的策略。该策略将更新后的概率分布作为反馈返回至概率深度采样模块,从而提高概率分布的准确性。

主要包含以下几个步骤

  1. 预测单帧图像的深度概率分布,并将其参数化为高斯分布;
  2. 通过预测的深度概率分布对参考图像的每个像素进行采样,生成深度假设值;
  3. 利用深度假设值和相机参数将参考帧的特征映射到邻域帧,并通过点积计算匹配代价;
  4. 将相邻视图对的匹配分数乘以基于单视图深度概率推断出的二元深度一致性权重;
  5. 通过代价体正则化处理后的匹配代价体,得到匹配概率体;
  6. 重复执行步骤2至5,以逐步提高精度;

利用该方法,输出结果为逐像素深度概率分布图,从中可以得出期望值和相关的不确定性。


模型架构

在这里插入图片描述

模型旨在预测参考帧 I_t 在时间 t 的深度图,输入包括一段连续时间内的多帧图像 \mathcal{W}_{t}=\left\{I_{t-2 \Delta t}, I_{t-\Delta t}, I_{t}, I_{t+\Delta t}, I_{t+2 \Delta t}\right\} 以及相机参数,如图2所示。整个过程主要包含以下步骤:首先,对每帧图像进行特征提取和深度概率分布预测;其次,基于概率分布进行深度假设值的采样,生成多视图一致性权重;最后,通过匹配代价体估计多视图深度概率体。

基于单一视角的深度概率特征提取与深度概率分布构建

Single-view depth probability

对于\mathcal{W}_t \in R^{H\times W}中的每张输入的图像 I_t,使用D-Net来预测其深度概率分布图 \in R^{\frac{H}{4}\times \frac{W}{4}},对于 I_t 每一个像素点 (u, v) ,将其概率分布参数化如式1所示:
p_{u, v}\left(d \mid I_{t}\right)=\frac{1}{\sigma_{u, v}\left(I_{t}\right) \sqrt{2 \pi}} e^{-\frac{1}{2}\left(\frac{d-\mu_{u, v}\left(I_{t}\right)}{\sigma_{u, v}\left(I_{t}\right)}\right)^{2}}\tag1
其中 \mu 和 \sigma 是均值与方差,文中使用一个轻量级的编解码结构和EfficientNet B5来作为主干网络,使用线性激活层来计算均值\mu ,使用修正的ELU函数来计算方差 \sigmaf(x) = ELU(x) +1,由此来保证计得到的方差为正,且具有平滑的梯度;当训练其余的模块时需要将D-Net的权值冻结;使用NLL损失来监督模型训练
L_{u, v}\left(d_{u, v}^{\mathrm{gt}} \mid I_{t}\right)=\frac{1}{2} \log \sigma_{u, v}^{2}\left(I_{t}\right)+\frac{\left(d_{u, v}^{\mathrm{gt}}-\mu_{u, v}\left(I_{t}\right)\right)^{2}}{2 \sigma_{u, v}^{2}\left(I_{t}\right)}\tag2
上式表示,在物体边界点,当模型难以减小 (d^{gt}-\mu)^2 的误差,就会使得标准差 \sigma^2 较大来使得第二项变小,第一项会限制方差过大;在非边界区域,此时正确的深度值与估计的 \mu 相近,第二项近似为0,为了使整个损失函数较小,模型会趋向于将第一项变小,也就是\sigma^2 较小;

Single-view features

通过F-Net方法提取每张图片的特征,随后采用对应点的特征向量进行点积运算来计算匹配代价体。对于像素点(u, v)在深度序列{d_k}中,其匹配代价如式(3)所示:
s_{u, v, k}\left(I_{t}\right)=\sum_{i \neq t}\left\langle\mathbf{f}_{u, v}\left(I_{t}\right), \mathbf{f}_{u_{i k}, v_{i k}}\left(I_{i}\right)\right\rangle\tag3

在深度维度上应用softmax函数得到概率体p_{u,v,k} = \text{softmax}_k(s_{u, v, k}),随后通过计算期望值来生成深度图\hat{d}_{u,v} = \sum_{k} p_{u,v,k} \cdot d_k。F-Net通过均匀采样深度假设体\{d_k\}并最小化预测深度\hat{d}_{u,v}与真实深度d_{u,v}^{gt}之间的L1损失来确定预训练权重。

Integrating Single-View Depth Probability Distribution with Multi-View Geometry Information: A Comprehensive Approach

在这里插入图片描述

注:此过程是无可学习的参数(不需要梯度下降)

Probabilistic depth sampling(基于概率分布的深度假设值采样)

在每个像素位置 (u,v),我们定义其深度假设值的搜索范围为 [\mu_{u,v}-\beta\sigma_{u,v}\ , \ \mu_{u,v}+\beta\sigma_{u,v}],其中 β 为一个超参数。接着,我们将该搜索范围划分为10个区间。这样能使得更多的深度假设值接近 \mu_{u,v},每个区间的中点即为深度假设值。具体而言,第 k 个深度假设值 d_{u,v,k} 的定义如式 (4) 所示:
d_{u, v, k}=\mu_{u, v}+b_{k} \sigma_{u, v}
其中,b_{k}=\frac{1}{2}\left[\Phi^{-1}\left(\frac{k-1}{N_{s}} P^{*}+\frac{1-P^{*}}{2}\right)+\Phi^{-1}\left(\frac{k}{N_{s}} P^{*}+\frac{1-P^{*}}{2}\right)\right]
式 (4) 中,\Phi^{-1}(.) 表示概率函数,而 P^\star = erf(\beta / \sqrt{2}) 表示区间 [\mu_{u,v}-\beta\sigma_{u,v}\ , \ \mu_{u,v}+\beta\sigma_{u,v}] 的概率质量。
注:\{b_k\} 仅与 N_s\beta 有关,无需逐像素计算。

图3左侧展示了均匀采样与本文提出的采样方式的对比结果。在具有较高不确定度的像素中,通过提升候选点之间的间距,从而可以更广泛地评估候选点的分布情况。

Depth consistency weighting(深度一致性权重)

如果深度假设值正确,表明对应的三维点位于物体表面。如果该三维点在邻域视图可见,那么单视图预估的该深度的概率应较高;等价于,如果相邻视图估计的深度假设值的单视图深度概率较低,则该深度候选可能是错误的或不可见(如遮挡);为此,多视角匹配分数如式5所示:

Estimating Multi-View Depth Probability Distribution (多视图深度概率分布估计)

Updating the monocular depth probability density function

得益于基于概率分布的深度假设值采样策略,模型得到的匹配代价的维度为 \frac{H}{4}\times \frac{W}{4} \times N_s ,其中 N_s 为深度假设值的数量;将其作为输入,使用 G-Net 更新单视图的均值与方差来估计多视角深度概率分布;由于 µ_{u,v}σ_{ u,v} 没有在输入中编码,很难通过直接回归的方式更新的均值和方差。为此,G-Net采用残差学习的思想,估计均值与方差的归一化残差值\Delta \mu_{u, v} / \sigma_{u, v}。比如当两个像素点的在视差为 k^\prime 匹配分数很高时,模型去学习 b_{k^\prime} 来更新均值:\mu_{u, v}^{\text {new }}=\mu_{u, v}+b_{k^{\prime}} \sigma_{u, v}。同理,G-Net学习 \sigma_{u, v}^{\text {new }} / \sigma_{u, v} 来更新方差值;通过这种方式来更新多视图的深度概率分布;注:G-Net 的输出可以反馈到采样模块,并且可以重复该过程以不断优化输出。

Learned upsampling(可学习的上采样)

G-Net的输出为多视图概率分布图 \in R^{2\times \frac{H}{4}\times \frac{W}{4}},为了将这个概率分布图上采样到原图分辨率,本文提出一个可学习的上采样策略:模型的输入为D-Net的特征图,使用一个轻量化的CNN来预测 R^{1\times(3*3)\times4\times4\times\frac{H}{4}\times \frac{W}{4})}的mask (4代表与原图的缩放比例) ,将概率分布图R^{2\times \frac{H}{4}\times \frac{W}{4}}每个点的3\times3的邻域像素取出来,组成邻域特征图 \in R^{2\times(3*3)\times 1\times1\times\frac{H}{4}\times\frac{W}{4}} ,将其与mask点乘后在3*3 维度上求和得到R^{2\times 4\times4\times\frac{H}{4}\times\frac{W}{4}} ,最后resize得到R^{2 \times H\times W}

复制代码
    def upsample_depth_via_mask(depth, up_mask, k):
    # depth: low-resolution depth (B, 2, H, W)
    # up_mask: (B, 9*k*k, H, W)
    N, o_dim, H, W = depth.shape
    up_mask = up_mask.view(N, 1, 9, k, k, H, W)
    up_mask = torch.softmax(up_mask, dim=2)             # (B, 1, 3*3, k, k, H, W)
    
    up_depth = F.unfold(depth, [3, 3], padding=1)       # (B, 2, H, W) -> (B, 2 X 3*3, H*W)
    up_depth = up_depth.view(N, o_dim, 9, 1, 1, H, W)   # (B, 2, 3*3, 1, 1, H, W)
    up_depth = torch.sum(up_mask * up_depth, dim=2)     # (B, 2, k, k, H, W)
    
    up_depth = up_depth.permute(0, 1, 4, 2, 5, 3)       # (B, 2, H, k, W, k)
    return up_depth.reshape(N, o_dim, k*H, k*W)         # (B, 2, k*H, k*W)

Iterative refinement and network training(迭代优化与模型训练)

经过反复的迭代过程,N_{iter}次多视角匹配循环(首先通过概率分布的深度假设值采样,随后进行多视图一致性权重匹配,最后由G-Net更新概率分布参数)可以生成N_{iter}个预测结果;在每次迭代期间,计算式2的NLL损失,并将每次迭代得到的NLL损失乘以\gamma^{N_{\text {iter }}-i}(后续权重依次递减),这些损失的总和则用于训练G-Net以及可学习的山采样模块。


实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~